Integrace FBT + Crowdin + GitHub

(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:

  1. Napište kód během zalamování vaše řetězce ve značkách fbt
  2. 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
  3. GAP: Odeslat řetězce k překladu
  4. GAP: Až budou překlady k dispozici, potřebujeme způsob, jak je co nejrychleji vložit zpět do aplikace můžeme
  5. 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ů:

  1. fbt-manifest: Tento skript najde všechny zdrojové soubory s fbt() voláními nebo značkami

  2. fbt-collect: Tento skript přijímá vstup skriptu 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

  1. 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
  2. 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.

fbt-translate :

"translate-fbts": "fbt-translate --translations translations/*.json --jenkins > src/translatedFbts.json"

Použití v Reagovat :

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 a fbt-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 po fbt-translate skriptu

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *