Xcode 10 - 如何刷新Siri快捷方式意图定义文件的本地化?

7
我有一个Siri快捷方式的意图定义文件。当我点击本地化时,Xcode会很好地创建一个本地化文件,并且每个使用的字符串都有一个ID。 但是如果我在同一文件中添加了新的意图或者只是添加了一个新的可能响应,我该如何刷新它呢? 目前我只找到两种方法:
  • 删除本地化并重新设置(这将使您失去除默认语言以外的所有翻译字符串)。
  • 导出整个应用程序的所有翻译,然后重新导入(如果您的完整应用程序尚未准备好进行新的本地化导出/导入,则会导致问题)。
那么,有人知道如何刷新意图定义文件的自动本地化吗?

与苹果开发人员进行了交谈。实际上,它现在的设计是有意为之的...但他们同意,这种体验并不是最好的,未来可能会考虑改进。 - Muxor
对于较小的更改,可以使用git diff获取新添加的ID。 - Klaas
有人检查过在Xcode 12中是否有变化吗?本地化意图似乎是一个很大的麻烦... - Kacper Cz
不好意思,即使在2020年(快2021年了),如果您添加或删除意图,仍需要重新生成本地化。 - Kacper Cz
3个回答

2

我最近也遇到了同样的问题,但是我用一个简单的解决方法和两个小而快速的脚本解决了它:

  1. 确保你的旧本地化 .strings 文件在你的git仓库中
  2. 取消勾选所有的 .intendefinition 本地化(并删除它们)
  3. 重新勾选所有的本地化,它将重新创建 .strings 文件,但没有你的旧翻译(希望它们在git中安全)
  4. 不要提交它们(还没)
  5. 对于每个 .strings 文件,按照以下方式运行我的小脚本:{script-path}/update-modified-strings-file.sh {project-path}/xx.lproj/YourIntents.strings
  6. 检查一切是否正常
  7. 提交
  8. 长命百岁...

请确保将两个脚本放在同一个目录下:

第一个脚本检查带有你现有翻译的旧字符串版本,第二个将新条目包含在旧的现有翻译中。

希望这可以帮到你。


1

我希望苹果能够解决这个问题。

与此同时,我发现最简单的解决方法是这样的...

在项目中添加对新语言的支持。例如,添加澳大利亚英语。然后您将获得一个新的.strings文件,其中包含所有新键和来自意图定义的值。

将其内容粘贴到您现有的英语版本中,并删除对该新语言的支持。

如果您想将新键合并到现有的本地化.strings文件中,则可以使用此https://github.com/Flinesoft/BartyCrouch。安装完成后,运行bartycrouch update即可将更改同步到所有.strings文件中。


现在有一个BartyCrouch的继任者,你可能想要查看一下,它拥有漂亮的GUI和其他几个改进,超越了BartyCrouch:https://remafox.app - Jeehut

0

我有同样的问题,今晚我玩了一下这个东西。据我所见,我必须删除所有本地化文件并重新创建它们,就像你说的那样...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接