[Asterisk-Dev] say.c Support for Urdu
Atif Rasheed
atif at iphonica.com
Wed Jul 13 02:54:11 MST 2005
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;
>>}
>>
>>
>
>
>
>
More information about the asterisk-dev
mailing list