Mam problemy z debugowaniem mojej implementacji NSLocalizedString
. Powinny być proste, ale cokolwiek robię, funkcja zwraca tylko ciąg znaków KEY
.iOS - NSLocalizedString zwraca tylko ciąg klucza
Używam XCode 4.5 i iOS6, więc:
- dodał nowy plik o nazwie
File.strings
. - W ustawieniach projektu dodałem angielski i hiszpański jako ustawienia językowe.
- Kliknięto przycisk "Zrobiono zlokalizowane" w inspektorze plików i upewniono się, że wybrano opcje w języku angielskim i hiszpańskim, a także wybrano docelowe miejsce docelowe dla mojego celu.
- Dodano
"KEY" = "TestEnglish";
do mojego angielskiegoFile.strings
- Dodane
"KEY" = "TestSpanish";
do mojego hiszpańskiegoFile.strings
- Dodane
NSLog(@"Localization: %@\n", NSLocalizedString(@"KEY", nil));
do mojego pliku.m
.
Po uruchomieniu aplikacji wartość "KEY"
jest zawsze wyświetlana jako wydrukowana w postaci NSLog
.
wskoczyć do tego nieco więcej, próbowałem to także:
NSString *path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *str = [[NSBundle bundleWithPath:path] localizedStringForKey:@"KEY" value:@"" table:nil];
NSLog(@"Localization: %@\n", str);
i nadal wartość "KEY
"jest drukowany, a jednak path
jest prawidłową ścieżką
Czy ktoś ma żadnego. trop jak do debugowania to? czuję się jak czytałem każde więc pytanie/odpowiedź tam, ale żadna z propozycji pomocy.
Zdaję sobie sprawę, że NSLocalizedString
zwraca łańcuch KEY
gdy nie może się równać ak ale nie rozumiem, jak mogę debugować, dlaczego moja aplikacja może nie pasować do KEY.
Usunąłem/wyczyściłem aplikację kilkanaście razy.
Nie powinien "tabela: zero" być "tabela: @" Plik "zamiast tego? –
@ H2CO3: Wow, tak, dziękuję. To chwyta angielską wersję i jestem bardzo zadowolony, że działa.Ale ostatecznie potrzebuję NSLocalizedString do pracy, aby móc korzystać z wygody tej metody. Czy muszę zmienić nazwę pliku "File.strings" na coś innego, aby NSLocalizedString działał? – Brett
umieścisz wszystkie lokalizacje, które spodziewasz się mieć, w "XXX.lproj/Localized.strings". Ponadto, dlaczego ** musisz ** używać 'NSLocalizedString()'? –