Lingo.dev + .json-dictionary
Lingo.dev CLI traduce archivos JSON donde cada cadena traducible contiene múltiples claves de idioma en un solo objeto. A diferencia del formato JSON estándar que separa los idiomas en diferentes archivos, json-dictionary almacena todas las traducciones juntas con claves específicas de idioma como {"en": "Hello", "es": "Hola"}
.
Configuración rápida
Crea un archivo de configuración i18n.json
:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json-dictionary": {
"include": ["content/pages.json"]
}
}
}
Estructura de archivos
El formato json-dictionary almacena traducciones como objetos anidados con claves de idioma:
{
"title": {
"en": "Welcome to our site",
"es": "Bienvenido a nuestro sitio"
},
"navigation": {
"home": {
"en": "Home",
"es": "Inicio"
},
"about": {
"en": "About Us",
"es": "Acerca de nosotros"
}
},
"staticValue": "This won't be translated",
"pages": [
{
"title": {
"en": "Page One",
"es": "Página Uno"
}
}
]
}
Traducir todo
npx lingo.dev@latest i18n
El CLI automáticamente:
- Extrae solo objetos traducibles (aquellos con claves de idioma)
- Preserva los valores no traducibles sin cambios
- Añade claves de idioma de destino junto a las existentes
- Mantiene el orden de las claves del idioma de origen (origen primero, otros alfabéticamente)
Comportamiento de las claves
Detección de traducibles: Solo los objetos que contienen la clave de tu idioma de origen se consideran traducibles. Las cadenas simples, números, booleanos y objetos sin claves de idioma permanecen sin cambios.
Orden de claves: Al añadir traducciones, el idioma de origen aparece primero, seguido por otros idiomas en orden alfabético:
{
"message": {
"en": "Original text",
"de": "Deutscher Text",
"es": "Texto en español",
"fr": "Texte français"
}
}
Soporte anidado: Funciona con estructuras profundamente anidadas y arrays que contienen objetos traducibles.
Configuración avanzada
Excluir archivos
"json-dictionary": {
"include": ["content/*.json"],
"exclude": ["content/config.json"]
}