From 74df01009fd40640e00552e5ec6b85e9edb534a4 Mon Sep 17 00:00:00 2001 From: Christof Efkemann <christof@efkemann.net> Date: Wed, 1 Jun 2022 21:59:11 +0200 Subject: [PATCH] app_sayunixtime: Use correct inflection for German time. In function ast_say_date_with_format_de(), take special care when the hour is one o'clock. In this case, the German number "eins" must be inflected to its neutrum form, "ein". This is achieved by playing "digits/1N" instead of "digits/1". Fixes both 12- and 24-hour formats. ASTERISK-30092 Change-Id: Ica9b80125c0b317e378d89c1ea786816e2635510 --- main/say.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/main/say.c b/main/say.c index df9462aa16..8fb5e97607 100644 --- a/main/say.c +++ b/main/say.c @@ -4933,6 +4933,8 @@ int ast_say_date_with_format_de(struct ast_channel *chan, time_t t, const char * /* 12-Hour */ if (tm.tm_hour == 0) ast_copy_string(nextmsg, "digits/12", sizeof(nextmsg)); + else if (tm.tm_hour == 1) + ast_copy_string(nextmsg, "digits/1N", sizeof(nextmsg)); else if (tm.tm_hour > 12) snprintf(nextmsg, sizeof(nextmsg), "digits/%d", tm.tm_hour - 12); else @@ -4945,7 +4947,11 @@ int ast_say_date_with_format_de(struct ast_channel *chan, time_t t, const char * case 'H': case 'k': /* 24-Hour */ - res = ast_say_number(chan, tm.tm_hour, ints, lang, (char *) NULL); + if (tm.tm_hour == 1) { + res = wait_file(chan, ints, "digits/1N", lang); + } else { + res = ast_say_number(chan, tm.tm_hour, ints, lang, (char *) NULL); + } if (!res) { res = wait_file(chan, ints, "digits/oclock", lang); } -- GitLab