Ŕéṽîéŵ & àþþŕöṽé
Ĝöàļ: ţàķé ţŕàñšļàţîöñš þàšţ ŵĥàţ à ḿàçĥîñé çàñ đéçîđé. kapi up þŕöđüçéš: îţ ƃŕîñĝš éṽéŕý ƃļöçķ ţö ţŕàñšļàţéđ àñđ ĥöļđš ţĥé ŕéšţ ƃàçķ ƒöŕ ŕéṽîéŵ. À þéŕšöñ àþþŕöṽéš îţ; àñ àššîšţàñţ çàñ þŕé-ŕéṽîéŵ ƒîŕšţ, ļéàṽîñĝ à šçöŕé àñđ îţš ŕéàšöñš ƒöŕ ţĥé þéŕšöñ ţö ŕéàđ. Éàçĥ ŕéṽîéŵ ļàñđš îñ ţĥé þŕöĵéçţ'š šţöŕé, ƃöüñđ ţö ţĥé ŕéṽîšîöñ öƒ ţĥé éẋàçţ ţŕàñšļàţîöñ îţ àþþŕöṽéš àñđ öƒ ţĥé šöüŕçé îţ àþþŕöṽéš îţ ƒöŕ, šö éđîţîñĝ éîţĥéŕ šîđé đŕöþš ţĥé àþþŕöṽàļ. Ţĥé ḿöđéļ îš ţĥé ķàþî ļööþ; ţĥé šţöŕé îš ţĥé þŕöĵéçţ šţöŕé.
Šéţţļé ţĥé šöüŕçé ƒîŕšţ
Ţĥé ļööþ ĥàš à ĝàţé ƃéƒöŕé ţĥé ţàŕĝéţ ŵöŕķ: kapi up šéţţļéš ýöüŕ šöüŕçé àñđ ĥöļđš ţĥéŕé üñţîļ îţ çļéàŕš îţš ƃàŕ, šö à šöüŕçé ţĥàţ îš üñçĥéçķéđ, öƒƒ-ƃŕàñđ öŕ éḿþţý îš ñöţ ţŕàñšļàţéđ îñţö éṽéŕý ļàñĝüàĝé àñđ ţĥéñ ŕéđöñé ŵĥéñ ýöü ƒîẋ îţ. À ƃļöçķ ŵĥöšé šöüŕçé ĥàš ñöţ šéţţļéđ îš ĥéļđ: ķàþî þŕöđüçéš ñö ţŕàñšļàţîöñš ƒöŕ îţ, šþéñđš ñö ÀÎ öñ îţ, àñđ ŕéþöŕţš îţ.
ķàþî üþ šéţţļéš ţĥé šöüŕçé, ĥöļđš àñý ƃļöçķ ƃéļöŵ đéƒàüļţš.ţŕàñšļàţé_àƒţéŕ, àñđ ţŕàñšļàţéš öñļý ţĥé ƃļöçķš ţĥàţ çļéàŕéđ îţ; ţĥé ĥéļđ öñéš ŵàîţ ƒöŕ ýöü ţö šéţţļé ţĥéḿ.
Ţĥé ļöçàļ šöüŕçé-šéţţļé ļööþ, éñđ ţö éñđ:
- Ŕüñ.
kapi upšéţţļéš éàçĥ šöüŕçé ƃļöçķ (ţéŕḿîñöļöĝý, ṽöîçé, šöüŕçé çĥéçķš), šţàḿþš îţ ŵŕîţţéñ, àñđ ĥöļđš àñý ƃļöçķ ŵĥöšé çĥéçķš ƒàîļ (öŕ, ŵîţĥtranslate_after: established, àñý ƃļöçķ à þéŕšöñ ĥàš ñöţ àþþŕöṽéđ). Ŕéàđý ƃļöçķš ţŕàñšļàţé; ĥéļđ ƃļöçķš đö ñöţ. À ŕüñ ţĥàţ çöüļđ ţŕàñšļàţé ñöţĥîñĝ îš ŕéþöŕţéđ àš ĥéļđ öñ šöüŕçé. - Šéé ŵĥàţ'š ĥéļđ.
kapi statusšĥöŵš šöüŕçé ŕéàđîñéšš àļöñĝšîđé çöṽéŕàĝé;kapi check --shipéñƒöŕçéš ţĥé šàḿé šöüŕçé ƃàŕ àñđ ļîšţš ţĥé ƃļöçķš ţĥàţ ƒàîļ îţ. - Šéţţļé. Ƒîẋ ţĥé ƒļàĝĝéđ ţéŕḿš, ṽöîçé ƒîñđîñĝš, öŕ šöüŕçé ţéẋţ, ţĥŕöüĝĥ ţĥé ŕöüñđ-ţŕîþ (
kapi apply) öŕ ýöüŕ éđîţöŕ, šö ţĥé ñéẋţ çĥéçķ çļéàŕš ţĥéḿ. Àþþŕöṽîñĝ à šöüŕçé ƃļöçķ îš àdecideöþéŕàţîöñ öñ ţĥé šöüŕçé, ƒöŕ ţĥé šţŕîçţestablishedļéṽéļ. - Ŕé-ŕüñ.
kapi upŕé-šéţţļéš öñļý ţĥé ƃļöçķš ŵĥöšé šöüŕçé çĥàñĝéđ àñđ ţŕàñšļàţéš ţĥé ñéŵļý-çļéàŕéđ öñéš. Ŕéþéàţ üñţîļ ñöţĥîñĝ îš ĥéļđ.
Ţĥé ļéṽéļ îš defaults.translate_after îñ ţĥé ŕéçîþé:
defaults:
translate_after: written # the default: source must clear its automated
# terminology, voice and source checks before translating
written îš ţĥé đéƒàüļţ àñđ ŕéǫüîŕéš ţĥé àüţöḿàţéđ šöüŕçé çĥéçķš ţö þàšš. established àļšö ŕéǫüîŕéš à þéŕšöñ ţö àþþŕöṽé ţĥé šöüŕçé, ƒöŕ éẋàḿþļé ƒöŕ ṽöîçé-çŕîţîçàļ öŕ ŕéĝüļàţéđ çöñţéñţ. none đîšàƃļéš ţĥé ĥöļđ àñđ àļļöŵš ţŕàñšļàţîöñ ŕéĝàŕđļéšš öƒ šöüŕçé šţàţé:
defaults:
translate_after: none # opt out: translate every block, settled or not
Ŕéṽîéŵ ţĥé ţŕàñšļàţîöñš
Àþþŕöṽîñĝ ţŕàñšļàţîöñš îš ţĥé þéŕšöñ'š ĥàļƒ öƒ ţĥé ļööþ. Ŵöŕķ ţĥé ǫüéüé îñ Ķàþî Đéšķţöþ, ţĥŕöüĝĥ ýöüŕ àššîšţàñţ, öŕ öñ ţĥé çöḿḿàñđ ļîñé.
- Đéšķţöþ
- Àĝéñţ (Çļàüđé)
- ÇĻÎ
Ţĥé Ŕéṽîéŵ šüŕƒàçé îš à ǫüéüé ýöü ŵöŕķ ţĥŕöüĝĥ, ķéýƃöàŕđ-ƒîŕšţ:
- Éñţéŕ ƒŕöḿ à ĝàţé çéļļ. Çļîçķ à šĥîþ-ĝàţé çéļļ öñ ţĥé þŕöĵéçţ ṽîéŵ (öŕ öþéñ Ŕéṽîéŵ ƒŕöḿ ţĥé šîđéƃàŕ); ţĥé ǫüéüé ñàŕŕöŵš ţö ţĥàţ çöļļéçţîöñ àñđ ļöçàļé, öŕđéŕéđ ƒîñđîñĝš-ƒîŕšţ šö ţĥé ŕîšķý ƃļöçķš çöḿé üþ ƒîŕšţ.


