Index: conf/lang/fr/vm/sounds.xml
===================================================================
--- conf/lang/fr/vm/sounds.xml (revision 16642)
+++ conf/lang/fr/vm/sounds.xml (working copy)
@@ -1,9 +1,9 @@
-
-
+
+
@@ -11,7 +11,8 @@
-
+
+
@@ -19,7 +20,7 @@
-
+
@@ -27,7 +28,7 @@
-
+
@@ -35,7 +36,7 @@
-
+
@@ -43,54 +44,75 @@
-
+
-
+
-
+
+
+
+
-
+
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
@@ -98,8 +120,15 @@
-
+
+
+
+
+
+
+
+
+
@@ -107,25 +136,95 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -133,7 +232,7 @@
-
+
@@ -141,7 +240,7 @@
-
+
@@ -149,15 +248,17 @@
-
+
-
+
-
+
+
+
@@ -165,36 +266,35 @@
-
+
+
+
-
+
-
+
-
+
-
+
+
+
-
-
-
-
-
-
+
@@ -202,35 +302,39 @@
-
+
-
-
+
+
-
+
-
+
+
-
+
+
-
+
+
-
+
+
@@ -238,9 +342,40 @@
-
+
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: conf/lang/fr/fr.xml
===================================================================
--- conf/lang/fr/fr.xml (revision 16642)
+++ conf/lang/fr/fr.xml (working copy)
@@ -1,5 +1,5 @@
-
+
Index: src/mod/say/mod_say_fr/mod_say_fr.c
===================================================================
--- src/mod/say/mod_say_fr/mod_say_fr.c (revision 16642)
+++ src/mod/say/mod_say_fr/mod_say_fr.c (working copy)
@@ -39,8 +39,9 @@
*
* Anthony Minessale II
* Michael B. Murdock
+ * Stephane Alnet
*
- * mod_say_fr.c -- Say for English
+ * mod_say_fr.c -- Say for French
*
*/
@@ -80,10 +81,17 @@
if (a >= 48 && a <= 57) {
say_file("digits/%d.wav", a - 48);
} else {
- if (type == SST_NAME_SPELLED) {
- say_file("ascii/%d.wav", a);
- } else if (type == SST_NAME_PHONETIC) {
- say_file("phonetic-ascii/%d.wav", a);
+ switch(type) {
+ case SST_NAME_SPELLED:
+ case SST_URL:
+ case SST_EMAIL_ADDRESS:
+ say_file("ascii/%d.wav", a);
+ break;
+ case SST_NAME_PHONETIC:
+ say_file("phonetic-ascii/%d.wav", a);
+ break;
+ default:
+ break;
}
}
}
@@ -95,16 +103,33 @@
{
if (a) {
- say_file("digits/%d.wav", a);
- say_file("digits/hundred.wav");
+ if(a > 1) {
+ say_file("digits/%d.wav", a);
+ say_file("digits/hundred.wav");
+ } else {
+ say_file("digits/hundred.wav");
+ }
}
if (b) {
if (b > 1) {
- say_file("digits/%d0.wav", b);
- } else {
- say_file("digits/%d%d.wav", b, c);
- c = 0;
+ /* fr-FR */
+ if(b == 7 || b == 9) {
+ if(c == 1) { /* 71 and 91 */
+ say_file("digits/%d%d.wav", b, c);
+ c = 0;
+ } else { /* 70, 72..79, 90, 92..99 */
+ say_file("digits/%d0.wav", b-1);
+ c = c + 10;
+ }
+ } else { /* 20..69, 80..89 */
+ say_file("digits/%d0.wav", b);
+ if(c == 1 && b != 8) { /* 21, 31, 41, 51, 61 */
+ say_file("currency/and.wav");
+ }
+ }
+ } else { /* 10..19 */
+ c = c + 10;
}
}
@@ -310,38 +335,26 @@
if (hours) {
say_num(hours, SSM_PRONOUNCED);
- if (hours == 1) {
- say_file("time/hour.wav");
- } else {
- say_file("time/hours.wav");
- }
+ say_file("time/hour.wav");
} else {
say_file("digits/0.wav");
- say_file("time/hours.wav");
+ say_file("time/hour.wav");
}
if (minutes) {
say_num(minutes, SSM_PRONOUNCED);
- if (minutes == 1) {
- say_file("time/minute.wav");
- } else {
- say_file("time/minutes.wav");
- }
+ say_file("time/minute.wav");
} else {
say_file("digits/0.wav");
- say_file("time/minutes.wav");
+ say_file("time/minute.wav");
}
if (seconds) {
say_num(seconds, SSM_PRONOUNCED);
- if (seconds == 1) {
- say_file("time/second.wav");
- } else {
- say_file("time/seconds.wav");
- }
+ say_file("time/second.wav");
} else {
say_file("digits/0.wav");
- say_file("time/seconds.wav");
+ say_file("time/second.wav");
}
return SWITCH_STATUS_SUCCESS;
@@ -370,36 +383,25 @@
if (say_date) {
say_file("time/day-%d.wav", tm.tm_wday);
+ if(tm.tm_mday > 1) {
+ say_num(tm.tm_mday, SSM_PRONOUNCED);
+ } else {
+ say_num(tm.tm_mday, SSM_COUNTED);
+ }
say_file("time/mon-%d.wav", tm.tm_mon);
- say_num(tm.tm_mday, SSM_COUNTED);
say_num(tm.tm_year + 1900, SSM_PRONOUNCED);
}
if (say_time) {
- int32_t hour = tm.tm_hour, pm = 0;
+ int32_t hour = tm.tm_hour;
- if (hour > 12) {
- hour -= 12;
- pm = 1;
- } else if (hour == 12) {
- pm = 1;
- } else if (hour == 0) {
- hour = 12;
- pm = 0;
- }
-
say_num(hour, SSM_PRONOUNCED);
-
- if (tm.tm_min > 9) {
+ say_file("time/hour.wav");
+ if(tm.tm_min) {
+ say_file("currency/and.wav");
say_num(tm.tm_min, SSM_PRONOUNCED);
- } else if (tm.tm_min) {
- say_file("time/oh.wav");
- say_num(tm.tm_min, SSM_PRONOUNCED);
- } else {
- say_file("time/oclock.wav");
+ say_file("time/minute.wav");
}
-
- say_file("time/%s.wav", pm ? "p-m" : "a-m");
}
return SWITCH_STATUS_SUCCESS;
@@ -434,17 +436,13 @@
/* If negative say "negative" */
if (sbuf[0] == '-') {
- say_file("currency/negative.wav");
+ say_file("currency/minus.wav");
dollars++;
}
/* Say dollar amount */
fr_say_general_count(session, dollars, type, method, args);
- if (atoi(dollars) == 1) {
- say_file("currency/dollar.wav");
- } else {
- say_file("currency/dollars.wav");
- }
+ say_file("currency/euro.wav");
/* Say "and" */
say_file("currency/and.wav");
@@ -452,14 +450,10 @@
/* Say cents */
if (cents) {
fr_say_general_count(session, cents, type, method, args);
- if (atoi(cents) == 1) {
- say_file("currency/cent.wav");
- } else {
- say_file("currency/cents.wav");
- }
+ say_file("currency/cent.wav");
} else {
say_file("digits/0.wav");
- say_file("currency/cents.wav");
+ say_file("currency/cent.wav");
}
return SWITCH_STATUS_SUCCESS;
@@ -495,6 +489,16 @@
case SST_CURRENCY:
say_cb = fr_say_money;
break;
+ case SST_TELEPHONE_NUMBER:
+ case SST_TELEPHONE_EXTENSION:
+ case SST_URL:
+ case SST_EMAIL_ADDRESS:
+ case SST_POSTAL_ADDRESS:
+ case SST_ACCOUNT_NUMBER:
+ case SST_SHORT_DATE_TIME:
+ say_cb = fr_spell;
+ break;
+
default:
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unknown Say type=[%d]\n", type);
break;