From 35b1b26f1fe16550b4ee2881a26d599456fe59b4 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期四, 22 一月 2026 17:01:11 +0800
Subject: [PATCH] #i18n翻译

---
 src/main/webapp/views/index.html |   98 ++++++++++++++++++++++++++++++++----------------
 1 files changed, 65 insertions(+), 33 deletions(-)

diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 7e79982..88ccce2 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -10,9 +10,7 @@
   <link rel="stylesheet" href="../static/layui/css/layui.css" media="all">
   <link rel="stylesheet" href="../static/css/admin.css?v=318" media="all">
   <link rel="stylesheet" href="../static/css/loader.css" media="all">
-  <!-- 寮曞叆 AutoTranslate 妯″潡 -->
-  <script src="https://cdn.jsdelivr.net/gh/Mr-vero/AutoTranslate@v.1.0.1/dist/autoTranslate.js"></script>
-
+  
   <style>
     .layui-logo img {
       width: 25px;
@@ -45,17 +43,17 @@
     </ul>
     <ul class="layui-nav layui-layout-right">
       <li class="layui-nav-item" lay-unselect>
-        <a><i class="layui-icon layui-icon-website"></i> <span id="currentLang">璇█</span></a>
+        <a><i class="layui-icon layui-icon-website"></i> <span id="currentLang" data-i18n="language">璇█</span></a>
         <dl class="layui-nav-child">
-          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('chinese_simplified', '绠�浣撲腑鏂�')">绠�浣撲腑鏂�</a></dd>
+          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('zh-cn')">绠�浣撲腑鏂�</a></dd>
 <!--          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('chinese_traditional', '绻侀珨涓枃')">绻侀珨涓枃</a></dd>-->
-          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('english', 'English')">English</a></dd>
+          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('en')">English</a></dd>
 <!--          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('japanese', '鏃ユ湰瑾�')">鏃ユ湰瑾�</a></dd>-->
 <!--          <dd><a href="javascript:;" class="notranslate" onclick="changeLanguage('korean', '頃滉淡鞏�')">頃滉淡鞏�</a></dd>-->
         </dl>
       </li>
       <li class="layui-nav-item" lay-unselect id="licenseShow" style="display: none;user-select: none;">
-        <div style="color: red;">涓存椂璁稿彲璇佹湁鏁堟湡锛�<span id="licenseDays">29</span>澶�</div>
+        <div style="color: red;"><span data-i18n="license_validity_prefix">涓存椂璁稿彲璇佹湁鏁堟湡锛�</span><span id="licenseDays">29</span><span data-i18n="license_validity_suffix">澶�</span></div>
       </li>
       <li class="layui-nav-item layui-hide-xs" lay-unselect>
         <a ew-event="fullScreen" title="鍏ㄥ睆"><i class="layui-icon layui-icon-screen-full"></i></a>
@@ -65,13 +63,13 @@
           <cite id="username" style="margin-right: 5px">绠$悊鍛�</cite>
         </a>
         <dl class="layui-nav-child">
-          <dd lay-unselect><a ew-href="detail.html?resourceId=8">鍩烘湰璧勬枡</a></dd>
+          <dd lay-unselect><a ew-href="detail.html?resourceId=8" data-i18n="basic_info">鍩烘湰璧勬枡</a></dd>
           <hr>
-          <dd lay-unselect><a id="logout">閫�鍑�</a></dd>
+          <dd lay-unselect><a id="logout" data-i18n="logout">閫�鍑�</a></dd>
         </dl>
       </li>
       <li class="layui-nav-item" lay-unselect>
-        <a ew-event="theme" title="涓婚"><i class="layui-icon layui-icon-more-vertical"></i></a>
+        <a ew-event="theme" title="涓婚" data-i18n="涓婚" data-i18n-attr="title"><i class="layui-icon layui-icon-more-vertical"></i></a>
       </li>
     </ul>
   </div>
@@ -103,6 +101,7 @@
 <script type="text/javascript" src="../static/layui/layui.js"></script>
 <script type="text/javascript" src="../static/js/handlebars/handlebars-v4.5.3.js"></script>
 <script type="text/javascript" src="../static/js/common.js"></script>
+<script type="text/javascript" src="../static/js/i18n/i18n-helper.js"></script>
 <script>
   console.log('%c 涓壃绔嬪簱骞冲彴 %c 1.0.0','background-color:rgb(53,73,94);color: #fff;border-radius:2px 0 0 2px;padding:2px 4px;','background-color:rgb(25,190,107);color: #fff;border-radius:0 2px 2px 0;padding:2px 4px;font: 9pt "Apercu Regular", Georgia, "Times New Roman", Times, serif;');
   $(function () {
@@ -123,6 +122,13 @@
     var admin = layui.admin;
     var notice = layui.notice;
 
+    // Register Handlebars helper for i18n
+    if (typeof Handlebars !== 'undefined' && typeof I18n !== 'undefined') {
+        Handlebars.registerHelper('t', function(key) {
+            return I18n.t(key);
+        });
+    }
+
     var easywebIframeMsg = localStorage.getItem("easyweb-iframe");
     if (!isEmpty(easywebIframeMsg)) {
       var easywebIframeObj = JSON.parse(easywebIframeMsg);
@@ -140,11 +146,21 @@
         // 鍏抽棴鍔犺浇鍔ㄧ敾
         $('.layuimini-loader').fadeOut();
         if (res.code === 200) {
+          // Register Handlebars helper for i18n
+          Handlebars.registerHelper('t', function(key) {
+              return I18n.t(key);
+          });
           var tpl = $('#menuTpl').html();
           var template = Handlebars.compile(tpl);
           var html = template(res);
           $("#menu-main").html(html);
           element.init();
+          
+          // 榛樿鍔犺浇涓婚〉 (Move here to ensure menu is loaded for tab title translation)
+          index.loadHome({
+            menuPath: baseUrl+'/views/home/navigation.html',
+            menuName: '<i class="layui-icon layui-icon-home"></i>'
+          });
         } else if (res.code === 403) {
           top.location.href = baseUrl + "/login";
         } else {
@@ -163,7 +179,7 @@
           if (days <= 30) {
             $("#licenseShow").show()
             $("#licenseDays").html(days)
-            alert("涓存椂璁稿彲鏈夋晥鏈燂細" + days + "澶�")
+            alert(I18n.t('license_validity_prefix') + days + I18n.t('license_validity_suffix'))
           }
         }else {
           top.location.href = baseUrl + "/login";
@@ -171,11 +187,11 @@
       }
     });
 
-    // 榛樿鍔犺浇涓婚〉
-    index.loadHome({
-      menuPath: baseUrl+'/views/home/navigation.html',
-      menuName: '<i class="layui-icon layui-icon-home"></i>'
-    });
+    // 榛樿鍔犺浇涓婚〉 (Moved to menu auth success callback)
+    // index.loadHome({
+    //   menuPath: baseUrl+'/views/home/navigation.html',
+    //   menuName: '<i class="layui-icon layui-icon-home"></i>'
+    // });
 
     $('#username').text(localStorage.getItem('username'));
 
@@ -196,32 +212,48 @@
 <script type="text/html" id="menuTpl">
   {{#each data}}
   <li class="layui-nav-item">
-    <a><i class="layui-icon {{this.menuIcon}}"></i>&emsp;<cite>{{this.menu}}</cite></a>
+    <a><i class="layui-icon {{this.menuIcon}}"></i>&emsp;<cite data-i18n="{{this.menu}}">{{t this.menu}}</cite></a>
     <dl class="layui-nav-child">
       {{#each this.subMenu}}
-      <dd><a lay-href="{{this.code}}?resourceId={{this.id}}">{{this.name}}</a></dd>
+      <dd><a lay-href="{{this.code}}?resourceId={{this.id}}" data-i18n-key="{{this.name}}"><span data-i18n="{{this.name}}">{{t this.name}}</span></a></dd>
       {{/each}}
     </dl>
   </li>
   {{/each}}
 </script>
-<script src="../static/js/translate.js"></script>
-<!--chinese_simplified-->
-<!-- 寮曞叆 layui 鐨� translate.js AI缈昏瘧妯″潡锛岃嚜琛屼笅杞借繖涓猨s鏀惧埌浣犺嚜宸遍」鐩噷銆� js涓嬭浇鍦板潃锛�  https://raw.githubusercontent.com/xnx3/translate/refs/heads/master/extend/layui/layui_exts/translate/translate.js  -->
 <script>
-  translate.language.setLocal('chinese_simplified'); 	//璁剧疆鏈湴璇锛屽鏋滀笉璁剧疆浼氳嚜鍔ㄨ瘑鍒� http://translate.zvo.cn/4066.html
-  translate.service.use('client.edge'); 	//璁剧疆缈昏瘧閫氶亾 http://translate.zvo.cn/4081.html
-  translate.visual.webPageLoadTranslateBeforeHiddenText(); 	//缃戦〉鎵撳紑鏃惰嚜鍔ㄩ殣钘忔枃瀛楋紝缈昏瘧瀹屾垚鍚庢樉绀鸿瘧鏂囥�� 鍙傝�冩枃妗� http://translate.zvo.cn/549731.html
-  translate.progress.api.startUITip(); 	//鍚敤缈昏瘧涓殑閬僵灞� 鍙傝�冩枃妗� http://translate.zvo.cn/407105.html
-  translate.selectLanguageTag.show = false; //涓嶅嚭鐜扮殑select鐨勯�夋嫨璇█
-  translate.ignore.class.push('notranslate'); //娣诲姞 notranslate 绫诲埌蹇界暐鍒楄〃锛屼娇璇█涓嬫媺妗嗕笉鍙備笌缈昏瘧
-  window.onload = function () { 	//褰撻〉闈OM鍔犺浇瀹屽悗鎵ц缈昏瘧鎿嶄綔
-    translate.execute(); 	//杩涜缈昏瘧鐨勬墽琛�
-  };
+  // Initialize language display
+  var currentLang = I18n.getLanguage();
+  if (currentLang === 'en') {
+      $('#currentLang').text('English');
+  } else {
+      $('#currentLang').text('绠�浣撲腑鏂�');
+  }
 
-  // 鍒囨崲璇█鍑芥暟
-  function changeLanguage(lang, displayName) {
-    translate.changeLanguage(lang);
+  // Language switching function
+  function changeLanguage(lang) {
+      if (lang === I18n.getLanguage()) return;
+      
+      // Update parent page
+      I18n.setLanguage(lang);
+      
+      // Update display text
+      if (lang === 'en') {
+          $('#currentLang').text('English');
+      } else {
+          $('#currentLang').text('绠�浣撲腑鏂�');
+      }
+      
+      // Notify all iframes
+      $('iframe').each(function() {
+          try {
+              if (this.contentWindow && this.contentWindow.I18n) {
+                  this.contentWindow.I18n.setLanguage(lang);
+              }
+          } catch (e) {
+              console.error('Cannot access iframe:', e);
+          }
+      });
   }
 </script>
 </body>

--
Gitblit v1.9.1