Aby znaleźć nieaktualne tłumaczenie, które nadal ma status przetłumaczonego, prześledź zmieniony komunikat źródłowy do jego wpisu w katalogu ciągów, ponownie zbuduj aplikację i porównaj brzmienie. Sama zielona ikona zaznaczenia nie rozwiąże rozbieżności, którą już wykryto.
Ten proces jest przeznaczony dla osoby utrzymującej aplikację Mac w Xcode z istniejącym katalogiem .xcstrings. Zadanie polega na ustaleniu, które tłumaczenia wymagają uwagi po zmianie angielskiego tekstu źródłowego, zachowaniu przydatnych istniejących treści i sprawdzeniu poprawionego komunikatu w działającej aplikacji.
Co powinno się stać po zmianie komunikatu źródłowego?
Apple dokumentuje, że zmiana ciągu źródłowego oznacza jego tłumaczenia jako wymagające sprawdzenia. Stany katalogu to ciągi nieprzetłumaczone (New), wymagające uwagi (Needs Review) oraz przetłumaczone, oznaczone zieloną ikoną zaznaczenia. Osobny stan Stale oznacza, że Xcode nie może już znaleźć wcześniej przetłumaczonego ciągu w kodzie. Poznaj katalogi ciągów
Ta terminologia ma znaczenie przy diagnozowaniu problemu. Nieaktualne tłumaczenie komunikatu nadal używanego przez aplikację wymaga sprawdzenia. Wyszukiwanie wyłącznie stanu Stale w katalogu może go nie wykryć.
Udokumentowane przez Apple zachowanie po zmianie źródła określa oczekiwany rezultat, ale nie wyjaśnia, dlaczego konkretny wpis zachował status przetłumaczonego. W takiej sytuacji sprawdź powiązanie między zmienionym tekstem źródłowym a katalogiem, zanim uznasz, że ikona zaznaczenia wystarcza jako dowód aktualności treści.
Znajdź dokładny komunikat przed sprawdzeniem tłumaczeń
Zacznij od jednego zmienionego komunikatu. Zapisz jego poprzednie angielskie brzmienie, obecne brzmienie, klucz wyszukiwania, jeśli jest odrębny, oraz nazwę katalogu. Taki krótki zapis porównawczy to zalecana pomoc diagnostyczna, a nie funkcja Xcode. Ułatwia sprawdzenie wpisów, które wyglądają podobnie.
Załóżmy na przykład, że przycisk na komputerze wcześniej wyświetlał Open item, a teraz wyświetla Open selected items. Należy sprawdzić, czy każde tłumaczenie nadal opisuje otwieranie aktualnie zaznaczonych elementów, w tym sytuację, gdy zaznaczono ich kilka. Samo znalezienie tłumaczenia słowa Open nie odpowie na to pytanie.
Oddziel klucz wyszukiwania od wyświetlanego tekstu
Swift obsługuje jawny, stały klucz wyszukiwania, odrębny od defaultValue. Ta wartość domyślna to zazwyczaj tekst w języku programistycznym używany w przypadku niepowodzenia wyszukiwania. comment zapewnia tłumaczowi kontekst. Jeśli nie określono tabeli, wyszukiwanie odbywa się w Localizable; jeśli nie określono pakietu, przeszukiwany jest główny pakiet aplikacji. Inicjalizator ciągu Swift z jawnym kluczem
Poniższy przykładowy rekord komunikatu pokazuje różnicę między tymi elementami. To syntetyczne wartości, a nie plik katalogu ani wykonywalny program.
| Element | Przed zmianą | Po zmianie |
|---|---|---|
| Klucz wyszukiwania | selection.open |
selection.open |
| Angielska wartość źródłowa | Open item |
Open selected items |
| Kontekst dla tłumacza | Button that opens one item |
Button that opens every item in the current selection |
| Tabela katalogu | Localizable |
Localizable |
W tym przypadku identyfikator pozostaje taki sam, a komunikat się zmienia. Audyt porównujący tylko nazwy kluczy nie wykryłby tej zmiany. Porównaj również wartość źródłową i kontekst.
Niektóre wywołania lokalizacyjne w Swift używają jako klucza tekstu w języku programistycznym. Apple opisuje String.LocalizationValue jako rozwiązanie obsługujące ten model, w tym interpolację. W takim układzie zmiana brzmienia może również zmienić klucz wyszukiwania, dlatego sprawdź zarówno stary, jak i nowy wpis, zamiast zakładać, że tłumaczenie pozostaje przypisane do tego samego identyfikatora. String.LocalizationValue
Ponownie zbuduj aplikację i sprawdź lokalizację w kodzie źródłowym
W Xcode wybierz Product > Build, a następnie zaznacz odpowiedni katalog w nawigatorze projektu. Apple dokumentuje, że kompilacja aktualizuje katalogi o zmiany w lokalizowanych ciągach w kodzie. Wybierz Editor > Assistant i zaznacz klucz, aby sprawdzić jego lokalizację w kodzie źródłowym. Lokalizowanie i dostosowywanie tekstu za pomocą katalogu ciągów
Porównaj tekst źródłowy w katalogu z zamierzoną zmianą. Jeśli katalog nadal zawiera Open item, najpierw ustal, dlaczego nowy tekst źródłowy nie trafił do tego wpisu. Sprawdzenie tłumaczenia względem starego tekstu źródłowego nie rozwiąże pierwotnego problemu.
Sprawdź tabelę i pakiet używane w wywołaniu lokalizacyjnym, zwłaszcza gdy projekt zawiera kilka katalogów lub modułów. Apple dokumentuje przekazywanie nazwy tabeli, aby wybrać katalog, oraz odpowiedniego pakietu dla ciągów spoza głównego pakietu aplikacji. Zaleca też używanie interfejsów API obsługujących lokalizację, aby Xcode mógł wykrywać tekst widoczny dla użytkownika. Przygotowywanie tekstu aplikacji do tłumaczenia
W przypadku wpisu zarządzanego ręcznie sprawdź i aktualizuj jego tekst źródłowy bezpośrednio: Apple informuje, że synchronizacja podczas kompilacji nie aktualizuje ani nie usuwa ciągów zarządzanych ręcznie. Nie zakładaj, że samo ponowne zbudowanie aplikacji je odświeży. Poznaj katalogi ciągów
Porównaj znaczenie, korzystając z tabeli decyzyjnej dotyczącej zmiany źródła
Gdy bieżący tekst źródłowy znajdzie się już w katalogu, wybierz każdy język docelowy i sprawdź odpowiedni wpis. Xcode pozwala filtrować tekst i sortować według stanu, co może ułatwić znalezienie wpisów wymagających sprawdzenia. Sprawdź też konkretny zmieniony komunikat, nawet jeśli jego status nadal wskazuje, że jest przetłumaczony. Poznaj katalogi ciągów
Poniższa pomoc decyzyjna opiera się na porównaniu znaczenia komunikatów, a nie na automatycznej ocenie tłumaczenia. Angielskie etykiety to syntetyczne przykłady. Pomagają określić, o co poprosić tłumacza, bez zakładania, że każda zmiana tekstu źródłowego wymaga zmiany treści tłumaczenia.
| Przykładowa zmiana tekstu źródłowego | Co sprawdzić | Decyzja dotycząca weryfikacji |
|---|---|---|
Open item → Open selected items |
Zakres zaznaczenia i znaczenie liczby pojedynczej lub mnogiej | Sprawdź, czy tłumaczenie nadal opisuje pełną czynność. |
Show details → Hide details |
Kierunek działania | Sprawdź, czy tłumaczenie opisuje odpowiednią czynność. |
Items → Items: |
Interpunkcję i umiejscowienie etykiety | Zachowaj dotychczasowe brzmienie tylko wtedy, gdy nadal pasuje do kontekstu. |
Open pozostaje Open, ale zmienia się jego zastosowanie |
Czy etykieta określa teraz inną czynność | Sprawdź kontekst, mimo że tekst źródłowy jest identyczny. |
Dla każdego rozważanego przypadku porównaj trzy rzeczy: znaczenie poprzedniego komunikatu, znaczenie obecnego komunikatu i to, co teraz przekazuje tłumaczenie. Widoczna różnica w tekście źródłowym wskazuje, że warto sprawdzić tłumaczenie; sama w sobie nie dowodzi, że treść tłumaczenia musi się zmienić.
Zmiany samego kontekstu wymagają jawnego sprawdzenia. Apple dokumentuje komentarze jako wskazówki dla tłumaczy, ale dostępna dokumentacja nie potwierdza, że każda zmiana komentarza automatycznie unieważnia istniejące tłumaczenia. Jeśli niezmieniona angielska etykieta zyskuje inne znaczenie, samodzielnie dodaj ją do kolejki sprawdzenia. Przygotowywanie tekstu aplikacji do tłumaczenia
Jeśli komunikat zawiera liczbę elementów lub wariant zależny od urządzenia, rozwiń te warianty, zamiast sprawdzać tylko wiersz nadrzędny. Apple dokumentuje w katalogach warianty liczby mnogiej i urządzeń. W języku angielskim liczba elementów może wymagać form 1 item i 2 items; sprawdź odpowiednie formy dla każdego języka docelowego, zamiast mechanicznie przenosić angielską gramatykę. Lokalizowanie i dostosowywanie tekstu za pomocą katalogu ciągów
Dokończ sprawdzanie, zachowując przydatne tłumaczenia
Użyj menu kontekstowego wpisu, aby oznaczyć wątpliwe tłumaczenie jako wymagające sprawdzenia. Jeśli istniejące brzmienie zostało sprawdzone i nadal jest odpowiednie, wybierz Mark as Reviewed; w przeciwnym razie zaktualizuj tłumaczenie. Te działania związane ze sprawdzaniem opisano w instrukcji Apple dotyczącej katalogów ciągów. Poznaj katalogi ciągów
Zachowaj istniejące brzmienie do porównania ze zmienionym tekstem źródłowym. Usunięcie tłumaczeń tylko po to, by zmniejszyć niejasność, pozbawia przydatnego materiału porównawczego. Nie usuwaj też wpisu tylko dlatego, że jego tłumaczenie jest nieaktualne: najpierw ustal, czy aplikacja nadal używa jego klucza.
W przypadku przykładu z zaznaczeniem przydatne przekazanie tłumaczowi zawierałoby klucz selection.open, informację o zmianie z Open item na Open selected items oraz wyjaśnienie, że przycisk otwiera wszystkie zaznaczone elementy. Dzięki temu tłumacz może ocenić konkretną czynność i jej zakres.
Obowiązuje tu praktyczne ograniczenie: dokumentacja Apple dostępna dla tego procesu nie opisuje polecenia, które odtworzyłoby wstecz wszystkie pominięte zmiany tekstu źródłowego dotyczące przetłumaczonych wpisów. Jeśli poprzednie brzmienie jest niedostępne, możesz porównać bieżący tekst źródłowy z bieżącym tłumaczeniem, ale nie ustalisz dokładnie, kiedy powstała rozbieżność. Jeśli porównanie przed i po zmianie ma znaczenie, użyj wcześniejszej wersji projektu lub zapisanej kopii tekstu źródłowego, jeśli jest dostępna.
Sprawdź poprawiony komunikat w aplikacji Mac
Po edycji przetestuj rzeczywisty interfejs. Wybierz Product > Scheme > Edit Scheme, zaznacz Run, otwórz Options i wybierz język docelowy w sekcji App Language. Zamknij okno dialogowe, wybierz miejsce uruchomienia Mac i uruchom aplikację. Apple dokumentuje ten sposób testowania lokalizacji za pomocą schematu. Testowanie lokalizacji podczas uruchamiania aplikacji
Wróć do konkretnego elementu interfejsu, który skłonił do sprawdzenia. W przypadku Open selected items przetestuj zaznaczenie jednego elementu i kilku elementów. Sprawdź, czy etykieta opisuje czynność w obu sytuacjach oraz czy wyświetlany tekst odpowiada edytowanemu wpisowi w katalogu. Rozbieżność na tym etapie oznacza, że warto ponownie sprawdzić klucz wyszukiwania, tabelę, pakiet lub odpowiedni wariant.
Zakończ, określając dla każdego języka, co postanowiono: istniejące brzmienie nadal jest odpowiednie, tłumaczenie zostało zaktualizowane albo sprawdzanie nadal trwa. Dzięki temu zadanie dotyczące zmienionego komunikatu i jego działania w interfejsie zostaje zamknięte, a stan katalogu potwierdza tę decyzję.
Źródła
- Lokalizowanie i dostosowywanie tekstu za pomocą katalogu ciągów — Apple
- Poznaj katalogi ciągów — Apple
- init(localized:defaultValue:table:bundle:locale:comment:) — Apple
- String.LocalizationValue — Apple
- Przygotowywanie tekstu aplikacji do tłumaczenia — Apple
- Testowanie lokalizacji podczas uruchamiania aplikacji — Apple