【问题标题】:iOS: Localization intermittently brokeniOS:本地化间歇性中断
【发布时间】:2012-01-06 02:56:15
【问题描述】:

我在应用本地化方面遇到了一个奇怪的问题。它在以前的版本中运行良好,但最近不知何故停止运行,本地化文件没有明显的变化(我确实添加了一种语言,但仅此而已)。

当我使用 Xcode Organizer (Xcode 3.2.5) 安装构建时,本地化有时会起作用。更改操作系统中的语言设置似乎没有任何作用。从 Xcode Organizer 卸载,然后重新安装没有帮助。

本地化 API 似乎找不到我的资源。我在我的一个 ViewController 中添加了一些 NSLog() 语句来打印出一个应该本地化的字符串,使用这个函数:

NSLog(@"Value: %@", [[NSBundle mainBundle] localizedStringForKey:@"MY_KEY" value:@"none found" table:nil]);

当本地化工作时,这会打印出预期的结果。当本地化不起作用时,这会打印出“未找到”。我检查了包的内容,.lproj 文件都在那里。我错过了什么?

编辑:我发现在构建之后,某些生成的用于各种语言的 *.lproj/Localizable.strings 文件没有正确创建 - 有时。我可以触摸德语文件,它会正确生成,但是下次我运行构建时它不正确。所有 Localizable.strings 文件的编码当前都设置为 UTF-16,我尝试切换到 UTF-8,但没有成功。我在构建日志中没有看到任何警告或错误表明字符串文件存在问题。

【问题讨论】:

    标签: ios localization ios-4.2


    【解决方案1】:

    由于您的项目中有多个localizable.strings 文件,我之前已经看到过这种情况。如果您将开源库放入您的解决方案(例如 ShareKit,它带有自己的 localizable.strings 文件),这很容易发生。请参阅Localisation strings not always work having ShareKit in a project 上的问题,以了解有关您问题的可能原因的更多信息。

    【讨论】:

    • 看来这就是原因。对于已添加到项目中的另一个目标,还有另一组翻译。一旦我重新命名这些,一切似乎都很好。
    猜你喜欢
    • 2021-09-05
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2016-07-15
    • 2012-10-20
    相关资源
    最近更新 更多