Fortsetzung der Diskussion aus Business Week Day:
Wie ich im verlinkten Beitrag bereits erwähnt habe, ist die Locale nicht identisch mit der UI-Sprache.
Als Beispiel nehme ich hier KDE (Linux und Qt):
Wie man sieht, kann man im ersten Screenshot die UI-Sprache auswählen. Diese definiert nun einmal die Sprache der Benutzeroberfläche und alles, was man auf dem Bildschirm sieht – mit Ausnahme dessen, was im zweiten Screenshot gezeigt wird.
Der zweite Screenshot ermöglicht es, die Locale des Benutzers festzulegen und Zahlen, Zeit, Währung, Einheiten und Sortierung zu überschreiben.
Das ist wichtig, da viele das System in ihrer bevorzugten Sprache nutzen, aber in einem anderen Land leben, in dem sie andere Präferenzen für die Locale haben.
Ich nehme Beispiele aus meiner Region, dem arabischen Raum:
- Alle Länder haben Arabisch als Hauptsprache.
- Die Länder des Mashriq bevorzugen die Verwendung der östlichen arabischen Ziffern (٠١٢٣٤٥٦٧٨٩), während die Länder des Maghreb die arabischen Ziffern (0123456789) bevorzugen.
- Ägypten, Sudan und die Golfstaaten bevorzugen die lateinischen Monatsnamen, transliteriert ins Arabische: Arabic names of Gregorian months - Wikipedia, während der Levante und Mesopotamien die assyrischen Monatsnamen bevorzugen: Arabic names of Gregorian months - Wikipedia, und die Länder des Maghreb bevorzugen die Transliteration der französischen Monatsnamen: Arabic names of Gregorian months - Wikipedia.
Daher sind Datumsangaben von diesen Unterschieden betroffen:
- Alle Länder schreiben von rechts nach links.
- Mashriq-Länder: ١٢ يناير ٢٠٢٠ = 12. Januar 2020 (Von rechts nach links gelesen)
- Maghreb-Länder: 12 جانفي 2020 = 12. Januar 2020 (Von rechts nach links gelesen)
- Einfach ausgedrückt: Egal ob östliche oder westliche/arabische Ziffern verwendet werden, es wird von rechts nach links geschrieben, was die Entscheidung für die Zahlen noch schwieriger macht, geschweige denn für das Format.
Sogar der Tausender-Trennzeichen ist unterschiedlich:
(Ost-arabische Ziffern haben auch ein anderes Trennzeichen: ١٠٬٠٠٠٫٠٠:
Wie sich das auf Discourse auswirkt:
- Datums- und Zeitformate, Zahlen, Beginn der Geschäftswoche.
Was nicht betroffen ist:
- Relative Datumsangaben.
Ideale Lösungen:
- Unicode-Formate extrahieren und einbetten und dem Benutzer erlauben, jede beliebige Locale auszuwählen. Dies erfordert Nachdenken, da dies mit Moment.JS in Konflikt geraten könnte.
- Übersetzern alle notwendigen Mittel und Wege bieten, um auszuwählen, welches Format wo in der Software angezeigt werden soll.


