6

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 enmain.strings dla dowolnego innego "nieobsługiwanego" ustawienia narodowego.

Odpowiedz

11

Co chcę teraz jest to, że angielski main.strings jest domyślny plik jeśli użytkownik z lokalizacji innej niż en lub es przybywa do zastosowania, na przykład de lub fr.

Próbowałeś tego? Jestem prawie pewny, że aplikacja powróci do angielskiego locale bez robienia czegokolwiek. Nawet okna dialogowe systemu pojawią się w języku angielskim, chyba że aplikacja wyraźnie obsługuje bieżące ustawienia narodowe.

+1

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

+6

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

+0

ten jeden powinien być zaakceptowaną odpowiedzią –

Powiązane problemy