2016-08-14 46 views
5

我建立了一个bot,它运行良好,我使用FormFlow来完成问卷。我需要用西班牙语工作的命令,但它只能用英语(帮助,退出,重置...)工作,除了在模拟器中。如何使用FormFlow支持其他语言?

使用模拟器并将语言环境更改为“es”正在工作: Emulator in Spanish 当我键入“ayuda”时,显示帮助。没关系。

在机器人的个人资料页,机器人被刊登在西班牙语(使用“ES”): Bot profile in spanish

僵尸发表于Skype公司,Facebook的信使,松弛和电报。

当我在Android中使用带有“Estados Unidos - Español”或“España-Español”语言的机器人并在西班牙语中输入“ayuda”或其他命令时,机器人用“'Ayuda'回答英语输入不是[字段]选项“消息,但当输入是”帮助“时,它运行良好。

Skype Android in spanish

有我丢失的东西?

回答

0

我使用ngrok来查看Emulator和bot之间交换的消息,使用Locale字段(使用es,es-US,es-PA,es-ES等)西班牙语中的消息正在工作。

在此之后,我在bot中编写了一个用于获取Locale的命令,该字段返回一个空值(用es,en等)。

最后,我在Post方法的MessagesController中设置语言环境。

activity.Locale = "es-US"; 

机器人正在像我想要的西班牙文工作。

这是最好的解决方案吗?

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(); 
    } 

免责声明:不知道这是否是改变文化的最佳场所