如何使用作为库导出的对话框实现本地化

时间:2017-01-19 10:46:29

标签: node.js localization botframework

我按照basics-libraries example的说明将我的一些对话框打包为库。以前,我在app.js中有所有对话框,我按照documentation的说明使用了本地化。例如,我使用

var chatBot = new builder.UniversalBot(chatConnector, {
  localizerSettings: { 
    botLocalePath: "./locale", 
    defaultLocale: "de"
  }
});

session.preferredLocale("de");

对所有提示标签使用德语,并将所有德语翻译存储在./locale/de/index.json./locale/de/BotBuilder.json中。

但是,本地化不适用于我打包到库中的对话框。而不是本地化的字符串,只显示消息ID。

如果我在每个字符串上使用session.localizer.gettext(session.preferredLocale(), "message ID"),它就有效。但是,这非常繁琐,我想知道是否有办法立即本地化库中的所有字符串。

1 个答案:

答案 0 :(得分:1)

为了使其正常工作,您的语言环境文件应与您的库具有相同的名称。

./my_bot_library.js
./locale/en/my_bot_library.json

然后,要获取本地化文本,您可以使用:

session.localizer.gettext(session.preferredLocale(), 'message ID', 'my_bot_library')

  

请注意,第三个参数是命名空间   代表库名称

或仅在内部解析首选语言环境和当前名称空间/库名称

的以下内容
session.gettext('message_id') or session.send('message_id')