我的语言有问题。对于使用
NSLocalizedString
定义的每个条目,我只能在设备上看到 ID_String。故事板中设置的所有文本/图像等均正确显示。如果我使用模拟器一切都很好!
所以,我想使用 NSLocalizedString - 也许稍后可以使用该选项来翻译我的应用程序。目前我的应用程序只有德语版本。
在我的项目文件夹中有一个 de.lproj 文件夹,其中包括 Storybord、InfoPlist.strings 和 localized.strings
两个字符串保存为UTF16。我在 TextWrangler 中打开这些文件并再次保存它们。
我几天来一直在寻找原因,但我没有看到我的问题。 有人知道我的代码出了什么问题或者缺少什么吗?
某些内容在模拟器上有效但在设备上无效的一个原因是 Max OS X 默认使用不区分大小写的文件系统,但 iOS 使用区分大小写的文件系统。检查并确保您的文件名大小写为
"Localizable.strings"
。
问题的另一个原因可能是
Localizable.strings
目录中有一个 Base.lproj
文件。它会导致 iPhone 使用基本翻译文件而不是正确的翻译文件。
如果上述解决方案对您不起作用,则问题可能与您的“编辑架构”及其运行语言有关。 这就是为什么您的设备打开的语言与应有的不同。
尽管我的设备安装了我的应用程序支持的语言,但我的编辑模式发送了不同的语言。这就是为什么它打开的是英文版本,这是默认的。
我们的应用程序有多个目标。
本地化仅添加到一个目标。 (来自“目标会员”右侧检查员。)
因此预计它不适用于没有本地化文件的目标。
修复方法是将本地化文件添加到目标。
仍然没有意义的是为什么即使目标没有正确的本地化文件,它仍然可以在模拟器中工作。我认为这是苹果(缓存)错误或其他问题。