我正在使用botbuilder框架。我为我创建的对话框定义了几个名称空间,例如help
或default
。对于所有这些,我还在我的locale/en/
目录中创建了json文件,一切都很顺利。
但是,我有一些非常常见的句子,我不想将它们复制到每个单独的命名空间。我已经尝试使用index.json
作为'后备',以防命名空间文件没有定义字符串。但它对我不起作用。与documentation似乎暗示的相反。
/locale
/en
/help.json
/default.json
/index.json <-- Doesn't work
/dialogs
/help.js
/default.js
bot.js
假设我在help.js
中有以下库:
lib = new builder.Library('help')
lib.dialog('/', (session) => {
session.send('custom_cancel')
}
module.exports = lib
该库用于bot.js
:
bot.library(require('./dialogs/help'))
index.json
有以下内容:
{
"custom_cancel": "My custom cancel"
}
help.json
为空:
{}
由于help.json
没有custom_cancel
,因此机器人实际上会将custom_cancel
作为字符串发送。
再次。我可以将字符串粘贴到两个位置,没有问题。但这对我来说似乎是一个难看的解决方案。
答案 0 :(得分:0)
我尝试了更多explicit版本,这在更多情况下似乎有所帮助,但我还没有完全相信。
session.localizer.gettext(session.preferredLocale(), 'custom_cancel')
您可以使用命名空间的第三个参数。似乎''
将指向index.json
文件。