translator.js 646 B

123456789101112131415161718
  1. var fs = require('fs');
  2. var path = require('path');
  3. var langDir = path.normalize(__dirname + '/../languages');
  4. var locales = fs.readdirSync(langDir)
  5. .map(locale => path.basename(locale, '.json'));
  6. var vsprintf = require('sprintf-js').vsprintf;
  7. var langs = locales.reduce((carry, locale) =>
  8. Object.assign(carry, { [locale]: require(langDir + '/' + locale + '.json') }),
  9. {}
  10. );
  11. module.exports = {
  12. get: function(locale, string, args) {
  13. locale = locales.indexOf(locale) > -1 ? locale : 'en-US';
  14. const translation = langs[locale][string];
  15. return translation ? vsprintf(translation, args) : 'N/A';
  16. }
  17. };