Integracja FBT + Crowdin + GitHub

(Jorge Dalmendray) (22 grudnia , 2020)

W (poprzednim artykule) przedstawiłem jak zintegrować framework FBT (Facebook Translation) z aplikacją React Native. Doszedłem do tego artykułu, wyjaśniając, w jaki sposób mieliśmy lukę w procesie tłumaczenia: samo tłumaczenie.

Przyjrzyjmy się bliżej procesowi tłumaczenia:

  1. Pisanie kodu podczas pakowania twoje ciągi w fbt tagach
  2. Wyodrębnij wszystkie ciągi z kodu źródłowego i przygotuj je do tłumaczenia. Zarządza to prostym skryptem w bibliotece fbt
  3. GAP: Prześlij ciągi do tłumaczenia
  4. GAP: Po przetłumaczeniu potrzebujemy sposobu, aby umieścić je z powrotem w aplikacji tak szybko, jak możemy
  5. Zysk!

Wpisz Crowdin . Crowdin to oparte na chmurze rozwiązanie, które usprawnia zarządzanie lokalizacją w Twoim zespole. To narzędzie do zarządzania ciągami tekstowymi, zatrudniania tłumaczy i upewniania się, że tłumaczenia są dokładne i zgodne z kontekstem Twojej aplikacji.

W tym artykule wyjaśnię, jak zintegrować repozytorium GitHub z Crowdin, aby automatycznie przesyłać nowe ciągi znaków tłumaczeń i jak automatycznie tworzyć pull request (PR), gdy tłumaczenia są gotowe.

Używając FBT, możesz wyodrębnić wszystkie ciągi z kodu źródłowego, uruchamiając dwa proste skrypty:

  1. fbt-manifest: Ten skrypt znajdzie wszystkie pliki źródłowe z wywołaniami fbt() lub tagami

  2. fbt-collect: Ten skrypt otrzymuje dane wejściowe skryptu fbt-manifest, przegląda wszystkie zawarte w nim pliki i wyodrębnia ciągi i opis do oddzielnego pliku, nazwijmy go .source\_strings.json

W tym momencie musisz poinformować Crowdin, gdzie znajduje się Twój plik .source\_strings.json, zostanie on odczytany z niego zgodnie z harmonogramem ustalonym przez Ciebie, dodaj te ciągi do platformy i powiadom tłumaczy o nowych ciągach gotowych do tłumaczenia.

Kroki integracji Crowdin z Repozytorium GitHub

  1. Zintegruj swoje repozytorium GitHub z Crowdin : pozwoli to Crowdin do r wyjmij z repozytorium, a następnie prześlij PR do przeglądu. Uwaga: Jeśli nie używasz GitHub, zapoznaj się z innymi integracjami Crowdin
  2. Utwórz plik konfiguracyjny crowdin.yml w katalogu głównym projektu. Tutaj możesz wskazać Crowdinowi, gdzie pobrać ciągi źródłowe i gdzie umieścić tłumaczenia, gdy już się one znajdą. Przykład zawartości pliku poniżej:
files:
- source: /i18n/fbt/.source\_strings.json
translation: /i18n/fbt/translations/\%two\_letters\_code\%/translation.json

Aby uzyskać więcej informacji na temat tego pliku konfiguracyjnego, zobacz dokumentację Crowdin .

W tym momencie, gdy jest aktualizowany przez uruchomienie skryptów fbt, nowe ciągi znaków zostaną zaimportowane na platformę Crowdin w zależności od harmonogramu synchronizacji ustawionego podczas integracji z GitHubem.

Następnie możesz zamówić profesjonalne usługi tłumaczeniowe za pośrednictwem platformy lub wybierz tłumaczenia maszynowe , tak czy inaczej, gdy dodawane są nowe tłumaczenia, Crowdin utworzy PR z powrotem w twoim repozytorium. W tym momencie możesz ręcznie zaakceptować i scalić zmiany lub utworzyć akcję GitHub, aby automatycznie zaakceptować i scalić zmiany!

Konwersja danych wyjściowych Crowdin na czytelny format FBT

Ostatni krok przed możesz użyć tłumaczeń, aby uruchomić skrypt fbt-translate. Ten skrypt wygeneruje plik zrozumiały dla platformy FBT i plik, który ostatecznie umieścisz w kodzie.

fbt-translate :

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

Wykorzystanie w React :

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

Użycie w React Native:

  • Dla React Native / Android musimy przekonwertować dane wyjściowe skryptu fbt-translate na plik zasobów ciągu Android. Skrypt pomoże Ci w tym kroku:

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

Po uruchomieniu możesz uruchomić swoją aplikację na Androida.

  • W przypadku React Native / iOS musimy przekonwertować dane wyjściowe fbt-translate skryptu do pliku zasobów ciągu iOS .Nie ma skryptu, który mógłby to osiągnąć, ale zawsze jesteśmy otwarci na wkład 🙂

Ostatnie przemyślenia

W tym momencie powinieneś być w stanie automatycznie wyodrębnić ciągi znaków z aplikacji prześlij je do Crowdin, a następnie otrzymaj PR, gdy tłumaczenia będą gotowe. Jak być może zauważyłeś, kilka kroków tego procesu jest wykonywanych ręcznie. Kilka sugestii:

Utwórz akcje GitHub, kroki CircleCI (lub cokolwiek, czego używasz do CI / CD) do wykonania:

  • fbt-manifest i fbt-collect za każdym razem, gdy łączysz PR
  • Automatyczne łączenie PR utworzonych przez Crowdin
  • Uruchamianie fbt-translate po scaleniu Crowdin PR
  • W przypadku Androida uruchomienie generate-android-localizables-executor.js po fbt-translate skrypcie

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *