[Asterisk-Dev] say.c Support for Urdu

Roy Sigurd Karlsbakk roy at karlsbakk.net
Wed Jul 13 04:51:50 MST 2005


does that have an iso code as well?

Den 13. jul. 2005 kl. 13.17 skrev Atif Rasheed:

> well its Pakistani Urdu. I am not sure about Punjabi Grammar and  
> pronunciation, but we will be able to add that also
>
>
> Roy Sigurd Karlsbakk wrote:
>
>
>> is there only one ur language, or do you have variants like  
>> pakistani  punjabi etc? if so, perhaps it could be nice to specify...
>>
>>
>> Den 13. jul. 2005 kl. 11.54 skrev Atif Rasheed:
>>
>>
>>> I have used urdu to test this change, but according to 639-1 its   
>>> "ur", so we will be using "ur".
>>> I am signing disclaimer, after that I will submit the patch to   
>>> bugs.digium.com.
>>>
>>>
>>>
>>>> What's the language code for Urdu? "ur"? "urd"?
>>>>
>>>> http://www.loc.gov/standards/iso639-2/englangn.html#uvwxyz
>>>>
>>>>
>>>>
>>>>
>>>>>>         return(ast_say_number_full_urdu(chan, num, ints,  
>>>>>> language,
>>>>>>
>>>>>>
>>>>> audiofd, ctrlfd));
>>>>>
>>>>>
>>>>> /*---- Urdu sound files needed for Time/Date functions:
>>>>> minute
>>>>> second
>>>>> ---- Urdu sound files needed for Currency:
>>>>> Rupay
>>>>> Rupia
>>>>> Paisa
>>>>> Paisay
>>>>> /*
>>>>>
>>>>> /*--- ast_say_number_full_urdu: Urdu syntax */
>>>>> /*--- Urdu syntax is little different, so we will require alot  
>>>>> of  extra files. from 0 - 99  */
>>>>> static int ast_say_number_full_urdu(struct ast_channel *chan,  
>>>>> int  num, char *ints, char *language, int audiofd, int ctrlfd)
>>>>> {
>>>>>       int res = 0;
>>>>>       int playh = 0;
>>>>>       char fn[256] = "";
>>>>>       if (!num)
>>>>>               return ast_say_digits_full(chan, 0,ints,  
>>>>> language,  audiofd, ctrlfd);
>>>>>
>>>>>       while(!res && (num || playh)) {
>>>>>                       if (playh) {
>>>>>                               snprintf(fn, sizeof(fn), "digits/  
>>>>> hundred");
>>>>>                               playh = 0;
>>>>>                       } else  if (num < 100) {
>>>>>                               snprintf(fn, sizeof(fn), "digits/ 
>>>>> % d", num);
>>>>>                               num = 0;
>>>>>                       } else {
>>>>>                               if (num < 1000){
>>>>>                                       snprintf(fn, sizeof(fn),   
>>>>> "digits/%d", (num/100));
>>>>>                                       playh++;
>>>>>                                       num -= ((num / 100) * 100);
>>>>>                               } else {
>>>>>                                       if (num < 1000000) { /*   
>>>>> 1,000,000 */
>>>>>                                               res =   
>>>>> ast_say_number_full_en(chan, num / 1000, ints, language,  
>>>>> audiofd,  ctrlfd);
>>>>>                                               if (res)
>>>>>                                                       return res;
>>>>>                                               num = num % 1000;
>>>>>                                               snprintf(fn,  
>>>>> sizeof (fn), "digits/thousand");
>>>>>                                       } else {
>>>>>
>>>>>
>>>>>
>>>>
>>>> Is it just me, or the part below is replicated in too many  
>>>> functions?
>>>>
>>>>
>>>>
>>>>
>>>>>                                               if (num <   
>>>>> 1000000000) { /* 1,000,000,000 */
>>>>>                                                       res =   
>>>>> ast_say_number_full_en(chan, num / 1000000, ints, language,   
>>>>> audiofd, ctrlfd);
>>>>>                                                       if (res)
>>>>>                                                                 
>>>>> return res;
>>>>>                                                       num = num  
>>>>> %  1000000;
>>>>>                                                       snprintf  
>>>>> (fn, sizeof(fn), "digits/million");
>>>>>                                               } else {
>>>>>                                                       ast_log  
>>>>> (LOG_DEBUG, "Number '%d' is too big for me\n", num);
>>>>>                                                       res = -1;
>>>>>                                               }
>>>>>                                       }
>>>>>                               }
>>>>>                       }
>>>>>                       if (!res) {
>>>>>                               if(!ast_streamfile(chan, fn,   
>>>>> language)) {
>>>>>                                       if ((audiofd > -1) &&   
>>>>> (ctrlfd > -1))
>>>>>                                               res =   
>>>>> ast_waitstream_full(chan, ints, audiofd, ctrlfd);
>>>>>                                       else
>>>>>                                               res =  
>>>>> ast_waitstream (chan, ints);
>>>>>                               }
>>>>>                               ast_stopstream(chan);
>>>>>                       }
>>>>>       }
>>>>>       return res;
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Asterisk-Dev mailing list
>>> Asterisk-Dev at lists.digium.com
>>> http://lists.digium.com/mailman/listinfo/asterisk-dev
>>> To UNSUBSCRIBE or update options visit:
>>>   http://lists.digium.com/mailman/listinfo/asterisk-dev
>>>
>>>
>>>
>>
>> _______________________________________________
>> Asterisk-Dev mailing list
>> Asterisk-Dev at lists.digium.com
>> http://lists.digium.com/mailman/listinfo/asterisk-dev
>> To UNSUBSCRIBE or update options visit:
>>   http://lists.digium.com/mailman/listinfo/asterisk-dev
>>
>>
>>
>>
>
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> To UNSUBSCRIBE or update options visit:
>   http://lists.digium.com/mailman/listinfo/asterisk-dev
>
>




More information about the asterisk-dev mailing list