I18n
function I18n(lang) {
    this.lang = lang;
    Object.keys(fruskac.I18N.SOURCE).forEach(function (key) {
        add(key, fruskac.I18N.SOURCE[key])
    })
}
I18n.prototype = {
| Option name | Type | Description | 
|---|---|---|
| id | string | 
Get the translation value from source using 'id' as key
translate: function (id) {
    return source[this.lang] && source[this.lang][id] || '__TRANSLATION_MISSING__';
}
    };
| Option name | Type | Description | 
|---|---|---|
| id | ||
| values | 
Allow each translation value for current language to be available for getting via 'id'
function add(id, values) {
    values.forEach(function (value) {
        fruskac.I18N.LANGUAGES.forEach(function (lang) {
            if (value[lang]) {
                if (!source[lang]) {
                    source[lang] = {};
                }
                source[lang][id] = value[lang];
            }
        })
    });
}
return I18n;
})();