Эх сурвалжийг харах

app.html 多语言使用优化

root 2 жил өмнө
parent
commit
e3caaef24e

+ 7 - 47
app.html

@@ -79,57 +79,17 @@
 
 
 <script type='text/javascript' src='./public/static/amis-sdk/sdk.js'></script>
 <script type='text/javascript' src='./public/static/amis-sdk/sdk.js'></script>
 <script type='text/javascript' src='./public/static/amis-static/history.js'></script>
 <script type='text/javascript' src='./public/static/amis-static/history.js'></script>
+<!-- 引入语言包 -->
 <script src="./lang/en-US.js"></script>
 <script src="./lang/en-US.js"></script>
 <script src="./lang/zh-CN.js"></script>
 <script src="./lang/zh-CN.js"></script>
-
+<!-- 引入多语言js处理文件,必须先引入语言包 -->
+<script src="./public/static/tools/common.js"></script>
 <script>
 <script>
   
   
     (function () {
     (function () {
       let amis = amisRequire('amis/embed');
       let amis = amisRequire('amis/embed');
       const match = amisRequire('path-to-regexp').match;
       const match = amisRequire('path-to-regexp').match;
-      // 引入语言包内容
-      let enUSLocale = enUs()
-      let zhCNLocale = zhCn()
-      //多语言映射
-      const languageMap = {
-        "en-US": {
-          register: enUSLocale.register,
-          replaceText: enUSLocale.replaceText,
-          langReplaceTextIgnoreKeys: enUSLocale.langReplaceTextIgnoreKeys
-        },
-        "zh-CN": {
-          register: zhCNLocale.register,
-          replaceText: zhCNLocale.replaceText,
-          langReplaceTextIgnoreKeys: zhCNLocale.langReplaceTextIgnoreKeys
-        }
-      }
-      // 缓存中设置的语言
-      let lang = localStorage.getItem('language')
-      //内置组件的翻译信息
-      let langRegister = {}
-      //json配置的全文翻译信息
-      let langReplaceText = {}
-      //需要忽略json配置的全文替换key
-      let langReplaceTextIgnoreKeys = {}
-      if (undefined !== languageMap[lang]) {
-        langRegister = languageMap[lang].register
-        langReplaceText = languageMap[lang].replaceText
-        langReplaceTextIgnoreKeys = languageMap[lang].langReplaceTextIgnoreKeys
-      } else {
-        lang = 'zh-CN'
-      }
-      if (undefined !== langReplaceText && Object.keys(langReplaceText).length !== 0) {
-      } else {
-        langReplaceText = {}
-      }
-
-      if (undefined !== langReplaceTextIgnoreKeys && Object.keys(langReplaceTextIgnoreKeys).length !== 0) {
-      } else {
-        langReplaceTextIgnoreKeys = {}
-      }
       
       
-
-
       // 如果想用 browserHistory 请切换下这处代码, 其他不用变
       // 如果想用 browserHistory 请切换下这处代码, 其他不用变
       // const history = History.createBrowserHistory();
       // const history = History.createBrowserHistory();
       const history = History.createHashHistory();
       const history = History.createHashHistory();
@@ -232,7 +192,6 @@
         type: 'app',
         type: 'app',
         brandName: 'ROMA',
         brandName: 'ROMA',
         // logo: './public/static/images/logo.jpg',
         // logo: './public/static/images/logo.jpg',
-        
         // footer: '<div class="p-2 text-center bg-light">底部区域</div>',
         // footer: '<div class="p-2 text-center bg-light">底部区域</div>',
         // asideBefore: '<div class="p-2 text-center">菜单前面区域</div>',
         // asideBefore: '<div class="p-2 text-center">菜单前面区域</div>',
         // asideAfter: '<div class="p-2 text-center">菜单后面区域</div>',
         // asideAfter: '<div class="p-2 text-center">菜单后面区域</div>',
@@ -301,16 +260,17 @@
         return decodeURI(pathname) === link;
         return decodeURI(pathname) === link;
       }
       }
 
 
+      let languageInfo = getLanguageInfo();
       let amisInstance = amis.embed(
       let amisInstance = amis.embed(
         '#root',
         '#root',
         app,
         app,
         {
         {
           location: history.location,
           location: history.location,
-          locale: lang
+          locale: languageInfo.lang
         },
         },
         {
         {
-          replaceText: langReplaceText,
-          langReplaceTextIgnoreKeys: langReplaceTextIgnoreKeys,
+          replaceText: languageInfo.langReplaceText,
+          langReplaceTextIgnoreKeys: languageInfo.langReplaceTextIgnoreKeys,
 
 
           // watchRouteChange: fn => {
           // watchRouteChange: fn => {
           //   return history.listen(fn);
           //   return history.listen(fn);

+ 2 - 1
lang/en-US.js

@@ -8,7 +8,8 @@ function enUs() {
       '用户名':'User Name',
       '用户名':'User Name',
       '密码': 'Password',
       '密码': 'Password',
       '验证码': 'Verification Code',
       '验证码': 'Verification Code',
-      '平台': 'Platform'
+      '平台': 'Platform',
+      '登录': 'Sign in'
     },
     },
     register: {
     register: {
         'Action.countDown': 'Wait for ${timeLeft}s',
         'Action.countDown': 'Wait for ${timeLeft}s',

+ 10 - 51
login.html

@@ -99,67 +99,31 @@
 <body>
 <body>
 <div id="root" class="app-wrapper"></div>
 <div id="root" class="app-wrapper"></div>
 <script type='text/javascript' src='./public/static/amis-sdk/sdk.js'></script>
 <script type='text/javascript' src='./public/static/amis-sdk/sdk.js'></script>
+<!-- 引入语言包 -->
 <script src="./lang/en-US.js"></script>
 <script src="./lang/en-US.js"></script>
 <script src="./lang/zh-CN.js"></script>
 <script src="./lang/zh-CN.js"></script>
+<!-- 引入多语言js处理文件,必须先引入语言包 -->
+<script src="./public/static/tools/common.js"></script>
+<!-- 引入登录页面JSON -->
 <script src="./pages/login/login-json.js"></script>
 <script src="./pages/login/login-json.js"></script>
 
 
 <script type="text/javascript">
 <script type="text/javascript">
     (function () {
     (function () {
         let amis = amisRequire('amis/embed');
         let amis = amisRequire('amis/embed');
-        // 引入语言包内容
-        let enUSLocale = enUs()
-        let zhCNLocale = zhCn()
-        //多语言映射
-        const languageMap = {
-          "en-US": {
-            register: enUSLocale.register,
-            replaceText: enUSLocale.replaceText,
-            langReplaceTextIgnoreKeys: enUSLocale.langReplaceTextIgnoreKeys
-          },
-          "zh-CN": {
-            register: zhCNLocale.register,
-            replaceText: zhCNLocale.replaceText,
-            langReplaceTextIgnoreKeys: zhCNLocale.langReplaceTextIgnoreKeys
-          }
-        }
-        // 缓存中设置的语言
-        let lang = localStorage.getItem('language')
-        //内置组件的翻译信息
-        let langRegister = {}
-        //json配置的全文翻译信息
-        let langReplaceText = {}
-        //需要忽略json配置的全文替换key
-        let langReplaceTextIgnoreKeys = {}
-        if (undefined !== languageMap[lang]) {
-          langRegister = languageMap[lang].register
-          langReplaceText = languageMap[lang].replaceText
-          langReplaceTextIgnoreKeys = languageMap[lang].langReplaceTextIgnoreKeys
-        } else {
-          // 未找到默认中文
-          lang = 'zh-CN'
-        }
-        // 没有替换或忽略替换配置,则为{}
-        if (undefined !== langReplaceText && Object.keys(langReplaceText).length !== 0) {
-        } else {
-          langReplaceText = {}
-        }
-
-        if (undefined !== langReplaceTextIgnoreKeys && Object.keys(langReplaceTextIgnoreKeys).length !== 0) {
-        } else {
-          langReplaceTextIgnoreKeys = {}
-        }
-      // 页面json内容
+         
+        let languageInfo = getLanguageInfo();
+        // 页面json内容
         const amisJSON = getLoginJson()
         const amisJSON = getLoginJson()
 
 
         let amisScoped = amis.embed(
         let amisScoped = amis.embed(
           '#root', 
           '#root', 
           amisJSON, 
           amisJSON, 
           { 
           { 
-            locale: lang 
+            locale: languageInfo.lang 
           }, 
           }, 
           { 
           { 
-            replaceText: langReplaceText,
-            langReplaceTextIgnoreKeys: langReplaceTextIgnoreKeys
+            replaceText: languageInfo.langReplaceText,
+            langReplaceTextIgnoreKeys: languageInfo.langReplaceTextIgnoreKeys
           }
           }
         );
         );
     })();
     })();
@@ -168,11 +132,6 @@
     {
     {
         document.querySelector('.code_img').src = '/login/verify?' + Math.random();
         document.querySelector('.code_img').src = '/login/verify?' + Math.random();
     }
     }
-
-    // 设置多语言
-    function setLanguage() {
-      
-    }
 </script>
 </script>
 </body>
 </body>
 </html>
 </html>

+ 1 - 1
pages/login/login-json.js

@@ -159,7 +159,7 @@ function getLoginJson() {
                     ]
                     ]
                 },
                 },
                 {
                 {
-                    "label": "登 录",
+                    "label": "登录",
                     "type": "action",
                     "type": "action",
                     "actionType": "submit",
                     "actionType": "submit",
                     "level": "primary",
                     "level": "primary",

+ 51 - 0
public/static/tools/common.js

@@ -0,0 +1,51 @@
+// 获取多语言信息
+function getLanguageInfo() {
+    // 引入语言包内容
+    let enUSLocale = enUs()
+    let zhCNLocale = zhCn()
+    //多语言映射
+    const languageMap = {
+      "en-US": {
+        register: enUSLocale.register,
+        replaceText: enUSLocale.replaceText,
+        langReplaceTextIgnoreKeys: enUSLocale.langReplaceTextIgnoreKeys
+      },
+      "zh-CN": {
+        register: zhCNLocale.register,
+        replaceText: zhCNLocale.replaceText,
+        langReplaceTextIgnoreKeys: zhCNLocale.langReplaceTextIgnoreKeys
+      }
+    }
+    // 缓存中设置的语言
+    let lang = localStorage.getItem('language')
+    //内置组件的翻译信息
+    let langRegister = {}
+    //json配置的全文翻译信息
+    let langReplaceText = {}
+    //需要忽略json配置的全文替换key
+    let langReplaceTextIgnoreKeys = {}
+    if (undefined !== languageMap[lang]) {
+      langRegister = languageMap[lang].register
+      langReplaceText = languageMap[lang].replaceText
+      langReplaceTextIgnoreKeys = languageMap[lang].langReplaceTextIgnoreKeys
+    } else {
+      // 未找到默认中文
+      lang = 'zh-CN'
+    }
+    // 没有替换或忽略替换配置,则为{}
+    if (undefined !== langReplaceText && Object.keys(langReplaceText).length !== 0) {
+    } else {
+      langReplaceText = {}
+    }
+
+    if (undefined !== langReplaceTextIgnoreKeys && Object.keys(langReplaceTextIgnoreKeys).length !== 0) {
+    } else {
+      langReplaceTextIgnoreKeys = {}
+    }
+
+    return {
+      lang,
+      langReplaceText,
+      langReplaceTextIgnoreKeys
+    }
+}