locale-utils.js 1006 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. const fs = require('fs');
  2. const helpers = require('./helpers');
  3. const DEPRECATED_LOCALE_IDS = ['en', 'ja'];
  4. const MIGRATE_LOCALE_MAP = {
  5. en: 'en_US',
  6. ja: 'ja_JP',
  7. };
  8. /**
  9. * List locales dirents
  10. */
  11. function listLocaleDirents() {
  12. const allDirents = fs.readdirSync(helpers.root('resource/locales'), { withFileTypes: true });
  13. return allDirents
  14. .filter(dirent => dirent.isDirectory());
  15. }
  16. /**
  17. * List locales aliases
  18. */
  19. function listLocaleMetadatas() {
  20. return listLocaleDirents()
  21. .map(dir => dir.name)
  22. .map(localeDirName => require(`../../../resource/locales/${localeDirName}/meta.json`));
  23. }
  24. /**
  25. * List locales IDs (=subdir names)
  26. */
  27. function listLocaleIds() {
  28. return listLocaleMetadatas()
  29. .map(meta => meta.id);
  30. }
  31. function migrateDeprecatedLocaleId(localeId) {
  32. const toValue = MIGRATE_LOCALE_MAP[localeId];
  33. if (toValue != null) {
  34. return toValue;
  35. }
  36. return localeId;
  37. }
  38. module.exports = {
  39. listLocaleMetadatas,
  40. listLocaleIds,
  41. migrateDeprecatedLocaleId,
  42. };