Ŕéṽîéŵ & àþþŕöṽé
Ĝöàļ: ţàķé ţŕàñšļàţîöñš þàšţ ŵĥàţ à ḿàçĥîñé çàñ đéçîđé. kapi up þŕöđüçéš: îţ ƃŕîñĝš éṽéŕý üñîţ ţö ţŕàñšļàţéđ àñđ þàŕķš ţĥé ŕéšţ. À þéŕšöñ þŕöḿöţéš: ŕéṽîéŵéđ, ţĥéñ öþţîöñàļļý šîĝñéđ-öƒƒ. Éàçĥ ŕéṽîéŵ ļàñđš îñ ţĥé þŕöĵéçţ'š çöḿḿîţţéđ üñîţ-šţàţé ŕéçöŕđ, ƃöüñđ ţö ţĥé çöñţéñţ ĥàšĥ öƒ ţĥé éẋàçţ ţŕàñšļàţîöñ îţ ƃļéššéš, šö àñ àþþŕöṽàļ çàñ ñéṽéŕ šîļéñţļý öüţļîṽé ţĥé ţéẋţ îţ àþþŕöṽéđ. Ţĥé ḿöđéļ îš ţĥé kapi ļööþ; ţĥé šţöŕé îš ţĥé þŕöĵéçţ šţöŕé.
Šéţţļé ţĥé šöüŕçé ƒîŕšţ
Ţĥé ļööþ ĥàš à ĝàţé ƃéƒöŕé ţĥé ţàŕĝéţ ŵöŕķ: kapi up šéţţļéš ýöüŕ šöüŕçé àñđ ĥöļđš ţĥéŕé üñţîļ îţ çļéàŕš îţš ƃàŕ, šö àñ üñ-çĥéçķéđ, öƒƒ-ƃŕàñđ, öŕ éḿþţý šöüŕçé îš ñéṽéŕ ţŕàñšļàţéđ îñţö éṽéŕý ļàñĝüàĝé öñļý ţö ƃé ŕéđöñé ŵĥéñ ýöü ƒîẋ îţ. À ƃļöçķ ŵĥöšé šöüŕçé ĥàš ñöţ šéţţļéđ îš ĥéļđ (îţš ţŕàñšļàţîöñš àŕé ñöţ þŕöđüçéđ) àñđ ţĥé ŕüñ šàýš šö þļàîñļý ŕàţĥéŕ ţĥàñ šþéñđîñĝ ÀÎ öñ îţ.
kapi üþ šéţţļéš ţĥé šöüŕçé, ĥöļđš àñý ƃļöçķ ƃéļöŵ đéƒàüļţš.šöüŕçé_ĝàţé, àñđ ţŕàñšļàţéš öñļý ţĥé ƃļöçķš ţĥàţ çļéàŕéđ îţ; ţĥé ĥéļđ öñéš ŵàîţ ƒöŕ ýöü ţö šéţţļé ţĥéḿ.
Ţĥé ļöçàļ šöüŕçé-šéţţļé ļööþ, éñđ ţö éñđ:
- Ŕüñ.
kapi upšéţţļéš éàçĥ šöüŕçé ƃļöçķ (ţéŕḿîñöļöĝý, ṽöîçé, šöüŕçé çĥéçķš), šţàḿþš îţš àüţĥöŕîñĝ šţàţüš (àüţĥöŕéđ → çĥéçķéđ → àþþŕöṽéđ), àñđ ĥöļđš àñý ƃļöçķ ƃéļöŵ ţĥé ĝàţé. Ŕéàđý ƃļöçķš ţŕàñšļàţé; ĥéļđ ƃļöçķš đö ñöţ. À ŕüñ ţĥàţ çöüļđ ţŕàñšļàţé ñöţĥîñĝ šüŕƒàçéš àš ĥéļđ öñ šöüŕçé ŕàţĥéŕ ţĥàñ àš à šîļéñţ šķîþ. - Šéé ŵĥàţ'š ĥéļđ.
kapi statusšĥöŵš šöüŕçé ŕéàđîñéšš àļöñĝšîđé çöṽéŕàĝé;kapi check --shipéñƒöŕçéš ţĥé šàḿé šöüŕçé ƃàŕ àñđ ļîšţš ţĥé ƃļöçķš ţĥàţ ƒàîļ îţ. - Šéţţļé. Ƒîẋ ţĥé ƒļàĝĝéđ ţéŕḿš, ṽöîçé ƒîñđîñĝš, öŕ šöüŕçé ţéẋţ, ţĥŕöüĝĥ ţĥé ŕöüñđ-ţŕîþ (
kapi apply) öŕ ýöüŕ éđîţöŕ, šö ţĥé ñéẋţ çĥéçķ çļéàŕš ţĥéḿ. Àñ éẋþļîçîţ šöüŕçé šîĝñ-öƒƒ îš àkind:"review"éñţŕý öñ ţĥé šöüŕçé, ƒöŕ ţĥé šţŕîçţapprovedĝàţé. - Ŕé-ŕüñ.
kapi upŕé-šéţţļéš öñļý ţĥé ƃļöçķš ŵĥöšé šöüŕçé çĥàñĝéđ àñđ ţŕàñšļàţéš ţĥé ñéŵļý-çļéàŕéđ öñéš. Ŕéþéàţ üñţîļ ñöţĥîñĝ îš ĥéļđ.
Ţĥé ĝàţé ļéṽéļ îš defaults.source_gate îñ ţĥé ŕéçîþé:
defaults:
source_gate: checked # the default: source must clear its automated
# terminology, voice and source checks before translating
checked îš ţĥé đéƒàüļţ ŵĥéñ üñšéţ: ţĥé šàḿé ƃàŕ ţĥé šéŕṽéŕ ĥöļđš ţö, ŵîţĥ ñö ĥüḿàñ ƃöţţļéñéçķ. approved àđđîţîöñàļļý ŕéǫüîŕéš à ĥüḿàñ šöüŕçé šîĝñ-öƒƒ (ṽöîçé-çŕîţîçàļ öŕ ŕéĝüļàţéđ çöñţéñţ). none đîšàƃļéš ţĥé ĝàţé éñţîŕéļý, ţĥé đéļîƃéŕàţé "đŕàƒţ ƒŕééļý, ŕàŵ ḾŢ" öþţ-öüţ ƒöŕ šîñĝļé-þļàýéŕ ŵöŕķ ţĥàţ ŵàñţš ţŕàñšļàţîöñš ŕéĝàŕđļéšš öƒ šöüŕçé šţàţé:
defaults:
source_gate: none # opt out: translate every block, settled or not
Ţĥéñ ţĥé þéŕšöñ'š ĥàļƒ öƒ ţĥé ļööþ (þŕöḿöţîñĝ ţĥé ţŕàñšļàţîöñš ţĥéḿšéļṽéš) îš ţĥé ŕéšţ öƒ ţĥîš þàĝé.
- Đéšķţöþ
- Àĝéñţ (Çļàüđé)
- ÇĻÎ
Ţĥé Ŕéṽîéŵ šüŕƒàçé îš à ǫüéüé ýöü ŵöŕķ ţĥŕöüĝĥ, ķéýƃöàŕđ-ƒîŕšţ:
- Éñţéŕ ƒŕöḿ à ĝàţé çéļļ. Çļîçķ à šĥîþ-ĝàţé çéļļ öñ ţĥé þŕöĵéçţ ṽîéŵ (öŕ öþéñ Ŕéṽîéŵ ƒŕöḿ ţĥé šîđéƃàŕ); ţĥé ǫüéüé ñàŕŕöŵš ţö ţĥàţ çöļļéçţîöñ àñđ ļöçàļé, öŕđéŕéđ ƒîñđîñĝš-ƒîŕšţ šö ţĥé ŕîšķý üñîţš çöḿé üþ ƒîŕšţ.
- Îñšþéçţ. Éàçĥ üñîţ šĥöŵš šöüŕçé àñđ ţàŕĝéţ šîđé ƃý šîđé, ŵîţĥ îţš çĥéçķ ƒîñđîñĝš, þŕöṽéñàñçé, àñđ ḿéḿöŕý ḿàţçĥ ƃéļöŵ.
- Đéçîđé.
aàþþŕöṽéš,rŕéĵéçţš (ŵîţĥ à ñöţé; ţĥé üñîţ đŕöþš ƃàçķ ţö đŕàƒţ ƒöŕ ţĥé ñéẋţupþàšš ţö ŕéđö),sšîĝñš öƒƒ,spacešķîþš,j/kḿöṽé. Éđîţ ţĥé ţàŕĝéţ ţéẋţ ƒîŕšţ ŵĥéñ îţ ñééđš à ţöüçĥ-üþ: šàṽé, ţĥéñ àþþŕöṽé; ţĥé ŕéçöŕđ ƃîñđš ţö ţĥé éđîţéđ ţéẋţ. - Ƃàţçĥ ţĥé çļéàñ öñéš. Àþþŕöṽé çļéàñ àþþŕöṽéš éṽéŕý üñîţ îñ ţĥé çüŕŕéñţ ƒîļţéŕ ţĥàţ ĥàš ñö ƒîñđîñĝš, šö ýöü ŕéàđ ţĥé éẋçéþţîöñš ŕàţĥéŕ ţĥàñ ţĥé ƃüļķ.
- Ļéţ ţĥé ÀÎ ŕéàđ ƒîŕšţ. ÀÎ þŕé-ŕéṽîéŵ… šçöŕéš ţĥé þéñđîñĝ üñîţš ŵîţĥ ýöüŕ ḿöđéļ ƃéƒöŕé ýöü ļööķ; éàçĥ üñîţ ţĥéñ çàŕŕîéš àñ ÀÎ ŕéṽîéŵ šçöŕé, šö ýöü šþéñđ ýöüŕ àţţéñţîöñ ŵĥéŕé îţ đîšàĝŕééš. Ƒîẋ ŵîţĥ ÀÎ đŕàƒţš à çöŕŕéçţîöñ ţĥŕöüĝĥ ţĥé šàḿé šàṽé þàţĥ àš à ḿàñüàļ éđîţ.
Àþþŕöṽàļš ŕàîšé reviewed çöṽéŕàĝé îḿḿéđîàţéļý; ţĥé ĝàţé çéļļ ýöü éñţéŕéđ ƒŕöḿ ĝöéš ĝŕééñ ŵĥéñ îţš ţĥŕéšĥöļđ çļéàŕš.
Ţĥé ǫüéüé ŵîţĥ éṽéŕý ļàñĝüàĝé îñ öñé ļîšţ, öñé üñîţ ĥéļđ öñ éàçĥ öƒ îţš ƒîṽé çöñţéẋţ ļàýéŕš îñ ţüŕñ, àñ àþþŕöṽàļ ţàķéñ ŵîţĥ ţĥé ķéýƃöàŕđ, àñđ ţĥé ƃàţçĥ ţĥàţ çļéàŕš ţĥé üñîţš ñö çĥéçķ ƒļàĝĝéđ.
Ŕéṽîéŵ çöñṽéŕšàţîöñàļļý; üšéƒüļ ŵĥéñ ýöü'ŕé ţĥé ŕéṽîéŵéŕ ƃüţ ñöţ àţ ţĥé đéšķţöþ:
Ŵĥàţ'š àŵàîţîñĝ ŕéṽîéŵ îñ Ƒŕéñçĥ? Šĥöŵ ḿé ţĥé öñéš ŵîţĥ ƒîñđîñĝš ƒîŕšţ.
Ţĥé àššîšţàñţ ŕéàđš kapi status --review --json, þŕéšéñţš éàçĥ üñîţ ŵîţĥ îţš ƒîñđîñĝš, àñđ ŕéçöŕđš ýöüŕ ṽéŕđîçţš ŵîţĥ kapi apply (kind:"review"). Ýöü šàý "àþþŕöṽé", "ŕéĵéçţ: ţĥé ţöñé îš öƒƒ", öŕ "ƒîẋ ţĥé ţéŕḿ àñđ àþþŕöṽé"; ƒöŕ ţĥé ļàšţ öñé îţ éđîţš ţĥé ţàŕĝéţ ţĥŕöüĝĥ ţĥé ŕöüñđ-ţŕîþ ƒîŕšţ, ţĥéñ ŕéçöŕđš ţĥé àþþŕöṽàļ àĝàîñšţ ţĥé ñéŵ ĥàšĥ.
Ţĥé ŵöŕķļîšţ àñđ ţĥé àþþŕöṽàļ àŕé öñé çöḿḿàñđ éàçĥ:
kapi status --review # units awaiting a person: file, id, locale
kapi apply <<<'{"kind":"review","file":"src/locales/fr/app.json","id":"save.label","locale":"fr","status":"reviewed"}'
Öñé ǫüéüé ĥöļđš éṽéŕý ļàñĝüàĝé. À ţŕàñšļàţéđ üñîţ ñöţ ýéţ àþþŕöṽéđ îš öñé ŕöŵ;
à šöüŕçé üñîţ ýöüŕ source_gate îš ŵàîţîñĝ öñ îš àñöţĥéŕ, ḿàŕķéđ source îñ
ţĥé ļöçàļé çöļüḿñ àñđ "isSource": true îñ ţĥé ĴŠÖÑ. --lang ñàŕŕöŵš ţĥé
ļîšţîñĝ, àñđ ţĥé šöüŕçé ļàñĝüàĝé îš öñé öƒ ţĥé çĥöîçéš:
kapi status --review --lang fr # one language
kapi status --review --lang fr,de # several, comma-separated or repeated
kapi status --review --lang en # the source-language units
kapi apply ŕéçöŕđš ţàŕĝéţ-ļàñĝüàĝé đéçîšîöñš. Àþþŕöṽé šöüŕçé ŵöŕđîñĝ îñ ţĥé
Ŕéṽîéŵ þàĝé öƒ Kapi Đéšķţöþ, ŵĥîçĥ ŵŕîţéš îţ ţö ţĥé šàḿé þŕöĵéçţ šţöŕé üñđéŕ
ţĥé šöüŕçé ļöçàļé.
Àđđŕéšš ţĥé üñîţ éẋàçţļý àš ţĥé ŵöŕķļîšţ ļîšţš îţ. status îš "reviewed" ƃý đéƒàüļţ; "signed-off" îš ţĥé öþţîöñàļ ƒîñàļ ŕüñĝ ƒöŕ çöñţŕàçţüàļ öŕ ŕéĝüļàţéđ çöñţéñţ. Ţĥé šţàţé ŕéçöŕđ ļàñđš îñ ţĥé þŕöĵéçţ šţöŕé'š ŵöŕķîñĝ šéţ; kapi commit ŵŕîţéš îţ îñţö ţĥé üñîţ-šţàţé ŕéçöŕđ üñđéŕ .kapi/state/, ŵĥîçĥ ýöü çöḿḿîţ ŵîţĥ ýöüŕ šöüŕçéš šö îţ ţŕàṽéļš ŵîţĥ ţĥé þŕöĵéçţ:
kapi status # what is staged but not yet committed
kapi commit # → .kapi/state/*.jsonl
git add .kapi/state/
Þîþîñĝ ŵöŕķš àţ šçàļé: kapi status --review --json ţĥŕöüĝĥ ýöüŕ öŵñ ƒîļţéŕ îñţö kapi apply. À kind:"memory" éñţŕý îš đéŕéñţ: îţ ƃàñķš à šöüŕçé→ţàŕĝéţ þàîŕ ƒöŕ ƒüţüŕé ŕéçýçļé ļéṽéŕàĝé àñđ đöéš ñöţ þŕöḿöţé à üñîţ ţö ŕéṽîéŵéđ.
:::ñöţé[Ŵöŕķš ŵîţĥ Bowrain] Ţĥîš ŕéçîþé'š ŵöŕķļîšţ ļîṽéš îñ ýöüŕ çĥéçķöüţ àñđ îţš üñîţ šţàţé îñ ţĥé çöḿḿîţţéđ ŕéçöŕđ: öñé ŕéṽîéŵéŕ, öñé ŵöŕķîñĝ çöþý àţ à ţîḿé. Ŵĥéñ šéṽéŕàļ ŕéṽîéŵéŕš (öŕ à ŕéṽîéŵéŕ àļöñĝšîđé àñ àĝéñţ) ñééđ öñé šĥàŕéđ ǫüéüé, ŵîţĥ àššîĝñḿéñţš, ļîṽé þŕéšéñçé àñđ þéŕ-ƃļöçķ ĥîšţöŕý, ţĥàţ îš ŵĥàţ çöññéçţîñĝ ţĥé þŕöĵéçţ ţö à Bowrain šéŕṽéŕ àđđš. Šéé ţĥé Bowrain đöçüḿéñţàţîöñ. :::
Ñéẋţ
- Šĥîþ ĝàţéš & ÇÎ: ţĥé
reviewedţĥŕéšĥöļđš ţĥîš šţàţé šàţîéš. - Ţĥé kapi ļööþ: þŕöđüçé / þŕöḿöţé / ŕéļéàšé, ķéþţ šéþàŕàţé.
- Ţĥé þŕöĵéçţ šţöŕé: ŵĥý ţĥé üñîţ-šţàţé ŕéçöŕđ îš ţĥé çöḿḿîţţéđ ĥàļƒ àñđ
store.dbţĥé đéŕîṽéđ öñé.