gpt4 book ai didi

ios - Xcode 本地化 : Keep translation in sync with Storyboard

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:13 27 4
gpt4 key购买 nike

这是我们的本地化工作流程:

  1. 在界面生成器中构建内容
  2. 为本地化导出项目
  3. 翻译器查看 xliff 文件并对新字符串应用翻译(仅新的未翻译字符串)
  4. 将xliff导入项目

这适用于构建新内容。但是,如果开发人员更改了 Storyboard中已翻译的标签中的文本,他将必须记住删除该标签的翻译,因此翻译者将该字符串视为未翻译。如果开发者忘记删除那个翻译,翻译就会出错,这是一个很难发现的错误。

当代码像这样本地化时:

var testString = NSLocalizedString("Some text in english", comment: "just a test string")

字符串 ("Some text in english") 定义了 xliff 文件中的键,这意味着如果更改了字符串,则导出的 xliff 文件将自动具有一个新字符串,需要翻译。

我已经尝试使用 xcode 的“本地化导出...”功能、genstringsBartyCrounch 来解决这个问题。 ,但所有方法似乎都使用 UI 元素的 Object ID 作为 .strings 文件的键。这意味着它不会对实际字符串的变化使用react。

到目前为止,我找到的唯一解决方案是通过 IBOutlet 在代码中设置 Storyboard中需要翻译的每个字符串,但这是一个非常全面的解决方案。

你知道有什么工具或方法可以解决这个问题吗?

最佳答案

我试过你说的,明白你的意思。我认为解决方案很简单。

首先,我在 Storyboard中添加了一个新按钮,将其命名为“测试”。然后我把它翻译成中文,导入翻译。将“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,因为它总能找到差异。

步骤:

  1. 将你的翻译文件夹添加到git
  2. 提交当前文件
  3. 从 Xcode 导出新的翻译
  4. 用 git 查看差异

正如你在图片中看到的,git 已经显示了发生了什么变化,那是你应该再次翻译的地方。

git with translations

关于ios - Xcode 本地化 : Keep translation in sync with Storyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42441936/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com