Internacionalização e tradução¶
O Rung tem suporte a múltiplos idiomas nos apps. Os locales do Rung se
baseiam na combinação por _
dos formatos ISO 639 com o código do país,
especificado na ISO 3166. Exemplos são en_US
e pt_BR
.
Há uma função global chamada _
, que recebe um texto a ser
internacionalizado, preferencialmente em inglês, e opcionalmente um conjunto
de pares a interpolar. O Rung buscará por arquivos .json
com o nome do
locale dentro da pasta locales/
. Exemplo:
Exemplos¶
- locales/pt_BR.json
1 2 3 | { "Hello world!": "Olá, mundo!" } |
- locales/zh_CN.json
1 2 3 | { "Hello world!": "你好世界!" } |
- index.js
1 2 3 4 5 | function main(context) { return { cards: [_("hello world!")] }; } |
Caso o locale não for encontrado, a chave é utilizada, no caso, a versão em inglês no exemplo.
Interpolação de strings¶
A função _
aceita um segundo parâmetro para interpolar, tornando possível
fazer, por exemplo:
1 2 3 | return { cards: [_("good morning, {{name}}!", { name: 'Trixie Mattel' })] }; |
.json
, os nomes dentro das chavetas devem ser
preservados
Testando¶
Se desejar testar seu app com outro locale, o Rung CLI irá considerar a
variável de ambiente RUNG_LOCALE
, que poderá ser definida para apenas
o contexto de execução do app:
1 | RUNG_LOCALE=zh_CN rung run |