Lingo.dev + .json5 (JSON5)

Lingo.dev CLI traduce archivos de localización JSON5 con soporte completo para la sintaxis JSON5, incluyendo comentarios, claves sin comillas, comas finales y comillas simples. El CLI preserva el formato JSON5 y la sintaxis amigable para desarrolladores mientras mantiene la compatibilidad con frameworks y procesa únicamente 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": {
    "json5": {
      "include": ["locales/[locale].json5"]
    }
  }
}

Recordatorio: [locale] es un marcador de posición que debe permanecer literalmente en la configuración, ya que se reemplaza con el idioma real durante la ejecución del CLI.

Traducir todo

npx lingo.dev@latest i18n

Procesa automáticamente las características de sintaxis JSON5, preserva comentarios y formato, y actualiza solo el contenido modificado.

Soporte para sintaxis JSON5

JSON5 extiende JSON con una sintaxis amigable para desarrolladores:

{
  // Los comentarios son compatibles
  title: "Hello, world!", // Los comentarios de línea funcionan
  description: 'Se permiten comillas simples',
  unquoted: 'las claves funcionan sin comillas',
  trailing: 'la coma final está permitida',
  
  /* Los comentarios de bloque
     también son compatibles */
  multiline: "Esta es una \
cadena larga que \
abarca múltiples líneas",
  
  // Números hexadecimales
  hex_value: 0xDEADBEEF,
  positive: +123,
  
  nested: {
    key: 'value',
  }, // Se permite coma final
}

Preservación inteligente de estructura

Mantiene la sintaxis JSON5 y las convenciones de frameworks:

{
  nav: {
    home: "Inicio",
    about: {
      team: "Nuestro equipo"
    }
  },
  items: {
    one: "{{count}} elemento",
    other: "{{count}} elementos"
  },
  // La configuración permanece intacta
  version: 0x010203
}

Configuración avanzada

Excluir archivos

"json5": {
  "include": ["locales/[locale]/*.json5"],
  "exclude": ["locales/[locale]/config.json5"]
}

Bloquear claves técnicas

"json5": {
  "lockedKeys": ["app/version", "settings/apiKey"]
}

Utiliza barra diagonal (/) para rutas de claves anidadas o asterisco (*) para hacer coincidir múltiples rutas de claves.

JSON5 vs JSON

JSON5 proporciona una experiencia de desarrollador mejorada mientras mantiene total compatibilidad con JSON:

  • Comentarios: Documenta tus traducciones con comentarios en línea y en bloque
  • Claves sin comillas: Sintaxis más limpia sin comillas alrededor de los nombres de propiedades
  • Comas finales: Facilita la edición y las diferencias en el control de versiones
  • Comillas simples: Flexibilidad en el entrecomillado de cadenas
  • Cadenas multilínea: Mejor legibilidad para textos largos
  • Formatos numéricos: Hexadecimal, signos positivos y más

Todos los archivos JSON son válidos en JSON5, lo que hace que la migración sea perfecta.