Aby wykonać pełny cykl tłumaczenia aplikacji Mac, wyeksportuj katalog lokalizacji Xcode, zachowaj jego strukturę liczby mnogiej i przypisania argumentów, a następnie zaimportuj zwrócony pakiet i go przetestuj. Ten przewodnik wykorzystuje przykładową etykietę zaznaczenia, aby pokazać dokładnie, co przekazać do tłumaczenia i co sprawdzić.
Zadanie jest przeznaczone dla osoby przygotowującej materiały dla tłumacza w Xcode na Macu: przekaż do tłumaczenia jeden komunikat zależny od liczby elementów, a następnie przywróć go z zachowaniem jego działania. Przykładowa etykieta brzmi Selected 3 tiles in 2 groups. Obie liczby mogą się zmieniać niezależnie, więc materiały muszą zachować coś więcej niż tylko czytelne sformułowanie.
Zdefiniuj wymagania dotyczące komunikatu przed eksportem
Potraktuj wymagania dotyczące komunikatu jak krótką specyfikację: który wpis wyszukuje aplikacja, jakie wartości przekazuje w czasie działania i które wartości sterują zmianami gramatycznymi. Apple dokumentuje, że String.LocalizationValue obsługuje lokalizowane ciągi z interpolacją, w tym wartości dostarczane w czasie działania. Dokumentacja opisuje też użycie statycznego klucza i osobnej wartości domyślnej, gdy identyfikator ma być inny niż wyświetlany tekst źródłowy. String.LocalizationValue
W tym przykładzie zapisz poniższe wymagania obok zlecenia tłumaczenia. Są to przykładowe wymagania dla syntetycznej etykiety, a nie format pliku Apple.
| Element wymagań | Wymaganie w tym przykładzie |
|---|---|
| Cel komunikatu | Podsumowanie bieżącego zaznaczenia |
| Angielski tekst źródłowy | Selected 3 tiles in 2 groups. z obiema liczbami dostarczanymi w czasie działania |
| Argument 1 | Liczba kafelków; określa formę tile |
| Argument 2 | Liczba grup; określa formę group |
| Zapis liczbowy | Zachowaj typ i specyfikator formatu zapisane przez Xcode dla każdego argumentu |
| Swoboda tłumaczenia | Można zmienić kolejność zdania, zachowując znaczenie każdego argumentu |
| Wymagane działanie | Każdy rzeczownik uzgadnia formę z własną liczbą |
Zapisz też rzeczywisty katalog, tabelę i klucz z projektu. Nie wymyślaj nowego klucza na potrzeby tłumaczenia. Zgodnie z przewodnikiem Apple dotyczącym przygotowania aplikacji lokalizowalne interfejsy API uzupełniają katalogi podczas kompilacji, a parametr table lub tableName wybiera katalog. Można też dodawać komentarze wyjaśniające kontekst ciągu. Przygotowanie tekstu aplikacji do tłumaczenia
Przydatny przykładowy komentarz: Podsumowanie zaznaczenia. Argument 1 to liczba zaznaczonych kafelków. Argument 2 to liczba grup zawierających te kafelki. Obie liczby zmieniają się niezależnie. Każdą liczbę należy powiązać z odpowiadającym jej rzeczownikiem. Dzięki temu tłumacz może rozróżnić dwa argumenty, nawet jeśli mają ten sam typ liczbowy.
Przygotuj niezależne warianty liczby mnogiej w katalogu
Zacznij od dodania komunikatu do lokalizowanego źródła aplikacji, a następnie skompiluj projekt. W edytorze katalogu ciągów kliknij odpowiedni klucz z wciśniętym klawiszem Control i wybierz Vary by Plural. Apple dokumentuje, że Xcode określa specyfikator formatu interpolacji, dodaje formy liczby mnogiej dla danego języka i początkowo wypełnia pola wariantów istniejącą wartością. Te wstępnie wypełnione wartości nadal trzeba edytować. Lokalizowanie tekstu i tworzenie jego wariantów za pomocą katalogu ciągów
Dla angielskiego tekstu źródłowego zamierzone wyniki to między innymi Selected 1 tile in 1 group., Selected 3 tiles in 1 group. i Selected 1 tile in 2 groups. Jeden wybór oparty wyłącznie na liczbie kafelków nie pozwoli poprawnie wygenerować wszystkich kombinacji.
Prezentacja Apple dotycząca katalogów ciągów pokazuje, jak tworzyć warianty dla wielu argumentów za pomocą podstawień. Każde podstawienie zawiera przypadki liczby mnogiej, a inspektor wskazuje pozycję argumentu i specyfikator formatu w stylu C. W czasie działania aplikacja łączy wybrane podstawienia z otaczającym je komunikatem. Poznaj katalogi ciągów
Użyj tego mechanizmu dla obu niezależnych liczb. Umieszczaj słowa, których forma zależy od liczby, we właściwym wariancie, zamiast zostawiać rzeczownik w jednej formie poza nim. Jeśli edytor na to pozwala, nadaj podstawieniom znaczące nazwy, a następnie sprawdź przypisania: podstawienie dotyczące kafelków nadal musi używać argumentu 1, a podstawienie dotyczące grup — argumentu 2.
Nie zakładaj, że każda lokalizacja docelowa musi powielać zestaw wariantów z języka angielskiego. Apple dokumentuje, że Xcode dodaje warianty liczby mnogiej właściwe dla danego języka. Dodanie wariantu w lokalizacji źródłowej propaguje go również do tłumaczeń; dodanie go wyłącznie w innej lokalizacji wpływa tylko na tę lokalizację. Przed eksportem sprawdź rzeczywiste warianty języka docelowego. Lokalizowanie tekstu i tworzenie jego wariantów za pomocą katalogu ciągów
Zachowaj tożsamość argumentów przy zmianie kolejności słów
Pozycja symbolu zastępczego w zdaniu i numer argumentu pełnią różne funkcje. Tłumacz może potrzebować umieścić liczbę grup przed liczbą kafelków, nie zmieniając kolejności przekazywania tych wartości przez aplikację.
Dokumentacja specyfikatorów formatu Apple opisuje notację pozycyjną z użyciem n$. Na przykład %1$lld odnosi się do argumentu 1 z konwersją liczby całkowitej typu long long, a %2$lld — do argumentu 2 z tą samą konwersją. %d oznacza inny zapis liczby całkowitej; nie jest krótszą wersją %lld. Dokumentacja ta jest archiwalna, dlatego warto korzystać z niej przy ustalonych zasadach formatowania, stosując jednocześnie aktualny obieg pracy z katalogami. Specyfikatory formatu ciągów
Rozważ przykładowy fragment formatu Groups: %2$lld; tiles: %1$lld. Gdy argument 1 ma wartość 3, a argument 2 — 2, zamierzony wynik to Groups: 2; tiles: 3. Ten fragment pokazuje wyłącznie kolejność argumentów; nie obsługuje gramatycznego wyboru liczby mnogiej i nie powinien zastępować podstawień w katalogu.
Sprawdzaj symbole zastępcze pod kątem znaczenia, indeksu i typu. Kontrola, czy pozostały dwa znaki procentu, nie wykryje zamiany liczb miejscami. Sama kontrola typów również jej nie wykryje, bo obie wartości są liczbami całkowitymi. Z kolei zmiana kolejności argumentów w aplikacji tylko po to, by pasowała do jednego tłumaczenia, zmieniłaby wymagania dla wszystkich pozostałych tłumaczeń korzystających z tego wpisu.
W materiałach dla tłumacza poproś o zachowanie przypisań argumentów i typów formatowania z eksportu przy dostosowaniu sformułowania. Zmiana struktury podstawienia wymaga jawnego sprawdzenia jej zgodności z wymaganiami. Zmiana kolejności słów może być całkowicie uzasadniona.
Wyeksportuj pakiet, który tłumacz będzie mógł odesłać
Przed eksportem włącz w ustawieniach kompilacji projektu opcję Use Compiler to Extract Swift Strings, aby uwzględnić lokalizowane ciągi Swift. Zaznacz projekt w nawigatorze projektu, wybierz Product > Export Localizations, wskaż wymagane lokalizacje i miejsce docelowe, a następnie wyeksportuj. Apple dokumentuje te kroki oraz wynikowy pakiet .xcloc. Eksportowanie lokalizacji
Dwa rozszerzenia katalogów pełnią różne funkcje. Plik projektu .xcstrings zawiera katalog ciągów. Wyeksportowany pakiet .xcloc służy do przekazania tłumaczenia; jego folder Localized Contents zawiera XLIFF, a folder Notes może zawierać dodatkowe materiały. Przekaż pakiet wraz z notatką określającą wymagania, zamiast sprowadzać komunikat do dwukolumnowej listy widocznych zdań. Eksportowanie lokalizacji
Sprawdź, czy narzędzie tłumaczeniowe obsługuje warianty katalogu ciągów w XLIFF. Apple wyjaśnia, że identyfikatory wariantów pochodzące z katalogu kodują klucz ciągu i konfigurację wariantów, a także opisuje ustawienie Localization Prefers String Catalogs dla tej reprezentacji eksportu. Te struktury muszą przetrwać cały cykl. Poznaj katalogi ciągów
Skorzystaj z tej praktycznej listy kontrolnej materiałów do przekazania. To zalecany sposób pracy wynikający z udokumentowanej struktury pakietu i wymagań przykładu.
- Zwróć przetłumaczony pakiet
.xclocwraz z powiązanymi zasobami. - Zachowaj identyfikatory komunikatów i ścieżki wariantów, chyba że celową zmianę struktury udokumentowano.
- Przygotuj tekst docelowy dla wymaganych wariantów liczby mnogiej lokalizacji docelowej.
- Zachowaj tożsamość argumentów, typy liczbowe i przypisania podstawień.
- Wskaż zmiany w tekście źródłowym otrzymane po eksporcie, aby można je było uzgodnić przed importem.
Jeśli narzędzie tłumacza nie potrafi zachować wariantów wpisów, użyj Xcode do edycji wyeksportowanej lokalizacji lub wprowadź tłumaczenia bezpośrednio do katalogu projektu. Apple opisuje edycję celów XLIFF oraz katalogów ciągów w Xcode; kolejne eksporty uwzględniają zmiany w katalogu. Sama wymiana płaskiego tekstu pozostawia komuś odtworzenie struktury wariantów. Edycja plików XLIFF i katalogów ciągów
Zaimportuj zwrócone materiały i sprawdź rzeczywiste różnice
Zachowaj oryginalny eksport do porównania. Gdy wróci przetłumaczony pakiet, zaznacz projekt i wybierz Product > Import Localizations. Wskaż folder katalogu lokalizacji Xcode. W interfejsie importu sprawdź ostrzeżenia i błędy w widoku Issues View, a zmiany w widoku File View, zanim zakończysz import. Apple podaje, że edytor porównania wyświetla po lewej stronie zaimportowaną wersję, a po prawej wersję bieżącą w projekcie. Importowanie lokalizacji
W przypadku ciągów pochodzących z katalogu Apple dokumentuje importowanie tłumaczeń z powrotem do odpowiedniego katalogu ciągów. Po imporcie ponownie otwórz wpis podsumowania zaznaczenia i sprawdź oba podstawienia, ich przypisania argumentów oraz warianty docelowe. Poznaj katalogi ciągów
Jeśli coś wygląda nieprawidłowo, zastosuj ukierunkowaną sekwencję diagnostyczną. Jeśli brakuje wpisu, porównaj jego tabelę i klucz z oryginalnym eksportem. Jeśli brakuje wariantów liczby mnogiej, porównaj zwróconą strukturę wariantów. Jeśli liczby pojawiają się przy niewłaściwych rzeczownikach, porównaj przypisania argumentów. Jeśli niepoprawnie brzmi tylko jedna kombinacja, sprawdź tekst tego wariantu przed zmianą kodu aplikacji. Ta sekwencja wynika z zależności w przykładzie; nie oznacza, że Xcode automatycznie wykrywa każde naruszenie wymagań.
Testuj różne liczby, aby wykryć zamianę argumentów
Pomyślny import potwierdza, że Xcode przyjął materiały. Przykład wymaga jednak sprawdzenia działania. Użyj danych testowych aplikacji lub fikstury deweloperskiej, aby wyświetlić poniższe kombinacje. Oczekiwane zdania ilustrują wymagania angielskiego tekstu źródłowego; sformułowanie i wybór wariantu w języku docelowym muszą odpowiadać lokalizacji docelowej.
| Liczba kafelków | Liczba grup | Oczekiwany angielski tekst źródłowy | Co pomaga wykryć |
|---|---|---|---|
| 1 | 1 | Selected 1 tile in 1 group. |
Obie formy liczby pojedynczej |
| 3 | 1 | Selected 3 tiles in 1 group. |
Niezależna odmiana dotycząca kafelków |
| 1 | 2 | Selected 1 tile in 2 groups. |
Niezależna odmiana dotycząca grup |
| 3 | 2 | Selected 3 tiles in 2 groups. |
Różne wartości, które ujawniają zamianę argumentów |
Dodaj sprawdzenie wartości zero, jeśli aplikacja może wyświetlać puste zaznaczenie. Wybierz też wartości, które pozwalają sprawdzić każdą kategorię liczby mnogiej wymaganą w danej lokalizacji docelowej. Powyższe cztery wiersze obejmują angielskie kombinacje liczby pojedynczej i mnogiej, ale nie wszystkie możliwe warianty docelowe.
Aby uruchomić aplikację Mac w języku docelowym, wybierz Product > Scheme > Edit Scheme, zaznacz Run i otwórz Options. Ustaw App Language i, w razie potrzeby, App Region, zamknij edytor, wybierz miejsce docelowe uruchomienia Mac i uruchom aplikację. Apple dokumentuje ten sposób testowania za pomocą schematu. Testowanie lokalizacji podczas uruchamiania aplikacji
Przeczytaj wyświetlony komunikat i sprawdź, czy mieści się w interfejsie aplikacji. Jeśli liczby pozostają powiązane z właściwymi rzeczownikami, każdy wymagany wariant działa poprawnie, a zwrócona struktura odpowiada zamierzonym wymaganiom, cykl tłumaczenia zachował działanie potrzebne tej etykiecie. Zachowaj notatkę z wymaganiami przy materiałach, aby można było sprawdzać kolejne zmiany sformułowania względem tych samych jawnych wymagań.
Źródła
- String.LocalizationValue — Apple
- Przygotowanie tekstu aplikacji do tłumaczenia — Apple
- Lokalizowanie tekstu i tworzenie jego wariantów za pomocą katalogu ciągów — Apple
- Poznaj katalogi ciągów — Apple
- Specyfikatory formatu ciągów — Apple
- Eksportowanie lokalizacji — Apple
- Edycja plików XLIFF i katalogów ciągów — Apple
- Importowanie lokalizacji — Apple
- Testowanie lokalizacji podczas uruchamiania aplikacji — Apple