首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XCode 9本地化导出/导入不包括NSLocalizedString()或注释

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

Stack Overflow用户
提问于 2017-10-19 13:50:38
回答 3查看 2.5K关注 0票数 14

形势:

我们使用XCode导出/导入工具为我们的翻译程序生成可本地化的文件。在XCode 8中,这是很好的。自从我们更新到XCode 9之后,我们就看到了一些问题。

问题:

  1. 当仅通过编辑器->Exportfor本地化.-->开发语言导出本地化时,不包括 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)"取代

Configuration:

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

我尝试过的:

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

问题:

这是XCode 9的错误吗?我是否遗漏了本地化导出/导入的任何文档或新功能/选项?有解决办法吗?

EN

回答 3

Stack Overflow用户

发布于 2018-10-25 17:30:12

这是一个较旧的问题,但我在Xcode 10中也有同样的问题。

解决方案是简单地将字符串文件(例如InfoPlist.strings)放在与plist.info相同的文件夹中。只有到那时,本地化导出中才包含现有的翻译。

以前,我让他们在一个专门的“本地化”组。虽然这对本地化本身有效(即运行应用程序时),但本地化导出似乎只包括来自“接近”plist.info的现有字符串文件的翻译。

票数 1
EN

Stack Overflow用户

发布于 2018-08-09 02:32:37

为我修复导入和导出的是取消检查关闭基本国际化,在Project > Info >Project下使用Base国际化。我用代码设置了所有的翻译,所以我不需要为我的.storyboard和.xib文件启用它。

以前,当启用"Localizable.strings (基本)“文件时,它中没有任何内容,但是Xcode 8在导出时仍然使用我的"Localizable (英语)”文件中的内容来正常工作。对于Xcode 9,如果我在Localizable (Base)中有源代码,那么导出工作正常,但是导入时仍然有问题。

我正在使用Xcode 9.4.1。

票数 0
EN

Stack Overflow用户

发布于 2018-08-22 07:21:45

我终于找到了问题的原因。

问题的存在是因为Xcode从未在它承诺的编码中保存文件。

有两个地方可以设置文本编码,一个是“默认文本编码”,其中包括一个“在保存上转换现有文件”复选框。

打开每个文件时,每个文件都有指定的“文本编码”文件。如果不指定文件上的文本编码,则使用“默认文本编码”。

但是,Xcode从未像它承诺的那样保存文件。例如,如果您选择一个文件指定的文本编码,比如"UTF-16",一个警报窗口会显示“取消”、“重新解释”、“转换”。

正如警报所述,如果选择转换,Xcode将将文件转换为编码。然而,事实并非如此。

因此,当您导出翻译时,文件将以从未转换成的编码打开,并被忽略.。

您可以通过以下步骤验证这一点。

  1. 选择源文件。
  2. 将其更改为另一个文本编码。
  3. 在“警报”窗口中,选择“转换”。
  4. 在Xcode中,右键单击文件并选择。
  5. 退出Xcode。
  6. 用另一个可以处理文本编码的文本编辑器打开文件,我的是BBEdit。
  7. 在BBEdit中,选择文件->保存为
  8. 现在您可以看到,该文件没有按照它承诺的那样保存在编码中。

解决方案

解决办法很简单。对于指定文本编码的文件,请将其保存在指定的编码中。您可以使用其他编辑器,如BBEdit,通过保存as并选择正确的编码来做到这一点。

对于未指定的文本编码的文件。确保它们被保存为“默认文本编码”。如果没有,请更改“默认文本编码”,这样您就不需要更改每个文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46831536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档