From c4d4c636d0a249eca13af323d35e4242eb954718 Mon Sep 17 00:00:00 2001 From: Tilghman Lesher Date: Fri, 25 Jul 2008 22:08:06 +0000 Subject: [PATCH] Hebrew syntax for voicemail prompts (closes issue #13155) Reported by: greenfieldtech Patches: app_voicemail.c.patch uploaded by greenfieldtech (license 369) hebrew.ods uploaded by greenfieldtech (license 369) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@133904 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_voicemail.c | 132 +++++++++++++++++++++++++++++++++++++++++-- doc/lang/hebrew.ods | Bin 23290 -> 23306 bytes 2 files changed, 128 insertions(+), 4 deletions(-) diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 63974d20b4..e83eaf2705 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -5715,10 +5715,33 @@ static int play_message(struct ast_channel *chan, struct ast_vm_user *vmu, struc adsi_message(chan, vms); ast_debug(5,"************** About to check urgent flag, set to:%s\n", flag); - if (!vms->curmsg) - res = wait_file2(chan, vms, "vm-first"); /* "First" */ - else if (vms->curmsg == vms->lastmsg) - res = wait_file2(chan, vms, "vm-last"); /* "last" */ + if (!strcasecmp(chan->language, "he")) { /* HEBREW FORMAT */ + /* + * The syntax in hebrew for counting the number of message is up side down + * in comparison to english. + */ + if (!vms->curmsg) { + res = wait_file2(chan, vms, "vm-message"); + res = wait_file2(chan, vms, "vm-first"); /* "First" */ + } else if (vms->curmsg == vms->lastmsg) { + res = wait_file2(chan, vms, "vm-message"); + res = wait_file2(chan, vms, "vm-last"); /* "last" */ + } else { + res = wait_file2(chan, vms, "vm-message"); /* "message" */ + if (vms->curmsg && (vms->curmsg != vms->lastmsg)) { + ast_log(LOG_DEBUG, "curmsg: %s\n", vms->curmsg); + ast_log(LOG_DEBUG, "lagmsg: %s\n", vms->lastmsg); + if (!res) { + res = ast_say_number(chan, vms->curmsg + 1, AST_DIGIT_ANY, chan->language, "f"); + } + } + } + } else { + if (!vms->curmsg) + res = wait_file2(chan, vms, "vm-first"); /* "First" */ + else if (vms->curmsg == vms->lastmsg) + res = wait_file2(chan, vms, "vm-last"); /* "last" */ + } /* Play the word urgent if we are listening to urgent messages */ if (!ast_strlen_zero(flag) && !strcmp(flag, "Urgent")) { res = wait_file2(chan, vms, "vm-Urgent"); /* "urgent" */ @@ -5849,6 +5872,19 @@ static int play_message(struct ast_channel *chan, struct ast_vm_user *vmu, struc } if (!res) res = wait_file2(chan, vms, "vm-message"); + /* HEBREW syntax */ + } else if (!strcasecmp(chan->language, "he")) { + if (!vms->curmsg) { + res = wait_file2(chan, vms, "vm-message"); + res = wait_file2(chan, vms, "vm-first"); + } else if (vms->curmsg == vms->lastmsg) { + res = wait_file2(chan, vms, "vm-message"); + res = wait_file2(chan, vms, "vm-last"); + } else { + res = wait_file2(chan, vms, "vm-message"); + res = wait_file2(chan, vms, "vm-number"); + res = ast_say_number(chan, vms->curmsg + 1, AST_DIGIT_ANY, chan->language, "f"); + } } else { if (!strcasecmp(chan->language, "se")) /* SWEDISH syntax */ res = wait_file2(chan, vms, "vm-meddelandet"); /* "message" */ @@ -6442,6 +6478,73 @@ static int vm_intro_gr(struct ast_channel *chan, struct vm_state *vms) res = ast_play_and_wait(chan, "vm-denExeteMynhmata"); return res; } + +/* Hebrew syntax */ +static int vm_intro_he(struct ast_channel *chan, struct vm_state *vms) +{ + int res = 0; + + /* Introduce messages they have */ + if (!res) { + if ((vms->newmessages) || (vms->oldmessages)) { + res = ast_play_and_wait(chan, "vm-youhave"); + } + /* + * The word "shtei" refers to the number 2 in hebrew when performing a count + * of elements. In Hebrew, there are 6 forms of enumerating the number 2 for + * an element, this is one of them. + */ + if (vms->newmessages) { + if (!res) { + if (vms->newmessages == 1) { + res = ast_play_and_wait(chan, "vm-INBOX1"); + } else { + if (vms->newmessages == 2) { + res = ast_play_and_wait(chan, "vm-shtei"); + } else { + res = ast_say_number(chan, vms->newmessages, AST_DIGIT_ANY, chan->language, "f"); + } + res = ast_play_and_wait(chan, "vm-INBOX"); + } + } + if (vms->oldmessages && !res) { + res = ast_play_and_wait(chan, "vm-and"); + if (vms->oldmessages == 1) { + res = ast_play_and_wait(chan, "vm-Old1"); + } else { + if (vms->oldmessages == 2) { + res = ast_play_and_wait(chan, "vm-shtei"); + } else { + res = ast_say_number(chan, vms->oldmessages, AST_DIGIT_ANY, chan->language, "f"); + } + res = ast_play_and_wait(chan, "vm-Old"); + } + } + } + if (!res && vms->oldmessages && !vms->newmessages) { + if (!res) { + if (vms->oldmessages == 1) { + res = ast_play_and_wait(chan, "vm-Old1"); + } else { + if (vms->oldmessages == 2) { + res = ast_play_and_wait(chan, "vm-shtei"); + } else { + res = ast_say_number(chan, vms->oldmessages, AST_DIGIT_ANY, chan->language, "f"); + } + res = ast_play_and_wait(chan, "vm-Old"); + } + } + } + if (!res) { + if (!vms->oldmessages && !vms->newmessages) { + if (!res) { + res = ast_play_and_wait(chan, "vm-nomessages"); + } + } + } + } + return res; +} /* Default English syntax */ static int vm_intro_en(struct ast_channel *chan, struct vm_state *vms) @@ -7283,6 +7386,8 @@ static int vm_intro(struct ast_channel *chan, struct ast_vm_user *vmu, struct vm return vm_intro_tw(chan, vms); } else if (!strcasecmp(chan->language, "ua")) { /* UKRAINIAN syntax */ return vm_intro_ua(chan, vms); + } else if (!strcasecmp(chan->language, "he")) { /* HEBREW syntax */ + return vm_intro_he(chan, vms); } else { /* Default to ENGLISH */ return vm_intro_en(chan, vms); } @@ -7748,6 +7853,23 @@ static int vm_browse_messages_gr(struct ast_channel *chan, struct vm_state *vms, return cmd; } +/* Hebrew Syntax */ +static int vm_browse_messages_he(struct ast_channel *chan, struct vm_state *vms, struct ast_vm_user *vmu) +{ + int cmd = 0; + + if (vms->lastmsg > -1) { + cmd = play_message(chan, vmu, vms); + } else { + if (!strcasecmp(vms->fn, "INBOX")) { + cmd = ast_play_and_wait(chan, "vm-nonewmessages"); + } else { + cmd = ast_play_and_wait(chan, "vm-nomessages"); + } + } + return cmd; +} + /*! * \brief Default English syntax for 'You have N messages' greeting. * \param chan @@ -7905,6 +8027,8 @@ static int vm_browse_messages(struct ast_channel *chan, struct vm_state *vms, st return vm_browse_messages_gr(chan, vms, vmu); /* GREEK */ } else if (!strcasecmp(chan->language, "tw")){ return vm_browse_messages_tw(chan, vms, vmu); /* CHINESE (Taiwan) */ + } else if (!strcasecmp(chan->language, "he")) { + return vm_browse_messages_he(chan, vms, vmu); /* HEBREW */ } else { /* Default to English syntax */ return vm_browse_messages_en(chan, vms, vmu); } diff --git a/doc/lang/hebrew.ods b/doc/lang/hebrew.ods index f8b0f54df5a785250c843fd3461520f2d16d5cbc..9451d836d83e00da5872f031cac633d4dc8cddb6 100644 GIT binary patch delta 3132 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 V|GzwSzw$(*hHZq%$Slt;{tLHg&Km## delta 3129 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 M27IKusI!az21;MZzW@LL