Para traducir un archivo de idioma JSON, sube el archivo de origen, indica el idioma de destino y traduce los valores de texto. Empieza con un archivo pequeño en el traductor JSON gratuito y, después, comprueba en tu aplicación el archivo que recibas. Puedes descargar el ejemplo que se utiliza aquí.
Esta guía está pensada para cadenas de aplicaciones, como locales/en.json. Si tu archivo contiene un catálogo de productos o registros de API, decide qué campos son texto legible antes de aplicar el mismo proceso. Un identificador almacenado como cadena sigue siendo un identificador.
Prueba primero estas seis cadenas
El ejemplo incluye una pantalla de pago y dos etiquetas de configuración:
{
"checkout": {
"title": "Your order",
"greeting": "Hello, {{name}}",
"pay": "Pay now",
"support": "Contact Pinecart support"
},
"settings": {
"language": "Language",
"notifications": "Email notifications"
}
}
Súbelo a la herramienta JSON e introduce:
Translate every text value into French.
Keep Pinecart in English and preserve {{name}} exactly.
La herramienta gratuita admite archivos de hasta 2 MB, un máximo de cinco al día y traduce hasta 5.000 palabras por archivo. Los archivos más grandes se devuelven completos, con el texto restante sin cambios. Así, la descarga sirve como muestra, pero no es una versión totalmente traducida. Usa la aplicación para traducir archivos grandes por completo, usar un glosario de espacio de trabajo y gestionar versiones sucesivas.
Identifica qué partes pertenecen a tu aplicación
La aplicación utiliza checkout.title; el usuario ve su valor. La variable del nombre se completa en tiempo de ejecución. Ambos elementos deben conservarse al cambiar de idioma.
"title": "Your order","title": "Votre commande","greeting": "Hello, {{name}}","greeting": "Bonjour, {{name}}","pay": "Pay now""pay": "Payer maintenant"AI Glot interpreta el JSON como una estructura y lo vuelve a escribir con sangría de dos espacios. Por eso, una comparación de diferencias puede incluir cambios en los espacios en blanco. Revisa los valores por separado del formato.
Indica qué convención usas para los marcadores de posición. El ejemplo usa la sintaxis de i18next {{name}}. Otros proyectos usan {name}, %s o mensajes ICU. Al redactar la instrucción, copia una cadena real de tu aplicación. No conviertas una convención en otra durante la traducción.
Comprueba el plan antes de iniciar un trabajo grande
- 1SubirEl archivo fuente en inglés
- 2Define el alcanceIdioma de destino y claves excluidas
- 3Leer el planComprueba el número de palabras, el alcance y el coste
- 4TraducirUsa el glosario y las reglas de redacción
- 5ValidaRevisa el archivo y la aplicación
Para las publicaciones periódicas, usa un glosario del espacio de trabajo para los términos de producto y los nombres de funciones. Las instrucciones de alcance determinan qué valores se traducen; las reglas de redacción, cómo se escribe cada valor.
Un en.json que solo contiene el texto de origen no indica qué etiquetas francesas se tradujeron el mes pasado. Pedirle que «traduzca solo las cadenas francesas que faltan» no sirve si no hay ningún archivo en francés con el que comparar. Excluye los prefijos de clave que ya conozcas o prepara juntos los campos de origen y de destino, y comprueba cómo interpreta el plan la instrucción. La guía sobre archivos de idioma de aplicaciones explica el flujo de trabajo general y otros formatos.
Haz una comprobación estructural antes de confirmar los cambios
Guarda la descarga como fr.json, junto a en.json. Copia este código en check-locale.mjs y ejecútalo con Node.js mediante node check-locale.mjs. Comprueba las claves de los objetos anidados, la longitud de las matrices, los tipos de valor, que los valores no textuales se mantengan sin cambios y los marcadores de posición de doble llave del ejemplo.
import { readFileSync } from 'node:fs';
import assert from 'node:assert/strict';
const source = JSON.parse(readFileSync('en.json', 'utf8'));
const target = JSON.parse(readFileSync('fr.json', 'utf8'));
const tokens = text => [...text.matchAll(/\{\{[^{}]+\}\}/g)]
.map(match => match[0]).sort();
function check(a, b, path = '$') {
assert.equal(typeof b, typeof a, `${path}: value type changed`);
if (a === null || typeof a !== 'object') {
if (typeof a === 'string') {
assert.ok(b.trim().length || !a.trim().length,
`${path}: translation is empty`);
assert.deepEqual(tokens(b), tokens(a),
`${path}: placeholders changed`);
} else {
assert.deepEqual(b, a, `${path}: non-text value changed`);
}
return;
}
assert.equal(Array.isArray(b), Array.isArray(a),
`${path}: container type changed`);
assert.ok(b !== null, `${path}: container is null`);
if (Array.isArray(a)) {
assert.equal(b.length, a.length, `${path}: array length changed`);
}
assert.deepEqual(Object.keys(b).sort(), Object.keys(a).sort(),
`${path}: keys changed`);
for (const key of Object.keys(a)) check(a[key], b[key], `${path}.${key}`);
}
check(source, target);
console.log('Keys, types and {{placeholders}} match. Review the wording next.');
Esto valida el contrato, no la calidad de la traducción. Una cadena que siga en inglés también superará la comprobación. Lo mismo puede ocurrir con una traducción incorrecta desde el punto de vista gramatical o demasiado larga para el botón. La regla de tokens contempla {{name}}, pero no todos los formatos de marcadores de posición; adáptala a la sintaxis de tu aplicación.
En i18next JSON v4, las variantes del plural usan sufijos específicos de cada idioma y las llamadas proporcionan un recuento. Prepara y prueba las claves que necesite el idioma de destino. Esta comprobación de igualdad de claves rechaza deliberadamente cualquier cambio en el conjunto de claves; no genera ni valida un nuevo repertorio de plurales.
Termina la configuración en la aplicación
Configura el cargador de idioma francés que ya utiliza tu aplicación para que apunte a fr.json. Abre el proceso de pago, inserta un nombre real y comprueba el botón más largo en la pantalla compatible de menor anchura. Si usas plurales, prueba recuentos que activen cada forma del idioma de destino.
Para un archivo pequeño, puede bastar con una revisión manual minuciosa. Si en cada versión tienes que gestionar miles de cadenas, integra el archivo de origen, el glosario, esta comprobación estructural y la revisión de la interfaz en un mismo flujo de trabajo. La solución de localización de aplicaciones explica qué papel desempeña AI Glot cuando varias personas se encargan de ese proceso.
