Um pouco sobre internacionalização

Um pouco sobre internacionalização



Internacionalização também é conhecida por i18n devido as dezoito letras que estão entre a primeira e a última da palavra inglesa internationalization, é uma técnica utilizada para desenvolver softwares de maneira que o mesmo possa ser facilmente traduzido a outras línguas. Mas não só isso, um software internacionalizado deve ser adaptável o suficiente para se adequar a características regionais, legais, culturais e técnicas, tais como fuso horário, formato de números, datas, sistemas métricos e moedas. Este processo pode ser automático, ou manual.


Como há diferenças entre as diversas línguas “irmãs” como é o caso do português de Portugal e o do Brasil, é recomendável especificar estas diferenças. Para isto utiliza-se o l10n (da palavra inglesa localization) em conjunto do i18n, evidentemente os dois são complementares. O i10n adiciona características especificas de uma região.

Analogamente, quando criamos um objeto Locale desta forma:

Locale ptBR = new Locale(“pt”, “BR”);


Estamos dizendo que nossa língua é o português, mas que esta língua é especifica para o local Brasil. Mas, claro, se quisermos definir apenas a língua (i18n) podemos utilizar o construtor que recebe apenas a língua, como a seguir:

Locale pt = new Locale(“pt”);

Um software internacionalizado normalmente vem com um ou vários arquivos texto. Estes devem seguir o seguinte padrão:

MyResources.properties
MyResources_fr.properties
MyResources_fr_CH.properties
MyResources_pt_BR.properties
MyResources_en.properties

Para o arquivo de mensagens da listagem 6 ser reconhecida pela classe ResouceBundle, este deve seguir este mesmo padrão (nome + _ + língua + _ + pais + . + properties), ficando assim:

messages_pt_BR.properties
messages_enproperties

Caso não seja definida um Locale para o ResourceBoundle, este irá utilizar o que ele detectar que normalmente é o disponibilizado pelo Sistema Operacional.

Consulte a API de ResourceBundle para maiores detalhes.

Nenhum comentário: