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.