mam dwa pytania
- Masz dowolny samouczek dotyczący lokalizacji aplikacji na iOS w celu obsługi wielu języków za pomocą aplikacja nie używa scenorysu?
- 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 № 1Gdy 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
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
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.