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:
parent
70e72e01d2
commit
eeacffbd15
3 changed files with 52 additions and 3 deletions
|
@ -16027,3 +16027,17 @@
|
|||
*: ""
|
||||
</voice>
|
||||
</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>
|
||||
|
|
|
@ -16094,3 +16094,17 @@
|
|||
*: ""
|
||||
</voice>
|
||||
</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>
|
||||
|
|
27
apps/talk.c
27
apps/talk.c
|
@ -1496,9 +1496,30 @@ void talk_setting(const void *global_settings_variable)
|
|||
|
||||
void talk_date(const struct tm *tm, bool enqueue)
|
||||
{
|
||||
talk_id(LANG_MONTH_JANUARY + tm->tm_mon, enqueue);
|
||||
talk_number(tm->tm_mday, true);
|
||||
talk_number(1900 + tm->tm_year, true);
|
||||
const char *format = str(LANG_VOICED_DATE_FORMAT);
|
||||
const char *ptr;
|
||||
|
||||
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)
|
||||
|
|
Loading…
Reference in a new issue