index.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. }
  23. };
  24. uni.onLocaleChange((locale) => {
  25. settings.lang = locale;
  26. })
  27. /**
  28. * 多语言方法
  29. */
  30. export function t(value, params = {}) {
  31. // console.log(settings.locales[settings.lang])
  32. if (value) {
  33. let lang = settings.lang
  34. if (!settings.locales[settings.lang]) {
  35. lang = 'zh-Hans'
  36. }
  37. let result = settings.locales[lang][value] || value;
  38. // 替换{xxx}格式的变量
  39. Object.keys(params).forEach(key => {
  40. const reg = new RegExp(`{${key}}`, 'g');
  41. result = result.replace(reg, params[key]);
  42. });
  43. return result;
  44. } else {
  45. return value;
  46. }
  47. }
  48. export default {
  49. settings: settings
  50. }