El CLI traduce de un idioma de origen a uno o varios idiomas de destino, ambos definidos en .lingo/config.json:
{
"sourceLocale": "en",
"targetLocales": ["de", "fr", "es", "ja"]
}Los archivos de origen se leen, pero nunca se sobrescriben. Cada idioma de destino tiene su propia salida, con el código de idioma sustituido en el patrón de archivo (content/en/app.json → content/de/app.json). Consulta Configuración.
Códigos de idioma#
Usa etiquetas estándar BCP 47. Funcionan tanto un código de idioma sin más (de) como una etiqueta de idioma y región (de-CH). El CLI no mantiene una lista cerrada: targetLocales acepta cualquier etiqueta y la pasa a tu motor. Qué idiomas se traducen realmente, y con qué nivel de calidad, depende de la cobertura del modelo del motor, no de una limitación del CLI.
Ejemplos habituales:
| Idioma | Código |
|---|---|
| Inglés | en (o en-US, en-GB) |
| Español | es (o es-ES, es-419, es-MX) |
| Francés | fr (o fr-FR, fr-CA) |
| Alemán | de (o de-CH, de-AT) |
| Portugués | pt-BR, pt-PT |
| Chino | zh-Hans, zh-Hant |
| Japonés | ja |
| Coreano | ko |
Variantes regionales#
Elige una región cuando el dialecto importe: el motor adapta la ortografía y el vocabulario al idioma correspondiente:
{
"sourceLocale": "en-US",
"targetLocales": ["en-GB", "es-ES", "es-419", "pt-BR", "pt-PT", "fr-CA"]
}en-US → en-GB convierte "color" en "colour"; es-ES → es-419 cambia "ordenador" por "computadora". La calidad de estas diferencias depende de la voz de marca y de las instrucciones del motor, no del CLI.
Idiomas de derecha a izquierda#
Los idiomas RTL (árabe ar, hebreo he, persa fa, urdu ur) se traducen como cualquier otro. La dirección del texto en tu aplicación es cosa del renderizador; el CLI solo genera las cadenas traducidas.
Añadir o quitar un idioma#
Solo tienes que editar targetLocales. Para rellenar un idioma recién añadido, ejecuta lingo push --backfill-missing; consulta Añadir un idioma. Para quitar uno, elimínalo y borra sus archivos con lingo purge --locale.
