首页 > 解决方案 > 如何在 Confirm Prompt (Microsoft Bot Framework) 中添加对不同语言的支持?

问题描述

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

添加对默认情况下不包含的更多语言的支持的最简单方法是将它们添加到defaultChoiceOptions地图中。但是这个地图被声明为私有静态,因此它不能被修改。

所以我正在考虑扩展 ConfirmPrompt 类并覆盖onPrompt与ConfirmPrompt 类onRecognize中完全相同的方法,但它将使用myCustomDefaultChoiceOptions我的自定义类中的非静态和公共字段 => 问题已解决。

但这是骇人听闻的解决方案,我不明白为什么这张地图在 Bot Framework SDK 中不是公开的和非静态的。

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

标签: botframeworkpromptconfirm

解决方案


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

choiceDefaults是私有的(现在是非静态的),但是,它可以通过将其传递给构造函数来更新。

最简单/最好的方法是为每种语言/区域设置/文化构建PromptCultureModel(因此您也可以通过 ChoicePrompt 轻松使用它),然后使用匹配的 PromptCultureModels 创建对象,ChoiceDefaultsConfirmPrompt然后将其传递构造函数.

您可以在此处的测试中看到我是如何做到这一点的。

注意:当您覆盖 时choiceDefaults,您会丢失所有当前支持的语言。您可以通过 轻松地将它们添加到您的 PromptCultureModel 对象中PromptCultureModels.getSupportedCultures()

注意:我有一个任务要添加一些额外的语言,但它在积压中,因为您现在可以添加自己的语言。


推荐阅读