Vai al contenuto
Sonenta

Guida · Valori sorgente

Aggiornare il valore sorgente di una chiave

Inizializzare una chiave con create_key o create_keys_bulk imposta il suo valore sorgente una sola volta. Rilanciare con un source_value modificato non fa nulla, per progettazione, affinché un seed automatizzato non sovrascriva mai il testo sorgente. Ecco come cambiare deliberatamente la sorgente di una chiave dopo la sua creazione.

Il no-op che incontrerete

create_key e create_keys_bulk accettano un source_value, ma lo onorano solo alla creazione della chiave. Richiamateli su una chiave che esiste già e il nuovo source_value viene silenziosamente ignorato, la chiamata riesce comunque, la chiave torna con created: false e il testo sorgente resta invariato.

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

Soluzione: update_source

Aggiungete update_source: true alla chiave, è un campo per chiave (su create_key, o su ogni voce items[] di create_keys_bulk), mai un flag globale. Il valore sorgente viene allora aggiornato anche su una chiave esistente (created resta false). È opt-in: un re-seed di routine non cambia mai il testo sorgente per sbaglio.

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

Entrambi passano attraverso la superficie MCP (una chiave con scope mcp:*), e il progetto deve già avere una lingua sorgente. La modifica incrementa la versione ed è registrata nella cronologia della chiave.

Oppure reimportare la lingua sorgente

L'import i18next in un'unica passata aggiorna anche i valori sorgente. Reimportare i vostri file della lingua sorgente aggiorna tutte le sorgenti esistenti in un'unica chiamata, comodo quando il testo sorgente vive già nel vostro repository.

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

Cosa cambia

  • Versionato e auditato. La nuova sorgente è una normale modifica versionata, attribuita alla vostra chiave API, e appare nella cronologia della chiave.
  • Gli eventi di chiave mancante si risolvono. Gli eventi di chiave mancante aperti per queste chiavi si risolvono automaticamente non appena arriva un vero valore sorgente.
  • Opt-in per progettazione. Senza update_source, un source_value su una chiave esistente resta ignorato, rilanciare il vostro script di seed non sovrascrive mai il testo sorgente per sbaglio.

Avanti