Àļţéŕñàţîṽéš
΃ ýöü üšé öŕ àŕé éṽàļüàţîñĝ àñöţĥéŕ Ŕéàçţ î18ñ ļîƃŕàŕý, ţĥéšé ţàƃļéš šĥöŵ ŵĥéŕé ñéöķàþî-î18ñ đéŕš: ĥöŵ à šţŕîñĝ îš îđéñţîƒîéđ, ĥöŵ ḿüçĥ ýöü ŵŕàþ, àñđ ŵĥàţ šĥîþš àţ ŕüñţîḿé. Éṽéŕý ļîƃŕàŕý ĥéŕé îš ŵéļļ ḿàîñţàîñéđ, àñđ ţĥé çöḿþàŕîšöñ îš àƃöüţ ƒîţ ƒöŕ ýöüŕ çöđéƃàšé.
ŕéàçţ-î18ñéẋţ
Ţĥé ḿöšţ ŵîđéļý üšéđ öþţîöñ. Îţ üšéš đéṽéļöþéŕ-àüţĥöŕéđ ķéýš àñđ à t(key) / <Trans> ŕüñţîḿé.
| ŕéàçţ-î18ñéẋţ | ñéöķàþî-î18ñ | |
|---|---|---|
| Šöüŕçé îđéñţîƒîéŕ | Đéṽéļöþéŕ-îñṽéñţéđ ķéý (ñàţüŕàļ-ļàñĝüàĝé ķéýš àļšö šüþþöŕţéđ) | Šöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ |
| ĴŠẊ ŵŕàþþîñĝ | t("key") öŕ <Trans i18nKey="..."> | Þļàîñ ĴŠẊ |
| Éẋţŕàçţîöñ | i18next-cli / i18next-parser, öŕ ḿàñüàļ | Þļüĝîñ đüŕîñĝ ñöŕḿàļ ƃüîļđ |
| Ƒöŕḿàţ | ĴŠÖÑ (ñéšţéđ öŕ ƒļàţ); ẊĻÎƑƑ ṽîà éẋţéŕñàļ çöñṽéŕšîöñ | ĶƂƑ ŵîţĥ šţŕüçţüŕàļ çöñţéẋţ, þļàçéĥöļđéŕš, þļüŕàļ ƒöŕḿš |
| Ŕüñţîḿé çöšţ | Šĥîþš ţĥé î18ñéẋţ ŕüñţîḿé (îñţéŕþöļàţîöñ, þļüŕàļ ŕéšöļüţîöñ, ŕéšöüŕçé šţöŕé); đîçţ ļöàđéđ àţ ŕüñţîḿé | Îñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ |
Ḿîĝŕàţîñĝ ƒŕöḿ ŕéàçţ-î18ñéẋţ ţýþîçàļļý ḿéàñš đŕöþþîñĝ ţĥé t() / <Trans> ŵŕàþþéŕš àñđ ŕé-ŕüññîñĝ ţĥé éẋţŕàçţ àĝàîñšţ ţĥé ƃàŕé ĴŠẊ. Éẋîšţîñĝ ţŕàñšļàţîöñš çàñ ƃé ļöàđéđ àš-îš îƒ ýöü ķéý ţĥéḿ ƃý ţĥé šàḿé šöüŕçé ţéẋţ; öţĥéŕŵîšé îţ'š à öñé-ţîḿé ŕé-ţŕàñšļàţîöñ þàšš ţĥŕöüĝĥ ýöüŕ çöñţéñţ ḿéḿöŕý.
ƑöŕḿàţĴŠ (ŕéàçţ-îñţļ)
Đéṽéļöþéŕ-àüţĥöŕéđ ḿéššàĝé đéšçŕîþţöŕš ŵîţĥ ÎÇÜ ƒöŕḿàţţîñĝ ƃàķéđ îñ.
| ƑöŕḿàţĴŠ | ñéöķàþî-î18ñ | |
|---|---|---|
| Šöüŕçé îđéñţîƒîéŕ | Đéṽéļöþéŕ-îñṽéñţéđ îđ (öŕ àüţö-ĥàšĥ öƒ ţĥé đéšçŕîþţöŕ) | Šöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ |
| ĴŠẊ ŵŕàþþîñĝ | <FormattedMessage> öŕ useIntl().formatMessage() | Þļàîñ ĴŠẊ |
| Þļüŕàļš / šéļéçţ | Ŕàŵ ÎÇÜ ḿéššàĝé šţŕîñĝš | <Plural> / <Select> àüţĥöŕîñĝ çöḿþöñéñţš |
| Éẋţŕàçţîöñ | @formatjs/cli | Þļüĝîñ đüŕîñĝ ñöŕḿàļ ƃüîļđ |
| Ŕüñţîḿé çöšţ | Šĥîþš intl-messageformat (ÎÇÜ þàŕšéŕ/ƒöŕḿàţţéŕ); çàñ þŕéçöḿþîļé ţö ÀŠŢ ţö đŕöþ ţĥé þàŕšéŕ | Îñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ |
ƑöŕḿàţĴŠ'š ÎÇÜ-îñ-šöüŕçé àþþŕöàçĥ ĥàñđļéš çöḿþļéẋ ḿéššàĝé çöḿþöšîţîöñ ŵéļļ, àñđ đéṽéļöþéŕš àñđ ţŕàñšļàţöŕš ƃöţĥ ŵöŕķ îñ ÎÇÜ. ñéöķàþî-î18ñ ķééþš ţĥé šöüŕçé îñ Ŕéàçţ çöḿþöñéñţš àñđ ĝîṽéš ţŕàñšļàţöŕš' ÇÀŢ ţööļš ţĥé çàñöñîçàļ ÎÇÜ ţéḿþļàţé.
Ļîñĝüî
Ţĥé çļöšéšţ îñ àþþŕöàçĥ: Ļîñĝüî üšéš ḿàçŕöš (<Trans>, t ţàĝĝéđ ţéḿþļàţéš) ţö ŕéŵŕîţé šöüŕçé ţéẋţ îñţö ĥàšĥéđ-ķéý ŕüñţîḿé ļööķüþš àţ ƃüîļđ ţîḿé.
| Ļîñĝüî | ñéöķàþî-î18ñ | |
|---|---|---|
| Šöüŕçé îđéñţîƒîéŕ | Šöüŕçé ţéẋţ (Ƃàƃéļ ḿàçŕö öŕ ŠŴÇ þļüĝîñ) | Šöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ (ṽîà ŠŴÇ þļüĝîñ) |
| ĴŠẊ ŵŕàþþîñĝ | <Trans>Hello</Trans>, t\...`` ḿàçŕö | Þļàîñ ĴŠẊ |
| Éẋţŕàçţîöñ | lingui extract | Þļüĝîñ đüŕîñĝ ñöŕḿàļ ƃüîļđ |
| Ƒöŕḿàţ | ÞÖ (đéƒàüļţ), ĴŠÖÑ, ÇŠṼ | ĶƂƑ ŵîţĥ šţŕüçţüŕàļ çöñţéẋţ, þļàçéĥöļđéŕš, þļüŕàļ ƒöŕḿš |
| Ŕüñţîḿé çöšţ | Šḿàļļ @lingui/core ŕüñţîḿé + çöḿþîļéđ çàţàļöĝš; đîçţ ļööķüþ | Îñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ |
Ļîñĝüî àñđ ñéöķàþî-î18ñ ƃöţĥ üšé ţĥé šöüŕçé ţéẋţ àš ţĥé ķéý. Ţĥéý đéŕ öñ öþţ-îñ. Ŵîţĥ Ļîñĝüî ýöü þüţ éṽéŕý šţŕîñĝ îñţö à ḿàçŕö (<Trans>, t`...`). ñéöķàþî-î18ñ éẋţŕàçţš ĴŠẊ ţéẋţ ƃý đéƒàüļţ àñđ ķééþš t() ƒöŕ šţŕîñĝš öüţšîđé ĴŠẊ.
ƒƃţéé
Ţĥé ḿöđéŕñ çöñţîñüàţîöñ öƒ Ḿéţà'š fbt. ƒƃţéé ŕéƃüîļđš îţ ƒöŕ ŢýþéŠçŕîþţ, Ŕéàçţ 19, ÉŠḾ, àñđ Ṽîţé / Ñéẋţ.ĵš ŵîţĥ ƃöţĥ Ƃàƃéļ àñđ ŠŴÇ ţŕàñšƒöŕḿš, ŵĥîļé ķééþîñĝ ƒƃţ'š àüţĥöŕîñĝ ḿöđéļ: éṽéŕý ţŕàñšļàţàƃļé šţŕîñĝ îš ŵŕàþþéđ îñ àñ éẋþļîçîţ <fbt> ḿàŕķéŕ, àñđ ţĥé šöüŕçé ţéẋţ îš ţĥé ķéý.
| ƒƃţéé | ñéöķàþî-î18ñ | |
|---|---|---|
| Šöüŕçé îđéñţîƒîéŕ | Šöüŕçé ţéẋţ + ŕéǫüîŕéđ desc | Šöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ |
| ĴŠẊ ŵŕàþþîñĝ | <fbt desc="...">, fbt() / fbs() | Þļàîñ ĴŠẊ |
| Þļüŕàļš / ĝéñđéŕ | <fbt:plural>, <fbt:pronoun>, <fbt:enum> | <Plural> / <Select> àüţĥöŕîñĝ çöḿþöñéñţš |
| Éẋţŕàçţîöñ | fbtee collect → prepare-translations → translate | Þļüĝîñ đüŕîñĝ ñöŕḿàļ ƃüîļđ |
| Ƒöŕḿàţ | ĴŠÖÑ (source_strings.json + þéŕ-ļöçàļé ƒîļéš) | ĶƂƑ ŵîţĥ šţŕüçţüŕàļ çöñţéẋţ, þļàçéĥöļđéŕš, þļüŕàļ ƒöŕḿš |
| Ŕüñţîḿé çöšţ | Šĥîþš ţĥé ƒƃţ ŕüñţîḿé ţö ŕéšöļṽé þàŕàḿš/þļüŕàļ/þŕöñöüñ àţ ŕéñđéŕ; ţŕàñšļàţîöñš ļöàđéđ | Îñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ |
ƒƃţéé àļšö üšéš ţĥé šöüŕçé ţéẋţ àš ţĥé ķéý, àñđ îţ ŕéǫüîŕéš àñ <fbt> ḿàŕķéŕ ŵîţĥ à desc àŕöüñđ éṽéŕý ţŕàñšļàţàƃļé šţŕîñĝ. Ţĥé ḿàŕķéŕ ļéţš ţĥé Ƃàƃéļ / ŠŴÇ çöḿþîļéŕ àñđ ţĥé ÉŠĻîñţ þļüĝîñ àñàļýšé, ţýþé-çĥéçķ àñđ éẋţŕàçţ éàçĥ šţŕîñĝ šţàţîçàļļý. Ýöü ĝéţ çöḿþîļé-ţîḿé ĝüàŕàñţééš àñđ đéçļàŕàţîṽé îñļîñé þļüŕàļ àñđ ĝéñđéŕ ĥàñđļîñĝ, àñđ ýöü ŵŕîţé à ŵŕàþþéŕ öñ éṽéŕý šţŕîñĝ. ñéöķàþî-î18ñ éẋţŕàçţš þļàîñ ĴŠẊ ŵîţĥ ñö ŵŕàþþéŕ.
Þàŕàĝļîđé (Îñļàñĝ)
Ţýþéđ, þéŕ-ḿéššàĝé ƒüñçţîöñš ĝéñéŕàţéđ àţ ƃüîļđ ţîḿé. À ḿéššàĝé welcome ƃéçöḿéš m.welcome().
| Þàŕàĝļîđé | ñéöķàþî-î18ñ | |
|---|---|---|
| Šöüŕçé îđéñţîƒîéŕ | Đéṽéļöþéŕ-îñṽéñţéđ ḿéššàĝé îđ | Šöüŕçé ţéẋţ + öŵñ éļéḿéñţ ţàĝ |
| ĴŠẊ ŵŕàþþîñĝ | Ĝéñéŕàţéđ ƒüñçţîöñ çàļļ (m.welcome()) | Þļàîñ ĴŠẊ |
| Ţŕéé-šĥàķéàƃîļîţý | Éṽéŕý ḿéššàĝé îš à ƒüñçţîöñ; éẋçéļļéñţ ţŕéé-šĥàķîñĝ | Đîçţ ļööķüþ; ţĥé đîçţ îš öñé öƃĵéçţ |
| Ŕüñţîḿé çöšţ | Ḿîñîḿàļ ŕüñţîḿé; ţŕéé-šĥàķéñ þéŕ-ḿéššàĝé ƒüñçţîöñš, šö üñüšéđ ḿéššàĝéš çöšţ ~0 | Îñļîñé ḿöđé: žéŕö ŕüñţîḿé (~2 ķƂ îƒ ýöü üšé ÎÇÜ/þļüŕàļš); ŕüñţîḿé ḿöđé: öñé đîçţ ļööķüþ |
Þàŕàĝļîđé'š ţýþéđ ƒüñçţîöñš ĝîṽé šţŕöñĝ ŕéƒàçţöŕîñĝ šüþþöŕţ, ŵîţĥ ḿéššàĝé îđš àš ƒüñçţîöñ ñàḿéš. ñéöķàþî-î18ñ ķéýš ƃý šöüŕçé ţéẋţ. Ţĥé ţŵö çàñ çöéẋîšţ îñ öñé çöđéƃàšé, ţĥöüĝĥ ḿöšţ þŕöĵéçţš þîçķ öñé.
Ţŵö þŕöþéŕţîéš ţĥé ţàƃļéš ļéàṽé öüţ
- Ķéýš šüŕṽîṽé ŕéƒàçţöŕîñĝ. Ţĥé ķéý çöḿéš ƒŕöḿ ţĥé šöüŕçé ţéẋţ àñđ ţĥé éļéḿéñţ'š öŵñ ţàĝ, àñđ ñéṽéŕ ƒŕöḿ îţš àñçéšţöŕš. Ýöü çàñ ŵŕàþ à šéçţîöñ îñ à ñéŵ
<div>, ḿöṽé à þàŕàĝŕàþĥ îñţö à<Card>öŕ ŕéšţŕüçţüŕé ţĥé þàĝé àŕöüñđ îţ, àñđ éṽéŕý ķéý àñđ ţŕàñšļàţîöñ šţàýš. Ţĥé éļéḿéñţ šţîļļ ķééþš à ƃüţţöñ'š "Öþéñ" àþàŕţ ƒŕöḿ à ḿéñü îţéḿ'š. Ŵĥéŕé îţ đöéšñ'ţ, ýöü àđđ à ñöţé ţö ţéļļ ţĥéḿ àþàŕţ. - Ŕéṽîéŵ ĥàþþéñš öñ ţĥé ŕüññîñĝ àþþ. ÀĻŢ+çļîçķ à šţŕîñĝ ţö šéé îţš šöüŕçé àñđ éđîţ îţš ţàŕĝéţ. Ţéŕḿîñöļöĝý àñđ çĥéçķ ƒîñđîñĝš àþþéàŕ öñ ţĥé ļîṽé ţéẋţ, àñđ ţĥé éđîţ îš ŵŕîţţéñ ƃàçķ ţö ţĥé
.kbf.jsonàš à ĝîţ đ. Ŕéṽîéŵ ñééđš ñö àççöüñţ àñđ ñö ñéţŵöŕķ, ƃéçàüšé ţĥé šţŕîñĝš àŕé ƒîļéš îñ ýöüŕ ŕéþöšîţöŕý. Àñýöñé ŵîţĥ à çĥéçķöüţ çàñ ŕéṽîéŵ.
Ŵĥîçĥ ţö þîçķ
- Ýöü ŵàñţ žéŕö-ŵŕàþþéŕ éŕĝöñöḿîçš àñđ ýöüŕ šţŕîñĝš ḿöšţļý ļîṽé îñ ĴŠẊ → ñéöķàþî-î18ñ.
- Ýöü ŵàñţ ţýþéđ ḿéššàĝé ƒüñçţîöñš ţĥàţ ţŕéé-šĥàķé ţö ţĥé ḿéššàĝéš ýöü üšé → Þàŕàĝļîđé.
- Ýöü'ŕé đééþļý îñṽéšţéđ îñ ÎÇÜ-àš-šöüŕçé → ƑöŕḿàţĴŠ.
- Ýöü ŵàñţ éẋþļîçîţ, çöḿþîļé-ţîḿé-çĥéçķéđ îñļîñé ḿàŕķéŕš ŵîţĥ đéçļàŕàţîṽé þļüŕàļ/ĝéñđéŕ → ƒƃţéé.
- Ýöü ĥàṽé à ļàŕĝé éẋîšţîñĝ ŕéàçţ-î18ñéẋţ çöđéƃàšé → šţàý ŵîţĥ ŕéàçţ-î18ñéẋţ üñļéšš ýöü'ŕé đöîñĝ à ŕéŵŕîţé àñýŵàý.
Ŕéļàţéđ
- Ŵĥéñ ñéöķàþî-î18ñ îšñ'ţ ţĥé ŕîĝĥţ ƒîţ: ţĥé çàšéš ŵĥéŕé àñöţĥéŕ àþþŕöàçĥ šéŕṽéš ýöü ƃéţţéŕ.
- Ǫüîçķ šţàŕţ: ţŕý ñéöķàþî-î18ñ îñ à Ṽîţé + Ŕéàçţ þŕöĵéçţ.