Internacionalização e tradução

O Rung tem suporte a múltiplos idiomas nas extensões. 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:

locales/pt_BR.json

{
    "Hello world!": "Olá, mundo!"
}

locales/zh_CN.json

{
    "Hello world!": "你好世界!"
}

index.js

function main(context) {
    return {
        alerts: [_("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:

return {
    alerts: [_("good morning, {{name}}!", { name: 'Trixie Mattel' })]
};

Note que, no arquivo .json, os nomes dentro das chavetas devem ser preservados