我建立了一个机器人,它运行良好,我正在使用FormFlow来完成调查问卷。我需要使用西班牙语的命令,但它只能用英语(帮助,退出,重置......),但在模拟器中除外。
使用模拟器并将Locale更改为“es”正在运行: 当我输入“ayuda”时,会显示帮助。没关系。
在Bot个人资料页面中,僵尸程序以西班牙语发布(使用“es”):
该机器人在Skype,Facebook Messenger,Slack和Telegram上发布。
当我使用Android中的机器人使用“Estados Unidos - Español”或“España - Español”中的语言并输入西班牙语中的“ayuda”或其他命令时,机器人用英语回答输入“'Ayuda'不是一个[字段]选项“消息,但当输入是”帮助“时,它运行良好。
我有什么遗失的吗?
答案 0 :(得分:1)
我使用ngrok查看Emulator和僵尸程序之间交换的消息,使用Locale字段(使用es,es-US,es-PA,es-ES等),西班牙语中的消息正在工作。
在此之后,我在机器人中编写一个小命令以获取Locale,此字段将返回一个空值(使用es,en等)。
最后,我在Post方法的MessagesController中设置了语言环境。
activity.Locale = "es-US";
机器人正在以我想要的西班牙语工作。
这是最好的解决方案吗?
答案 1 :(得分:0)
我遇到了同样的问题。通过在表单构建器中更改线程的文化来修复它:
public static IForm<YourDialogForm> BuildForm()
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("es-AR");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("es-AR");
return new FormBuilder<YourDialogForm>()
//your code
.Build();
}
免责声明:不确定这是否是改变文化的最佳地点