0.0.2 • Published 8 years ago

nbp-locales v0.0.2

Weekly downloads
2
License
ISC
Repository
github
Last release
8 years ago

Locales helpers

This helpers are used for bot's localization.

First you should import a factory:

import createLocalesFactory from 'nbp-locales';

Then you should create whole bot's vocabulary in different languages (vocabulary.js):

export default {
    en: {
        // This is a Cluster name
        greetings: {

            // This is a Skill name
            // you can make it deeper if you want to
            greet: (userName) => [
                `Hi ${userName}.`,
                `${userName}. It's been a while.`,
                `Hello.`
            ],

            justGreeted: [
                `We just greeted.`,
                `Ok. Hi. Again.`
            ],

            sarcaticGreet: (userName) => [
                `I'll order vitamins for memory. ;) Hi.`,
                `I can swear that we greeted several times already.`,
                `Are we playing a game or something?`,
                `${userName}, sometimes I have same problems. Just can't remember what I did before. We greeted several times already. I swear.`,
                `I have an idea! Let's stop greeting each other? :P`
            ]
        },

        afairs: {
            afairs: (userName) => [
                `Fine ${userName}, thanks!`,
                `I'm fine, thanks!`,
                `It's ok.`
            ],
            justAskedAfairs: (userName) => [
                `Could be better`,
                `It was OK before you asked. Several times.`,
                `I've talked to hundreds people today, how do you think?`
            ]
        }
    }
};

Pass vocabulary to the locales factory (here where I create it):

const localesFactory = createLocalesFactory(vocabulary)

Then in some Core skill you need to retrieve a language, that your user speaks now and pass it to the bot's context (check this as an example):

bot.locales = localesFactory('en');

Afterwards inside other skill just use those locales (usage example):

// CLUSTER_NAME = 'greetings';
// SKILL_NAME = 'greet';
bot.locales(`${CLUSTER_NAME}.${SKILL_NAME}`, first_name);