Ciągła lokalizacja pozwala twórcom oprogramowania na lokalizację treści bez zakłócania procesu rozwoju. Oto, jak firma Xsolla osiągnęła to przy pomocy bezpłatnych narzędzi.
Wyzwanie
Pojawienie się zwinnych praktyk programistycznych i narzędzi internetowych spowodowało jeszcze więcej wyzwań w relacjach między programistami a lokalizatorami. Jeśli wcześniej nowe treści pojawiały się co kilka miesięcy, obecnie cykle wydawnicze mogą trwać zaledwie kilka tygodni. Każda nowa wersja zawiera nowe treści, które muszą zostać zlokalizowane w ciągu kilku dni. Weźmy na przykład Xsolla, globalnego dystrybutora i wydawcę gier wideo, który dostarcza twórcom gier narzędzia zwiększające potencjalny zasięg ich gier. Firma ma 8 kluczowych produktów, 2-tygodniowy cykl wydawniczy i od 6 do 21 języków, na które należy zlokalizować każdy produkt.
Firma od dawna korzystała z różnych platform tłumaczeniowych online, ale pod wieloma względami nie była z nich zadowolona. „Lokalizacja kilku nowych ciągów znaków na 20 języków wymagała więcej czasu poświęconego na zarządzanie projektem niż na samo tłumaczenie” – mówi Natalya Pavlikova, inżynier ds. lokalizacji w Xsolla. Z tego powodu firma Xsolla zaczęła szukać alternatywnego rozwiązania.
Natalya Pavlikova, inżynier ds. lokalizacji w firmie Xsolla
Kryteria
Firma Xsolla chciała, aby nowa platforma:
automatycznie pobierała treści podlegające lokalizacji z repozytorium kodu firmy,
umożliwiała przejrzysty i elastyczny proces lokalizacji oraz
wysyłała zlokalizowane treści z powrotem do repozytorium kodu.
Rozwiązaniem okazał się zestaw dwóch bezpłatnych narzędzi: Serge oraz Smartcat. Serge — silnik do ekstrakcji ekstraktów i resursów generacji engine — to samodzielne narzędzie, które umożliwia ciągłą lokalizację (patrz objaśnienie). Automatycznie gromadzi nowe materiały źródłowe, publikuje je do tłumaczenia, pozyskuje gotowe tłumaczenia i integruje je z powrotem z produktem. Serge jest projektem open source utrzymywanym przez Evernote. Smartcat to z kolei platforma tłumaczeniowa, na której można przechowywać projekty i pamięci tłumaczeniowe, wyszukiwać tłumaczy, przypisywać im dokumenty i płacić za ich pracę.
Ciągła lokalizacja: kiedy jest potrzebna?
Lokalizacja ciągła sprawdza się najlepiej w sytuacjach, gdy mamy do czynienia z dużą ilością treści, które są stale aktualizowane i/lub gdy różne zespoły zarządzają rozwojem i lokalizacją. Oto kilka przykładów:
Lokalizacja oprogramowania i gier wideo, gdzie w każdej wersji pojawiają się nowe ciągi znaków.
Podręczniki użytkownika i specyfikacje API, w tym generowane automatycznie.
Strony internetowe i blogi tworzone przy użyciu statycznych generatorów stron.
Wszelkie projekty, w których tworzenie treści wpisuje się w zwinne ramy.
Ogólnie rzecz biorąc, zawsze gdy przechowujesz lokalizowane ciągi znaków w systemie kontroli wersji, najskuteczniejszym podejściem będzie ciągła lokalizacja. (A jeśli tego nie robisz, warto rozważyć wprowadzenie takiego rozwiązania). Zastosowanie ujednoliconego, zautomatyzowanego procesu lokalizacji ciągów znaków eliminuje błędy ludzkie i pozwala zaoszczędzić sporo czasu pracowników, który mogą poświęcić na ważniejsze i bardziej kreatywne zadania.
Rozwiązanie
W przypadku Xsolla ciągły proces lokalizacji wygląda następująco:
Programiści Xsolla aktualizują pliki projektu w repozytorium Git.
Serge na bieżąco monitoruje repozytorium w czasie rzeczywistym i w razie potrzeby wyodrębnia ciągi znaków z aktualizacji, tworzy z nich pliki zasobów PO i wysyła je do Smartcat.
Kierownik ds. lokalizacji Xsolla rozdziela nieprzetłumaczone ciągi znaków między freelancerów w swoim zespole.
Freelancerzy tłumaczą dokumenty i oznaczają je jako ukończone.
Serge pobiera zlokalizowane ciągi znaków, umieszcza je z powrotem w plikach źródłowych i przesyła do repozytorium Git firmy Xsolla.
Programiści firmy Xsolla publikują wydanie wraz z lokalizacją.
Dlaczego Serge?
Smartcat sam obsługuje różne formaty plików. Dlaczego więc ktoś miałby używać Serge jako pośrednika między oryginalnymi plikami zasobów a usługą tłumaczeniową?
„Na pierwszy rzut oka Serge może wyglądać jak konwerter formatów plików. Ale tak nie jest” – mówi Igor Afanasyev, dyrektor ds. lokalizacji w Evernote i twórca Serge. „Serge to elastyczny system przetwarzania i synchronizacji plików, który można skonfigurować tak, aby spełniał różne wymagania lokalizacyjne, umożliwiając prawdziwie ciągłą integrację. Serge gwarantuje, że zlokalizowane pliki zasobów mają taką samą strukturę jak pliki źródłowe i obsługuje przypadki, w których pliki źródłowe ulegają zmianie, podczas gdy ich starsze wersje są nadal w trakcie tłumaczenia. Dzięki temu inżynierowie nie muszą łączyć zmian i nie blokują cyklu rozwoju. W pewnym sensie dzięki Serge inżynierowie mają wrażenie, że nie ma żadnego „procesu lokalizacji”. Kolejną ważną cechą Serge jest to, że utrzymuje on własną bazę danych tłumaczeń i działa w siedzibie klienta. Oznacza to, że Smartcat nie musi uzyskiwać dostępu do prywatnych repozytoriów Git firmy Xsolla, a pliki tłumaczeń, które Smartcat otrzymuje od Serge, są poprawionymi plikami zasobów, które nie zawierają żadnych poufnych informacji. Wreszcie, ponieważ Serge działa lokalnie na serwerze Xsolla w trybie ciągłym, aktualizowane zasoby lokalizacyjne są dostępne w ciągu kilku minut. Gwarantuje to, że pliki lokalizacyjne są zawsze aktualne, a kompilacje nie kończą się niepowodzeniem z powodu nieaktualnych zasobów.
Igor Afanasyev, dyrektor ds. lokalizacji w Evernote
Wyniki
Głównym rezultatem przejścia na ciągłą lokalizację jest to, że kierownicy projektów mogą skupić się na swojej pracy, a programiści na swojej. Oszczędza to wiele wysiłku związanego z zarządzaniem projektem i nikt nie musi zajmować się wysyłaniem plików i konwertowaniem formatów — tym zajmuje się Serge.
„Teraz możemy zarządzać naszymi ciągami znaków tak samo, jak zarządzamy naszym kodem” – mówi Maxim Kungurtsev, programista front-endowy w Xsolla. „Możemy tworzyć nowe gałęzie, łączyć je, przywracać poprzednie wersje – i jednocześnie mieć pewność, że pakiet Serge–Smartcat wykona całą pracę w tle, aby zlokalizować ciągi znaków dla tej konkretnej gałęzi w naszym repozytorium. Działa jak magia!” Co nie mniej ważne, funkcje zarządzania zespołem Smartcat ułatwiają zapewnienie jakości zlokalizowanych treści. „Mamy już zgrany zespół tłumaczy w Smartcat, którzy dbają o spójność naszego przekazu” – mówi Natalya. „W przypadku najbardziej krytycznych treści możemy zatrudnić dodatkowych lingwistów jako korektorów tych samych treści”.
Maxim Kungurtsev, programista front-end w Xsolla
Plany na przyszłość
Był to pierwszy projekt lokalizacyjny realizowany przez Smartcat we współpracy z Serge'em. Zespół ściśle współpracuje zarówno z Xsolla, jak i Igorem Afanasjewem. Xsolla ma jeszcze wiele planów na przyszłość, takich jak:
Przydzielanie tłumaczy jednym kliknięciem,
Obsługa etykiet, które można odmieniać w liczbie mnogiej,
Przydzielanie redaktorów do tekstów źródłowych,
Bardziej elastyczne powiadomienia.
Jednak firma Smartcat jest optymistyczna. „Będziemy ciężko pracować, aby wdrożyć wymagania Xsolla dotyczące funkcji” – mówi Pavel Doronin, menedżer produktu w Smartcat. „Nie tylko dlatego, że są oni jednym z najlepiej płacących klientów, ale także po to, aby zapewnić naszym pozostałym użytkownikom lepsze procesy ciągłej lokalizacji, która z pewnością pozostanie z nami na dłużej”. W przyszłości planujemy zapewnić jeszcze więcej opcji ciągłej lokalizacji za pomocą Smartcat, w tym zarówno scenariusze natywne, jak i integracje zewnętrzne, co podkreśla nasze ekosystemowe podejście do rozwoju. Ostatecznie liczy się to, co najbardziej podoba się naszym użytkownikom, i na tym będziemy się skupiać.
Pavel Doronin, kierownik ds. produktów w Smartcat
Przydatne linki
Jeśli chcesz skonfigurować ciągły proces lokalizacji podobny do Xsolla, musisz:
Pobrać i zainstalować Serge.
Zarejestrować się w Smartcat.
Zainstaluj wtyczkę Serge Smartcat.



