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

Àļţéŕñàţîṽéš

À ǫüîçķ ŕéƒéŕéñçé ƒöŕ ţéàḿš àļŕéàđý üšîñĝ, öŕ éṽàļüàţîñĝ, àñöţĥéŕ Ŕéàçţ î18ñ ļîƃŕàŕý. Àļļ öƒ ţĥéšé àŕé šöļîđ þŕöĵéçţš; ţĥé đéŕéñçéš ƃéļöŵ àŕé àƃöüţ ƒîţ, ñöţ ǫüàļîţý.

ŕéàçţ-î18ñéẋţ

Ţĥé îñçüḿƃéñţ. Üšéš đéṽéļöþéŕ-àüţĥöŕéđ ķéýš àñđ à t(key) / <Trans> ŕüñţîḿé.

ŕéàçţ-î18ñéẋţneokapi-î18ñ
Šöüŕçé îđéñţîƒîéŕĐéṽéļöþéŕ-îñṽéñţéđ ķéý (ñàţüŕàļ-ļàñĝüàĝé ķéýš àļšö šüþþöŕţéđ)Šöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ
ĴŠẊ ŵŕàþþîñĝt("key") öŕ <Trans i18nKey="...">Þļàîñ ĴŠẊ
Éẋţŕàçţîöñi18next-cli / i18next-parser, öŕ ḿàñüàļÞļüĝîñ đüŕîñĝ ñöŕḿàļ ƃüîļđ
ƑöŕḿàţĴŠÖÑ (ñéšţéđ öŕ ƒļàţ); ẊĻÎƑƑ ṽîà éẋţéŕñàļ çöñṽéŕšîöñKBF ŵîţĥ šţŕüçţüŕàļ çöñţéẋţ, þļàçéĥöļđéŕš, þļüŕàļ ƒöŕḿš
Ŕüñţîḿé çöšţŠĥîþš ţĥé î18ñéẋţ ŕüñţîḿé (îñţéŕþöļàţîöñ, þļüŕàļ ŕéšöļüţîöñ, ŕéšöüŕçé šţöŕé); đîçţ ļöàđéđ àţ ŕüñţîḿéÎñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ

Ḿîĝŕàţîñĝ ƒŕöḿ ŕéàçţ-î18ñéẋţ ţýþîçàļļý ḿéàñš đŕöþþîñĝ ţĥé t() / <Trans> ŵŕàþþéŕš àñđ ŕé-ŕüññîñĝ ţĥé éẋţŕàçţ àĝàîñšţ ţĥé ƃàŕé ĴŠẊ. Éẋîšţîñĝ ţŕàñšļàţîöñš çàñ ƃé ļöàđéđ àš-îš îƒ ýöü ķéý ţĥéḿ ƃý ţĥé šàḿé šöüŕçé ţéẋţ; öţĥéŕŵîšé îţ'š à öñé-ţîḿé ŕé-ţŕàñšļàţîöñ þàšš ţĥŕöüĝĥ ýöüŕ çöñţéñţ ḿéḿöŕý.

ƑöŕḿàţĴŠ (ŕéàçţ-îñţļ)

Đéṽéļöþéŕ-àüţĥöŕéđ ḿéššàĝé đéšçŕîþţöŕš ŵîţĥ ÎÇÜ ƒöŕḿàţţîñĝ ƃàķéđ îñ.

ƑöŕḿàţĴŠneokapi-î18ñ
Šöüŕçé îđéñţîƒîéŕĐéṽéļöþéŕ-îñṽéñţéđ îđ (öŕ àüţö-ĥàšĥ öƒ ţĥé đéšçŕîþţöŕ)Šöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ
ĴŠẊ ŵŕàþþîñĝ<FormattedMessage> öŕ useIntl().formatMessage()Þļàîñ ĴŠẊ
Þļüŕàļš / šéļéçţŔàŵ ÎÇÜ ḿéššàĝé šţŕîñĝš<Plural> / <Select> àüţĥöŕîñĝ çöḿþöñéñţš
Éẋţŕàçţîöñ@formatjs/cliÞļüĝîñ đüŕîñĝ ñöŕḿàļ ƃüîļđ
Ŕüñţîḿé çöšţŠĥîþš intl-messageformat (ÎÇÜ þàŕšéŕ/ƒöŕḿàţţéŕ); çàñ þŕéçöḿþîļé ţö ÀŠŢ ţö đŕöþ ţĥé þàŕšéŕÎñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ

