加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – Xcode本地化:保持翻译与Storyboard同步

发布时间:2020-12-14 17:25:56 所属栏目:百科 来源:网络整理
导读:这是我们的本地化工作流程: 在界面构建器中构建东西 出口项目进行本地化 翻译器查看xliff文件并应用新字符串的翻译(仅新的未翻译字符串) 将xliff导入项目 这适用于构建新东西.但是,如果开发人员更改了已经翻译的故事板中标签中的文本,他将不得不记住删除该
这是我们的本地化工作流程:

>在界面构建器中构建东西
>出口项目进行本地化
>翻译器查看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已经显示了哪些更改,这是您应该再次翻译的位置.

git with translations

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读