Šķîþ ţö ḿàîñ çöñţéñţ

Çöñţéñţ ḿéḿöŕý ƃüñđļé (.memory.json)

À çöñţéñţ-ḿéḿöŕý ƃüñđļé îš ţĥé þöŕţàƃļé, ļöššļéšš šéŕîàļîžàţîöñ öƒ à þŕöĵéçţ'š çöñţéñţ ḿéḿöŕý: ţĥé ḿüļţîļîñĝüàļ éñţŕîéš ķàþî ŕéüšéš ţö àṽöîđ ŕé-ţŕàñšļàţîñĝ ţéẋţ îţ ĥàš àļŕéàđý šééñ, ţöĝéţĥéŕ ŵîţĥ ŵĥéŕé éàçĥ éñţŕý çàḿé ƒŕöḿ.

Îţ îš à ƃüñđļé, ñöţ à šţöŕé. Ţĥé ŵöŕķîñĝ šţöŕé îš ŠǪĻîţé: îñšîđé à þŕöĵéçţ, ţĥé ḿéḿöŕý ţàƃļéš öƒ ţĥé þŕöĵéçţ šţöŕé, ŵĥîçĥ šîţš öüţšîđé ţĥé çĥéçķöüţ àñđ öüţšîđé ĝîţ, àñđ memory.db ƒöŕ à šţàñđàļöñé šţöŕé. Éẋþöŕţîñĝ ţĥàţ šţöŕé ĝîṽéš ýöü à ƃüñđļé: à šîñĝļé ŕéṽîéŵàƃļé, ĥàšĥàƃļé ƒîļé. kapi memory export ŵŕîţéš öñé àñđ kapi store import ŕéàđš öñé. Šéé ţĥé öṽéŕṽîéŵ ƒöŕ ŵĥý ķàþî ķééþš ţĥàţ đîšţîñçţîöñ.

Îḿþļéḿéñţéđ îñ Ĝö àţ memory/kmb.

Ŵĥéñ ķàþî ŵŕîţéš öñé​

  • kapi memory export --format bundle: ţĥé éẋþļîçîţ éẋþöŕţ.
  • kapi pack: àš ţĥé memory.json ḿéḿƃéŕ îñšîđé à .kpz.

--format àççéþţš tmx öŕ bundle öñ ƃöţĥ kapi memory export àñđ kapi memory import. Ŵĥéñ ţĥé ƒļàĝ îš öḿîţţéđ, ţĥé ƒöŕḿàţ îš ŕéšöļṽéđ ƒŕöḿ ţĥé ƒîļé'š éẋţéñšîöñ.

Éñṽéļöþé​

{
"schemaVersion": "1.0",
"kind": "kapi-memory",
"created": "2026-07-26T09:12:04Z",
"generator": { "id": "kapi", "version": "1.2.3" },
"entries": [],
"importSessions": []
}
ƑîéļđŢýþéÑöţéš
schemaVersionšţŕîñĝMAJOR.MINOR. À ŕéàđéŕ ŕéĵéçţš àñ üñķñöŵñ ḿàĵöŕ àñđ àççéþţš üñķñöŵñ ḿîñöŕš öƒ à ķñöŵñ ḿàĵöŕ.
kindšţŕîñĝÀļŵàýš kapi-memory. Àļšö ţĥé šñîñĝ ḿàŕķéŕ ţĥàţ îđéñţîƒîéš ţĥé ƒöŕḿàţ ƃý çöñţéñţ.
createdšţŕîñĝŔƑÇ 3339. Öþţîöñàļ.
generatoröƃĵéçţ{id, version}, ţĥé ţööļ ţĥàţ þŕöđüçéđ ţĥé ƒîļé. Öþţîöñàļ.
entriesàŕŕàýŢĥé çöñţéñţ-ḿéḿöŕý éñţŕîéš. Àļŵàýš þŕéšéñţ.
importSessionsàŕŕàýÞéŕ-ƒîļé îḿþöŕţ ḿéţàđàţà ŕéƒéŕéñçéđ ƃý Origin.sessionId. Öþţîöñàļ.

Éñţŕý​

Àñ éñţŕý îš ḿüļţîļîñĝüàļ, ŵĥîçĥ ḿöšţ šéþàŕàţéš îţ ƒŕöḿ ŢḾẊ. Ţĥéŕé îš ñö àüţĥöŕîţàţîṽé šöüŕçé ļàñĝüàĝé àţ ţĥîš ļàýéŕ: variants îš à ḿàþ öƒ ļöçàļé ţö ŕüñ šéǫüéñçé, àñđ ţĥé ļöçàļéš àŕé þééŕš. hintSrcLang ŕéçöŕđš ŵĥîçĥ ļöçàļé ţĥé éñţŕý ŵàš öŕîĝîñàļļý àüţĥöŕéđ îñ, àš à ĥîñţ ƒöŕ ḿàţçĥîñĝ.

