translator.js 771 B

12345678910111213141516171819202122
  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. getOne: 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. getAll: function(locale) {
  18. locale = locales.indexOf(locale) > -1 ? locale : 'en-US';
  19. return langs[locale];
  20. }
  21. };