我在調試我的NSLocalizedString
實現時遇到了一些問題。應該很簡單,但無論我做什麼,該函數只返回KEY
字符串。iOS - NSLocalizedString只返回密鑰字符串
我使用的XCode 4.5和iOS6的,所以我:
- 增加了一個新的文件名爲
File.strings
。 - 在我的項目設置中,我添加了英語和西班牙語作爲語言設置。
- 在文件檢查器中單擊「Make Localized」,並確保選中了英語和西班牙語選項,並且選中了我的目標的目標成員資格。
- 增加
"KEY" = "TestEnglish";
我的英語File.strings
- 新增
"KEY" = "TestSpanish";
我西班牙人File.strings
- 新增
NSLog(@"Localization: %@\n", NSLocalizedString(@"KEY", nil));
我.m
文件。
當我運行該應用程序時,值"KEY"
始終顯示打印在NSLog
。
跳進這個有點多,我想這也:
NSString *path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *str = [[NSBundle bundleWithPath:path] localizedStringForKey:@"KEY" value:@"" table:nil];
NSLog(@"Localization: %@\n", str);
,仍然「被印在值"KEY
,然而,path
是一個有效的路徑
沒有人有任何。線索如何調試?我覺得我已經讀過每一個SO問題/答案,但沒有任何建議幫助。
我知道NSLocalizedString
返回KEY
字符串,當它不能匹配ak ey,但我看不出我如何調試爲什麼我的應用程序可能不匹配KEY。
我也刪除/清理了大約十幾次的應用程序。
不應該'table:nil'是'table:@「File」'而不是? – 2012-12-21 17:15:11
@ H2CO3:哇,是的,謝謝。這抓住了英文版本,我非常高興的工作。但最終,我需要NSLocalizedString工作,以便我可以使用該方法的便利。我是否需要將「File.strings」重命名爲其他內容才能使NSLocalizedString工作? – Brett
您應該將您希望訪問的所有本地化信息放入「XXX.lproj/Localized.strings」中。另外,爲什麼你必須**使用'NSLocalizedString()'? – 2012-12-21 17:24:14