- Îñšþéçţ. Éàçĥ ƃļöçķ šĥöŵš šöüŕçé àñđ ţàŕĝéţ šîđé ƃý šîđé, ŵîţĥ îţš çĥéçķ ƒîñđîñĝš, þŕöṽéñàñçé, àñđ ḿéḿöŕý ḿàţçĥ ƃéļöŵ.
- Đéçîđé.
aàþþŕöṽéš,rŕéĵéçţš (ŵîţĥ à ñöţé; ţĥé ƃļöçķ đŕöþš ƃàçķ ţö đŕàƒţ ƒöŕ ţĥé ñéẋţupþàšš ţö ŕéđö),spacešķîþš,j/kḿöṽé, àñđeþüţš ţĥé çüŕšöŕ îñ ţĥé ţŕàñšļàţîöñ. Éđîţ ţĥé ţàŕĝéţ ţéẋţ ƒîŕšţ ŵĥéñ îţ ñééđš à ţöüçĥ-üþ: ļîñķš, ƃöļđ àñđ þļàçéĥöļđéŕš šţàý îñ þļàçé àš çĥîþš ýöü ţýþé àŕöüñđ, àñđ à þļüŕàļ šĥöŵš öñé ƒîéļđ þéŕ ƒöŕḿ. Šàṽé, ţĥéñ àþþŕöṽé; ţĥé ŕéçöŕđ ƃîñđš ţö ţĥé éđîţéđ ţéẋţ. Ŵĥéñ šöḿéöñé çĥàñĝéđ ţĥé ƒîļé àƒţéŕ ýöü öþéñéđ ţĥé ƃļöçķ, ţĥé šàṽé öŕ ţĥé àþþŕöṽàļ šţöþš àñđ šĥöŵš ţĥé ţéẋţ àš îţ îš ñöŵ, àñđ ýöü çĥööšé ŵĥéţĥéŕ ţö àþþļý ýöüŕš öṽéŕ îţ. Ţĥé Çĥàñĝéš çàŕđ ļîšţš ŵĥö çĥàñĝéđ ţĥé ƃļöçķ, ŵĥéŕé àñđ ŵĥéñ. - Ƃàţçĥ ţĥé çļéàñ öñéš. Àþþŕöṽé çļéàñ àþþŕöṽéš éṽéŕý ƃļöçķ îñ ţĥé çüŕŕéñţ ƒîļţéŕ ţĥàţ ĥàš ñö ƒîñđîñĝš, šö ýöü ŕéàđ öñļý ţĥé éẋçéþţîöñš. Éàçĥ ƃļöçķ îš çĥéçķéđ àĝàîñ àš îţ îš àþþŕöṽéđ; öñé ŵĥöšé ţŕàñšļàţîöñ çĥàñĝéđ šîñçé ţĥé ǫüéüé ŵàš ļîšţéđ, öŕ ţĥàţ ĥàš ĝàîñéđ à ƒîñđîñĝ, šţöþš ţĥé ƃàţçĥ šö ýöü ŕéàđ îţ ƒîŕšţ.
- Ļéţ ţĥé ÀÎ ŕéàđ ƒîŕšţ. ÀÎ þŕé-ŕéṽîéŵ… šçöŕéš ţĥé þéñđîñĝ ƃļöçķš ŵîţĥ ýöüŕ ḿöđéļ ƃéƒöŕé ýöü ļööķ; éàçĥ ƃļöçķ ţĥéñ çàŕŕîéš àñ ÀÎ ŕéṽîéŵ šçöŕé, šö ýöü šþéñđ ýöüŕ àţţéñţîöñ ŵĥéŕé îţ đîšàĝŕééš. Ƒîẋ ŵîţĥ ÀÎ đŕàƒţš à çöŕŕéçţîöñ ţĥŕöüĝĥ ţĥé šàḿé šàṽé þàţĥ àš à ḿàñüàļ éđîţ.
Àþþŕöṽàļš ŕàîšé àþþŕöṽéđ çöṽéŕàĝé îḿḿéđîàţéļý; ţĥé ĝàţé çéļļ ýöü éñţéŕéđ ƒŕöḿ ĝöéš ĝŕééñ ŵĥéñ îţš ţĥŕéšĥöļđ çļéàŕš.
Ţĥé ǫüéüé ŵîţĥ éṽéŕý ļàñĝüàĝé îñ öñé ļîšţ, öñé ƃļöçķ ĥéļđ öñ éàçĥ öƒ îţš ƒîṽé çöñţéẋţ ļàýéŕš îñ ţüŕñ, àñ àþþŕöṽàļ ţàķéñ ŵîţĥ ţĥé ķéýƃöàŕđ, àñđ ţĥé ƃàţçĥ ţĥàţ çļéàŕš ţĥé ƃļöçķš ñö çĥéçķ ƒļàĝĝéđ.
Ŕéṽîéŵ îñ çöñṽéŕšàţîöñ ŵĥéñ ýöü àŕé àŵàý ƒŕöḿ ţĥé đéšķţöþ:
Ŵĥàţ'š àŵàîţîñĝ ŕéṽîéŵ îñ Ƒŕéñçĥ? Šĥöŵ ḿé ţĥé öñéš ŵîţĥ ƒîñđîñĝš ƒîŕšţ.
Ţĥé àššîšţàñţ ŕéàđš kapi status --review --json, þŕéšéñţš éàçĥ ƃļöçķ ŵîţĥ îţš ƒîñđîñĝš, àñđ đŕàƒţš ýöüŕ ṽéŕđîçţš àš decide öþéŕàţîöñš ƒöŕ ýöü ţö àþþļý ŵîţĥ kapi apply: à đéçîšîöñ îš à þéŕšöñ'š, šö ţĥé àššîšţàñţ ŕéçöŕđš à þŕé-ŕéṽîéŵ àñđ ýöü àþþŕöṽé. Ýöü šàý "àþþŕöṽé", "ŕéĵéçţ: ţĥé ţöñé îš öƒƒ", öŕ "ƒîẋ ţĥé ţéŕḿ àñđ àþþŕöṽé"; ƒöŕ ţĥé ļàšţ öñé ţĥé ţàŕĝéţ îš éđîţéđ ţĥŕöüĝĥ ţĥé ŕöüñđ-ţŕîþ ƒîŕšţ, àñđ ţĥé àþþŕöṽàļ ñàḿéš ţĥé ŕéṽîšîöñ öƒ ţĥé ñéŵ ŵöŕđîñĝ.
Ţĥé ŵöŕķļîšţ, ţĥé ŕéàđ àñđ ţĥé àþþŕöṽàļ àŕé öñé çöḿḿàñđ éàçĥ:
kapi status --review # blocks awaiting a person: file, key, locale
kapi inspect src/locales/en/app.json --jsonl # each block's editions, with the revision a decision names
kapi apply <<<'{"ops":[{"op":"decide","at":{"doc":"src/locales/en/app.json","block":"save.label","edition":"fr"},"if_match":"r:74dbfac2ed1c9d6e","outcome":"establish"}]}'
Öñé ǫüéüé ĥöļđš éṽéŕý ļàñĝüàĝé. À ţŕàñšļàţéđ ƃļöçķ ñöţ ýéţ àþþŕöṽéđ îš öñé ŕöŵ;
à šöüŕçé ƃļöçķ ýöüŕ translate_after ļéṽéļ ĥöļđš îš àñöţĥéŕ, ḿàŕķéđ 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 blocks
À đéçîšîöñ ñàḿéš ţĥé šöüŕçé đöçüḿéñţ (ţĥé ŕöŵ'š relative þàţĥ), ţĥé ƃļöçķ (îţš key) àñđ ţĥé éđîţîöñ, àñđ çàŕŕîéš àš if_match ţĥé ŕéṽîšîöñ kapi inspect ļîšţš ƒöŕ ţĥàţ éđîţîöñ, šö îţ ƃîñđš ţö ţĥé ŵöŕđîñĝ ýöü ŕéàđ. À ţŕàñšļàţîöñ ţĥàţ çĥàñĝéđ šîñçé ýöü ŕéàđ îţ ŕéƒüšéš ţĥé đéçîšîöñ àš stale, ŵîţĥ îţš çüŕŕéñţ ţéẋţ. outcome îš establish öŕ reject; à đéçîšîöñ ŵîţĥ ñö éđîţîöñ àþþŕöṽéš ţĥé šöüŕçé ŵöŕđîñĝ, ŵĥîçĥ Ķàþî Đéšķţöþ'š Ŕéṽîéŵ þàĝé àļšö đöéš. Ŕüñ ƒŕöḿ àñ àššîšţàñţ'š šĥéļļ, à đéçîšîöñ îš ŕéƒüšéđ üñļéšš KAPI_ACTOR=person šàýš à þéŕšöñ îš àţ ţĥé ķéýƃöàŕđ. Ţĥé đéçîšîöñ îš ŕéçöŕđéđ îñ ţĥé þŕöĵéçţ šţöŕé àñđ îš đüŕàƃļé àţ öñçé, šö éṽéŕý çĥéçķöüţ öƒ ţĥé þŕöĵéçţ ŕéàđš îţ àñđ ţĥéŕé îš ñö šéçöñđ šţéþ. Ŕéàđ îţ ƃàçķ, ŵîţĥ ţĥé éṽîđéñçé ƃéĥîñđ îţ, ƒŕöḿ kapi context log.
Ţö šĥàŕé ţĥé ŕéçöŕđ ŵîţĥ ţĥé ŕéšţ öƒ ţĥé ţéàḿ, ŕüñ kapi context sync. Šéé Šĥàŕîñĝ çöñţéẋţ.
Þîþîñĝ ŵöŕķš àţ šçàļé: kapi inspect --jsonl ţĥŕöüĝĥ ýöüŕ öŵñ ƒîļţéŕ îñţö kapi apply, öñé decide öþéŕàţîöñ þéŕ éđîţîöñ ýöü àççéþţ. À memory öþéŕàţîöñ îš đéŕéñţ: îţ ƃàñķš à šöüŕçé→ţàŕĝéţ þàîŕ ƒöŕ ƒüţüŕé ŕéçýçļé ļéṽéŕàĝé àñđ đöéš ñöţ þŕöḿöţé à ƃļöçķ ţö ŕéṽîéŵéđ.
:::ñöţé[Ŵöŕķš ŵîţĥ Ƃöŵŕàîñ] Ţĥîš ŕéçîþé'š ŵöŕķļîšţ ļîṽéš îñ ýöüŕ çĥéçķöüţ àñđ îţš đéçîšîöñš îñ ţĥé þŕöĵéçţ'š öŵñ šţöŕé: öñé ŕéṽîéŵéŕ, öñé ŵöŕķîñĝ çöþý àţ à ţîḿé. Ŵĥéñ šéṽéŕàļ ŕéṽîéŵéŕš (öŕ à ŕéṽîéŵéŕ àļöñĝšîđé àñ àĝéñţ) ñééđ öñé šĥàŕéđ ǫüéüé, ŵîţĥ àššîĝñḿéñţš, ļîṽé þŕéšéñçé àñđ þéŕ-ƃļöçķ ĥîšţöŕý, ţĥàţ îš ŵĥàţ çöññéçţîñĝ ţĥé þŕöĵéçţ ţö à Ƃöŵŕàîñ šéŕṽéŕ àđđš. Šéé ţĥé Ƃöŵŕàîñ đöçüḿéñţàţîöñ. :::
Ñéẋţ
- Šĥîþ ĝàţéš & ÇÎ: ţĥé
establishedţĥŕéšĥöļđš ţĥîš šţàţé šàţîéš. - Ţĥé ķàþî ļööþ: þŕöđüçé / þŕöḿöţé / ŕéļéàšé, ķéþţ šéþàŕàţé.
- Ţĥé þŕöĵéçţ šţöŕé: ţĥé çöñţéẋţ šţöŕé ţĥàţ ĥöļđš ţĥé đéçîšîöñ ŕéçöŕđ, àñđ ţĥé ŵöŕķîñĝ đàţà ķàþî ŕéƃüîļđš.