ƑîéļđŢýþéÑöţéš
idšţŕîñĝÉñţŕý îđéñţîţý.
projectIdšţŕîñĝÖþţîöñàļ.
hintSrcLangšţŕîñĝÀđṽîšöŕý àüţĥöŕîñĝ ļöçàļé.
variantsöƃĵéçţĻöçàļé → Run[]. Ţĥé çöñţéñţ îţšéļƒ.
entitiesàŕŕàýÑàḿéđ éñţîţîéš ţŕàçķéđ àçŕöšš àļļ ṽàŕîàñţš.
propertiesöƃĵéçţƑŕéé-ƒöŕḿ šţŕîñĝ ḿàþ.
originsàŕŕàýŴĥéŕé ţĥîš éñţŕý çàḿé ƒŕöḿ.
notešţŕîñĝÖþţîöñàļ.
created, updatedšţŕîñĝŔƑÇ 3339.

Ṽàŕîàñţ çöñţéñţ ŕéüšéš ţĥé šàḿé Run šéŕîàļîžàţîöñ ţĥé çöñţéñţ ƃüñđļé éḿîţš, šö îñļîñé çöđéš, þļàçéĥöļđéŕš, àñđ þļüŕàļ/šéļéçţ çöñšţŕüçţš šüŕṽîṽé àñ éẋþöŕţ/îḿþöŕţ ŕöüñđ ţŕîþ üñçĥàñĝéđ.

Éñţîţý ḿàþþîñĝš​

Àñ EntityMapping ţŕàçķš öñé ñàḿéđ éñţîţý àçŕöšš éṽéŕý ṽàŕîàñţ öƒ ţĥé éñţŕý (à þŕöđüçţ ñàḿé, à ñüḿƃéŕ, à đàţé) àñđ çàñ çŕöšš-ļîñķ îţ ţö à ţéŕḿš çöñçéþţ.

ƑîéļđŢýþéÑöţéš
placeholderIdšţŕîñĝŢĥé þļàçéĥöļđéŕ ţĥîš éñţîţý öççüþîéš.
typešţŕîñĝÉñţîţý ţýþé. Öþţîöñàļ.
valuesöƃĵéçţĻöçàļé → {text, start, end}.
conceptIdšţŕîñĝÇŕöšš-ļîñķ îñţö à ţéŕḿš çöñçéþţ.

values þöšîţîöñš àŕé öƒƒšéţš ŵîţĥîñ ţĥàţ ļöçàļé'š ṽàŕîàñţ, šö àñ éñţîţý îš ļöçàţàƃļé àš ŵéļļ àš ñàḿéđ.

Öŕîĝîñš àñđ îḿþöŕţ šéššîöñš​

origins ŕéçöŕđš þŕöṽéñàñçé þéŕ éñţŕý (source, key, reference, addedAt, addedBy, sessionId). Ŵĥéŕé àñ éñţŕý àŕŕîṽéđ ţĥŕöüĝĥ à ƒîļé îḿþöŕţ, sessionId þöîñţš àţ àñ importSessions ŕéçöŕđ ĥöļđîñĝ ţĥé þéŕ-ƒîļé ḿéţàđàţà çàþţüŕéđ öñçé àţ îḿþöŕţ ţîḿé: fileKey, fileHash, fileSizeBytes, importedAt, importedBy, toolName, toolVersion, segType, adminLang, srcLang, dataType, originalFormat, originalEncoding, entryCount, àñđ à properties ḿàþ.

Šþļîţţîñĝ šéššîöñ ḿéţàđàţà öüţ öƒ éàçĥ éñţŕý ķééþš à ļàŕĝé îḿþöŕţ ƒŕöḿ ŕéþéàţîñĝ ţĥé šàḿé ţŵéñţý ƒîéļđš öñ éṽéŕý ŕöŵ ŵĥîļé šţîļļ ļéţţîñĝ àñý éñţŕý àñšŵéŕ ŵĥéŕé îţ çàḿé ƒŕöḿ.

Ŵĥý ĴŠÖÑ àñđ ñöţ ĴŠÖÑ Ļîñéš​

Öṽéŕļàýš šĥîþ îñ ƃöţĥ .overlays.json àñđ .overlays.jsonl; çöñţéñţ ḿéḿöŕý ĥàš ñö ļîñé-đéļîḿîţéđ ƒöŕḿ.

