2016-08-14 4 views
5

Я построил бота, и он работает хорошо, я использую FormFlow для заполнения вопросника. Мне нужны команды, работающие на испанском языке, но они работают только на английском языке (помощь, выход, перезагрузка ...), за исключением эмулятора.Как я могу поддерживать другие языки с помощью FormFlow?

Используя эмулятор и изменения локали в «эс» работает: Emulator in Spanish Когда я типа «Ayuda», помощь предъявляется. Все нормально.

В профиле Bot, бот был опубликован на испанском языке (с использованием "эс"): Bot profile in spanish

бот был опубликован в Skype, Facebook Messenger, слабины и телеграмм.

Когда я использую бота на Android с языком в «Estados Unidos - Español» или «España - Español» и набираю «ayuda» или другую команду на испанском языке, бот отвечает на ввод по-английски словами «Ayuda» а не поле [field] option, но когда вход «Справка», он работает хорошо.

Skype Android in spanish

Есть ли что-то я не хватает?

ответ

0

Я использую ngrok для просмотра сообщений, обмениваемых между эмулятором и ботом, с использованием поля Locale (с es, es-US, es-PA, es-ES и т. Д.) Сообщения на испанском языке работают.

После этого я пишу небольшую команду в боте, чтобы получить локаль, это поле возвращает пустое значение когда-либо (с помощью es, en и т. Д.).

Наконец, я установил локаль в MessageController в методе Post.

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

отказ от ответственности: не уверен, что это лучшее место, чтобы изменить культуру

Смежные вопросы