【问题标题】:Xcode Localizable.stringsdict is not being included in .xliff when exporting for localization导出本地化时,Xcode Localizable.stringsdict 未包含在 .xliff 中
【发布时间】:2017-09-05 20:58:31
【问题描述】:

正如标题所说。我使用的是 Xcode 8.3,当我导出 .xliff 时,它不包括 localizable.stringsdict 中的内容。我选择了localizable.stringsdict 并打开了文件检查器并点击了Localize 大按钮。这似乎没有解决任何问题。有人有这方面的经验吗?

【问题讨论】:

    标签: ios xcode localizable.strings xliff


    【解决方案1】:

    我不确定 XLIFF 是否能够表示字符串字典的内容,但即使可以,因为您已经发现 Xcode 不会在 XLIFF 输出中包含您的字符串字典。我查看的每个翻译服务都直接支持字符串字典文件,因此您的解决方案是将字符串字典文件与 XLIFF 一起上传到您的翻译服务。

    也就是说,当您导出本地化时,Xcode 至少不会将 stringsdict 文件复制到 xliff 文件旁边的导出本地化文件夹中,这似乎是一种疏忽。我建议你提交一个bug report with Apple 要求这个。

    【讨论】:

    • 从 Xcode 9 开始,stringsdict 内容出现在 Xliff 文件中。多年来一直存在一些错误,但在 Xcode 11 中它运行得非常完美。大多数软件仍在使用的 XLIFF 1.2 和较新的 XLIFF 2.0 标准都没有对复数表示的任何原生支持。为了在导出-导入往返过程中保留 stringsdict 分组,Xcode 为这些翻译分配了一个专门创建的 xliff 翻译单元 ID。
    【解决方案2】:

    它适用于 Xcode 9.2,但我遇到了一些问题。

    目前我的项目有Basesv 本地化。当我添加 localizable.stringsdict 时,XLIFF 中没有包含该内容。

    然后我按下 Localize 按钮,选择了唯一可用的语言en(我在这里期待Base)。然后我添加了sv 作为本地化,并为sv 做了导出本地化 - 瞧,它奏效了。

    但这里奇怪的是sv 本地化有en 作为它的原始。

    <file original="Resources/en.lproj/Localizable.stringsdict" source-language="en" datatype="plaintext" target-language="sv">

    (我尝试将Base 添加为本地化并删除en-version,但随后导出中缺少Localizable.stringsdicts 内容)

    【讨论】:

    • 但是这里奇怪的是sv本地化有en作为它的原版。这很正常,因为en很可能是你的Xcode项目开发语。当您将 xliff 导入回 Xcode 时,en 字符串文件将按预期更新。 “基础”概念是针对情节提要/xib 基础本地化的,而不是针对字符串文件的。 xliff 中的源语言和目标语言始终是标准 BCP47 语言标签。如果将 xliff 文件显示为“Base”,则用于打开 xliff 文件的软件翻译器将无法识别源语言。
    猜你喜欢
    • 1970-01-01
    • 2018-04-11
    • 2015-05-08
    • 2022-10-18
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多