Edytor tłumaczeń udostępnia skonsolidowany i edytowalny widok wszystkich domyślnych i przetłumaczonych zasobów w formie ciągów.
Wprowadzenie do tłumaczenia aplikacji na różne języki znajdziesz w artykule Obsługa różnych języków i kultur.
Zasoby w postaci ciągów znaków
Zasoby w postaci ciągu znaków dla projektu znajdują się w plikach strings.xml
. Twój projekt ma domyślny plik strings.xml
zawierający zasoby w domyślnym języku Twojej aplikacji, czyli język, którego oczekujesz od większości użytkowników aplikacji. Możesz też mieć przetłumaczone pliki strings.xml
, które zawierają zasoby w postaci ciągów znaków dla innych języków, które chcesz obsługiwać w swojej aplikacji.
Gdy domyślny plik strings.xml
będzie gotowy, możesz dodać tłumaczenia samodzielnie lub skorzystać z usług profesjonalistów. W obu przypadkach warto skorzystać z funkcji Android Studio, które pomogą Ci testować tekst możliwy do zlokalizowania i nim zarządzać. Informacje o profesjonalnych usługach tłumaczeniowych znajdziesz w sekcji Zamów usługi tłumaczeniowe.
Otwórz edytor tłumaczeń
Edytor tłumaczeń jest dostępny w Android Studio w tych miejscach:
Otwórz w widoku Androida
- W panelu Projekt > Android po lewej stronie wybierz ModuleName > res > wartości.
- Kliknij plik strings.xml prawym przyciskiem myszy i wybierz Otwórz edytor tłumaczeń.
Edytor tłumaczeń wyświetli pary klucz-wartość z pliku
strings.xml
.Uwaga: po przetłumaczeniu plików
strings.xml
projekt ma wiele odpowiadających im folderów values z sufiksami wskazującymi język, np. values-es w przypadku języka hiszpańskiego. Domyślny plikstrings.xml
zawsze znajduje się w folderze values (bez sufiksu).
Rys. 1 przedstawia domyślny tekst aplikacji (w tym przypadku w języku angielskim) w Edytorze tłumaczeń dla prostej aplikacji przed wykonaniem tłumaczenia. Zawartość przetłumaczonych plików strings.xml
pojawi się po prawej stronie kolumny Nie można przetłumaczyć z 1 kolumną dla każdego języka, jak widać na ilustracji 2.
Otwórz z pliku string.xml
Edytor tłumaczeń jest dostępny z poziomu dowolnego pliku strings.xml
.
- W panelu Projekt > Android po lewej stronie wybierz ModuleName > res > wartości.
- Kliknij dwukrotnie plik strings.xml, aby otworzyć go do edycji.
- W pliku strings.xml kliknij link Otwórz edytor w prawym górnym rogu.
Uwaga: gdy klikniesz link Ukryj powiadomienie, link Otwórz edytor zniknie. Aby go przywrócić, zamknij projekt i otwórz go ponownie.
Otwórz w edytorze projektów
Możesz otworzyć edytor tłumaczeń w edytorze układu, aby zmienić domyślny i przetłumaczony tekst w celu lepszego dopasowania go do układu. Informacje o przełączaniu się między językami w edytorze projektów znajdziesz w artykule Wyświetlanie przetłumaczonego tekstu w edytorze projektów.
- W panelu Projekt > Android po lewej stronie wybierz ModuleName > res > układ.
- Kliknij dwukrotnie plik content_main.xml, aby otworzyć go do edycji.
- Kliknij kartę Projekt w lewym dolnym rogu, by wyświetlić Edytor projektów.
- W edytorze projektów wybierz listę Język .
- Wybierz Edytuj tłumaczenia .
Skonfiguruj wiersze, których nie można przetłumaczyć
W Edytorze tłumaczeń możesz wybrać opcję Nie można przetłumaczyć, aby wskazać, że nie chcesz tłumaczyć tekstu z tego wiersza. Tekst, którego nie chcesz tłumaczyć, może dotyczyć konkretnych produktów, np. nazw handlowych i znaków towarowych, albo terminów technicznych, które nie mają tłumaczenia.
Gdy zaznaczysz opcję Nie można przetłumaczyć, odpowiedni wiersz w domyślnym pliku strings.xml
będzie zawierać element translatable="false". W poniższym przykładzie ciąg EasyApp w górnym wierszu nie jest przetłumaczony, ponieważ jest to nazwa produktu.
<resources> <string name="app_name" translatable="false">EasyApp</string> <string name="action_settings">Settings</string> <string name="easy_app">I am a Simple App!</string> <string name="next_page">Next Page</string> <string name="second_page_message">I am the Second Page!</string> <string name="title_activity_second">SecondActivity</string> </resources>
Dodawanie i usuwanie języków
Edytor tłumaczeń obsługuje protokół BCP 47 oraz łączy kody regionów i regionów (krajów) w jedną grupę na potrzeby wybranych lokalizacji. Język określa więcej niż język. Ustawienia regionalne obejmują formatowanie zależne od kraju, takie jak data i godzina, waluty czy ułamki dziesiętne.
Aby dodać język:
- W edytorze tłumaczeń kliknij ikonę kuli ziemskiej .
- Z listy wybierz język, który chcesz dodać.
Nowy język pojawi się w edytorze tłumaczeń, a do projektu zostanie dodany folder values-* z plikiem
strings.xml
. Na przykład w przypadku języka hiszpańskiego wpisz values-es.
Aby usunąć język:
Możesz usunąć język w edytorze tłumaczeń, usuwając wszystkie wartości w tej kolumnie (patrz sekcja Edytowanie, dodawanie lub usuwanie tekstu). Możesz też usunąć folder projektu dla tego języka w ten sposób:
- W panelu Projekt > Android po lewej stronie wybierz ModuleName > res.
- Kliknij prawym przyciskiem myszy folder values-* obok języka, który chcesz usunąć. Na przykład values-hi w języku hindi.
- Z listy wybierz Usuń, aby usunąć folder i jego plik strings.xml.
Edytowanie, dodawanie i usuwanie tekstu
Ustawienia tekstu możesz operować bezpośrednio w pliku strings.xml
lub za pomocą edytora tłumaczeń. W tej sekcji opisano sposób korzystania z edytora tłumaczeń. W Edytorze tłumaczeń możesz edytować, dodawać lub usuwać tekst w widoku listy lub w polu Tłumaczenie u dołu Edytora tłumaczeń.
Widok listy
Aby edytować lub dodać tekst:
- Kliknij dwukrotnie komórkę, w której chcesz edytować lub dodać tekst.
- Użyj funkcji kopiowania i wklejania za pomocą klawiatury, a jeśli masz klawiaturę obsługującą znaki diakrytyczne, pisz bezpośrednio w widoku listy.
- Naciśnij Tab lub przenieś kursor poza pole.
Aby usunąć tekst:
- Kliknij dwukrotnie komórkę, którą chcesz usunąć.
- W widoku listy zaznacz tekst i naciśnij Usuń.
- Naciśnij Tab lub przenieś kursor poza pole.
Pole tłumaczenia
Aby edytować lub dodać tekst:
- W widoku listy kliknij raz komórkę, w której chcesz edytować lub dodać tekst.
- W polu Tłumaczenie naciśnij klawisz kopiuj i wklej, a jeśli masz klawiaturę obsługującą znaki diakrytyczne, wpisz tekst bezpośrednio w polu Tłumaczenie.
- Naciśnij Tab lub przenieś kursor poza pole.
Aby usunąć tekst:
- Kliknij raz komórkę, którą chcesz usunąć.
- W polu Tłumaczenie zaznacz tekst i naciśnij Usuń.
Dodawanie i usuwanie kluczy
W Edytorze tłumaczeń w kolumnie Klucz znajduje się lista unikalnych identyfikatorów dla każdego elementu danych w plikach strings.xml
. Klucze możesz dodawać i usuwać w edytorze tłumaczeń. Gdy usuniesz klucz, edytor tłumaczeń usunie ten klucz wraz ze wszystkimi powiązanymi tłumaczeniami. Edytor tłumaczeń korzysta z refaktoryzacji Safe Delete do usuwania klucza. Dzięki temu wiesz, czy tekst klucza jest używany w innym miejscu, i możesz wprowadzić niezbędne korekty przed usunięciem klucza. Dzięki refatorowaniu Safe Delete Twój kod nadal się skompiluje po usunięciu klucza.
Aby dodać klucz:
- W Edytorze tłumaczeń kliknij Dodaj klucz .
- W oknie wpisz nazwę klucza, wartość domyślną i lokalizację domyślnego pliku strings.xml.
Aby usunąć klucz, wykonaj te czynności:
- W Edytorze tłumaczeń wybierz klawisz, który chcesz usunąć.
- Kliknij Usuń klucze .
W oknie Usuń zdecyduj, czy chcesz bezpiecznie usunąć plik i czy przeszukiwać go w komentarzach i ciągach tekstowych, a następnie kliknij OK.
Jeśli do usuniętego klucza nie ma odniesień (użytkowań) lub jeśli wszystkie odwołania można bezpiecznie zwijać, klucz jest usuwany. W przeciwnym razie edytor tłumaczeń wyświetli okno Wykryto użycie z informacjami o wykrytych problemach.
- Wybierz Wyświetl wykorzystanie, aby zobaczyć, co zostanie usunięte. Okno Znajdź konflikty bezpiecznego usuwania pokazuje wszystkie przypadki, których nie można bezpiecznie usunąć, aby można było edytować odpowiedni kod.
- Kliknij prawym przyciskiem myszy użycie, aby wyświetlić menu kontekstowe, i wybierz Przejdź do źródła, by wprowadzić niezbędne zmiany.
- W panelu Znajdź konflikty bezpiecznego usuwania wybierz Ponownie uruchom Bezpieczne usuwanie, aby upewnić się, że nie ma żadnych innych zastosowań, które wymagają uwagi.
- Po wyczyszczeniu użycia danych kliknij Do Refactor (Do refaktoryzacji), aby usunąć klucz.
Popraw błędy
Rysunek 7 przedstawia edytor tłumaczeń wyświetlający zawartość plików strings.xml
w językach angielskim, hiszpańskim i francuskim. Czerwony tekst oznacza wiersze z błędami.
Aby poprawić błąd, najedź kursorem na czerwony tekst. Pojawi się wyjaśnienie problemu i jego rozwiązanie.
Gdy wprowadzisz zmiany w edytorze tłumaczeń, zostaną one zaktualizowane w plikach strings.xml
. Gdy wprowadzisz zmiany w pliku strings.xml
, zostaną one zaktualizowane w odpowiedniej kolumnie w Edytorze tłumaczeń.
Przykładowe poprawki w Edytorze tłumaczeń:
- Rysunek 7 pokazuje, że wiersz app_name ma zaznaczoną opcję Nie można przetłumaczyć, ale dostępne jest tłumaczenie na język hiszpański. Usuń tłumaczenie na język hiszpański, aby poprawić błąd.
- Rysunek 7 pokazuje, że w wierszu next_page brakuje tłumaczenia na język francuski. Aby naprawić błąd, skopiuj Page Suivante do komórki za pomocą klawiatury. Operacja kopiowania i wklejania na klawiaturze kopiuje do komórki tekst ze znakami diakrytycznymi.
Wyświetl przetłumaczony tekst w edytorze projektów
Aby zobaczyć, jak przetłumaczony tekst wyświetla się w układzie aplikacji, w Edytorze projektowania przełącz wersję tekstu między wersją domyślną a przetłumaczoną:
- W panelu Projekt > Android po lewej stronie wybierz ModuleName > res > układ.
- Kliknij dwukrotnie plik content_main.xml, aby otworzyć go do edycji.
- Kliknij kartę Projekt w lewym dolnym rogu, by wyświetlić Edytor projektów.
- W edytorze projektów wybierz listę Język .
- Wybierz Edytuj tłumaczenia .
- Wybierz język, w którym chcesz wyświetlać aplikację.
Edytor projektów wyświetla układ aplikacji w wybranym języku, w tym przypadku w języku hiszpańskim.
Ustawianie domyślnego języka Edytora projektów
Aby przywrócić domyślny język, kliknij es > Język .
Testuj tekst możliwy do zlokalizowania i zarządzaj nim
Platforma Android i Android Studio zapewniają kilka funkcji, które ułatwiają zarządzanie tekstem aplikacji możliwym do zlokalizowania i testowanie go. Te funkcje zawierają opcje pomocne w przypadku problemów ze skryptami pisanymi od prawej do lewej (RTL), takimi jak arabski czy hebrajski. Testowanie zlokalizowanego tekstu umożliwia wprowadzanie zmian w tekście UI i jego układzie przed zatwierdzeniem wiadomości do repozytorium źródłowego w celu późniejszego wysłania do przetłumaczenia.
Refaktoryzacja projektu pod kątem obsługi RTL
Android Studio zawiera polecenie refaktoryzacji, które włącza obsługę tekstu dwukierunkowego w elementach TextView
,
ConstraintLayout
i LinearLayout
, dzięki czemu aplikacje mogą wyświetlać i umożliwiać użytkownikom edytowanie tekstu zarówno w skryptach od lewej do prawej (LTR), jak i od prawej do lewej (RTL). To polecenie umożliwia też automatyczne powielanie układów interfejsu aplikacji i wszystkich widżetów widoku. Aby zobaczyć zmianę kierunku tekstu i lustrzane odbicie układu, musisz też ustawić właściwości tekstu i kierunku układu w Edytorze układu.
Poniższa procedura pokazuje, jak refaktoryzować projekt pod kątem obsługi RTL:
- Wybierz Refaktor > Jeśli to możliwe, dodaj obsługę RTL, aby wyświetlić okno widoczne na rysunku 11.
- Jeśli element
<application>
w plikuAndroidManifest.xml
nie ma atrybutuandroid:supportsRTL="true"
, zaznacz pole wyboru Update AndroidManifest.xml. - Jeśli właściwość
targetSdkVersion
aplikacji ma wartość 17 lub wyższą, wybierz Zastąp właściwości lewej/prawej właściwościami początkowymi/końcowymi. W takim przypadku właściwości powinny używać parametrów „start” i „end” zamiast „left” i „right”. Na przykładandroid:paddingLeft
zmieni się naandroid:paddingStart
. - Jeśli
targetSdkVersion
Twojej aplikacji to 16 lub mniej, wybierz Wygeneruj wersje -v17. W tym przypadku kod XML powinien używać obu zestawów właściwości. Na przykład w pliku XML musisz użyć zarówno właściwościandroid:paddingLeft
, jak iandroid:paddingStart
.
- Jeśli element
- Aby wyświetlić okno Find Refactoring Preview (Znajdź podgląd refaktoryzacji), kliknij Uruchom.
- Kliknij Zrób refaktoryzację.
Więcej informacji o refaktoryzacji projektu pod kątem obsługi RTL znajdziesz w artykule o natywnej obsłudze RTL w Androidzie 4.2.
Właściwości tekstu i kierunku układu
W oknie Właściwości po prawej stronie znajduje się właściwość textDirection, której można używać z widżetami tekstowymi, oraz właściwość layoutDirection do zmiany kierunku komponentów tekstu i układu. Właściwości kierunku znajdziesz w oknie Właściwości po prawej stronie i działają z interfejsem API na poziomie 17 lub wyższym.
Aby zobaczyć zmianę kierunku tekstu i lustrzane odbicie układu, musisz też refaktoryzować projekt pod kątem obsługi RTL. W języku angielskim zmiana kierunku tekstu powoduje tylko przesunięcie znaków interpunkcyjnych z prawej na lewą stronę tekstu, na przykład „Hello, World!” („Witaj świecie!”). Aby zmienić język tekstu od prawej do lewej, musisz użyć w aplikacji języka od prawej do lewej. Jeśli chcesz używać języka angielskiego i zobaczysz, że tekst został zmieniony na RTL do celów testowych, użyj pseudolocales. Pseudojęzyki są niezależne od polecenia refaktoryzacji i właściwości kierunku.
Aby uzyskać dostęp do właściwości kierunku i z nich korzystać:
- W Edytorze układu wybierz widżet tekstowy.
- Otwórz okno Właściwości i wyszukaj właściwość RTL, której chcesz użyć.
Aby ustawić wartość właściwości, wybierz jedną z tych opcji:
- firstStrong: wartość domyślna w widoku głównym. Pierwszy silny znak kierunkowy określa kierunek akapitu. Jeśli nie ma wyraźnego znaku kierunkowego, kierunek akapitu jest uznanym kierunkiem układu widoku.
- anyRtl: kierunek akapitu to RTL, jeśli zawiera mocne znaki od prawej do lewej. W przeciwnym razie jest to LTR, jeśli zawiera silne znaki LTR. Jeśli nie ma żadnej wartości, kierunek akapitu to rozpoznany kierunek układu widoku.
- ltr: kierunek akapitu to LTR.
- rtl: kierunek akapitu to RTL.
- locale:kierunek akapitu pochodzi z języka systemowego.
- dziedziczenie: wartość domyślna. Użyj kierunku ustawionego w elemencie nadrzędnym.
- Aby sprawdzić odwrócony tekst i układ, uruchom aplikację.
Pseudojęzyki
Pseudojęzyk to symulowany język, który zakłada cechy języków, które powodują problemy z interfejsem, układem, RTL i inne problemy z tłumaczeniem aplikacji. Pseudojęzyki umożliwiają szybkie i automatyczne tłumaczenia, które można odczytać w języku angielskim, aby uwzględniać wszystkie zlokalizowane wiadomości. Umożliwia to wychwytywanie w kodzie źródłowym wiadomości, których nie można przetłumaczyć.
Informacje o tym, jak używać pseudojęzyków, znajdziesz w artykule Testowanie aplikacji przy użyciu pseudojęzyków.