Sirikit自定义意图的国际化问题;iOS 13.4.1

我在我的iOS应用中使用Sirikit实现了两个自定义意图。当我开发它们的时候,我的iphone上安装了iOS 13.3,我的一个意图有一个Siri对话提示,要求一个参数的值。所有的应用程序都被翻译成了英语和西班牙语,而自定义意图在这两种语言中都能很好地工作。

当我将我的iphone更新到iOS 13.4.1时,我的自定义意图开始出现以下问题(根据安装设备的不同,我看到了这两个问题)。

  • Siri询问参数值,就像我不会把任何自定义对话框的标准短语 “你想要什么值的 “一样。param?” (或多或少)
  • Siri用英语询问Siri对话提示,而不是用西班牙语,即使其余的短语和Siri响应的其余意图和应用程序都正确翻译成西班牙语。唯一不能使用的翻译是Siri对话提示。

我觉得这个问题非常奇怪和恼人。我试图重新创建翻译文件,用于 Intent.intentdefinition: Intent.strings (Base), Intent.strings (English), Intent.strings (Spanish) 我甚至尝试重新创建整个自定义意图定义,但我仍然有这个问题。

我也试过改变手机上的iOS语言和Siri语言,重启,重新安装应用程序,意图等等。

这是我的Sirikit扩展的Info.plist。

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
<plist version="1.0">  
<dict>  
  <key>CFBundleDevelopmentRegion</key>  
  <string>$(DEVELOPMENT_LANGUAGE)</string>  
  <key>CFBundleDisplayName</key>  
  <string>InventorySearchIntent</string>  
  <key>CFBundleExecutable</key>  
  <string>$(EXECUTABLE_NAME)</string>  
  <key>CFBundleIdentifier</key>  
  <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>  
  <key>CFBundleInfoDictionaryVersion</key>  
  <string>6.0</string>  
  <key>CFBundleName</key>  
  <string>$(PRODUCT_NAME)</string>  
  <key>CFBundlePackageType</key>  
  <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>  
  <key>CFBundleShortVersionString</key>  
  <string>$(MARKETING_VERSION)</string>  
  <key>CFBundleVersion</key>  
  <string>$(CURRENT_PROJECT_VERSION)</string>  
  <key>NSExtension</key>  
  <dict>  
  <key>NSExtensionAttributes</key>  
  <dict>  
  <key>IntentsRestrictedWhileLocked</key>  
  <array/>  
  <key>IntentsRestrictedWhileProtectedDataUnavailable</key>  
  <array/>  
  <key>IntentsSupported</key>  
  <array>  
  <string>NumTotalItemsIntent</string>  
  <string>SearchItemIntent</string>  
  </array>  
  </dict>  
  <key>NSExtensionPointIdentifier</key>  
  <string>com.apple.intents-service</string>  
  <key>NSExtensionPrincipalClass</key>  
  <string>$(PRODUCT_MODULE_NAME).IntentHandler</string>  
  </dict>  
</dict>  
</plist>  

有什么解决方法吗 Is it a bug from iOS 13? 是iOS 13.4的bug吗?Siri集成对于我正在开发的应用来说非常重要,这对我来说是一个障碍。

先谢谢你

解决方案:

根据我自己的经验,这个问题在iOS 13.5 beta 4中已经修复了。我刚刚在iPhone 6s Plus中用Xcode 11.5 beta 2(11N605f)进行了测试。

然而,仍然存在其他问题。例如,在 “快捷键 “中,我的测试项目中的所有操作字符串都以英文显示,而不是本地化语言。

另外。INStringResolutionResult.confirmationRequired(with:) 并没有像预期的那样工作。

我有一个函数获取用户说的话并在数据库中查找,然后使用INStringResolutionResult.confirmationRequired(with:)与用户核对。SiriKit目前只使用用户说的话,而不是我与用户检查的结果,这导致最后的代码崩溃。

更新

我刚刚收到了苹果BUG报告团队的回复。以下是我目前得出的结论。

  1. 当切换语言时,Siri有时,如果不是所有的时间,有一个问题,使用默认的句子,以取代开发人员提供的句子。
  2. 安装Siri配置文件并重启可能会修复当前设置的Siri的上述问题。但如果你改变Siri的语言,问题还是存在。
  3. INStringResolutionResult的API出现了回归。对于单个结果,开放类func disambiguation(with stringsToDisambiguate: [String])-> Self和开放类func confirmationRequired(with stringToConfirm: String?) -> Self在iOS 13.3以后的iOS上都不能工作。Siri使用了一个名为 “name “的占位符而不是实际值。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

如何在python中获取替换度符号

2022-4-22 21:00:15

解决方案

在JTextArea中高亮显示下一个上一个比赛的JButton JAVA SWING

2022-4-22 21:00:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索