如何在确认提示(Microsoft Bot Framework)中添加对不同语言的支持?

How to add support for different language in Confirm Prompt (Microsoft Bot Framework)?

我想使用确认提示,但目前确认提示仅支持少数语言,例如en-usfr-fr等. 我想对默认不支持的 2 种不同语言使用确认提示。我知道我可以使用 confirmChoiceschoiceOptions 字段来手动指定确认选项,但这意味着我必须为默认情况下不包含在确认提示中的每种语言创建 1 个确认提示。

添加更多默认不包含的语言支持的最简单方法是将它们添加到 defaultChoiceOptions 地图。但是这个映射被声明为private static,因此它不能被修改。

所以我正在考虑扩展 ConfirmPrompt class 并覆盖 onPromptonRecognize 方法,这与 ConfirmPrompt class 中的方法完全相同,但它将使用 myCustomDefaultChoiceOptions 将是非静态的,并且 public 字段在我的自定义 class => 问题已解决。

但这是 hackish 解决方案,我不明白为什么这个地图在 Bot Framework SDK 中不是 public 和非静态的。

因此我想问一下,是否有任何其他解决方案(框架本身支持)允许我在 ConfirmPrompt 中添加对不同语言的支持?

这实际上是几个月前(由我)推出的一项更改。您需要更新您的软件包。

choiceDefaults 是私有的(现在是非静态的),但是,可以通过将其传递给 the constructor.

来更新它

执行此操作的 easiest/best 方法是构建您的 PromptCultureModel for each language/locale/culture (so you can also use it easily with ChoicePrompt), then create the object with those PromptCultureModels that matches ChoiceDefaultsConfirmPrompt,然后将 that 传递给构造函数。

你可以在它的测试中看到我是如何做到的 here

注意:当您覆盖 choiceDefaults 时,您将失去所有当前支持的语言。您可以通过 PromptCultureModels.getSupportedCultures().

轻松地将它们添加到您的 PromptCultureModel 对象中

注意:我有一个待办事项要添加 some additional languages,但它在积压中,因为您现在可以添加自己的。