Продолжение обсуждения из Business Week Day:
Как я уже упоминал в связанном посте, локаль не тождественна языку интерфейса.
В качестве примера возьмём KDE (Linux и Qt):
Как видно на первом скриншоте, можно выбрать язык интерфейса. Это определяет язык интерфейса и всего, что вы видите на экране, за исключением того, что показано на втором скриншоте.
Второй скриншот позволяет задать локаль пользователя и переопределить форматы чисел, времени, валюты, единиц измерения и сортировки.
Это важно, так как многие используют систему на предпочитаемом ими языке, но живут в другой стране, где у них иные предпочтения в настройках локали.
Приведу примеры из моего региона — арабского мира:
- Во всех странах основным языком является арабский.
- Страны Магриба предпочитают использовать восточноарабские цифры (٠١٢٣٤٥٦٧٨٩), тогда как страны Магриба предпочитают использовать арабские цифры (0123456789).
- Египет, Судан и страны Персидского залива предпочитают использовать латинские названия месяцев, транслитерированные на арабский: Arabic names of Gregorian months - Wikipedia, в то время как Левант и Месопотамия предпочитают использовать ассирийские названия месяцев: Arabic names of Gregorian months - Wikipedia, а страны Магриба — транслитерацию французских названий месяцев: Arabic names of Gregorian months - Wikipedia.
Следовательно, даты зависят от этих различий:
- Во всех странах текст пишется справа налево.
- Страны Магриба: ١٢ يناير ٢٠٢٠ = 12 января 2020 г. (чтение справа налево)
- Страны Магриба: 12 جانفي 2020 = 12 января 2020 г. (чтение справа налево)
- Проще говоря: используются ли восточноарабские или западные/арабские цифры, текст всё равно пишется справа налево, что ещё больше усложняет выбор цифр, не говоря уже о формате.
Даже разделитель тысяч отличается:
(Восточноарабские цифры также имеют другой разделитель: ١٠٬٠٠٠٫٠٠:
Как это влияет на Discourse:
- Форматы даты и времени, чисел, начало рабочей недели.
Что не затрагивается:
- Относительные даты.
Идеальные решения:
- Извлечь и внедрить форматы Unicode, позволяя пользователю выбирать любую понравившуюся локаль. Это требует обдумывания, так как может вступить в конфликт с Moment.JS.
- Предоставить переводчикам все необходимые средства и возможности для выбора, какой формат где отображать в программном обеспечении.


