Tym razem bardziej lightowo, czasami tak trzeba, jeśli ma się w dalszych planach mocniejszy i trudniejszy materiał. Dziś opiszę, jak przygotowałem wersje anglo- i polskojęzyczną mojej dotychczasowej app-ki na iOS. Możecie to sprawdzić jak zawsze na github.
Lokalizacja w iOS nie jest przesadnie trudna, aczkolwiek wymaga kilku kroków. Oto linki z oficjalnej dokumentacji Apple, z którymi możemy się zapoznać:
- https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPInternational/Introduction/Introduction.html
- https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html#//apple_ref/doc/uid/10000051i-CH6
- https://developer.apple.com/library/ios/samplecode/InternationalMountains/Introduction/Intro.html
Najbardziej pomógł mi jednak tutorial ze strony http://www.appcoda.com/localization-tutorial-ios8/. Znalazłem też inny na https://www.raywendeadanrlich.com/64401/internationalization-tutorial-for-ios-2014. Ten pierwszy generalnie jest lepszy, pokazuje więcej zagadnień i jest w Swift. Nie mówi jednak wszystkiego i ten drugi może być dla niego pewnym uzupełnieniem. Żaden z nich nie powiedział jednak o jednej rzeczy, a mianowicie jak… otworzyć w Xcode odpowiednią zakładkę z ustawieniami projektu, od której wszystko się zaczyna. Jeśli ktoś nie będzie mógł trafić, polecam link http://stackoverflow.com/questions/33614747/ios-localization-in-xcode-7.
Wiedza zawarta w powyższych linkach jest w zupełności wystarczająca do wykonania naszego zadania. Nie będziemy się więc przesadnie rozwodzić, dokonamy tylko krótkiego podsumowania z fragmentami plików zasobów i kodu.
Krok 1 - włączenie lokalizacji w całym projekcie, a konkretnie u nas dla plików storyboard. Projekt natywnie został stworzony w języku angielskim, więc dodałem tylko do niego kulturę polską. Zaowocowało to odpowiednią strukturą w projekcie i powstaniem plików na tłumaczenia polskie. Zrobiłem to dla każdego storyboard, natomiast aktualnie praktyczne znaczenie ma Main.storyboard. W wygenerowanym pliku Main.strings w miejscu angielskich napisów powstawiałem polskie, np:
/* Class = "UINavigationItem"; title = "Light Organ"; ObjectID = "G1V-9d-2Ho"; */
"G1V-9d-2Ho.title" = "Kolorofon";
Krok 2 - tłumaczenia dla napisów w kodzie. W projekcie możemy stworzyć plik tekstowy o nazwie Localizable.strings i włączamy jego lokalizację dla kultur angielskiej i polskiej. Następnie wstawiamy tłumaczenia w postaci klucz = wartość, np:
/* Unknown artist */
"unknownArtist" = "Nieznany wykonawca";
W kodzie aplikacji sztywne stringi zastępujemy wywołaniem funkcji NSLocalizedString z podaniem klucza i opcjonalnie komentarza. Przykładowo w FileListViewController mamy linijkę:
var artist = NSLocalizedString("unknownArtist", comment: "Unknown Artist")
Krok 3 - przetłumaczenie nazwy aplikacji. Podobnie jak w Android chcemy, by w języku polskim app-ka nazywała się “Kolorofon”, a po angielsku “Light Organ”. Jak tego dokonać? Tworzymy plik InfoPlist.strings (dla kultur en i pl) w taki sam sposób jak wcześniej Localizable.strings. Ustawiamy w nim klucz CFBundleDisplayName na pożądaną wartość. Dla kultury polskiej wygląda to tak:
CFBundleDisplayName = "Kolorofon";
Następnym razem może wspomnimy o jeszcze jednej drobnej rzeczy, ale generalnie już czas na więcej hardcore’u –
Brak komentarzy:
Prześlij komentarz