除英语外,其他语言的本地化效果非常好。每次我编译我的应用程序时,我都会看到键名而不是本地化字符串。示例:
NSLocalizedString(@"WelcomeKey", @"")
在 Localizable.strings 中我有相应的条目:
"WelcomeKey" = "Welcome";
在模拟器中,我总是得到键名 WelcomeKey
而不是 Welcome
。在设备上,这是完美的。在模拟器中没有!
我还发现我的 EN Localizable.strings 文件充满了“????????”符号。所以我输入旧值并将其保存在 Xcode 中。我还手动添加了一个条目,而不是使用 genstrings
。在模拟器中,第二种语言也能完美运行。只有英语似乎有问题。也许我删除了 English.lproj 并创建了一个 EN.lproj 文件夹?
我尝试过:
- 清空缓存
- 清理所有目标
- 删除“User/xxx/Library/Application Support/iPhone Simulator/User”文件夹
- 重启苹果
- 转换为 UTF-16
- 为 EN 创建了新的 Localizable.strings
- 删除 EN.lproj 文件夹和文件。使本地化变得全新。
我错过了什么?我认为模拟器讨厌英语......
编辑:
所以我尝试在另一台 Mac 上编译这个 App。它在模拟器中可以正常工作!因此要么是 Xcode 中的设置,要么是缓存问题。
最佳答案
So you have to remove your application from iPhone/iPhone simulator first.
在模拟器中的应用程序上按住鼠标,直到它开始摆动。然后点击 X。它将删除。然后按下主页按钮,使按钮停止摆动。
关于objective-c - 国际化:在模拟器中只显示键名而不是本地化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3785441/