Локализация не работает в узле службы Azure Bot

Я довольно давно поигрался с бот-фреймворком и службой Azure Bot и заметил, что установка предпочтительного локального значения сеанса изменяет язык всех запросов, но не отправляемых текстов.

session.preferredLocale('es', (error) => {
       if (typeof error === 'undefined') { 
          session.send('greeting'); 
       }
});

При такой настройке языкового стандарта встроенные подсказки меняются на испанский, но не загружается локализованное приветственное сообщение, а вместо этого отправляется текстовое сообщение «приветствие».

var bot = new builder.UniversalBot(connector).set('localizerSettings', { botLocalePath: "./locale", defaultLocale: "en" });

Мой бот использует конфигурацию локализации по умолчанию, как показано в этом примере, но моя папка locale называется locale вместо customLocale.

Любые идеи?


person D. Peter    schedule 31.01.2017    source источник
comment
Нашел решение этой проблемы: github.com/Microsoft/BotBuilder-Azure/issues/2 Вкратце: если вы хотите использовать локализацию в лазурном узле службы ботов, вам необходимо вручную указать путь к языку бота. Проблема заключалась в основном в том, что путь локали по умолчанию был установлен как путь Linux и не нормализовался для разных систем. Использование path.join решает эту проблему, поскольку учитывает систему, в которой работает процесс Node.js.   -  person D. Peter    schedule 24.05.2017


Ответы (1)


Этот способ работает для нас

var bot = new builder.UniversalBot(connector,
function(session){
    session.preferredLocale('es', function(err){
        if (!err) {
            console.log("Locale: es");
        } else {
            console.log(err);
        }
    });
...

Хорошо работает в веб-чате и прямой линии (это всегда на EN, но нам это нужно на ES)

person dodoconr    schedule 29.06.2017