Docs / Guías
Página traducida automáticamente
Conserva las traducciones humanas
Conserva las cadenas de un traductor cuando cambia el origen, recibe una sugerencia automática en vez de una sobrescritura y fija las claves protegidas.
Usa esto cuando algunas traducciones las escribió una persona: textos legales, de marketing o de marca por los que alguien cobró. Cuando cambia su texto de origen, la clave queda desactualizada, y una ejecución automática normal traduciría encima. verbatra la conserva por defecto; esta página muestra cómo ver esas claves, resolverlas y endurecer o relajar la regla.
Necesitas un proyecto en el que translate se haya ejecutado al menos una vez, para que exista verbatra.provenance.json y registre quién escribió cada valor.
Qué está protegido
Cuando cambia el texto de origen de una clave, translate y watch dejan su valor intacto si lo escribió una persona:
| Origen | De dónde vino el valor |
|---|---|
human | una edición de una persona, por ejemplo en el diálogo de edición de Studio |
import | una fila importada de una entrega a un traductor con verbatra import |
external | un cambio hecho fuera de verbatra, como un traductor que modifica el archivo de locale en un pull request |
La salida automática (machine, memory, fuzzy), las ediciones de agentes (agent) y los valores sin registro (unrecorded) se vuelven a traducir como siempre. Un valor que un revisor rechazó nunca está protegido. En Procedencia verás cómo se registra cada origen.
Encuentra las claves protegidas
Una clave protegida no se envía al proveedor, conserva su valor y sigue desactualizada, así que sigue a la vista:
verbatra translate --dry-runverbatra translate (dry run)
de: 1 would translate, 12 unchanged, 1 protected
protected: checkout.terms (import)
1 succeeded, 0 partial, 0 failed (dry run: nothing written)verbatra translatetraduce todo lo demás, lista la clave como protegida y aun así sale con0.verbatra checkla cuenta como desactualizada y sale con1, así que una puerta de CI muestra que una persona tiene trabajo pendiente.verbatra diffla lista bajoprotected.verbatra exportse la entrega al traductor comochanged, igual que cualquier clave desactualizada.
Resolver una clave protegida
Una clave protegida deja de estar desactualizada en cuanto una persona decide qué debe decir:
- Edítala en Studio, o guárdala sin cambios para conservar el texto. En ambos casos el valor se registra como
humanfrente al nuevo texto de origen. - Expórtala, deja que el traductor la actualice e importa la entrega. Consulta Traducción humana.
- Vuelve a traducirla a propósito, para una ejecución, con
verbatra translate --include-human.
Sugerencias en lugar de sobrescrituras
Para ver lo que escribiría una máquina sin sustituir el texto de la persona, pon humanEdits en suggest:
export default defineConfig({
// ...
humanEdits: "suggest",
});Una clave protegida se sigue enviando entonces al proveedor, pero la respuesta es solo una sugerencia. Aparece junto a la clave en el resumen de la ejecución, con un suggestionStatus que dice si llegó o por qué no, y se guarda en la memoria de traducción; nunca se escribe en el archivo de locale. Una entrada exacta de la memoria para el nuevo texto puede servir de sugerencia, y la siguiente ejecución la vuelve a servir sin pagar otra vez. translate --estimate cuenta estas claves, porque se envían. En un proyecto solo humano no hay proveedor al que preguntar, así que suggest se comporta como protect.
Para volver a traducirlo todo de nuevo, pon humanEdits en overwrite. Consulta humanEdits y pinnedKeys.
Fijar claves
Algunas claves no las debe tocar ninguna máquina: una marca, un aviso legal. Enuméralas en pinnedKeys, donde * coincide con cualquier secuencia de caracteres:
export default defineConfig({
// ...
pinnedKeys: ["legal.*", "brand.name"],
});Una clave fijada nunca se traduce, se sugiere ni se vuelve a traducir, ni siquiera cuando falta y ni siquiera con --include-human. Aparece como protegida con el motivo pinned hasta que una persona la rellena.
Agentes
Un agente de IA no puede sustituir el trabajo de una persona. La herramienta MCP translation.retranslateEntry rechaza un valor protegido con KEY_ y una clave fijada con KEY_, y no ofrece forma de forzarlo. translation.translatePending deja en paz las claves protegidas y las lista. Un agente todavía puede escribir un valor con translation.editEntry si la clave no está fijada; ese valor se registra como agent, así que nunca pasa por el trabajo de una persona.
En Studio Disponible a partir de @verbatra/studio 0.6.0
La página Translations marca una clave protegida como Protected y la agrupa aparte, con el origen de su valor actual. Abre la clave para editarla, o guárdala sin cambios para conservar el texto. Volver a traducir una clave protegida desde el panel de la clave pide confirmación primero y ofrece Replace anyway. Consulta Revisa traducciones en Studio.
Casos especiales
- Un archivo de procedencia de un verbatra más reciente. No se puede leer ningún origen, así que
translateprotege todas las claves desactualizadas con valor hasta que actualices, mientras quecheckydiffsolo listan como protegidas las claves fijadas. - Un archivo de procedencia dañado.
translate, también en dry run, falla conPROVENANCE_.FILE_ INVALID checkydiffsiguen funcionando y solo listan como protegidas las claves fijadas. - Proyectos solo humanos. Las claves protegidas cuentan para el código de salida
3, igual que las claves que la memoria de traducción no pudo rellenar: ambas necesitan a una persona.
Relacionado
- El archivo de configuración:
humanEditsypinnedKeys. verbatra translate:--include-human.- El archivo de bloqueo: cómo registra
verbatra.provenance.jsoncada origen. - Flujo solo humano: proyectos en los que cada valor lo escribe una persona.