本地化 Siri 捐赠的快捷方式

Posted

技术标签:

【中文标题】本地化 Siri 捐赠的快捷方式【英文标题】:Localizing siri donated shortcuts 【发布时间】:2018-08-02 06:41:30 【问题描述】:

我一直在查看donating a shortcut to siri 的文档以及一些关于它的博文。我已经设法使用NSUserActivity为我的应用添加了一个快捷方式:

let activity = NSUserActivity(activityType: "com.myapp.mobile")

activity.title = "Some title"
activity.isEligibleForSearch = true
activity.isEligibleForPrediction = true
activity.suggestedInvocationPhrase = "Summon my app please"
activity.persistentIdentifier = NSUserActivityPersistentIdentifier(rawValue: "com.myapp.mobile")

view.userActivity = activity
activity.becomeCurrent()

但到目前为止,我不知道应该如何在快捷方式上进行国际化。我应该在将suggestedInvocationPhrasetitle 传递给活动之前翻译它们还是由Siri 处理?

【问题讨论】:

【参考方案1】:

您需要像对待应用中的任何其他文本一样对待传递给 NSUserActivity 的文本 - 在将文本传递给 Activity 之前将其本地化。

【讨论】:

【参考方案2】:

您应该使用NSString.deferredLocalizedIntentsString API (see docs) 对其进行本地化,以便在向用户显示意图时使用正确的语言。 (用户可能会同时更改手机的语言。)

activity.suggestedInvocationPhrase = NSString.deferredLocalizedIntentsString(with: "localization_key_for_your_invocation_phrase") as String

【讨论】:

以上是关于本地化 Siri 捐赠的快捷方式的主要内容,如果未能解决你的问题,请参考以下文章

我的应用程序如何打开 Siri 快捷方式记录短语视图

从应用程序以编程方式调用 siri 快捷方式

如何检查我的应用程序是不是通过 Siri 快捷方式恢复

Apple Watch 中的 Siri 快捷方式集成

Siri - iPhone 上的快捷方式:应用程序在建议中不可见

Siri 快捷方式和 CocoaPods - 未找到文件