Obecnie mam dwa obsługiwane języki: angielski i hiszpański. W związku z tym mam dwa pliki main.strings
dla każdego języka. Jeden w en.lproj
i jeden w es.lproj
.iPhone: domyślny plik ustawień lokalizacji/internacjonalizacji
Teraz chcę, aby angielski main.strings
był plikiem domyślnym, jeśli użytkownik z lokalizacją inną niż en
lub es
dotrze do aplikacji, np. de
lub fr
.
wiem, że mogę ustawić go ręcznie dla każdej struny w kodzie z parametrem defaultString
:
NSLocalizedStringWithDefaultValue(key, @"main",[NSBundle mainBundle], defaultString, comment);
Ale wolałbym nie wchodzić tam ponownie (i trzeba go zmienić w dwóch miejscach) ale domyślnie mają plik en
main.strings
dla dowolnego innego "nieobsługiwanego" ustawienia narodowego.
argh. Masz całkowitą rację. Głupi ze mnie za niezupełnie przetestowanie. Zamiast używać zupełnie innego języka użyłem "es" do testowania, dla którego miałem już utworzony pusty plik tekstowy. – znq
Fallback zależy od sekwencji [NSLocale preferredLanguages], a nie domyślnego angielskiego. na przykład jeśli przełączysz się z chińskiego na deutsch, pierwszym z nich jest deutsch, a drugi jest chiński, więc jeśli aplikacja obsługuje język chiński, to wyświetla chiński zamiast angielskiego – chings228
ten jeden powinien być zaakceptowaną odpowiedzią –