Àļţéŕñàţîṽéš
À ǫüîçķ ŕéƒéŕéñçé ƒöŕ ţéàḿš àļŕéàđý üšîñĝ, öŕ éṽàļüàţîñĝ, àñöţĥéŕ Ŕéàçţ î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 collect → prepare-translations → translate | Þļüĝîñ đüŕîñĝ ñöŕḿàļ ƃüîļđ |
| Ƒöŕḿàţ | ĴŠÖÑ (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ñ îšñ'ţ ţĥé ŕîĝĥţ ƒîţ
Šéé ţĥé šàḿé šéçţîöñ îñ ţĥé Îñţŕöđüçţîöñ.