One-KVM/web/login/index.pug
mofeng-git 19d1c52ac4 feat: 完善 Web 界面国际化支持
- 将包含数字的无意义 i18n 键名替换为语义化名称 (如 kvm_text1 → about_title)
- 为缺失多语言支持的界面文本添加中英文翻译
- 修复不准确的翻译内容和 HTML 标签格式错误
- 更新所有 Pug 模板文件以使用新的 i18n 键名
- 新增登录页面"记住我"、USB 连接确认等功能的多语言支持
- 统一翻译键命名规范,提升代码可维护性
2025-08-21 13:23:33 +08:00

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.