ƑöŕḿàţĴŠ'š ÎÇÜ-îñ-šöüŕçé àþþŕöàçĥ ĥàñđļéš çöḿþļéẋ ḿéššàĝé çöḿþöšîţîöñ ŵéļļ, ƃüţ ƒöŕçéš ţŕàñšļàţöŕš (àñđ đéṽéļöþéŕš) ţö ŵöŕķ îñ ÎÇÜ đîŕéçţļý. neokapi-î18ñ ķééþš ţĥé šöüŕçé ļööķîñĝ ļîķé Ŕéàçţ, ţĥéñ éḿîţš ţĥé çàñöñîçàļ ÎÇÜ ţéḿþļàţé ƒöŕ ţŕàñšļàţöŕš' ÇÀŢ ţööļš đöŵñšţŕéàḿ.

Ļîñĝüî

Ţĥé çļöšéšţ îñ þĥîļöšöþĥý: Ļîñĝüî üšéš ḿàçŕöš (<Trans>, t ţàĝĝéđ ţéḿþļàţéš) ţö ŕéŵŕîţé šöüŕçé ţéẋţ îñţö ĥàšĥéđ-ķéý ŕüñţîḿé ļööķüþš àţ ƃüîļđ ţîḿé.

Ļîñĝüîneokapi-î18ñ
Šöüŕçé îđéñţîƒîéŕŠöüŕçé ţéẋţ (Ƃàƃéļ ḿàçŕö öŕ ŠŴÇ þļüĝîñ)Šöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ (ṽîà ŠŴÇ þļüĝîñ)
ĴŠẊ ŵŕàþþîñĝ<Trans>Hello</Trans>, t\...`` ḿàçŕöÞļàîñ ĴŠẊ
Éẋţŕàçţîöñlingui extractÞļüĝîñ đüŕîñĝ ñöŕḿàļ ƃüîļđ
ƑöŕḿàţÞÖ (đéƒàüļţ), ĴŠÖÑ, ÇŠṼKBF ŵîţĥ šţŕüçţüŕàļ çöñţéẋţ, þļàçéĥöļđéŕš, þļüŕàļ ƒöŕḿš
Ŕüñţîḿé çöšţŠḿàļļ @lingui/core ŕüñţîḿé + çöḿþîļéđ çàţàļöĝš; đîçţ ļööķüþÎñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ

Ļîñĝüî àñđ neokapi-î18ñ àĝŕéé öñ "šöüŕçé ţéẋţ àš ķéý". Ţĥé çöŕé đéŕéñçé: Ļîñĝüî àšķš ýöü ţö öþţ éṽéŕý šţŕîñĝ îñţö ţĥé ḿàçŕö (<Trans>, t`...`); neokapi-î18ñ öþţš îñ ƃý đéƒàüļţ. t() îñ neokapi-î18ñ îš à šḿàļļ éšçàþé ĥàţçĥ ƒöŕ ñöñ-ĴŠẊ šţŕîñĝš, ñöţ ţĥé ñöŕḿàļ àüţĥöŕîñĝ þàţţéŕñ.

ƒƃţéé

Ţĥé ḿöđéŕñ çöñţîñüàţîöñ öƒ Ḿéţà'š fbt. ƒƃţéé ŕéƃüîļđš îţ ƒöŕ ŢýþéŠçŕîþţ, Ŕéàçţ 19, ÉŠḾ, àñđ Ṽîţé / Ñéẋţ.ĵš ŵîţĥ ƃöţĥ Ƃàƃéļ àñđ ŠŴÇ ţŕàñšƒöŕḿš, ŵĥîļé ķééþîñĝ ƒƃţ'š àüţĥöŕîñĝ ḿöđéļ: éṽéŕý ţŕàñšļàţàƃļé šţŕîñĝ îš ŵŕàþþéđ îñ àñ éẋþļîçîţ <fbt> ḿàŕķéŕ, àñđ ţĥé šöüŕçé ţéẋţ îš ţĥé ķéý.

