无法从Localizable.strings文件中检索本地化字符串

时间:2015-08-17 14:22:03

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

我无法从Localizable.strings文件中获取正确的本地化德语字符串。我的应用设置看起来像这样

  • Main.storyboard

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

    • Localizable.strings(英文)
    • Localizable.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

我也已经对字符串文件进行了本地化

enter image description here

enter image description here

它也包含在Copy Bundle Resources

enter image description here

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

3 个答案:

答案 0 :(得分:11)

好的,我想我知道你的错误的原因。 Parse在添加Localizable.strings方面存在问题,如文档here所示。这已在其框架的1.8.1版本中修复:

  

V1.8.1 - 2015年8月19日

     

...

     

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

     

...

您还可以查看this问题。

所以,只需确保使用最新版本的框架,所有这些都应该有效:)

答案 1 :(得分:0)

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

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

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

  • 查看是否有效

答案 2 :(得分:0)

曾经有一个类似的问题让我伤脑筋,对xx.strings文件进行搜索,发现我有一个血腥文件的旧副本把我搞砸了。

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

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

plutil -lint  xx.strings