diff --git a/mycroft/res/text/de-de/and.word b/mycroft/res/text/de-de/and.word new file mode 100644 index 0000000000..ee61ac9949 --- /dev/null +++ b/mycroft/res/text/de-de/and.word @@ -0,0 +1 @@ +und diff --git a/mycroft/res/text/de-de/date_time.json b/mycroft/res/text/de-de/date_time.json new file mode 100644 index 0000000000..07f94666f0 --- /dev/null +++ b/mycroft/res/text/de-de/date_time.json @@ -0,0 +1,136 @@ +{ + "decade_format": { + "1": {"match": "^\\d$", "format": "{x}"}, + "2": {"match": "^1\\d$", "format": "{xx}"}, + "3": {"match": "^\\d0$", "format": "{x0}"}, + "4": {"match": "^[2-9]\\d$", "format": "{x} und {x0}"}, + "default": "{number}" + }, + "hundreds_format": { + "1": {"match": "^1\\d{2}$", "format": "hundert"}, + "2": {"match": "^\\d{3}$", "format": "{x_in_x00} hundert"}, + "default": "{number}" + }, + "thousand_format": { + "1": {"match": "^10\\d\\d$", "format": "tausend"}, + "2": {"match": "^\\d0\\d{2}$", "format": "{x_in_x000} tausend"}, + "3": {"match": "^1\\d00$", "format": "{xx_in_xx00} hundert"}, + "4": {"match": "^\\d{2}00$", "format": "{x_in_x000} tausend {x_in_x00} hundert"}, + "5": {"match": "^\\d0\\d\\d$", "format": "{x_in_x000} tausend"}, + "6": {"match": "^1\\d{3}$", "format": "{xx_in_xx00}"}, + "7": {"match": "^\\d{4}$", "format": "{x_in_x000} tausend {x_in_x00} hundert"}, + "default": "{number}" + }, + "year_format": { + "1": {"match": "^1$", "format": "eins {bc}"}, + "2": {"match": "^\\d{1}?$", "format": "{formatted_decade} {bc}"}, + "3": {"match": "^\\d{2}?$", "format": "{formatted_decade} {bc}"}, + "4": {"match": "^\\d00$", "format": "{formatted_hundreds} {bc}"}, + "5": {"match": "^\\d{3}$", "format": "{formatted_hundreds} {formatted_decade} {bc}"}, + "6": {"match": "^\\d{2}00$", "format": "{formatted_thousand} {bc}"}, + "7": {"match": "^\\d00\\d$", "format": "{formatted_thousand} {formatted_decade} {bc}"}, + "8": {"match": "^\\d{2}0\\d$", "format": "{formatted_thousand} hundert {formatted_decade} {bc}"}, + "9": {"match": "^1[2-9]\\d{2}$", "format": "{formatted_thousand} hundert {formatted_decade} {bc}"}, + "10": {"match": "^1\\d{3}$", "format": "{formatted_thousand} {formatted_decade} {bc}"}, + "11": {"match": "^\\d{4}$", "format": "{formatted_thousand} {formatted_decade} {bc}"}, + "default": "{year} {bc}", + "bc": "v.d.Z." + }, + "date_format": { + "date_full": "{weekday}, {day} {month}, {formatted_year}", + "date_full_no_year": "{weekday}, {day} {month}", + "date_full_no_year_month": "{weekday}, {day}", + "today": "heute", + "tomorrow": "morgen", + "yesterday": "gestern" + }, + "date_time_format": { + "date_time": "{formatted_date} um {formatted_time}" + }, + "weekday": { + "0": "Montag", + "1": "Dienstag", + "2": "Mittwoch", + "3": "Donnerstag", + "4": "Freitag", + "5": "Samstag", + "6": "Sonntag" + }, + "date": { + "1": "erster", + "2": "zweiter", + "3": "dritter", + "4": "vierter", + "5": "fünfter", + "6": "sechster", + "7": "siebter", + "8": "achter", + "9": "neunter", + "10": "zehnter", + "11": "elfter", + "12": "zwölfter", + "13": "dreizehnter", + "14": "vierzehnter", + "15": "fünfzehnter", + "16": "sechzehnter", + "17": "siebzehnter", + "18": "achzehnter", + "19": "neunzehnter", + "20": "zwanzigster", + "21": "einundzwanzigster", + "22": "zweiundzwanzigster", + "23": "dreiundzwanzigster", + "24": "vierundzwanzigster", + "25": "fünfundzwanzigster", + "26": "sechsundzwanzigster", + "27": "siebenundzwanzigster", + "28": "achtundzwanzigster", + "29": "neunundzwnzigster", + "30": "dreißigster", + "31": "einunddreißigster" + }, + "month": { + "1": "Januar", + "2": "Februar", + "3": "März", + "4": "Aprill", + "5": "May", + "6": "Juni", + "7": "Juli", + "8": "August", + "9": "September", + "10": "Oktober", + "11": "November", + "12": "Dezember" + }, + "number": { + "0": "null", + "1": "ein", + "2": "zwei", + "3": "drei", + "4": "vier", + "5": "fünf", + "6": "sechs", + "7": "sieben", + "8": "acht", + "9": "neun", + "10": "zehn", + "11": "elf", + "12": "zwölf", + "13": "dreizehn", + "14": "vierzehn", + "15": "fünfzehn", + "16": "sechzehn", + "17": "siebzehn", + "18": "achzehn", + "19": "neunzehn", + "20": "zwanzig", + "30": "dreißig", + "40": "vierzig", + "50": "fünfzig", + "60": "sechzig", + "70": "siebzig", + "80": "achzig", + "90": "neunzig" + } +} diff --git a/mycroft/res/text/de-de/date_time_test.json b/mycroft/res/text/de-de/date_time_test.json new file mode 100644 index 0000000000..5fc1cb0df0 --- /dev/null +++ b/mycroft/res/text/de-de/date_time_test.json @@ -0,0 +1,43 @@ +{ + "test_nice_year": { + "1": {"datetime_param": "1, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "eins v.d.Z." }, + "2": {"datetime_param": "10, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "zehn v.d.Z." }, + "3": {"datetime_param": "92, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "zwei und neunzig v.d.Z." }, + "4": {"datetime_param": "803, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "acht hundert drei" }, + "5": {"datetime_param": "811, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "acht hundert elf" }, + "6": {"datetime_param": "454, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "vier hundert vier und fünfzig" }, + "7": {"datetime_param": "1005, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "tausend fünf" }, + "8": {"datetime_param": "1012, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "tausend zwölf" }, + "9": {"datetime_param": "1046, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "tausend sechs und vierzig" }, + "10": {"datetime_param": "1807, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "achzehn hundert sieben" }, + "11": {"datetime_param": "1717, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "siebzehn hundert siebzehn" }, + "12": {"datetime_param": "1988, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "neunzehn hundert acht und achzig"}, + "13": {"datetime_param": "2009, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "zwei tausend neun"}, + "14": {"datetime_param": "2018, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "zwei tausend achzehn"}, + "15": {"datetime_param": "2021, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "zwei tausend ein und zwanzig"}, + "16": {"datetime_param": "2030, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "zwei tausend dreißig"}, + "17": {"datetime_param": "2100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "zwei tausend ein hundert" }, + "18": {"datetime_param": "1000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "tausend" }, + "19": {"datetime_param": "2000, 1, 31, 13, 22, 3", "bc": "None", "assertEqual": "zwei tausend" }, + "20": {"datetime_param": "3120, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "drei tausend ein hundert zwanzig v.d.Z." }, + "21": {"datetime_param": "3241, 1, 31, 13, 22, 3", "bc": "True", "assertEqual": "drei tausend zwei hundert ein und vierzig v.d.Z." }, + "22": {"datetime_param": "5200, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "fünf tausend zwei hundert" }, + "23": {"datetime_param": "1100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "elf hundert" }, + "24": {"datetime_param": "2100, 1, 31, 13, 22, 3", "bc": "False", "assertEqual": "zwei tausend ein hundert" } + }, + "test_nice_date": { + "1": {"datetime_param": "2017, 1, 31, 0, 2, 3", "now": "None", "assertEqual": "Dienstag, einunddreißigster Januar, zwei tausend siebzehn"}, + "2": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2017, 1, 1, 0, 2, 3", "assertEqual": "Sonntag, vierter Februar, zwei tausend achzehn"}, + "3": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 1, 1, 0, 2, 3", "assertEqual": "Sonntag, vierter Februar"}, + "4": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 1, 0, 2, 3", "assertEqual": "Sonntag, vierter"}, + "5": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 3, 0, 2, 3", "assertEqual": "morgen"}, + "6": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 4, 0, 2, 3", "assertEqual": "heute"}, + "7": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 5, 0, 2, 3", "assertEqual": "gestern"}, + "8": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2018, 2, 6, 0, 2, 3", "assertEqual": "Sonntag, vierter Februar"}, + "9": {"datetime_param": "2018, 2, 4, 0, 2, 3", "now": "2019, 2, 6, 0, 2, 3", "assertEqual": "Sonntag, vierter Februar, zwei tausend achzehn"} + }, + "test_nice_date_time": { + "1": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "False", "use_ampm": "True", "assertEqual": "Dienstag, einunddreißigster Januar, zwei tausend siebzehn um ein Uhr zweiundzwanzig nachmittags"}, + "2": {"datetime_param": "2017, 1, 31, 13, 22, 3", "now": "None", "use_24hour": "True", "use_ampm": "False", "assertEqual": "Dienstag, einunddreißigster Januar, zwei tausend siebzehn um dreizehn Uhr zweiundzwanzig"} + } +} diff --git a/mycroft/res/text/de-de/day.word b/mycroft/res/text/de-de/day.word new file mode 100644 index 0000000000..1aa7c259b4 --- /dev/null +++ b/mycroft/res/text/de-de/day.word @@ -0,0 +1 @@ +Tag diff --git a/mycroft/res/text/de-de/days.word b/mycroft/res/text/de-de/days.word new file mode 100644 index 0000000000..4c2fd37c1b --- /dev/null +++ b/mycroft/res/text/de-de/days.word @@ -0,0 +1 @@ +Tage diff --git a/mycroft/res/text/de-de/hour.word b/mycroft/res/text/de-de/hour.word new file mode 100644 index 0000000000..7e69c57091 --- /dev/null +++ b/mycroft/res/text/de-de/hour.word @@ -0,0 +1 @@ +Stunde diff --git a/mycroft/res/text/de-de/hours.word b/mycroft/res/text/de-de/hours.word new file mode 100644 index 0000000000..3c728ba83c --- /dev/null +++ b/mycroft/res/text/de-de/hours.word @@ -0,0 +1 @@ +Stunden diff --git a/mycroft/res/text/de-de/minute.word b/mycroft/res/text/de-de/minute.word new file mode 100644 index 0000000000..de476669d9 --- /dev/null +++ b/mycroft/res/text/de-de/minute.word @@ -0,0 +1 @@ +Minute diff --git a/mycroft/res/text/de-de/minutes.word b/mycroft/res/text/de-de/minutes.word new file mode 100644 index 0000000000..bdc262ecf3 --- /dev/null +++ b/mycroft/res/text/de-de/minutes.word @@ -0,0 +1 @@ +Minuten diff --git a/mycroft/res/text/de-de/or.word b/mycroft/res/text/de-de/or.word new file mode 100644 index 0000000000..2fbe53211b --- /dev/null +++ b/mycroft/res/text/de-de/or.word @@ -0,0 +1 @@ +oder diff --git a/mycroft/res/text/de-de/second.word b/mycroft/res/text/de-de/second.word new file mode 100644 index 0000000000..e658c2198d --- /dev/null +++ b/mycroft/res/text/de-de/second.word @@ -0,0 +1 @@ +Sekunde diff --git a/mycroft/res/text/de-de/seconds.word b/mycroft/res/text/de-de/seconds.word new file mode 100644 index 0000000000..2c54f29cb9 --- /dev/null +++ b/mycroft/res/text/de-de/seconds.word @@ -0,0 +1 @@ +Sekunden diff --git a/mycroft/res/text/en-us/date_time.json b/mycroft/res/text/en-us/date_time.json index 8689f38907..c9ca605e7f 100644 --- a/mycroft/res/text/en-us/date_time.json +++ b/mycroft/res/text/en-us/date_time.json @@ -126,4 +126,4 @@ "80": "eighty", "90": "ninety" } -} \ No newline at end of file +} diff --git a/test/unittests/util/test_format_de.py b/test/unittests/util/test_format_de.py index be1a3726fa..63656381de 100644 --- a/test/unittests/util/test_format_de.py +++ b/test/unittests/util/test_format_de.py @@ -22,6 +22,8 @@ from mycroft.util.format import nice_time from mycroft.util.format import pronounce_number from mycroft.util.lang.format_de import nice_response_de from mycroft.util.lang.format_de import pronounce_ordinal_de +from mycroft.util.format import join_list + # fractions are not capitalized for now NUMBERS_FIXTURE_DE = { @@ -370,5 +372,15 @@ class TestNiceDateFormat_de(unittest.TestCase): u"fünf Uhr dreißig morgens") +class TestJoinList_de(unittest.TestCase): + def test_join_list_de(self): + self.assertEqual(join_list(['Hallo', 'Auf wieder Sehen'], 'and', + lang='de-de'), + 'Hallo und Auf wieder Sehen') + + self.assertEqual(join_list(['A', 'B', 'C'], 'or', lang='de-de'), + 'A, B oder C') + + if __name__ == "__main__": unittest.main()