如何验证本地化是否在 Bot 框架中正常工作

How to verify if localization is working correctly in Bot framework

我已使用 RView 和 MAT 工具创建法语资源文件,如 https://docs.microsoft.com/en-us/bot-framework/dotnet/bot-builder-dotnet-formflow-localize 中所述,以本地化表单流程。我如何验证本地化是否正常工作。基本上我需要一种方法来用法语测试我的模拟器中的表单流。 best/right 设置 CurrentUICulture 或对其进行测试的方法是什么?

您可以像这样在机器人模拟器中设置语言环境:

那么重点问题是Bot SDK是否可以从客户端通道获取语言环境信息并根据该信息自动设置文化信息。我找不到任何官方文件可以指出这个问题,我们只能运行测试

如果机器人无法从客户端获取区域设置,有两种解决方法可以解决此问题。

  1. 为了提示用户,显示对话框让用户选择首选语言,然后我们可以将用户的选择保存在 table 的 Azure 存储中。

  2. 使用 Text Analytics API 根据用户的输入自动检测用户的语言。

如果您希望将语言环境设置为例如始终使用法语(即对于整个对话),您可以在调用对话框之前在 MessagesController.cs 中的 activity 中设置语言环境,如下所示:

activity.Locale ="fr";
await Conversation.SendAsync(activity, () => new RootDialog());

文档中提到 activity.Locale 会覆盖使用对话框的线程的文化。因此,您将很难在对话框中手动设置区域性。