Pracuję nad aplikacją dla klienta w Europie. Jestem Anglikiem w USA. Nasza aplikacja obsługuje wiele języków, ale nie angielski. Mam wszystkie ciągi w naszej aplikacji w przetłumaczonych plikach Localized.strings, poprawnie skonfigurowanych dla różnych języków i wszystkie działają poprawnie, gdy urządzenie jest ustawione na prawidłowy język (językiem urządzenia jest niemiecki = aplikacja jest poprawnie zlokalizowana dla języka niemieckiego) .Domyślny język inny niż angielski dla aplikacji na iOS?
Jest problem, gdy urządzenie nie jest ustawione na jednym z języków mamy wsparcie, na przykład, na moim telefonie, który jest ustawiony na angielski. W takich przypadkach chcemy, aby telefon wracał do niemieckiego, ale tak się nie dzieje. Widzimy, że telefon używa języka, który wydaje się najwyższy na liście języków w sekcji International Settings.app. Dla mojego telefonu najwyższy nieangielski język na liście jest francuski, więc kiedy uruchomię aplikację, jest ona zlokalizowana na język francuski. Jeśli zmienię swój telefon na niemiecki, a następnie z powrotem na angielski (który zmienia kolejność na liście języków), aplikacja lokalizuje się na język niemiecki.
Jak zapewnić domyślną aplikację dla języka niemieckiego dla języków nieobsługiwanych? Użyłem this tutorial do ustawienia ustawień regionalnych dla projektu. Obejmuje to usunięcie domyślnego ustawienia narodowego "języka angielskiego", które jest tworzone podczas pierwszej lokalizacji pliku. W pliku projektu, dodałem:
developmentRegion = de;
Również w Info.plist mam
<key>CFBundleDevelopmentRegion</key>
<string>de</string>
bez powodzenia.
Wszelkie pomysły będą mile widziane!
Pascal ma właściwą odpowiedź: aplikacja powróci do następnej najbardziej rozsądnej lokalizacji; jest to zgodne z projektem i jest sposobem działania wszystkich aplikacji na iOS i Mac OS X. Twoja aplikacja nie jest wyjątkowa. –
Nadal zastanawiam się nad tą odpowiedzią. Chociaż jest to oczywiście dobrze przemyślana odpowiedź, na koniec wymaga tego, że aplikacja musi wrócić do języka niemieckiego w przypadku, gdy nie istnieje odpowiednia lokalizacja; nie można tego negocjować z klientem. Co ciekawe, w tytule mojego pytania nawiązuję do tego, że jeśli folder English.lproj jest przechowywany w projekcie, to jest używany jako element rezerwowy, gdy nie ma dostępnej innej lokalizacji.Jeśli nie mogę wymyślić niczego innego, po prostu zatrzymam ten folder i skopiuję tam zasoby "de". –
Nie, angielski nie jest także domyślnym systemem. To proste, system operacyjny ma listę lokalizacji, zgodnie z preferencjami. Podczas uruchamiania aplikacji szuka odpowiednich folderów * .lproj i używa pierwszej, która pasuje do języka z listy. Dlatego używa angielskiego, kiedy nic innego nie jest w pobliżu. ;) Ale znam inną sztuczkę, sformułuję nową odpowiedź ... – Pascal