这是我们的本地化工作流程:
>在界面构建器中构建东西
>出口项目进行本地化
>翻译器查看xliff文件并应用新字符串的翻译(仅新的未翻译字符串)
>将xliff导入项目
这适用于构建新东西.但是,如果开发人员更改了已经翻译的故事板中标签中的文本,他将不得不记住删除该标签的翻译,因此翻译人员将该字符串视为未翻译.如果开发人员忘记删除该翻译,则翻译将是错误的,这是一个非常难以找到的错误.
代码本地化时,如下所示:
var testString = NSLocalizedString("Some text in english", comment: "just a test string")
字符串(“一些英文文本”)定义xliff文件中的键,这意味着如果更改了字符串,则导出的xliff文件将自动具有需要翻译的新字符串.
我试图用xcode的“导出本地化…”函数解决问题,使用genstrings,并使用BartyCrounch,但所有方法似乎都使用UI元素的对象ID作为.strings文件的键.这意味着它不会对实际字符串中的更改做出反应.
到目前为止,我发现的唯一解决方案是通过IBOutlet在代码中设置需要在故事板中进行翻译的每个字符串,但这是一个非常全面的解决方案.
您知道解决此问题的任何工具或方法吗?
最佳答案 我尝试了你所说的,理解你的意思.我认为解决方案很简单.
首先,我在故事板中添加了一个新按钮,将其命名为“Test”.然后我用中文翻译,导入翻译.将“测试”更改为“GoGo”并再次导出翻译. xliff部分改为
<trans-unit id="jso-qF-Z1t.title">
<source>Test</source>
<target>测试</target>
<note>Class = "NSButtonCell"; title = "Test"; ObjectID = "jso-qF-Z1t";</note>
</trans-unit>
至
<trans-unit id="jso-qF-Z1t.title">
<source>GoGo</source>
<target>测试</target>
<note>Class = "NSButtonCell"; title = "GoGo"; ObjectID = "jso-qF-Z1t";</note>
</trans-unit>
接下来做什么
我不知道是否有现成的工具.但你可以使用Git,因为它总能找到差异.
脚步:
>将翻译文件夹添加到git
>提交当前文件
>从Xcode导出新的翻译
>用git查看差异
正如您在图片中看到的那样,git已经显示了哪些更改,这是您应该再次翻译的位置.