Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Botframework 本地化在Azure Bot服务节点中不起作用_Botframework_Azure Bot Service - Fatal编程技术网

Botframework 本地化在Azure Bot服务节点中不起作用

Botframework 本地化在Azure Bot服务节点中不起作用,botframework,azure-bot-service,Botframework,Azure Bot Service,我已经使用botframework和Azure Bot服务玩了很长一段时间了,注意到设置会话的preferredLocale会更改所有提示的语言,但不会更改发送的文本 session.preferredLocale('es', (error) => { if (typeof error === 'undefined') { session.send('greeting'); } }); 以这种方式设置区域设置会将内置提示更改为西班牙语,

我已经使用botframework和Azure Bot服务玩了很长一段时间了,注意到设置会话的preferredLocale会更改所有提示的语言,但不会更改发送的文本

session.preferredLocale('es', (error) => {
       if (typeof error === 'undefined') { 
          session.send('greeting'); 
       }
});
以这种方式设置区域设置会将内置提示更改为西班牙语,但不会加载本地化的问候语消息,而是发送纯文本消息“问候语”

var bot = new builder.UniversalBot(connector).set('localizerSettings', { botLocalePath: "./locale", defaultLocale: "en" });
我的bot使用默认的本地化配置,如本例所示,但是我的locale文件夹名为locale,而不是customLocale

有什么想法吗?

这种方法对我们很有效

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

在webchat和directline上运行良好(这一个碰巧始终使用EN,但我们需要在ES中使用它)

找到了解决此问题的方法:简而言之:如果要在bot服务azure节点中使用本地化,则必须手动设置bot区域设置路径。问题主要在于默认的语言环境路径被设置为linux路径,并且没有跨系统进行规范化。使用path.join解决了这个问题,因为它将运行Node.js进程的系统考虑在内。