(Jorge Dalmendray) (22. prosince) , 2020)

V (předchozím článku) jsem nastínil jak integrovat rámec FBT (Facebook Translation) s vaší aplikací React Native. Došel jsem k závěru, že tento článek vysvětluje, jak jsme měli mezeru v procesu překladu: samotný překlad.
Podívejme se na proces překladu trochu blíže:
- Napište kód během zalamování vaše řetězce ve značkách
fbt
- Extrahujte všechny řetězce ze zdrojového kódu a připravte je na překlady. To je spravováno jednoduchým skriptem v knihovně fbt
- GAP: Odeslat řetězce k překladu
- GAP: Až budou překlady k dispozici, potřebujeme způsob, jak je co nejrychleji vložit zpět do aplikace můžeme
- Zisk!
Zadejte Crowdin . Crowdin je cloudové řešení, které zefektivňuje správu lokalizace vašeho týmu. Je to nástroj ke správě řetězců, najímání překladatelů a zajištění přesnosti překladů v kontextu vaší aplikace.
V tomto článku vysvětlím, jak integrovat repo GitHub s Crowdinem, aby se automaticky nahraly nové řetězce. pro překlady a jak automaticky vytvořit žádost o přijetí žádosti (PR), až budou vaše překlady připraveny.
Při použití FBT můžete extrahovat všechny řetězce ze zdrojového kódu spuštěním dvou jednoduchých skriptů:
-
fbt-manifest
fbt()
voláními nebo
značkami -
fbt-collect
fbt-manifest
, projde všechny soubory v něm a extrahuje řetězce a popis do samostatného souboru, nazveme jej.source\_strings.json
V tomto okamžiku musíte Crowdinovi sdělit, kde váš .source\_strings.json
soubor žije, poté se přečte z toho podle vámi nastaveného harmonogramu přidejte tyto řetězce na platformu a upozorněte překladatele na nové řetězce připravené k překladu.
Kroky pro integraci Crowdin s vašimi Repozitář GitHub
- Integrujte repozitář GitHub s Crowdin : Toto umožní Crowdin r Vyčkejte ze svého repozitáře a poté odešlete PR ke kontrole. Poznámka: Pokud nepoužíváte GitHub, přečtěte si další integrace Crowdin
- Vytvořte
crowdin.yml
konfigurační soubor v kořenovém adresáři svého projektu. Zde řeknete Crowdinovi, kde má načíst zdrojové řetězce a kam umístit překlady, jakmile jsou. Příklad obsahu souboru níže:
files:
- source: /i18n/fbt/.source\_strings.json
translation: /i18n/fbt/translations/\%two\_letters\_code\%/translation.json
Další informace o tomto konfiguračním souboru najdete v Crowdinově dokumentaci .
V tuto chvíli, když vaše je aktualizován spuštěním skriptů fbt, nové řetězce budou importovány do platformy Crowdin v závislosti na nastaveném harmonogramu synchronizace při jeho integraci s GitHub.
Poté si můžete objednat profesionální překladatelské služby prostřednictvím platformy nebo se rozhodnete použít strojové překlady , ať už jsou přidány nové překlady, Crowdin vytvoří PR ve vašem repo. V tomto okamžiku můžete ručně přijmout a sloučit změny nebo vytvořit akci GitHub pro automatické přijetí a sloučení změn!
Převod výstupu Crowdin do čitelného formátu FBT
Poslední krok před překlady můžete použít ke spuštění skriptu fbt-translate
. Tento skript vygeneruje soubor, kterému platforma FBT rozumí, a bude souborem, který nakonec nastavíte v kódu.
"translate-fbts": "fbt-translate --translations translations/*.json --jenkins > src/translatedFbts.json"
init({
translations: require("../translatedFbts.json"),
hooks: {
getViewerContext: () => viewerContext,
},
});
Použití v React Native:
- Pro React Native / Android musíme převést výstup skriptu
fbt-translate
do souboru prostředků řetězce Android. Skript vám s tímto krokem pomůže:
"generate-android-fbt": "babel-node i18n/scripts/generate-android-localizables-executor.js"
Po spuštění budete připraveni ke spuštění aplikace pro Android.
- Pro React Native / iOS musíme převést výstup
fbt-translate
skript do souboru prostředků řetězce iOS iOS .K dosažení tohoto cíle neexistuje žádný skript, ale vždy jsme otevřeni příspěvkům 🙂
Závěrečné myšlenky
V tomto okamžiku byste měli být schopni extrahovat řetězce z vaší aplikace automaticky nahrajte je do Crowdin a poté, když jsou překlady připraveny, získejte PR. Jak jste si možná všimli, několik kroků v tomto procesu je manuální. Několik návrhů:
Vytvořte akce GitHub, kroky CircleCI (nebo cokoli, co používáte pro CI / CD) k provedení:
-
fbt-manifest
afbt-collect
při každém sloučení PR - slučování PR vytvořených Crowdinem automaticky
- spuštěním
fbt-translate
po sloučení Crowdin PR - pro Android spuštění
generate-android-localizables-executor.js
pofbt-translate
skriptu