XCode 9本地化导出/导入不包括NSLocalizedString()或注释

The*_*ter 14 xcode localization export nslocalizedstring ios

情况:

我们使用XCode导出/导入工具为我们的翻译生成可本地化的文件.这在XCode 8中运行良好.由于我们更新到XCode 9,我们发现了一些问题.

问题:

  1. 通过编辑器导出本地化 - >导出以进行本地化... - >仅限开发语言时,根据此文档,它不包含 NSLocalizedString()键/值:When you export localizations, Xcode searches your code for the macros and includes the strings files in the exported localization file for translation.
  2. 添加到Localizable.strings开发语言文件的注释似乎在导出.xliff文件中不存在.
  3. 导入翻译.xliff文件时,XCode似乎删除了文件中的所有注释.它被取代"(No Comment)"

组态:

  • XCode 9.0(9A235)
  • 开发语言:NL
  • 本地化语言:Base,NL,DE,BE,LU
  • Objective-C&Swift混合项目

我尝试过的:

  • 我曾尝试查看XCode 9文档或更改日志以查看本地化中发生的变化,但我无法找到提及此更改的内容
  • NSLocalizedString()当我第一次Localizable.strings手动生成开发文件时,我可以通过使用命令行命令将我的字符串显示在导出中find ./ -name "*.m" -print0 | xargs -0 xcrun extractLocStrings -o .(我为.swift文件运行第二次,因为我的项目是swift/objc混合).然后结合结果,让我的字符串显示在导出中,但没有注释,这是翻译人员的指南.

题:

这是一个XCode 9错误吗?我是否错过了本地化导出/导入的任何文档或新功能/选项?有变通方法吗?

Ste*_*n S 0

对我来说解决导入和导出问题的是通过取消选中Project > Info > Localizations下的Use Base Internationalization来关闭 Base Internationalization 。我在代码中设置了所有翻译,因此不需要为我的 .storyboard 和 .xib 文件启用它。

以前,当启用它时,“Localized.strings (Base)”文件中没有任何内容,但 Xcode 8 在导出时使用我的“Localized (English)”文件中的内容似乎仍然可以正常工作。对于 Xcode 9,如果我的源文本位于 Localized (Base) 中,那么导出工作正常,但导入时仍然遇到问题。

我使用的是 Xcode 9.4.1。