ios - 本地化自定义 SiriKit 意图

标签 ios xcode localization sirikit

我的 Xcode 是 v10,我正在为 SiriKit 开发一个针对 iOS 12 的自定义 intent。

在 Xcode 10 中,自定义意图是在 .intentdefinition 文件中设计的,您可以在其中为意图短语定义自己的参数以及意图的标题和该意图的 Siri 快捷方式。使用 .intentdefinition 文件构建项目会使 Xcode 自动为该意图生成一个 INIntent 派生类。

我的问题是,为了支持英语以外的其他语言,以便当用户能够操作自定义意图的快捷方式时,意图的标题以系统语言显示在常规 > Siri 和搜索中,我需要提供本地化的意图我的 .intentdefinition 文件的标题。

当我尝试在文件检查器中为我的 .intentdefinition 文件添加另一种语言,然后构建项目时,我得到:

重复输出文件 '/Users/.../IntentDefinitionGenerated/Intents/MyCustomIntent.swift' 任务:IntentDefinitionCodegen/Users/.../ru.lproj/Intents.intentdefinition

这很可能发生,因为 Xcode 在 .lproj 文件夹中看到多个 .intentdefinition 文件,并尝试为每个文件生成一个相同的命名类。

如何针对 iOS 12 本地化我的 .intentdefinition 文件?

最佳答案

转到 intentdefinition文件 -> File Inspector -> Select Localize -> 现在为您的 intentdefinition 选择当前语言文件。 这将转换您现有的 intentdefinition当前语言的文件。

现在再次选择相同的 intentdefinition文件,添加其他语言 -> 它将创建一个新的 Intents.strings文件,您可以在其中自定义其他语言环境的文本。

Localized Intents.intentdefinition file

Intents.intentdefinition file after localization

关于ios - 本地化自定义 SiriKit 意图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52384722/

相关文章:

ios - 颜色集和 UIColorAttributeTraitStorage 错误

objective-c - 将NSString对象从UITableViewController发送到UIViewController的问题(使用 Storyboard )

ios - [iOS]如何省略协议(protocol)?

java - 如何独立于区域设置在字符串中查找括号?

ios - 如何叠加相机捕获的图像?

ios - 制作一个 iOS "forward"按钮

localization - 如何在 Middleman 中将本地化 (i18n) 与 Haml 结合使用

javascript - l20n.js - 如何从 javascript 访问本地化子实体

ios - 检索在应用程序商店或 iTunes 商店中按给定术语搜索结果的应用程序列表

objective-c - 如何使用 NSManagedObjectSubClass 从 CoreData Base 获取所有记录?