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