Aller au contenu
Sonenta

Guide · Valeurs source

Mettre à jour la valeur source d'une clé

Initialiser une clé avec create_key ou create_keys_bulk fixe sa valeur source une seule fois. Relancer avec un source_value modifié ne fait rien — par conception, pour qu'un seed automatisé n'écrase jamais le texte source. Voici comment changer délibérément la source d'une clé après sa création.

Le no-op que vous rencontrerez

create_key et create_keys_bulk acceptent un source_value, mais ne l'honorent qu'à la création de la clé. Rappelez-les sur une clé qui existe déjà et le nouveau source_value est silencieusement ignoré — l'appel réussit quand même, la clé revient avec created: false, et le texte source reste inchangé.

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 }] }

Solution : update_source

Ajoutez update_source: true sur la clé — c'est un champ par clé (sur create_key, ou sur chaque entrée items[] de create_keys_bulk), jamais un drapeau global. La valeur source est alors mise à jour même sur une clé existante (created reste false). C'est opt-in : un re-seed de routine ne change jamais le texte source par accident.

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 }] }

Les deux passent par la surface MCP (une clé au scope mcp:*), et le projet doit déjà avoir une langue source. Le changement incrémente la version et est consigné dans l'historique de la clé.

Ou ré-importer la langue source

L'import i18next en une passe met aussi à jour les valeurs source. Ré-importer vos fichiers de langue source met à jour toutes les sources existantes en un seul appel — pratique quand le texte source vit déjà dans votre dépôt.

terminal
1# or re-import your source-language files — import upserts source values2sonenta import "./locales/en/**/*.json"   # en = your source language

Ce qui change

  • Versionné et audité. La nouvelle source est une édition versionnée normale, attribuée à votre clé API, et apparaît dans l'historique de la clé.
  • Les événements de clé manquante se résolvent. Les événements de clé manquante ouverts pour ces clés se résolvent automatiquement dès qu'une vraie valeur source arrive.
  • Opt-in par conception. Sans update_source, un source_value sur une clé existante reste ignoré — relancer votre script de seed n'écrase jamais le texte source par accident.

Ensuite