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' })]
};
Note que, no arquivo .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

Comentários