ios - Xcode 10 - 如何刷新 Siri 快捷方式意图定义文件的本地化?
问题描述
我有一个 Siri 快捷方式的意图定义文件。当我点击本地化时,Xcode 可以很好地创建一个本地化文件,使用的每个字符串都带有一个 ID。但是,如果我在同一个文件中添加了一个新的意图,或者只是为同一个文件添加了一个新的可能响应,我该如何刷新呢?我目前只找到了两种方法:
- 删除本地化并再次设置新的(这会使您失去所有语言的所有翻译字符串,除了默认值)。
- 导出整个应用程序的所有翻译并重新导入(如果您的整个应用程序尚未准备好进行新的本地化导出/导入,则会出现问题)。
那么,有人知道刷新意图定义文件的自动本地化的方法吗?
解决方案
我最近遇到了同样的问题,我设法通过一个简单的解决方法和两个小、快速和肮脏的脚本来解决它:
- 确保
.strings
您的 git 存储库中有旧的本地化文件 - 取消选中所有
.intendefinition
本地化(并删除它们) - 检查你所有的本地化,它会重新创建
.strings
文件,但没有你的旧翻译(希望它们在 git 中是安全的) - 不要承诺他们(还)
- 对于每个
.strings
文件,以这种方式运行我的小脚本:{script-path}/update-modified-strings-file.sh {project-path}/xx.lproj/YourIntents.strings
- 检查是否一切正常
- 犯罪
- 健康长寿·繁荣昌盛...
请务必将两个脚本放在同一个目录中:
- 要调用的 Shell 脚本:https ://gist.github.com/letatas/221ea3d04e70996d026362de57c1b084
- 第一个调用的 Swift 脚本:https ://gist.github.com/letatas/9a58ad4f0a979b19579334bd80516f4a
第一个脚本将旧版本的字符串与您现有的翻译一起检查,第二个脚本将包含新条目的新文件与旧的现有翻译合并。
希望这可以帮助。
推荐阅读
- pytorch - 如何从数据集中获取有关 FashionMNIST 的超参数?
- flutter - flutter:: 我可以在没有发音校正的情况下使用语音转文本 api 吗?
- azure - ADO - VStam -update 用户许可证命令不起作用
- swiftui - SwiftUI 中键盘快捷键的标题
- c# - 在 C# 中,Make 按钮在 5 秒后永远出现
- arrays - 无法将命令输出发送到数组
- ios - 如何从 xcode 中的框架访问 .mm 文件?
- python - Tricky Pandas 任务 - 根据 True/False 反向检查其他列
- xml - 在 Perl 中将 base64 中的文件包含到 XML 中
- python - 如何在 Python ElementTree 声明 xml 后删除换行符?