将语言环境index.json拆分为单独的文件?

时间:2017-09-20 21:01:13

标签: node.js botframework azure-bot-service

我正在扩展一个有效的Azure Bot服务原型(在应用服务计划上),其中包含./locale/en/index.json中的所有提示。是否可以将其拆分为多个文件并以编程方式确定我们在运行时检查哪些文件提示?这是否会对性能产生重大影响?

示例:如果我对"什么是苹果"有什么不同的回答?和"什么是橙色",在单独的文件中定义为fruitDefinition提示符(apple.json和orange.json。)

而不是:

bot.dialog(('Apple', [
     function (session, args, next) {
         session.send("prompt_define_apple");
    }
]).triggerAction({matches: 'Apple'});

这将允许我对代码更通用,每次都提取相同的提示名称(" prompt_define")并且只是改变我从中获取的文件。

我当然可以继续将所有内容转储到index.json中,但是提示命名空间已经变得有点混乱了,我想将它扩展为一组广泛的实体。

谢谢!

1 个答案:

答案 0 :(得分:0)

实现这一目标的一种方法是使用库。通过这样做,您可以为每个库创建一个本地化文件。

Contoso Flowers sample中,您会发现这已实施。

创建库(index.js

bot.library(require('./dialogs/shop').createLibrary());

定义库(shop.js

var lib = new builder.Library('shop');
lib.dialog('/', [..]);

可本地化的文件(shop.json

{
    "default_user_name": "User",
    "provide_delivery_address": "%s, please enter the delivery address for these flowers. Include apartment # if needed.",
    "confirm_choice": "Great choice \"%s\"! Delivery on %s"
}