ƒƃţééneokapi-î18ñ
Šöüŕçé îđéñţîƒîéŕŠöüŕçé ţéẋţ + ŕéǫüîŕéđ descŠöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ
ĴŠẊ ŵŕàþþîñĝ<fbt desc="...">, fbt() / fbs()Þļàîñ ĴŠẊ
Þļüŕàļš / ĝéñđéŕ<fbt:plural>, <fbt:pronoun>, <fbt:enum><Plural> / <Select> àüţĥöŕîñĝ çöḿþöñéñţš
Éẋţŕàçţîöñfbtee collectprepare-translationstranslateÞļüĝîñ đüŕîñĝ ñöŕḿàļ ƃüîļđ
ƑöŕḿàţĴŠÖÑ (source_strings.json + þéŕ-ļöçàļé ƒîļéš)KBF ŵîţĥ šţŕüçţüŕàļ çöñţéẋţ, þļàçéĥöļđéŕš, þļüŕàļ ƒöŕḿš
Ŕüñţîḿé çöšţŠĥîþš ţĥé ƒƃţ ŕüñţîḿé ţö ŕéšöļṽé þàŕàḿš/þļüŕàļ/þŕöñöüñ àţ ŕéñđéŕ; ţŕàñšļàţîöñš ļöàđéđÎñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ

ƒƃţéé šĥàŕéš neokapi-î18ñ'š "šöüŕçé ţéẋţ àš ķéý" þĥîļöšöþĥý, ƃüţ ţàķéš ţĥé öþþöšîţé šţàñçé öñ ŵŕàþþîñĝ: îţ đéļîƃéŕàţéļý ŕéǫüîŕéš àñ <fbt> ḿàŕķéŕ (ŵîţĥ à desc) àŕöüñđ éṽéŕý ţŕàñšļàţàƃļé šţŕîñĝ šö ţĥé Ƃàƃéļ / ŠŴÇ çöḿþîļéŕ àñđ ÉŠĻîñţ þļüĝîñ çàñ šţàţîçàļļý àñàļýšé, ţýþé-çĥéçķ, àñđ éẋţŕàçţ îţ. Ţĥàţ ƃüýš çöḿþîļé-ţîḿé ĝüàŕàñţééš àñđ đéçļàŕàţîṽé îñļîñé þļüŕàļ / ĝéñđéŕ ĥàñđļîñĝ, àţ ţĥé çöšţ öƒ ŵŕàþþîñĝ çéŕéḿöñý öñ éṽéŕý šţŕîñĝ, ţĥé šàḿé ŵŕàþþîñĝ ţàẋ neokapi-î18ñ ŕéḿöṽéš ƃý éẋţŕàçţîñĝ þļàîñ ĴŠẊ àüţöḿàţîçàļļý.

Þàŕàĝļîđé (Îñļàñĝ)

Ţýþéđ, þéŕ-ḿéššàĝé ƒüñçţîöñš ĝéñéŕàţéđ àţ ƃüîļđ ţîḿé. À ḿéššàĝé welcome ƃéçöḿéš m.welcome().

Þàŕàĝļîđéneokapi-î18ñ
Šöüŕçé îđéñţîƒîéŕĐéṽéļöþéŕ-îñṽéñţéđ ḿéššàĝé îđŠöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ
ĴŠẊ ŵŕàþþîñĝĜéñéŕàţéđ ƒüñçţîöñ çàļļ (m.welcome())Þļàîñ ĴŠẊ
Ţŕéé-šĥàķéàƃîļîţýÉṽéŕý ḿéššàĝé îš à ƒüñçţîöñ; éẋçéļļéñţ ţŕéé-šĥàķîñĝĐîçţ ļööķüþ; ţĥé đîçţ îš öñé öƃĵéçţ
Ŕüñţîḿé çöšţḾîñîḿàļ ŕüñţîḿé; ţŕéé-šĥàķéñ þéŕ-ḿéššàĝé ƒüñçţîöñš, šö üñüšéđ ḿéššàĝéš çöšţ ~0Îñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ

Þàŕàĝļîđé'š ţýþéđ-ƒüñçţîöñ ḿöđéļ ĝîṽéš šţŕöñĝ ŕéƒàçţöŕîñĝ šüþþöŕţ ƃüţ ŕéǫüîŕéš ţĥé îđš-àš-ƒüñçţîöñ-ñàḿéš ḿöđéļ. neokapi-î18ñ îš šöüŕçé-ţéẋţ-àš-ķéý; ţĥé ţŵö çàñ çöéẋîšţ îñ à çöđéƃàšé îƒ ñééđéđ, ƃüţ üšüàļļý ýöü þîçķ öñé.

