Guía · Valores de origen
Actualizar el valor de origen de una clave
Inicializar una clave con create_key o create_keys_bulk fija su valor de origen una sola vez. Volver a ejecutar con un source_value modificado no hace nada — por diseño, para que un seed automatizado nunca sobrescriba el texto de origen. Aquí tienes cómo cambiar deliberadamente el origen de una clave después de su creación.
El no-op con el que te toparás
create_key y create_keys_bulk aceptan un source_value, pero solo lo honran al crear la clave. Vuelve a llamarlos sobre una clave que ya existe y el nuevo source_value se descarta silenciosamente — la llamada igualmente tiene éxito, la clave vuelve con created: false y el texto de origen queda sin cambios.
create_keys_bulk 1// create_keys_bulk — source_value on a key that ALREADY exists2{ "items": [3 { "namespace": "common", "name": "checkout.title",4 "source_value": "Checkout" }5] } 7// → no update_source: the existing source is left untouched8{ "results": [{ "index": 0, "status": "ok", "created": false }] } Solución: update_source
Añade update_source: true a la clave — es un campo por clave (en create_key, o en cada entrada items[] de create_keys_bulk), nunca un flag global. El valor de origen se actualiza entonces incluso en una clave existente (created sigue siendo false). Es opt-in: un re-seed de rutina nunca cambia el texto de origen por accidente.
create_keys_bulk 1// update_source is a PER-ITEM flag — never a global one2{ "items": [3 { "namespace": "common", "name": "checkout.title",4 "source_value": "Checkout", "update_source": true }5] } 7// → created:false (the key existed) but the source is now upserted8{ "results": [{ "index": 0, "status": "ok", "created": false }] } Ambos pasan por la superficie MCP (una clave con el scope mcp:*), y el proyecto ya debe tener un idioma de origen. El cambio incrementa la versión y queda registrado en el historial de la clave.
O reimportar el idioma de origen
El import i18next en una sola pasada también actualiza los valores de origen. Reimportar tus archivos del idioma de origen actualiza todas las fuentes existentes en una sola llamada — práctico cuando el texto de origen ya vive en tu repositorio.
terminal 1# or re-import your source-language files — import upserts source values2sonenta import "./locales/en/**/*.json" # en = your source language Lo que cambia
- Versionado y auditado. La nueva fuente es una edición versionada normal, atribuida a tu clave API, y aparece en el historial de la clave.
- Los eventos de clave faltante se resuelven. Los eventos de clave faltante abiertos para esas claves se resuelven automáticamente en cuanto llega un valor de origen real.
- Opt-in por diseño. Sin
update_source, unsource_valuesobre una clave existente queda ignorado — una reejecución de tu script de seed nunca sobrescribe el texto de origen por accidente.