Ir al contenido
Sonenta

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, un source_value sobre una clave existente queda ignorado — una reejecución de tu script de seed nunca sobrescribe el texto de origen por accidente.

Siguiente