国际化:在Simulator中仅显示键名而不是本地化字符串

tes*_*ing 5 xcode objective-c internationalization ios-simulator

本地化适用于除英语以外的其他语言.每次我编译我的应用程序时,我都会看到键名而不是本地化字符串.例:

NSLocalizedString(@"WelcomeKey", @"")
Run Code Online (Sandbox Code Playgroud)

在Localizable.strings中我有相应的条目:

"WelcomeKey" = "Welcome";
Run Code Online (Sandbox Code Playgroud)

在模拟器中,我总是得到键名WelcomeKey而不是Welcome.在设备上,这是完美的.在模拟器中没有!

我还发现我的EN Localizable.strings文件充满了"???????" 符号.所以我输入旧值并将其保存在Xcode中.我还手动添加了一个条目而不是使用genstrings.在模拟器中,第二语言也很完美.只有英语似乎有问题.也许我删除了English.lproj并创建了一个EN.lproj文件夹?

我试过了:

  1. 空缓存
  2. 清理所有目标
  3. 删除"User/xxx/Library/Application Support/iPhone Simulator/User"文件夹
  4. 重启Mac
  5. 转换为UTF-16
  6. 为EN创建了新的Localizable.strings
  7. 删除EN.lproj文件夹和文件.使本地化全新.

我错过了什么?我认为模拟器讨厌英语......

编辑:

所以我试着在另一台Mac上编译这个应用程序.它在模拟器中没有问题!所以无论是Xcode中设置还是缓存问题.

tes*_*ing 2

所以你必须先从 iPhone/iPhone 模拟器中删除你的应用程序。

在模拟器中的应用程序上按住鼠标,直到它开始摆动。然后点击 X。它将删除。然后按主页按钮使按钮停止摆动。