| | |
| | | <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; |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | <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 () { |
| | |
| | | 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); |
| | |
| | | // 关闭加载动画 |
| | | $('.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 { |
| | |
| | | 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"; |
| | |
| | | } |
| | | }); |
| | | |
| | | // 默认加载主页 |
| | | 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')); |
| | | |
| | |
| | | <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翻译模块,自行下载这个js放到你自己项目里。 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 () { //当页面DOM加载完后执行翻译操作 |
| | | 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> |