我想使用确认提示,但目前确认提示仅支持几种语言,例如 en-us、fr-fr 等。我想使用确认提示对于默认情况下不支持的 2 种不同语言。我知道我可以使用 confirmChoices
和 choiceOptions
字段来手动指定确认选项,但这意味着我必须为确认提示中未包含的每种语言创建 1 个ConfirmPrompt默认情况下。
添加对默认情况下不包含的更多语言的支持的最简单方法是将它们添加到 defaultChoiceOptions
映射中。但该 map 被声明为私有(private)静态,因此无法修改。
因此,我正在考虑扩展ConfirmPrompt类并重写onPrompt
和onRecognize
方法,该方法与ConfirmPrompt类中的完全相同,但它将使用myCustomDefaultChoiceOptions
这将是我的自定义类中的非静态和公共(public)字段 => 问题已解决。
但是这是hackish解决方案,我无法理解为什么这个 map 在 Bot Framework SDK 中不是公开的和非静态的。
因此我想问,是否有任何其他解决方案(框架本身支持)允许我在ConfirmPrompt中添加对不同语言的支持?
最佳答案
这实际上是几个月前(由我)推出的一项更改。您需要更新您的软件包。
choiceDefaults
是私有(private)的(现在是非静态的),但是,可以通过将其传递到 the constructor 来更新它。 .
最简单/最好的方法是构建你的 PromptCultureModel对于每种语言/区域设置/文化(因此您也可以通过 ChoicePrompt 轻松使用它),然后使用与 ChoiceDefaultsConfirmPrompt
匹配的那些 PromptCultureModels 创建对象,然后将那个传递到构造函数中。
你可以在测试 here 中看到我是如何做到这一点的.
注意:当您覆盖 choiceDefaults
时,您将丢失所有当前支持的语言。您可以通过 PromptCultureModels.getSupportedCultures()
轻松将它们添加到 PromptCultureModel 对象中.
注意:我有一个待办事项要添加 some additional languages ,但它已积压,因为您现在可以添加自己的。
关于botframework - 如何在确认提示(Microsoft Bot Framework)中添加对不同语言的支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59180797/