i18n.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import Vue from 'vue';
  2. import VueI18n from 'vue-i18n';
  3. import store from '../store';
  4. import { getToken } from '../utils/auth';
  5. import { getStaticContent } from '@/api/ajax';
  6. import ElementLocale from 'element-ui/lib/locale';
  7. import zhLocal from 'element-ui/lib/locale/lang/zh-CN';
  8. import arLocal from 'element-ui/lib/locale/lang/ar';
  9. import enLocal from 'element-ui/lib/locale/lang/en';
  10. import jaLocal from 'element-ui/lib/locale/lang/ja';
  11. import deLocal from 'element-ui/lib/locale/lang/de';
  12. import ruLocal from 'element-ui/lib/locale/lang/ru-RU';
  13. Vue.use(VueI18n);
  14. let locale = 'ZH';
  15. if (getToken()) {
  16. const user = JSON.parse(getToken());
  17. let language_type = user.language_type;
  18. locale = language_type || localStorage.getItem('language_type') || "ZH";
  19. } else {
  20. locale = localStorage.getItem('language_type') || "ZH";
  21. }
  22. const i18n = new VueI18n({
  23. locale: locale,//store.getters.language_type,
  24. messages: {
  25. ZH: {
  26. ...zhLocal
  27. },
  28. AR: {
  29. ...arLocal
  30. },
  31. EN: {
  32. ...enLocal
  33. },
  34. JA: {
  35. ...jaLocal
  36. },
  37. DE: {
  38. ...deLocal
  39. },
  40. RU: {
  41. ...ruLocal
  42. }
  43. },
  44. silentTranslationWarn: true
  45. });
  46. ElementLocale.i18n((key, value) => i18n.t(key, value));
  47. export async function setI18nLang(language_type) {
  48. await store.dispatch('lang/updateLanguageType', language_type);
  49. }
  50. /**
  51. * @description 更新语言列表
  52. * @param {Object} Parameter word_key_list 需要读取的词汇
  53. */
  54. export function updateWordPack(Parameter) {
  55. return new Promise((resolve, reject) => {
  56. Parameter.language_type = store.getters.language_type;
  57. let MethodName = 'language_manager-GetWordPack';
  58. getStaticContent(MethodName, Parameter).then(data => {
  59. let localWord = i18n.messages[data.language_type];
  60. if (localWord === undefined) {
  61. localWord = {};
  62. }
  63. let wordPack = Object.assign(localWord, data.word_pack);
  64. i18n.setLocaleMessage(data.language_type, wordPack);
  65. resolve()
  66. }).catch(err => {
  67. reject(err)
  68. });
  69. })
  70. }
  71. export default i18n;