localized.strings - 在模拟器中有效,但在设备上无效

问题描述 投票:0回答:4

我的语言有问题。对于使用

NSLocalizedString
定义的每个条目,我只能在设备上看到 ID_String。故事板中设置的所有文本/图像等均正确显示。如果我使用模拟器一切都很好!

所以,我想使用 NSLocalizedString - 也许稍后可以使用该选项来翻译我的应用程序。目前我的应用程序只有德语版本。

  • 我使用故事板选项。在选项中,我将本地化设置为德国
  • 我向我的项目添加了一个字符串文件,也带有德语本地化
  • 此文件中的所有行看起来都像“OK_Button”=“OK”;

在我的项目文件夹中有一个 de.lproj 文件夹,其中包括 Storybord、InfoPlist.strings 和 localized.strings

两个字符串保存为UTF16。我在 TextWrangler 中打开这些文件并再次保存它们。

我几天来一直在寻找原因,但我没有看到我的问题。 有人知道我的代码出了什么问题或者缺少什么吗?

ios xcode localization ios-simulator
4个回答
3
投票

某些内容在模拟器上有效但在设备上无效的一个原因是 Max OS X 默认使用不区分大小写的文件系统,但 iOS 使用区分大小写的文件系统。检查并确保您的文件名大小写为

"Localizable.strings"


0
投票

问题的另一个原因可能是

Localizable.strings
目录中有一个
Base.lproj
文件。它会导致 iPhone 使用基本翻译文件而不是正确的翻译文件。

请参阅:为代码中面向用户的文本创建字符串文件


0
投票

如果上述解决方案对您不起作用,则问题可能与您的“编辑架构”及其运行语言有关。 这就是为什么您的设备打开的语言与应有的不同。

打开编辑架构

  1. 选择左侧菜单上的“运行”卡
  2. 找到左侧的“选项”选项卡并选择“应用程序语言”
  3. 确保您选择了“系统语言”

尽管我的设备安装了我的应用程序支持的语言,但我的编辑模式发送了不同的语言。这就是为什么它打开的是英文版本,这是默认的。


0
投票

我们的应用程序有多个目标。

本地化仅添加到一个目标。 (来自“目标会员”右侧检查员。)

因此预计它不适用于没有本地化文件的目标。

修复方法是将本地化文件添加到目标。

仍然没有意义的是为什么即使目标没有正确的本地化文件,它仍然可以在模拟器中工作。我认为这是苹果(缓存)错误或其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.