Hoppa till innehållet
Sonenta

Guide · Källvärden

Uppdatera en nyckels källvärde

Att seeda en nyckel med create_key eller create_keys_bulk sätter dess källvärde en gång. Att köra om med ett ändrat source_value gör ingenting — avsiktligt, så att en automatiserad seed aldrig skriver över källtexten. Så här ändrar du medvetet en nyckels källa efter att den redan finns.

Den no-op du kommer att stöta på

create_key och create_keys_bulk accepterar ett source_value, men respekterar det bara när de faktiskt skapar nyckeln. Anropa dem igen på en nyckel som redan finns och det nya source_value släpps tyst — anropet lyckas ändå, nyckeln kommer tillbaka med created: false, och källtexten är oförändrad.

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

Lösning: update_source

Lägg till update_source: true på nyckeln — det är ett per-nyckel-fält (på create_key, eller på varje items[]-post i create_keys_bulk), aldrig en global flagga. Källan upsertas då även på en befintlig nyckel (created förblir false). Det är opt-in, så en rutinmässig re-seed ändrar aldrig källtexten av misstag.

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

Båda körs på MCP-ytan (en nyckel med scopet mcp:*), och projektet måste redan ha ett källspråk. Ändringen versionshöjs och registreras i nyckelns historik.

Eller importera om källspråket

Engångsimporten av i18next upsertar också källvärden. Att importera om dina källspråksfiler uppdaterar varje befintlig källa i ett enda anrop — praktiskt när källtexten redan finns i ditt repo.

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

Vad som ändras

  • Versionshanterat & reviderat. Den nya källan är en vanlig versionshanterad redigering, tillskriven din API-nyckel, och visas i nyckelns historik.
  • Händelser för saknade nycklar löses. Öppna händelser för saknade nycklar för dessa nycklar löses automatiskt så snart ett riktigt källvärde landar.
  • Opt-in enligt design. Utan update_source förblir ett source_value på en befintlig nyckel ignorerat — en omkörning av ditt seed-skript skriver aldrig över källtexten av misstag.

Härnäst