Botframework 本地化在Azure Bot服务节点中不起作用
我已经使用botframework和Azure Bot服务玩了很长一段时间了,注意到设置会话的preferredLocale会更改所有提示的语言,但不会更改发送的文本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'); } }); 以这种方式设置区域设置会将内置提示更改为西班牙语,
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进程的系统考虑在内。