voice: Allow voiced date format to be overridden

This adds LANG_VOICED_DATE_FORMAT, a format string with these tokens:

 Y  4-digit year
 A  Month name
 m  numeric month
 d  numeric day of month

The default (english) is '23 January 2013'
In comparison, english-us is 'January 23 2013'

Change-Id: I055a3287c104260dec63bba58d36fdae9df1ed16
This commit is contained in:
Solomon Peachy 2021-09-28 21:39:10 -04:00
parent 70e72e01d2
commit eeacffbd15
3 changed files with 52 additions and 3 deletions

View file

@ -16027,3 +16027,17 @@
*: "" *: ""
</voice> </voice>
</phrase> </phrase>
<phrase>
id: LANG_VOICED_DATE_FORMAT
desc: format string for how dates will be read back. Y == 4-digit year, A == month name, m == numeric month, d == numeric day. For example, "AdY" will read "January 21 2021"
user: core
<source>
*: "dAY"
</source>
<dest>
*: "AdY"
</dest>
<voice>
*: ""
</voice>
</phrase>

View file

@ -16094,3 +16094,17 @@
*: "" *: ""
</voice> </voice>
</phrase> </phrase>
<phrase>
id: LANG_VOICED_DATE_FORMAT
desc: format string for how dates will be read back. Y == 4-digit year, A == month name, m == numeric month, d == numeric day. For example, "AdY" will read "January 21 2021"
user: core
<source>
*: "dAY"
</source>
<dest>
*: "dAY"
</dest>
<voice>
*: ""
</voice>
</phrase>

View file

@ -1496,9 +1496,30 @@ void talk_setting(const void *global_settings_variable)
void talk_date(const struct tm *tm, bool enqueue) void talk_date(const struct tm *tm, bool enqueue)
{ {
talk_id(LANG_MONTH_JANUARY + tm->tm_mon, enqueue); const char *format = str(LANG_VOICED_DATE_FORMAT);
talk_number(tm->tm_mday, true); const char *ptr;
talk_number(1900 + tm->tm_year, true);
if (!enqueue)
talk_shutup(); /* cut off all the pending stuff */
for (ptr = format ; *ptr ; ptr++) {
switch(*ptr) {
case 'Y':
talk_number(1900 + tm->tm_year, true);
break;
case 'A':
talk_id(LANG_MONTH_JANUARY + tm->tm_mon, true);
break;
case 'm':
talk_number(tm->tm_mon + 1, true);
break;
case 'd':
talk_number(tm->tm_mday, true);
break;
default:
break;
}
}
} }
void talk_time(const struct tm *tm, bool enqueue) void talk_time(const struct tm *tm, bool enqueue)