Browse Source

添加国际化富文本编辑器方法

xiaohaizhao 9 months ago
parent
commit
66322ad6a0
1 changed files with 34 additions and 4 deletions
  1. 34 4
      src/components/newLayout/modules/header.vue

+ 34 - 4
src/components/newLayout/modules/header.vue

@@ -71,10 +71,9 @@
           <el-dropdown-item
             v-for="item in langusge"
             :key="item.index"
-            @click.native="i18nChangeLanguage(item.languagecode)"
+            @click.native="changeLanguage(item.languagecode)"
             >{{ item.languagename }}</el-dropdown-item
           >
-          <!-- <el-dropdown-item @click.native="i18nChangeLanguage('EN')">English</el-dropdown-item> -->
         </el-dropdown-menu>
       </el-dropdown>
       <el-dropdown>
@@ -123,6 +122,11 @@
 </template>
 
 <script>
+import {
+  i18nGetResources,
+  i18nChangeLanguage,
+  i18nAddResources,
+} from "@wangeditor/editor";
 import { mapGetters } from "vuex";
 import axios from "axios";
 import Vue from "vue";
@@ -154,6 +158,31 @@ export default {
     },
   },
   methods: {
+    //修改富文本编辑器语言
+    editorChangeLanguage() {
+      console.log("zh-CN", i18nGetResources("zh-CN"));
+      const types = {
+        ZH: "zh-CN",
+        EN: "en",
+      };
+      if (types[this.nowType]) {
+        i18nChangeLanguage(types[this.nowType]);
+      } else {
+        let resources = i18nGetResources("zh-CN");
+        const handleResources = (obj) => {
+          for (const key in obj) {
+            if (typeof obj[key] == "object") {
+              handleResources(obj[key]);
+            } else {
+              obj[key] = this.$t(obj[key]);
+            }
+          }
+        };
+        handleResources(resources);
+        i18nAddResources(this.nowType, resources);
+        i18nChangeLanguage(this.nowType);
+      }
+    },
     // 选择登录账号
     async selectAccount(item) {
       let arr = ["module_info", "active_modules", "folderid"];
@@ -244,7 +273,6 @@ export default {
 
       this.$router.push({ path: clickApp[0].path });
     },
-
     async languagelist() {
       const res = await this.$api.requested({
         id: 10026401,
@@ -256,8 +284,9 @@ export default {
       this.languagename =
         this.langusge.find((v) => v.languagecode == this.nowType)
           .languagename || "简体中文";
+      this.editorChangeLanguage();
     },
-    async i18nChangeLanguage(type) {
+    async changeLanguage(type) {
       this.nowType = type;
       this.languagename =
         this.langusge.find((v) => v.languagecode == this.nowType)
@@ -265,6 +294,7 @@ export default {
       localStorage.setItem("lang", type);
       this.$nextTick(() => {
         this.$i18n.locale = type;
+        this.editorChangeLanguage();
         this.$api
           .requested({
             classname: "sysmanage.develop.userauthforweb.userauth",