From c4d4c636d0a249eca13af323d35e4242eb954718 Mon Sep 17 00:00:00 2001
From: Tilghman Lesher <tilghman@meg.abyt.es>
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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
SQPPZ!lg~tHu(5@M^Z)?2XwDk|

delta 3129
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
DN?*vo

-- 
GitLab