Retraducción

Max PrilutskiyCEO y cofundadorUpdated hace 16 días · 3 min read

lingo push solo traduce lo que cambió: genera un hash de cada texto fuente frente al lockfile y omite todo lo que coincide. Esa es la opción predeterminada correcta, pero a veces necesitas volver a traducir contenido cuyo texto fuente es idéntico, por ejemplo, después de cambiar el modelo del motor, actualizar sus reglas o glosario, o corregir un problema de calidad.

Hay tres formas de hacerlo, y se diferencian por cuánto pagas: --key para cadenas individuales, un push con --force para archivos completos, o purge seguido de un push normal para un idioma completo. Elige la opción más específica que cubra lo que quieres volver a traducir.

Retraduce claves específicas#

--key retraduce solo las claves que indiques, las integra en la traducción existente y deja todas las demás claves idénticas byte por byte. Ignora el diff del contenido fuente, así que incluso una cadena cuyo texto en inglés nunca cambió se vuelve a traducir.

bash
lingo push --key auth.login

Repite la bandera para varias claves:

bash
lingo push --key auth.login --key billing.plan

Un patrón puede abarcar una clave exacta, un prefijo que termina en un límite de ., /, - o [, o un glob. Así, auth.login también abarca auth.login.title, pero nunca auth.login_url; auth por sí solo abarca todo el subárbol de auth, pero nunca authority. Pon los globs entre comillas, o tu shell los expandirá antes de que el CLI los vea:

bash
lingo push --key "auth.*"

Esta es, por mucho, la opción más económica: pagas solo por las claves que especificaste y nada más. Requiere una traducción existente con la cual fusionarse, así que se omitirá cualquier idioma que nunca hayas traducido, con un mensaje que te dirigirá a --backfill-missing. Algunos formatos no admiten un alcance de claves: en Formats se indica cuáles son y por qué.

Consulta lingo push para ver el comportamiento completo, incluido qué sucede con las claves que no indicaste.

Forzar un push acotado#

--force retraduce cada destino coincidente, sin tomar en cuenta las traducciones existentes ni la caché del servidor. Asígnale un alcance, a menos que de verdad quieras abarcar todo el proyecto: lingo push --force sin argumentos cubre todos los patrones configurados, y el mensaje de confirmación es lo único que se interpone.

Un archivo#

bash
lingo push content/en/landing.mdx --force

Un subárbol#

bash
lingo push 'content/en/**/*.md' --force

Todo#

bash
lingo push --backfill-missing --force --yes

--force pide confirmación antes de sobrescribir; usa --yes para omitirla (CI). Consulta lingo push para ver la Referencia completa de flags.

Retraducir un solo idioma#

push no tiene un flag por idioma. Para rehacer solo uno, elimina sus archivos y luego ejecuta backfill:

bash
lingo purge --locale fr
lingo push --backfill-missing

purge elimina los destinos de fr; después, --backfill-missing regenera únicamente lo que falta, sin tocar los demás idiomas. Además, sale más barato que --force, porque todo excepto fr sigue resolviéndose desde caché. Consulta Purge.

Estima antes de gastar#

Cualquier push acepta --estimate, que calcula el costo de la ejecución y sale sin traducir:

bash
lingo push 'content/en/**/*.md' --force --estimate

También se combina con --key, así que puedes calcular el costo de un alcance de claves antes de ejecutarlo:

bash
lingo push --key auth.login --estimate

Las estimaciones son heurísticas, no una cotización: el costo final puede variar.

Cuándo retraducir#

SituaciónQué ejecutar
Cambió el texto fuenteNada: un lingo push normal lo detecta
Unas cuantas cadenas que no te terminan de convencerlingo push --key auth.login --key billing.plan
Cambiaste el modelo del motorlingo push <scope> --force
Reglas / glosario actualizadoslingo push --key <affected keys>, o lingo push <scope> --force
Mala calidad en un idiomalingo purge --locale <code> y luego lingo push --backfill-missing
Empezar desde cerolingo push --backfill-missing --force --yes