这是我们的本地化工作流程:
这适用于构建新内容。但是,如果开发人员更改了已经翻译的故事板中标签中的文本,他将不得不记住删除该标签的翻译,因此翻译人员将该字符串视为未翻译。如果开发人员忘记删除该翻译,则翻译将是错误的,这是一个非常难以找到的错误。
当代码本地化时:
var testString = NSLocalizedString("Some text in english", comment: "just a test string")
字符串("Some text in english"
)定义xliff文件中的键,这意味着如果更改了字符串,则导出的xliff文件将自动拥有一个需要翻译的新字符串。
我尝试用xcode解决问题"导出本地化..."函数,genstrings
和BartyCrounch,但所有方法似乎都使用UI元素Object ID
作为.strings文件的键。这意味着它不会对实际字符串中的更改做出反应。
我到目前为止找到的唯一解决方案是通过IBOutlet
在代码中设置需要在故事板中翻译的每个字符串,但这是一个非常全面的解决方案。
您知道解决此问题的任何工具或方法吗?
答案 0 :(得分:1)
我尝试了你所说的并明白你的意思。我认为解决方案很简单。
首先,我在故事板中添加了一个新按钮,命名为"测试"。然后我用中文翻译,导入翻译。改变了"测试"到" 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,因为它总能找到差异。