机器人框架.Net中的本地化

时间:2017-12-28 13:57:29

标签: c# localization botframework

我正在尝试在bot框架(C#)中实现本地化,并且也为它找到了一些资源。

表格流程 - > https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-formflow-localize

对于提示对话框和普通信息 - > https://github.com/Microsoft/BotBuilder-Samples/tree/master/CSharp/demo-ContosoFlowers#localization

但这里的主要问题是,这两者都取决于Thread.CurrentThread.CurrentUICulture值。通过设置区域设置(How to verify if localization is working correctly in Bot framework)可以轻松地在模拟器中测试它,但是如果真实用户通过通道访问它,将如何设置它。

如果CurrentUICulture不正确,我们如何实现本地化?将其设置为州另一种可行的选择吗?

https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-localization nodejs 提供本地化文档,是否有类似的方法通过在 Bot框架C#SDK <中提示用户来确定区域设置/强>

任何代码示例都非常有用。

1 个答案:

答案 0 :(得分:2)

没有必要提示用户使用dotnet SDK,它应该自动将当前文化设置为传入消息的文化。

你可以在这里看到这个:https://github.com/Microsoft/BotBuilder/search?utf8=%E2%9C%93&q=localizedscope&type=

如果您想忽略用户区域设置,而是提示用户选择一种语言,您可以在此处查看此操作的示例:https://github.com/EricDahlvang/ChooseLanguageBot

构建语言选择器的要点是,您需要创建一个继承自IDialog<object>的对话框,如果尚未选择语言,则会向PromptDialog发送有效的语言选项。一旦用户选择了一种语言,则保存所选语言环境。您可以使用上下文来存储它:context.PrivateConversationData.SetValue("SOME_KEY", optionSelected.Locale);