4 pontos por lifthrasiir 2019-07-22 | 1 comentários | Compartilhar no WhatsApp

Ao lidar com a internacionalização de software, algo especialmente complicado é quando tudo funciona em quase todos os idiomas, mas falha apenas em alguns — talvez até em um só. Um exemplo clássico são os dois tipos de i que aparecem apenas no turco e no azerbaijano. No alfabeto latino, existem apenas o i minúsculo com ponto e o I maiúsculo sem ponto, mas nesses idiomas há dois pares distintos: as letras sem ponto ı/I e as letras com ponto i/İ. Um exemplo conhecido é que a primeira letra de "İstanbul" é o İ maiúsculo com ponto.

No Unicode, o i/I do turco e do azerbaijano não é codificado separadamente (afinal, são as mesmas letras latinas), então softwares que não consideram esses idiomas frequentemente apresentam problemas — e já houve até casos fatais por causa disso. [1] Para tratar isso corretamente, é preciso usar bibliotecas Unicode que levem em conta informações culturais (locale). Em linguagens e ambientes com suporte a locale, como Java ou C#, isso normalmente não é um grande problema; em outros casos, é necessário usar bibliotecas separadas, como o ICU.

[1] https://gizmodo.com/a-cellphones-missing-dot-kills-two-people-puts-thr…

1 comentários

 
iolothebard 2019-07-22

Turco... lembro que sofri por causa da largura de labels/botões porque as palavras tinham muitas letras...