我正在尝试实现一种在应用程序中更改语言的方法。
我想我已经弄清楚了,但由于某种原因,文件夹没有作为捆绑
我有一个名为kh.lproj的文件夹
NSString *path = [[NSBundle mainBundle] pathForResource:newLanguage ofType:@"lproj"];
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
bundle = [NSBundle bundleWithPath:path];
DLOG(@"Language: %@ from path %@ (%@)", newLanguage, path, bundle);
}
我的dlog的输出是
语言:kh from path ........ / F1AA1E74-A014-4331-BD1B-D05D0E54AFF3 / console.app / kh.lproj(NSBundle <....... / F1AA1E74-A014-4331-BD1B- D05D0E54AFF3 / console.app / kh.lproj>(尚未加载))
在iPhone和模拟器中(当然有不同的路径)。
我已经检查了.app文件夹,并且存在kh.lproj文件夹。 (小写)。
有没有人知道为什么会这样?如果我尝试加载不存在的文件,它只是忽略它,不要尝试加载它。
编辑
如果有任何帮助,当我使用loadAndReturnError:(NSError)时,我收到消息:
NSLocalizedFailureReason =无法找到软件包的可执行文件。,NSLocalizedDescription =无法加载软件包“kh.lproj”,因为无法找到它的可执行文件。,NSBundlePath = ....... / A65E8399-6CDB- 4CAE-9074-803125E78BBA / storeconsole.app / kh.lproj
这个错误消息是什么意思
看起来我在打电话时得到了我想要的东西
[bundle localizedStringForKey:key value:NULL table:nil];