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.