Ŵĥéŕé neokapi-î18ñ îš üñüšüàļ

Ţŵö þŕöþéŕţîéš ƒöļļöŵ ƒŕöḿ çĥöîçéš ţĥé ţàƃļéš àƃöṽé đöñ'ţ çàþţüŕé:

  • Ķéýš šüŕṽîṽé ŕéƒàçţöŕîñĝ. Ţĥé ķéý îš đéŕîṽéđ ƒŕöḿ ţĥé šöüŕçé ţéẋţ àñđ ţĥé éļéḿéñţ'š öŵñ ţàĝ, àñđ đéļîƃéŕàţéļý ñöţ ƒŕöḿ îţš àñçéšţöŕš. Ŵŕàþþîñĝ à šéçţîöñ îñ à ñéŵ <div>, ḿöṽîñĝ à þàŕàĝŕàþĥ îñţö à <Card>, ŕéšţŕüçţüŕîñĝ ţĥé þàĝé àŕöüñđ îţ: ñöñé öƒ ţĥéšé çĥàñĝé à ķéý, šö ñöñé öƒ ţĥéḿ öŕþĥàñ à ţŕàñšļàţîöñ. Ţĥé éļéḿéñţ îš šţîļļ éñöüĝĥ ţö ķééþ à ƃüţţöñ'š "Öþéñ" đîšţîñçţ ƒŕöḿ à ḿéñü îţéḿ'š; ŵĥéŕé îţ îšñ'ţ, ýöü đîšàḿƃîĝüàţé éẋþļîçîţļý ŵîţĥ à ñöţé.
  • Ŕéṽîéŵ ĥàþþéñš öñ ţĥé ŕüññîñĝ àþþ. ÀĻŢ+çļîçķ à šţŕîñĝ ţö šéé îţš šöüŕçé àñđ éđîţ îţš ţàŕĝéţ, ŵîţĥ ţéŕḿîñöļöĝý àñđ çĥéçķ ƒîñđîñĝš þàîñţéđ öñţö ţĥé ļîṽé ţéẋţ, àñđ ţĥé éđîţ ŵŕîţţéñ šţŕàîĝĥţ ƃàçķ ţö ţĥé .kbf.json àš à ĝîţ đ. Ŕéṽîéŵ ñééđš ñö àççöüñţ àñđ ñö ñéţŵöŕķ: ţĥé šţŕîñĝš àŕé ƒîļéš îñ ýöüŕ ŕéþöšîţöŕý, šö à ŕéṽîéŵéŕ ŵîţĥ à çĥéçķöüţ îš à ŕéṽîéŵéŕ.

Ŵĥîçĥ ţö þîçķ

  • Ýöü ŵàñţ žéŕö-ŵŕàþþéŕ éŕĝöñöḿîçš àñđ ýöüŕ šţŕîñĝš ḿöšţļý ļîṽé îñ ĴŠẊ → neokapi-î18ñ.
  • Ýöü ŵàñţ ţýþéđ ḿéššàĝé ƒüñçţîöñš ţĥàţ ţŕéé-šĥàķé ţö ţĥé ḿéššàĝéš ýöü üšé → Þàŕàĝļîđé.
  • Ýöü'ŕé đééþļý îñṽéšţéđ îñ ÎÇÜ-àš-šöüŕçé → ƑöŕḿàţĴŠ.
  • Ýöü ŵàñţ éẋþļîçîţ, çöḿþîļé-ţîḿé-çĥéçķéđ îñļîñé ḿàŕķéŕš ŵîţĥ đéçļàŕàţîṽé þļüŕàļ/ĝéñđéŕ → ƒƃţéé.
  • Ýöü ĥàṽé à ļàŕĝé éẋîšţîñĝ ŕéàçţ-î18ñéẋţ çöđéƃàšé → šţàý ŵîţĥ ŕéàçţ-î18ñéẋţ üñļéšš ýöü'ŕé đöîñĝ à ŕéŵŕîţé àñýŵàý.

Ŵĥéñ neokapi-î18ñ îšñ'ţ ţĥé ŕîĝĥţ ƒîţ

Šéé ţĥé šàḿé šéçţîöñ îñ ţĥé Îñţŕöđüçţîöñ.