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> <cite>{{this.menu}}</cite></a>
+ <a><i class="layui-icon {{this.menuIcon}}"></i> <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