Ir para o conteúdo
Sonenta

Guia · Valores de origem

Atualizar o valor de origem de uma chave

Inicializar uma chave com create_key ou create_keys_bulk define o seu valor de origem uma única vez. Reexecutar com um source_value alterado não faz nada — por conceção, para que um seed automatizado nunca sobrescreva o texto de origem. Eis como alterar deliberadamente a origem de uma chave depois de já existir.

O no-op que vai encontrar

create_key e create_keys_bulk aceitam um source_value, mas só o honram quando efetivamente criam a chave. Chame-os de novo numa chave que já existe e o novo source_value é silenciosamente descartado — a chamada continua a ter êxito, a chave regressa com created: false e o texto de origem fica inalterado.

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

Solução: update_source

Adicione update_source: true à chave — é um campo por chave (em create_key, ou em cada entrada items[] de create_keys_bulk), nunca um flag global. O valor de origem é então atualizado mesmo numa chave existente (created mantém-se false). É opt-in: um re-seed de rotina nunca altera o texto de origem por acidente.

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 passam pela superfície MCP (uma chave com o scope mcp:*), e o projeto já tem de ter um idioma de origem. A alteração incrementa a versão e é registada no histórico da chave.

Ou reimportar o idioma de origem

O import i18next numa só passagem também atualiza os valores de origem. Reimportar os seus ficheiros do idioma de origem atualiza todas as origens existentes numa única chamada — prático quando o texto de origem já vive no seu repositório.

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

O que muda

  • Versionado e auditado. A nova origem é uma edição versionada normal, atribuída à sua chave de API, e aparece no histórico da chave.
  • Os eventos de chave em falta resolvem-se. Os eventos de chave em falta abertos para essas chaves resolvem-se automaticamente assim que um valor de origem real chega.
  • Opt-in por conceção. Sem update_source, um source_value numa chave existente permanece ignorado — uma reexecução do seu script de seed nunca sobrescreve o texto de origem por acidente.

A seguir