Añadir idiomas
Lingo.dev CLI facilita la expansión de tu proyecto a nuevos idiomas mediante la adición de locales de destino a tu configuración i18n.json
y la ejecución de un solo comando.
Cuando añades nuevos idiomas, la CLI genera archivos de traducción completos para los nuevos locales mientras preserva todas las traducciones existentes y mantiene el mismo sistema de huellas digitales de contenido.
Añadir tu primer nuevo idioma
Para añadir un nuevo idioma, actualiza el array targets
en tu configuración i18n.json
:
Configuración original:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
Configuración actualizada con alemán:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
Al ejecutar npx lingo.dev@latest i18n
se crea el nuevo archivo de traducción en alemán:
locales/
en.json (fuente - sin cambios)
es.json (existente - sin cambios)
fr.json (existente - sin cambios)
de.json (nuevo - completamente traducido)
Cómo funciona la generación de nuevos idiomas
Lingo.dev CLI trata los nuevos idiomas de manera diferente a los existentes:
- Idiomas existentes — Solo se generan las traducciones faltantes
- Nuevos idiomas — Se crean archivos de traducción completos desde cero
Ejemplo con traducciones parciales existentes:
// locales/en.json (fuente)
{
"welcome": "Welcome",
"button.save": "Save",
"error.network": "Network error"
}
// locales/es.json (existente con traducciones faltantes)
{
"welcome": "Bienvenido"
}
Después de añadir alemán y ejecutar la CLI:
// locales/es.json (espacios rellenados)
{
"welcome": "Bienvenido",
"button.save": "Guardar",
"error.network": "Error de red"
}
// locales/de.json (archivo nuevo completo)
{
"welcome": "Willkommen",
"button.save": "Speichern",
"error.network": "Netzwerkfehler"
}
Añadir múltiples idiomas
Puedes añadir múltiples idiomas simultáneamente:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja", "zh"]
}
}
La CLI procesa todos los nuevos idiomas, creando archivos de traducción completos para cada nuevo locale.
Variantes regionales
Lingo.dev CLI admite variantes regionales de idiomas utilizando etiquetas de idioma BCP 47:
{
"locale": {
"source": "en-US",
"targets": ["en-GB", "es-ES", "es-MX", "fr-FR", "fr-CA"]
}
}
Esto genera archivos de traducción distintos para cada variante regional, teniendo en cuenta las diferencias en terminología, ortografía y contexto cultural.
Impacto en la estructura de archivos
La CLI crea nuevos archivos siguiendo tus patrones de bucket. Para diferentes formatos de archivo:
Buckets JSON:
locales/[locale].json → locales/de.json, locales/ja.json
Buckets Markdown:
content/[locale]/*.md → content/de/*.md, content/ja/*.md
Estructuras anidadas:
app/[locale]/messages.json → app/de/messages.json, app/ja/messages.json
Adición de idiomas específicos
Puedes generar traducciones para nuevos idiomas específicos utilizando el flag --locale
:
npx lingo.dev@latest i18n --locale de
Esto genera solo traducciones en alemán, dejando otros nuevos idiomas para un procesamiento posterior.
Eliminación de idiomas
Para eliminar un idioma, simplemente elimínalo del array targets
. La CLI no eliminará los archivos existentes, pero dejará de procesar ese locale:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
}
}
Puedes eliminar manualmente los archivos de traducción correspondientes si es necesario.