i18n.js 863 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // common/i18n
  2. import Polyglot from "node-polyglot";
  3. import en from "../locales/en.js";
  4. import it from "../locales/it.js";
  5. const defaultLocale = process.env.DEFAULT_LOCALE;
  6. const availableLocales = JSON.stringify(
  7. process.env.AVAILABLE_LOCALES.split(" ")
  8. );
  9. const phrases = {
  10. en: en,
  11. it: it,
  12. };
  13. const polyglot = new Polyglot({ defaultLocale, phrases });
  14. class I18n {
  15. availableLocales() {
  16. return availableLocales;
  17. }
  18. t(key, interpolationOptions) {
  19. if (!interpolationOptions) interpolationOptions = {};
  20. return polyglot.t(`${polyglot.locale()}.${key}`, interpolationOptions);
  21. }
  22. __(key, interpolationOptions) {
  23. return this.t(key, interpolationOptions);
  24. }
  25. locale(lang) {
  26. if (lang) {
  27. polyglot.locale(lang);
  28. }
  29. return polyglot.locale();
  30. }
  31. phrases() {
  32. return phrases;
  33. }
  34. }
  35. export default new I18n();