kapi memory export ŕé-šéŕîàļîžéš ţĥé ŵĥöļé šţöŕé àñđ çàñöñîçàļîžéš îţ öñ éṽéŕý ŵŕîţé (éñţŕîéš šöŕţéđ ƃý îđ, ţîḿéšţàḿþš ñöŕḿàļîžéđ, đéţéŕḿîñîšţîç ƒöŕḿàţţîñĝ) šö ţĥé ƃýţéš àŕé šţàƃļé ƒöŕ ĥàšĥîñĝ àñđ đ çļéàñļý üñđéŕ ĝîţ. Ţĥéŕé îš ñö àþþéñđ þàţĥ ţö öþţîḿîžé ƒöŕ, àñđ àñ àþþéñđ-öñļý ƒîļé ŵöüļđ đéƒéàţ éẋàçţļý ţĥé ƃýţé-šţàƃîļîţý ţĥàţ ḿàķéš ţĥé ƃüñđļé ĥàšĥàƃļé àš à ŵĥöļé.

Ţĥé šĥàþé îš àļšö ḿöŕé ţĥàñ à ƒļàţ ŕéçöŕđ šţŕéàḿ. À ƃüñđļé îš àñ éñṽéļöþé þļüš ţŵö çöŕŕéļàţéđ àŕŕàýš (entries àñđ ţĥé importSessions ţĥéý ŕéƒéŕéñçé ƃý îđ) àñđ ĴŠÖÑ éẋþŕéššéš ţĥàţ đîŕéçţļý. ĴŠÖÑ Ļîñéš ŵöüļđ ḿéàñ îñṽéñţîñĝ à ƒŕàḿîñĝ çöñṽéñţîöñ ţö šàý ŵĥîçĥ ļîñé îš ţĥé éñṽéļöþé àñđ ĥöŵ ţĥé ţŵö ŕéçöŕđ ţýþéš îñţéŕļéàṽé.

Ŵĥàţ ţĥé ƃüñđļé ļéàṽéš öüţ​

  • Ţĥé ŠǪĻîţé šţöŕé'š îñđéẋéš. ƑŢŠ5 àñđ ƒüžžý-ḿàţçĥ šîđé ţàƃļéš àŕé đéŕîṽéđ; kapi memory import ŕéƃüîļđš ţĥéḿ àƒţéŕ à ƃüļķ ļöàđ.
  • À þŕîṽîļéĝéđ šöüŕçé ļàñĝüàĝé. Šéé Éñţŕý.
  • Ƒüžžý-ḿàţçĥ šçöŕéš öŕ ţĥŕéšĥöļđš. Ḿàţçĥîñĝ îš à ŕüñţîḿé çöñçéŕñ đŕîṽéñ ƃý ţĥé ŕéçîþé, àñđ šţöŕéđ çöñţéñţ çàŕŕîéš ñöñé.

Ŕéļàţîöñšĥîþ ţö ŢḾẊ​

ŢḾẊ îš šüþþöŕţéđ (--format tmx) àñđ îš ţĥé ŕîĝĥţ çĥöîçé ƒöŕ ĥàñđîñĝ çöñţéñţ ţö à ţööļ öüţšîđé ţĥîš þŕöĵéçţ. Îţ îš à ļöššý ţîéŕ: îţ ĥàš ñö ŕéþŕéšéñţàţîöñ ƒöŕ éñţîţý ḿàþþîñĝš, çöñçéþţ çŕöšš-ļîñķš, þéŕ-éñţŕý þŕöṽéñàñçé, öŕ îḿþöŕţ-šéššîöñ ḿéţàđàţà, àñđ îţ àššüḿéš à šöüŕçé/ţàŕĝéţ þàîŕ ŵĥéŕé ţĥé ƃüñđļé ĥàš þééŕ ļöçàļéš.

Éẋþöŕţ ţö ŢḾẊ ţö îñţéŕöþéŕàţé; ķééþ ţĥé ƃüñđļé ŵĥéñ ţĥé çöñţéñţ îš šţàýîñĝ îñšîđé ķàþî. Çĥööšîñĝ à ƒöŕḿàţ çöṽéŕš ţĥé ţŕàđé-öƒƒ îñ ƒüļļ.

Šéé àļšö​

  • Öṽéŕṽîéŵ: šţöŕé, ƃüñđļé, àñđ éẋþöŕţéđ àŕţîƒàçţ.
  • Ţéŕḿš: ţĥé ţéŕḿîñöļöĝý ƃüñđļé àñđ îţš ļööķüþ ļàđđéŕ.
  • Þŕöĵéçţ àŕçĥîṽé: ţĥé .kpz ţĥàţ çàŕŕîéš à ḿéḿöŕý ƃüñđļé àš à ḿéḿƃéŕ.