我按照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")
,它就有效。但是,这非常繁琐,我想知道是否有办法立即本地化库中的所有字符串。
答案 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')