Continuando a discussão de Business Week Day:
Como mencionei no post vinculado, Locale não é exatamente o mesmo que idioma da interface.
Vou usar o KDE (Linux e Qt) como exemplo aqui:
Como vemos, na primeira captura de tela é possível selecionar o idioma da interface. Isso, bem, define o idioma da interface e tudo o que você vê na tela, exceto o que está na segunda captura.
A segunda captura permite definir o locale do usuário e substituir Números, Hora, Moeda, Unidades e Ordenação.
Isso é importante, pois muitos usam o sistema em seu idioma preferido, mas vivem em um país diferente onde têm preferências diferentes para o locale.
Vou usar exemplos da minha região, a região árabe:
- Todos os países têm o árabe como idioma principal.
- Os países do Mashriq preferem usar numerais árabes orientais (٠١٢٣٤٥٦٧٨٩), enquanto os países do Magreb preferem usar numerais árabes (0123456789).
- Egito, Sudão e países do Golfo preferem usar os nomes latinos dos meses, transliterados para o árabe: Arabic names of Gregorian months - Wikipedia, enquanto o Levante e a Mesopotâmia preferem usar os nomes assírios dos meses: Arabic names of Gregorian months - Wikipedia, e os países do Magreb preferem usar a transliteração dos nomes franceses dos meses: Arabic names of Gregorian months - Wikipedia.
Portanto, as datas são afetadas por essas diferenças:
- Todos os países escrevem da direita para a esquerda.
- Países do Mashriq: ١٢ يناير ٢٠٢٠ = 12 de janeiro de 2020 (Lido da direita para a esquerda)
- Países do Magreb: 12 جانفي 2020 = 12 de janeiro de 2020 (Lido da direita para a esquerda)
- Simplificando: fossem numerais orientais ou numerais árabes/ocidentais, a escrita é da direita para a esquerda, o que torna ainda mais difícil decidir sobre os números, quanto mais sobre o formato.
Até mesmo o separador de milhares é diferente:
(Numerais árabes orientais também têm outro separador: ١٠٬٠٠٠٫٠٠:
Como isso afeta o Discourse:
- Formatos de data e hora, números e início da semana comercial.
O que não é afetado:
- Datas relativas.
Soluções ideais:
- Extrair e incorporar formatos Unicode e permitir que o usuário selecione qualquer locale que desejar. Isso requer reflexão, pois pode entrar em conflito com o Moment.JS.
- Fornecer todos os meios e formas para que os tradutores selecionem qual formato mostrar onde no software.


