Integrarea FBT + Crowdin + GitHub

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

Într-un (articol anterior) am subliniat cum să integrezi cadrul FBT (Facebook Translation) cu aplicația ta React Native. Am concluzionat că articolul care explică modul în care am avut un decalaj în procesul de traducere: traducerea propriu-zisă.

Să ne uităm la procesul de traducere un pic mai aproape:

  1. Scrieți codul în timp ce împachetați șirurile dvs. din etichetele fbt
  2. Extrageți toate șirurile din codul sursă și pregătiți-le pentru traduceri. Acest lucru este gestionat de un script simplu din biblioteca fbt
  3. GAP: Trimiteți șirurile pentru traducere
  4. GAP: După traduceri, avem nevoie de o modalitate de a le readuce în aplicație la fel de repede ca putem
  5. Profit!

Introduceți Crowdin . Crowdin este o soluție bazată pe cloud care eficientizează gestionarea localizării pentru echipa dvs. Este un instrument pentru a vă gestiona șirurile, pentru a angaja traducători și pentru a vă asigura că traducerile sunt corecte și în contextul aplicației dvs.

În acest articol voi explica cum să vă integrați repo GitHub cu Crowdin pentru a încărca automat șiruri noi pentru traduceri și cum să creați automat o Pull Request (PR) când traducerile sunt gata.

Când utilizați FBT, puteți extrage toate șirurile din codul sursă executând două scripturi simple:

  1. fbt-manifest: Acest script va găsi toate fișierele sursă cu fbt() apeluri sau etichete în ele

  2. fbt-collect: Acest script primește intrarea scriptului fbt-manifest, treceți prin toate fișierele din acesta și extrageți șirurile și descrierea într-un fișier separat, să-l numim .source\_strings.json

În acest moment, trebuie să anunțați Crowdin unde locuiește fișierul dvs. .source\_strings.json, apoi va citi de la acesta pe un program stabilit de dvs., adăugați acele șiruri pe platformă și avertizați traducătorii despre noile șiruri gata de traducere.

Pași pentru integrarea Crowdin cu Repo GitHub

  1. Integrează repo GitHub cu Crowdin : Acest lucru va permite Crowdin la r ead din repo și apoi trimiteți PR-urile pentru examinare. Notă: Dacă nu utilizați GitHub, consultați alte integrări Crowdin
  2. Creați un fișier de configurare crowdin.yml în rădăcina proiectului dvs. Iată unde îi veți spune lui Crowdin unde să preia șirurile de sursă și unde să plaseze traducerile odată ce acestea sunt introduse. Un exemplu de conținut al fișierului de mai jos:
files:
- source: /i18n/fbt/.source\_strings.json
translation: /i18n/fbt/translations/\%two\_letters\_code\%/translation.json

Pentru mai multe informații despre acest fișier de configurare, consultați documentația Crowdin .

În acest moment, când fișierul este actualizat prin rularea scripturilor fbt, șiruri noi vor fi importate în platforma Crowdin în funcție de programul de sincronizare setat la integrarea acestuia cu GitHub.

Puteți comanda apoi servicii de traducere profesionale prin intermediul platformei sau alegeți să utilizați traduceri automate , oricum, când sunt adăugate noi traduceri, va crea un PR înapoi în repo. În acest moment puteți accepta și combina manual modificările sau puteți crea o acțiune GitHub pentru a accepta și combina automat modificările!

Conversia ieșirii Crowdin într-un format lizibil FBT

Pasul final înainte puteți utiliza traducerile este pentru a rula fbt-translate script. Acest script va genera un fișier pe care platforma FBT îl înțelege și este fișierul pe care îl veți seta în cele din urmă în cod.

fbt-translate :

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

Utilizare în React :

init({
translations: require("../translatedFbts.json"),
hooks: {
getViewerContext: () => viewerContext,
},
});

Utilizare în React Native:

  • Pentru React Native / Android trebuie să convertim ieșirea scriptului fbt-translate într-un fișier de resurse șir Android. Un script vă va ajuta cu acest pas:

"generate-android-fbt": "babel-node i18n/scripts/generate-android-localizables-executor.js"

După ce rulați acest lucru, sunteți gata să rulați aplicația dvs. Android.

  • Pentru React Native / iOS trebuie să convertim ieșirea fbt-translate script într-un fișier resursă șir iOS .Nu există niciun script pentru a realiza acest lucru, dar suntem întotdeauna deschiși la contribuții 🙂

Gânduri finale

În acest moment ar trebui să puteți extrage șiruri din aplicația dvs., automat încărcați-le pe Crowdin și apoi obțineți un PR când traducerile sunt gata. După cum probabil ați observat, câțiva pași în acest proces sunt manuale. Câteva sugestii:

Creați acțiuni GitHub, pași CircleCI (sau orice utilizați pentru CI / CD) pentru a executa:

  • fbt-manifest și fbt-collect de fiecare dată când îmbinați un PR
  • Combinarea PR-urilor create automat de Crowdin
  • Rularea fbt-translate după ce PR-urile Crowdin sunt îmbinate
  • Pentru Android, rularea generate-android-localizables-executor.js după fbt-translate scrip

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *