【问题标题】:Can't retrieve localized strings from Localizable.strings file无法从 Localizable.strings 文件中检索本地化字符串
【发布时间】:2015-11-10 05:38:32
【问题描述】:

我无法从 Localizable.strings 文件中获取正确的本地化德语字符串。我的应用设置如下所示

  • Main.storyboard

    • Main.storyboard(基础)
    • Main.strings(德语) -> 这些字符串翻译正确
  • Localizable.strings

    • Lo​​calizable.strings(英文)
    • Lo​​calizable.strings(德语)-> 无法获取这些字符串

在应用程序中,我试图获取这样的字符串

NSString *item = NSLocalizedString(@"Group expenses", @"Menu item");

Localizable.strings(德语)文件如下所示

/* Menu item */
"Group expenses" = "Gruppenausgaben";

当我在item 之后设置断点时,我总是得到英文字符串,但是资源的路径似乎是正确的NSString *path = [[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"]; 给我:/data/Containers/Bundle/Application/5E3ED6BF-71E1-4C60-9EDA-610C9A32B8EF/MyApp.app/de.lproj

我还本地化了字符串文件

它也包含在 Copy Bundle Resources 中

我在 stackoverflow 上尝试了不同问题的几个答案,例如删除应用程序并执行清理 (shift+cmd+k)、在 Edit Scheme 下设置应用程序语言、...

【问题讨论】:

  • 可以分享源代码吗?如果您无法共享原始应用程序,您是否可以尝试创建一个新的虚拟应用程序,该应用程序将包含相同的本地化设置并且也将无法正常工作?这样做的好处(除了其他用户能够测试您的代码之外)是您可能能够确定它无法自行运行的原因
  • 查看我的回答。您的 Localisable.strings 文件名称错误

标签: ios objective-c swift localization localizable.strings


【解决方案1】:

好的,我想我知道你的错误的原因。 Parse 在添加 Localizable.strings 时遇到问题,如 here 所述。这已在其框架的 1.8.1 版本中得到修复:

V1.8.1 — 2015 年 8 月 19 日

...

修复:通过 CocoaPods 使用并集成为静态库时覆盖的本地化。

...

您也可以查看this问题。

所以,只要确保你使用最新版本的框架,一切都应该可以工作:)

【讨论】:

  • @user1463853 是的,我认为这是可能的。但是,您应该更改示例项目,使其模拟与原始项目相同的条件,并且仍然会产生错误。当您这样做时,您要么自己发现错误,要么其他人将能够帮助您。目前听起来一切都应该正常,因此很难提出解决方案。
  • @user1463853 我已经用另一个建议更新了我的答案。那就是 Localisable.string 可能不包含在您的构建阶段中
  • @user1463853 它变得越来越有趣。如果您更改英语的本地化怎么办?例如“集团费用”=“集团费用2”。它是这样工作的吗?另外,为什么你有 3 个文件本地化为英语而只有 2 个文件本地化为德语(从你的截图中)?
  • @user1463853 让我们continue this discussion in chat
【解决方案2】:

我之前也遇到过同样的问题,你可以试试一些方法:

  • 确保将德语设置为您的 iOS 设备系统语言。

  • 在 Xcode 中运行此应用程序,然后停止。手动从 iOS 设备启动应用程序。 (第一次用 Xcode 启动会使用基础语言,我不知道为什么)

  • 看看是否有效

【讨论】:

  • 不幸的是还是一样
【解决方案3】:

刚刚有一个类似的问题让我头疼,搜索 xx.strings 文件我有一个该死的文件的旧副本搞砸了我。

find ./ -name "xx.strings" -print

仔细检查您的字符串文件是否正确

plutil -lint  xx.strings

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    相关资源
    最近更新 更多