Eu tenho alguns recursos estáticos (imagens e arquivos HTML) que serão localizados. Um software que eu já vi fazer isso é o Apache, que anexa o código do idioma ao nome; por exemplo, test_en_US.html
ou test_de_CH.html
. Estou me perguntando se esse esquema de nomenclatura é considerado padrão ou se todo projeto o faz de maneira diferente.
Respostas:
8 para resposta № 1Embora não haja um padrão documentado para nomear arquivos localizados, eu recomendo usar o formato nome do arquivo [_language [_country]] Onde
- linguagem é a ISO-639 Código de idioma de 2 letras
- território é o ISO-3166 Código do país com 2 letras
Por exemplo:
- myFile.txt (arquivo não localizado)
- myFile_en.txt (localizado para o inglês global)
- myFile_en_US.txt (localizado em inglês dos EUA)
- myFile_en_GB.txt (localizado em inglês do Reino Unido)
Por quê? Este é o formato mais típico usado por sistemas operacionais, ferramentas de globalização (como Trados e WorldServer) e linguagens de programação. Portanto, a menos que você tenha uma preferência especial por um formato diferente, não vejo razão para se desviar do que a maioria das outras pessoas está fazendo. Isso pode poupar algumas dores de cabeça de integração no caminho.
1 para resposta № 2
Embora não pareça haver convenções padrão quanto a Onde no nome do arquivo para colocá-los, o internacionalos códigos de idioma (por exemplo, "en") e região (por exemplo, "en-US") são muito comuns e simples. Variações que eu já vi, excluindo "enUS" vs. "en_US" vs. "en-US":
- foo.enUS.ext
- foo.ext_enUS
- enUS.foo.ext
- foo / pt.ext
- enUS / foo.ext
- … Ad nauseum
Pessoalmente, sou a favor da primeira e da última variantes. O primeiro para agrupar arquivos por nome / recurso (bom para situações em que um número limitado de arquivos precisa ser localizado) e o último para agrupar arquivos por local (melhor para situações com um grande número de arquivos localizados).
0 para resposta № 3
Você sempre deve usar o padrão "de fato", que é a maneira unix / posix com gettext
. E você deve usar gettext
para fazer sua localização!
Portanto, uma e única maneira correta é usar a nomeação de localização como esta:
en
en_US
en_UK
Algumas aplicações e, especialmente, desenvolvedores Java, às vezes usam o en-US
(hifenizado em vez de sublinhado) e está TODO ERRADO !!!
O padrão gettext é este e somente isso:
locale
|_en_US
|_LC_MESSAGES
|_appname.mo
Onde:
locale
- O nome do diretório pode variar, mas é altamente recomendável permanecer com o nome "locale"
en_US
- Qualquer localidade padrão como * es_ES *, * es_PT *, ...
LC_MESSAGES
- obrigatório e não pode ser alterado!
appname.mo - arquivo compilado appname.po msgfmt (appname é o que você quiser)