Local e idioma da interface do usuário

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:

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: ١٠٬٠٠٠٫٠٠: image )

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.
3 curtidas

Não há planos para dividir o sistema de localidade atual em localidade e idioma da interface do usuário no futuro próximo. No entanto, concordo que seria algo positivo a fazer.

De qualquer forma, acredito que o sistema atual já pode ser usado para criar localidades específicas por região. Temos client.en_US.yml e server.en_US.yml, que sobrescrevem formatos de data/hora, números, etc.

Tenho certeza de que algo semelhante poderia ser feito para o árabe. Até mesmo seria possível fazer isso com um plugin.

2 curtidas