/ / Błąd podczas lokalizowania aplikacji ios w celu obsługi wielu języków - ios, iphone, objective-c

Błąd podczas lokalizowania aplikacji ios obsługującej wiele języków - ios, iphone, target-c

mam dwa pytania

  1. Masz dowolny samouczek dotyczący lokalizacji aplikacji na iOS w celu obsługi wielu języków za pomocą aplikacja nie używa scenorysu?
  2. Robię swoją aplikację bez storyboardu, zlokalizowałem jąprzez utworzony folder Base.lproj w kierunku mojego projektu, skopiuj do niego .xib i dodano język w Project->Info->Localization. (Testowałem pomyślnie na demo), ale z moją aplikacją, gdy kompiluję i uruchamiam na symulatorze, moja aplikacja nie nie aktualizuje się zgodnie z ustawieniem języka na symulatorze, aktualizuje się tylko podczas przebudowy. Czy ktoś może podać mi powód lub wątpliwe pytania?

Odpowiedzi:

3 dla odpowiedzi № 1

Gdy lokalizujesz zasoby w projekcie Xcode, nie musisz Kopiuj cokolwiek: Xcode robi wszystko za Ciebie. Jeśli zaczniesz kopiować rzeczy tu i tam, możesz się zgubić, a pliki mogą nawet nie zostać skopiowane do pakietu aplikacji.

Co musisz zrobić, to:

1/ Odwołaj się do wszystkich języków w swoim projekcie Xcode

Lokalizacja projektu

2/ Utwórz nowy plik „Strings” w swoim projekcie za pomocą Xcode, nazwij go „Localizable.strings” i utwórz jego zlokalizowane wersje przez Xcode, używając panelu „Lokalizacja” w Inspektorze plików

Lokalizacja pliku

3/ Po utworzeniu wielu wersji pliku Strings wprowadź przykładowy ciąg, który przetestujesz w swojej aplikacji, na przykład:

"HELLO_STR" = "Hello, world";

w Twojej angielskiej wersji i

"HELLO_STR" = "Bonjour tout le monde";

w twojej francuskiej wersji. Następnie w kodzie startowym aplikacji dodaj ten wiersz:

NSLog(@"%@", NSLocalizedString(@"HELLO_STR", nil));

Wiadomość zalogowana w konsoli powinna teraz odpowiadać ustawieniu języka urządzenia lub symulatora.

4/ Teraz musisz dodać wszystkie zlokalizowane ciągi do plików Localizable.strings.

5/ Jeśli chodzi o XIBs, działa dokładnie tak, jakScenorysy: możesz poprosić Xcode o utworzenie lokalizowalnej wersji wszystkich twoich XIB. Są one kopiowane i pakowane przez Xcode w taki sam sposób, jak plik strings, który już zbudowaliśmy w krokach 1-4. Lepiej to zrobić po "zakończeniu" projektowania interfejsów, ponieważ każda późniejsza modyfikacja jednej zlokalizowanej wersji XIB będzie musiała zostać powtórzona we wszystkich innych zlokalizowanych wersjach.

Powodzenia.