mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-13 17:50:29 +08:00
- 将包含数字的无意义 i18n 键名替换为语义化名称 (如 kvm_text1 → about_title) - 为缺失多语言支持的界面文本添加中英文翻译 - 修复不准确的翻译内容和 HTML 标签格式错误 - 更新所有 Pug 模板文件以使用新的 i18n 键名 - 新增登录页面"记住我"、USB 连接确认等功能的多语言支持 - 统一翻译键命名规范,提升代码可维护性
68 lines
1.9 KiB
Plaintext
68 lines
1.9 KiB
Plaintext
extends ../base.pug
|
|
|
|
|
|
mixin radio(name, items)
|
|
.radio-box
|
|
each item in items
|
|
-
|
|
let id = `${name}-${item["value"]}`
|
|
let checked = (item["checked"] || false)
|
|
input(type="radio" id=id name=name value=item["value"] checked=checked)
|
|
label(for=id) !{item["title"]}
|
|
|
|
|
|
append vars
|
|
-
|
|
root_prefix = "../"
|
|
title = "One-KVM Login"
|
|
main_js = "login/main"
|
|
css_list.push("window", "modal", "radio", "login/login")
|
|
|
|
|
|
block body
|
|
form(action="javascript:void(0)")
|
|
#login-box
|
|
#login
|
|
table
|
|
tr
|
|
td #[img.svg-gray#login-logo(src=`${svg_dir}/logo.svg` alt="π-kvm")]
|
|
td
|
|
tr
|
|
td(colspan=2) #[hr]
|
|
tr
|
|
td(i18n="username") Username:
|
|
td #[input#user-input(type="text" autocapitalize="off")]
|
|
tr
|
|
td(i18n="password") Password:
|
|
td #[input#passwd-input(type="password" autocapitalize="off")]
|
|
tr
|
|
td(i18n="2fa_code") 2FA code:
|
|
td #[input#code-input(type="text" placeholder="if enabled" autocomplete="off" i18n="if_enabled")]
|
|
tr
|
|
td(colspan=2) #[hr]
|
|
tr
|
|
td(i18n="remember_me") #[a(target="_blank" href="https://docs.pikvm.org/auth/#session-expiration") Remember me]:
|
|
td
|
|
+radio("expire-radio", [
|
|
{"title": "1h", "value": "3600"},
|
|
{"title": "12h", "value": "43200"},
|
|
{"title": "Forever", "value": "0", "checked": true},
|
|
])
|
|
tr
|
|
td(i18n="select_language") Select language:
|
|
td
|
|
select#selectLanguage(style="width:100%")
|
|
option#zh(selected="selected" i18n="chinese") Simplified Chinese
|
|
option#en(i18n="english") English
|
|
tr
|
|
td(colspan=2) #[hr]
|
|
tr
|
|
td
|
|
td #[button.key#login-button(style="width:100%" i18n="login") Login]
|
|
|
|
ul.footer
|
|
li.left(i18n="footer-left")
|
|
| This site is actively using JavaScript.#[br]
|
|
| It doesn't contain ads, but is blocked by some ad filters.#[br]
|
|
| Please turn it off to continue and reload the page.
|