locale-utils.js 962 B

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