diff --git a/radio/src/translations/tts_de.cpp b/radio/src/translations/tts_de.cpp index 569afe3fa..b43ef63da 100644 --- a/radio/src/translations/tts_de.cpp +++ b/radio/src/translations/tts_de.cpp @@ -3,6 +3,7 @@ * - Andre Bernet * - Andreas Weitl * - Bertrand Songis + * - Benjamin Boy * - Thomas Husterer * * opentx is based on code named @@ -27,18 +28,22 @@ enum GermanPrompts { DE_PROMPT_NUMBERS_BASE = 0, DE_PROMPT_NULL = DE_PROMPT_NUMBERS_BASE+0, - DE_PROMPT_HUNDERT = DE_PROMPT_NUMBERS_BASE+100, - DE_PROMPT_TAUSEND = DE_PROMPT_NUMBERS_BASE+101, - DE_PROMPT_COMMA = 102, + DE_PROMPT_EIN = DE_PROMPT_NUMBERS_BASE+100, + DE_PROMPT_EINE = DE_PROMPT_NUMBERS_BASE+101, + DE_PROMPT_HUNDERT = DE_PROMPT_NUMBERS_BASE+102, + DE_PROMPT_TAUSEND = DE_PROMPT_NUMBERS_BASE+103, + DE_PROMPT_COMMA = 104, DE_PROMPT_UND, DE_PROMPT_MINUS, DE_PROMPT_UHR, DE_PROMPT_MINUTE, DE_PROMPT_MINUTEN, - DE_PROMPT_SECUNDE, - DE_PROMPT_SECUNDEN, + DE_PROMPT_SEKUNDE, + DE_PROMPT_SEKUNDEN, + DE_PROMPT_STUNDE, + DE_PROMPT_STUNDEN, - DE_PROMPT_UNITS_BASE = 110, + DE_PROMPT_UNITS_BASE = 114, DE_PROMPT_VOLTS = DE_PROMPT_UNITS_BASE+UNIT_VOLTS, DE_PROMPT_AMPS = DE_PROMPT_UNITS_BASE+UNIT_AMPS, DE_PROMPT_METERS_PER_SECOND = DE_PROMPT_UNITS_BASE+UNIT_METERS_PER_SECOND, @@ -108,7 +113,7 @@ I18N_PLAY_FUNCTION(de, playNumber, getvalue_t number, uint8_t unit, uint8_t att) unit = UNIT_FEET; } if (unit == UNIT_SPEED) { - unit = UNIT_KTS; + unit = UNIT_KTS; } } unit++; @@ -138,74 +143,108 @@ I18N_PLAY_FUNCTION(de, playNumber, getvalue_t number, uint8_t unit, uint8_t att) return; } - if (number >= 1000) { - if (number >= 1100) { - PLAY_NUMBER(number / 1000, 0, 0); - PUSH_NUMBER_PROMPT(DE_PROMPT_TAUSEND); - } else { - PUSH_NUMBER_PROMPT(DE_PROMPT_TAUSEND); - } + if (number >= 2000) { + PLAY_NUMBER(number / 1000, 0, 0); + PUSH_NUMBER_PROMPT(DE_PROMPT_TAUSEND); number %= 1000; - if (number == 0) - number = -1; } - if (number >= 100) { - if (number >= 200) - PUSH_NUMBER_PROMPT(DE_PROMPT_NULL + number/100); + + if ((number >= 1000) && (number < 2000)) { + PUSH_NUMBER_PROMPT(DE_PROMPT_EIN); + PUSH_NUMBER_PROMPT(DE_PROMPT_TAUSEND); + number %= 1000; + } + + if ((number >= 200) && (number < 1000)) { + PUSH_NUMBER_PROMPT(DE_PROMPT_NULL + number / 100); + PUSH_NUMBER_PROMPT(DE_PROMPT_HUNDERT); + number %= 100; + } + + if ((number >= 100) && (number < 200)) { + PUSH_NUMBER_PROMPT(DE_PROMPT_EIN); PUSH_NUMBER_PROMPT(DE_PROMPT_HUNDERT); number %= 100; - if (number == 0) - number = -1; } - PUSH_NUMBER_PROMPT(DE_PROMPT_NULL+number); + if (number > 0){ + if (number == 1){ + PUSH_NUMBER_PROMPT(DE_PROMPT_EIN); + } + else { + PUSH_NUMBER_PROMPT(DE_PROMPT_NULL + number / 1); + number %= 1; + } + } + + if (number == 0) + number = -1; + if (unit) { DE_PUSH_UNIT_PROMPT(unit); + } } I18N_PLAY_FUNCTION(de, playDuration, int seconds PLAY_DURATION_ATT) { + if (seconds == 0) { + PLAY_NUMBER(seconds, 0, 0); + return; + } + if (seconds < 0) { PUSH_NUMBER_PROMPT(DE_PROMPT_MINUS); seconds = -seconds; } - uint8_t ore = 0; uint8_t tmp = seconds / 3600; seconds %= 3600; + if (tmp > 0 || IS_PLAY_TIME()) { - PLAY_NUMBER(tmp, UNIT_HOURS, 0); + if (tmp > 1) { + PLAY_NUMBER(tmp, 0, 0); + PUSH_NUMBER_PROMPT(DE_PROMPT_STUNDEN); + } + else { + PUSH_NUMBER_PROMPT(DE_PROMPT_EINE); + PUSH_NUMBER_PROMPT(DE_PROMPT_STUNDE); + } + + if (seconds > 0) { + PUSH_NUMBER_PROMPT(DE_PROMPT_UND); + } } tmp = seconds / 60; seconds %= 60; - if (tmp > 0 || ore >0) { - PLAY_NUMBER(tmp, 0, 0); - if (tmp != 1) { -#if defined(CPUARM) - PUSH_UNIT_PROMPT(UNIT_MINUTES, 1); - } else { - PUSH_UNIT_PROMPT(UNIT_MINUTES, 0); -#else + + if (tmp > 0) { + if (tmp > 1) { + PLAY_NUMBER(tmp, 0, 0); PUSH_NUMBER_PROMPT(DE_PROMPT_MINUTEN); - } else { - PUSH_NUMBER_PROMPT(DE_PROMPT_MINUTE); -#endif } - PUSH_NUMBER_PROMPT(DE_PROMPT_UND); + else { + PUSH_NUMBER_PROMPT(DE_PROMPT_EINE); + PUSH_NUMBER_PROMPT(DE_PROMPT_MINUTE); + } + if (seconds > 0) { + PUSH_NUMBER_PROMPT(DE_PROMPT_UND); + } } - PLAY_NUMBER(seconds, 0, 0); - if (seconds != 1) { -#if defined(CPUARM) - PUSH_UNIT_PROMPT(UNIT_SECONDS, 1); - } else { - PUSH_UNIT_PROMPT(UNIT_SECONDS, 0); -#else - PUSH_NUMBER_PROMPT(DE_PROMPT_SECUNDEN); - } else { - PUSH_NUMBER_PROMPT(DE_PROMPT_SECUNDE); -#endif + + if (seconds > 1) { + PLAY_NUMBER(seconds, 0, 0); + PUSH_NUMBER_PROMPT(DE_PROMPT_SEKUNDEN); + } + else { + if (seconds == 1) { + PUSH_NUMBER_PROMPT(DE_PROMPT_EINE); + PUSH_NUMBER_PROMPT(DE_PROMPT_SEKUNDE); + } + else { + PLAY_NUMBER(seconds, 0, 0); + } } } diff --git a/radio/util/tts_de.py b/radio/util/tts_de.py index 93ce4ad53..26bb9cc5a 100755 --- a/radio/util/tts_de.py +++ b/radio/util/tts_de.py @@ -8,14 +8,17 @@ from tts_common import filename, NO_ALTERNATE, PROMPT_SYSTEM_BASE, PROMPT_CUSTOM systemSounds = [] sounds = [] -for i in range(101): +for i in range(100): systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE + i))) -systemSounds.append(("tausend", filename(PROMPT_SYSTEM_BASE + 101))) -for i, s in enumerate(["comma", "und", "minus", "uhr", "minute", "minuten", "sekunde", "sekunden"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 102 + i))) -for i, (s, f) in enumerate([(u"Volt","volt0"), - (u"Ampere", "amp0"), - (u"MilliAmpere", "mamp0"), +systemSounds.append(("ein", filename(PROMPT_SYSTEM_BASE + 100))) +systemSounds.append(("eine", filename(PROMPT_SYSTEM_BASE + 101))) +systemSounds.append(("hundert", filename(PROMPT_SYSTEM_BASE + 102))) +systemSounds.append(("tausend", filename(PROMPT_SYSTEM_BASE + 103))) +for i, s in enumerate(["komma", "und", "minus", "uhr", "minute", "minuten", "sekunde", "sekunden", "stunde", "stunden"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 104 + i))) +for i, (s, f) in enumerate([(u"Wolt","volt0"), + (u"Ampär", "amp0"), + (u"MilliAmpär", "mamp0"), (u"Knoten", "knot0"), (u"Meter pro sekunde", "mps0"), (u"Fuss pro sekunde", "fps0"), @@ -26,7 +29,7 @@ for i, (s, f) in enumerate([(u"Volt","volt0"), (u"Grad Celsius", "celsius0"), (u"Grad Fahrenheit", "fahr0"), (u"Prozent", "percent0"), - (u"Milliampere pro stunde", "mamps0"), + (u"Milliampär pro stunde", "mamps0"), (u"Watt", "watt0"), (u"Milli Watt", "mwatt0"), (u"D B", "db0"), @@ -40,7 +43,7 @@ for i, (s, f) in enumerate([(u"Volt","volt0"), (u"Minute", "minute0"), (u"Minuten", "minute1"), (u"Sekunde", "second0"), (u"Sekunden", "second1"), ]): - systemSounds.append((s, filename(f, PROMPT_SYSTEM_BASE + 110 + i))) + systemSounds.append((s, filename(f, PROMPT_SYSTEM_BASE + 114 + i))) for s, f, a in [(u"Inaktivitätsalarm", "inactiv", 486), (u"Senderspannung schwach", "lowbatt", 485), (u"Gaskanal nicht Null, bitte prüfen", "thralert", 481),