Lingo.dev + .jsonc (JSON con comentarios)
Lingo.dev CLI traduce archivos JSONC (JSON con Comentarios), compatible con todas las características estándar de JSON además de comentarios y comas finales. El CLI extrae comentarios como pistas de traducción, preserva el formato exacto, maneja estructuras anidadas de manera inteligente y procesa solo el contenido modificado para mayor eficiencia de costos.
Configuración rápida
Crea un archivo de configuración i18n.json
:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"jsonc": {
"include": ["locales/[locale].jsonc"]
}
}
}
Recordatorio: [locale]
es un marcador de posición que debe permanecer literalmente en la configuración, ya que se reemplaza con el locale real durante la ejecución del CLI.
Traducir todo
npx lingo.dev@latest i18n
Procesa automáticamente estructuras anidadas, extrae comentarios como pistas de traducción y actualiza solo el contenido modificado.
Pistas de traducción basadas en comentarios
La ventaja clave de JSONC es usar comentarios para proporcionar contexto de traducción:
{
// Este comentario proporciona contexto para el saludo
"greeting": "Hello, world!",
"button": "Click me" /* Esto explica el propósito del botón */,
/*
* Comentario multilínea para contexto complejo
* explicando matices culturales
*/
"welcome": "Welcome to our app"
}
Los comentarios se extraen automáticamente como pistas para mejorar la calidad de la traducción y proporcionar contexto a los traductores de IA.
Preservación inteligente de estructura
Mantiene jerarquías complejas y admite comas finales:
{
"nav": {
"home": "Home", // Elemento de navegación
"about": {
"team": "Our Team" // Navegación anidada
},
},
"items": {
"one": "{{count}} item",
"other": "{{count}} items", // Soporte de pluralización
},
}
Configuración avanzada
Excluir archivos
"jsonc": {
"include": ["locales/[locale]/*.jsonc"],
"exclude": ["locales/[locale]/config.jsonc"]
}
Bloquear claves técnicas
"jsonc": {
"lockedKeys": ["app/version", "settings/apiKey"]
}
Utiliza barra diagonal (/
) para rutas de claves anidadas o asterisco (*
) para hacer coincidir múltiples rutas de claves.