i18n.js 807 B

1234567891011121314151617181920212223
  1. const Cache = ('./cache');
  2. const messages = require('../i18n/messages.json');
  3. /**
  4. * @param {String} namespace
  5. * @param {String} key
  6. * @param {Object} [data]
  7. */
  8. module.exports = function (namespace, key, data) {
  9. let locale = Cache.locale;
  10. // check that the locale exists
  11. if (typeof messages[locale] === 'undefined') {
  12. locale = 'en';
  13. }
  14. if (typeof messages[locale][namespace] !== 'undefined' && typeof messages[locale][namespace][key] !== 'undefined') {
  15. return messages[locale][namespace][key](data);
  16. } else if (locale !== 'en' && typeof messages['en'][namespace] !== 'undefined' && typeof messages['en'][namespace][key] !== 'undefined') {
  17. return messages['en'][namespace][key](data);
  18. }
  19. return '(MISSING: ' + namespace + '/' + key + ')';
  20. };