FBT + Crowdin + GitHub integreren

(Jorge Dalmendray) (22 december) , 2020)

In een (vorig artikel) schetste ik hoe u het FBT-framework (Facebook Translation) integreert met uw React Native-applicatie. Ik sloot dat artikel af waarin ik uitlegde hoe we een gat hadden in het vertaalproces: de daadwerkelijke vertaling zelf.

Laten we het vertaalproces wat nader bekijken:

  1. Schrijf code tijdens het inpakken uw strings in fbt tags
  2. Haal alle strings uit de broncode en houd ze klaar voor vertalingen. Dit wordt beheerd door een eenvoudig script in de fbt-bibliotheek
  3. GAP: Dien de strings in voor vertaling
  4. GAP: Nadat de vertalingen zijn binnengekomen, hebben we een manier nodig om ze zo snel mogelijk weer in de app te plaatsen we kunnen
  5. Winst!

Voer Crowdin in. Crowdin is een cloudgebaseerde oplossing die lokalisatiebeheer voor uw team stroomlijnt. Het is een tool om je strings te beheren, vertalers in te huren en ervoor te zorgen dat vertalingen accuraat zijn en binnen de context van je app passen.

In dit artikel leg ik uit hoe je je GitHub-repository met Crowdin kunt integreren om automatisch nieuwe strings te uploaden voor vertalingen en hoe u automatisch een Pull Request (PR) aanmaakt wanneer uw vertalingen klaar zijn.

Als u FBT gebruikt, kunt u alle strings uit uw broncode extraheren door twee eenvoudige scripts uit te voeren:

  1. fbt-manifest: dit script vindt alle bronbestanden met fbt() aanroepen of tags erin

  2. fbt-collect: dit script ontvangt de invoer van het fbt-manifest -script, doorloop alle bestanden erin en extraheer de strings en beschrijving in een apart bestand, laten we het .source\_strings.json

Op dit punt moet u Crowdin laten weten waar uw .source\_strings.json -bestand zich bevindt, het zal dan lezen van daaruit volgens een door u ingesteld schema, voeg die strings toe aan het platform en waarschuw vertalers over de nieuwe strings die klaar zijn voor vertaling.

Stappen voor het integreren van Crowdin met uw GitHub-opslagplaats

  1. Integreer uw GitHub-opslagplaats met Crowdin : dit zal toestaan Crowdin tot r ead uit uw repo en dien vervolgens PRs in ter beoordeling. Opmerking: Als u GitHub niet gebruikt, raadpleeg dan andere Crowdin-integraties
  2. Maak een crowdin.yml configuratiebestand aan in de root van je project. Hier vertel je Crowdin waar de bronstrings moeten worden opgehaald en waar de vertalingen moeten worden geplaatst als ze eenmaal zijn binnengekomen. Een voorbeeld van de bestandsinhoud hieronder:
files:
- source: /i18n/fbt/.source\_strings.json
translation: /i18n/fbt/translations/\%two\_letters\_code\%/translation.json

Voor meer informatie over dit configuratiebestand, zie Crowdins documentatie .

Op dit punt, wanneer uw .source\_strings.json -bestand wordt bijgewerkt door fbts scripts uit te voeren, nieuwe strings worden geïmporteerd in Crowdins platform, afhankelijk van het synchronisatieschema dat is ingesteld bij het integreren met GitHub.

U kunt dan professionele vertaaldiensten bestellen via het platform of kies ervoor om machinevertalingen te gebruiken, hoe dan ook, wanneer nieuwe vertalingen worden toegevoegd, Crowdin zal een PR terug in uw repo creëren. Op dit punt kunt u de wijzigingen handmatig accepteren en samenvoegen of een GitHub-actie maken om de wijzigingen automatisch te accepteren en samen te voegen!

Crowdin-uitvoer converteren naar een leesbaar FBT-formaat

De laatste stap ervoor je kunt de vertalingen gebruiken om het fbt-translate script uit te voeren. Dit script genereert een bestand dat het FBT-platform begrijpt en is het bestand dat u uiteindelijk in de code instelt.

fbt-translate :

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

Gebruik in React :

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

Gebruik in React Native:

  • Voor React Native / Android we moeten de uitvoer van het fbt-translate -script converteren naar een Android-stringbronbestand. Een script helpt u bij deze stap:

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

Nadat u dit heeft uitgevoerd, bent u klaar om uw Android-applicatie uit te voeren.

  • Voor React Native / iOS moeten we de uitvoer van de fbt-translate script in een iOS-stringbronbestand .Er is geen script om dit te bereiken, maar we staan altijd open voor bijdragen 🙂

Laatste gedachten

Op dit punt zou je automatisch strings uit je app moeten kunnen extraheren upload ze naar Crowdin en ontvang een PR als de vertalingen klaar zijn. Zoals u wellicht heeft gemerkt, zijn enkele stappen in dit proces handmatig. Een paar suggesties:

Maak GitHub-acties, CircleCI-stappen (of wat je ook gebruikt voor CI / CD) om uit te voeren:

  • fbt-manifest en fbt-collect elke keer dat u een PR samenvoegt
  • PRs automatisch samenvoegen die door Crowdin zijn gemaakt
  • fbt-translate nadat Crowdin PRs zijn samengevoegd
  • Voor Android, het uitvoeren van de generate-android-localizables-executor.js na de fbt-translate scrip

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *