index.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import zhHans from './locales/zh-Hans.json'
  2. import zhHant from './locales/zh-Hant.json'
  3. import en from './locales/en.json'
  4. import es from './locales/es.json'
  5. import fr from './locales/fr.json'
  6. import de from './locales/de.json'
  7. import ko from './locales/ko.json'
  8. import ja from './locales/ja.json'
  9. import ru from './locales/ru.json'
  10. let settings = {
  11. lang: uni.getLocale(),
  12. locales: {
  13. en,
  14. es,
  15. fr,
  16. de,
  17. ko,
  18. ja,
  19. ru,
  20. 'zh-Hant': zhHant,
  21. 'zh-Hans': zhHans,
  22. 'zh': zhHans
  23. }
  24. };
  25. uni.onLocaleChange((locale) => {
  26. settings.lang = locale;
  27. })
  28. /**
  29. * 多语言方法
  30. */
  31. export function t(value, params = {}) {
  32. // console.log(settings.locales[settings.lang])
  33. if (value) {
  34. let lang = settings.lang
  35. if (!settings.locales[settings.lang]) {
  36. lang = 'en'
  37. }
  38. let result = settings.locales[lang][value] || value;
  39. // 替换{xxx}格式的变量
  40. Object.keys(params).forEach(key => {
  41. const reg = new RegExp(`{${key}}`, 'g');
  42. result = result.replace(reg, params[key]);
  43. });
  44. return result;
  45. } else {
  46. return value;
  47. }
  48. }
  49. export default {
  50. settings: settings
  51. }