O CLI traduz de um idioma de origem para um ou mais idiomas de destino, ambos definidos em .lingo/config.json:
{
"sourceLocale": "en",
"targetLocales": ["de", "fr", "es", "ja"]
}Os arquivos de origem são lidos, nunca sobrescritos. Cada idioma de destino recebe sua própria saída, com o código do idioma substituído no padrão de arquivo (content/en/app.json → content/de/app.json). Veja Configuração.
Códigos de idioma#
Use tags padrão BCP 47. Tanto um código de idioma simples (de) quanto uma tag de idioma-região (de-CH) funcionam. O CLI não mantém uma lista fixa — targetLocales aceita qualquer tag e a repassa ao seu engine. Quais idiomas de fato são traduzidos, e com que qualidade, dependem da cobertura do modelo do engine, não de uma limitação do CLI.
Exemplos comuns:
| Idioma | Código |
|---|---|
| Inglês | en (ou en-US, en-GB) |
| Espanhol | es (ou es-ES, es-419, es-MX) |
| Francês | fr (ou fr-FR, fr-CA) |
| Alemão | de (ou de-CH, de-AT) |
| Português | pt-BR, pt-PT |
| Chinês | zh-Hans, zh-Hant |
| Japonês | ja |
| Coreano | ko |
Variantes regionais#
Escolha uma região quando a variante importar — o engine produz a grafia e o vocabulário adequados ao idioma:
{
"sourceLocale": "en-US",
"targetLocales": ["en-GB", "es-ES", "es-419", "pt-BR", "pt-PT", "fr-CA"]
}en-US → en-GB transforma "color" em "colour"; es-ES → es-419 troca "ordenador" por "computadora". A qualidade dessas distinções vem da voz da marca e das instruções do engine, não do CLI.
Idiomas da direita para a esquerda#
Idiomas RTL (árabe ar, hebraico he, persa fa, urdu ur) são traduzidos como qualquer outro. A direção do texto no seu app é responsabilidade do renderizador; o CLI apenas gera as strings traduzidas.
Adicionar ou remover um idioma#
Editar targetLocales é tudo o que você precisa fazer. Para preencher um idioma recém-adicionado, execute lingo push --backfill-missing — veja Adicionando um idioma. Para remover um, exclua-o e apague seus arquivos com lingo purge --locale.
