diff --git a/ui/langs.json b/ui/langs.json index ab859d2..029c169 100644 --- a/ui/langs.json +++ b/ui/langs.json @@ -9,7 +9,16 @@ "auth.confirm_password": "Confirm Password", "auth.username_or_email": "Username or Email", "auth.email_or_phone": "Email or Phone", + "auth.phone": "Phone Number", + "auth.phone_placeholder": "Enter your phone number", "auth.verification_code": "Verification Code", + "auth.send_code": "Send Code", + "auth.code_sent": "Code sent", + "auth.code_login_not_supported": "Code login is not supported yet", + "auth.target_required": "Email or Phone is required", + "auth.target_and_code_required": "Email/Phone and Code are required", + "auth.email_disabled": "Email login is disabled", + "auth.sms_disabled": "SMS login is disabled", "auth.username_login": "Username", "auth.code_login": "Code", "auth.create_account": "Create Account", @@ -43,11 +52,29 @@ "common.loading": "Loading...", "common.not_found": "Not Found", "common.save": "Save", + "common.saving": "Saving...", + "common.reset": "Reset", "common.status": "Status", "nav.dashboard": "Dashboard", "nav.home": "Home", "nav.oauth": "OAuth Apps", "nav.roles": "Roles", + "nav.settings": "Settings", + "nav.oauth_providers": "Identity Providers", + "oauth.provider.code": "Code", + "oauth.provider.name": "Name", + "oauth.provider.client_id": "Client ID", + "oauth.provider.client_secret": "Client Secret", + "oauth.provider.redirect_uri": "Redirect URI", + "oauth.provider.auth_url": "Auth URL", + "oauth.provider.token_url": "Token URL", + "oauth.provider.user_info_url": "User Info URL", + "oauth.provider.scope": "Scopes", + "oauth.provider.enabled": "Enabled", + "oauth.provider.create": "Add Provider", + "oauth.provider.edit": "Edit Provider", + "oauth.provider.delete_confirm": "Delete this provider?", + "oauth.provider.templates": "Templates", "nav.profile": "Profile", "nav.users": "Users", "user.email": "Email", @@ -60,7 +87,76 @@ "role.create": "Create Role", "role.edit": "Edit Role", "role.delete_confirm": "Are you sure you want to delete this role?", - "role.search_placeholder": "Search roles..." + "role.search_placeholder": "Search roles...", + "settings.category.app": "Application", + "settings.category.auth": "Authentication", + "settings.category.security": "Security", + "settings.category.code": "Verification Code", + "settings.category.email": "Email", + "settings.category.sms": "SMS", + "settings.app.name": "App Name", + "settings.app.name_desc": "Display name of the application", + "settings.app.id": "App ID", + "settings.app.id_desc": "Unique identifier for the application", + "settings.auth.reg_require_email": "Require Email for Registration", + "settings.auth.reg_require_email_desc": "Make email mandatory during registration", + "settings.auth.reg_require_phone": "Require Phone for Registration", + "settings.auth.reg_require_phone_desc": "Make phone number mandatory during registration", + "settings.auth.login_methods": "Login Methods", + "settings.auth.login_methods_desc": "Available login methods (JSON array)", + "settings.auth.password_fields": "Password Login Fields", + "settings.auth.password_fields_desc": "Fields allowed for password login", + "settings.security.captcha_enabled": "Enable Captcha", + "settings.security.captcha_enabled_desc": "Show captcha verification on login", + "settings.security.max_login_attempts": "Max Login Attempts", + "settings.security.max_login_attempts_desc": "Maximum failed login attempts before lockout", + "settings.security.bcrypt_cost": "Bcrypt Cost", + "settings.security.bcrypt_cost_desc": "Password hashing strength (4-31)", + "settings.code.expiry": "Code Expiry", + "settings.code.expiry_desc": "Verification code validity period (minutes)", + "settings.code.length": "Code Length", + "settings.code.length_desc": "Number of digits in verification code", + "settings.code.max_attempt": "Max Attempts", + "settings.code.max_attempt_desc": "Maximum verification code attempts", + "settings.code.send_interval": "Send Interval", + "settings.code.send_interval_desc": "Minimum seconds between code sends", + "settings.code.max_daily_count": "Max Daily Count", + "settings.code.max_daily_count_desc": "Maximum daily send count (0 to disable, -1 for unlimited)", + "settings.email.enabled": "Enable Email", + "settings.email.enabled_desc": "Enable email service for notifications", + "settings.email.provider": "Email Provider", + "settings.email.provider_desc": "Email service provider", + "settings.email.smtp_host": "SMTP Host", + "settings.email.smtp_host_desc": "SMTP server hostname", + "settings.email.smtp_port": "SMTP Port", + "settings.email.smtp_port_desc": "SMTP server port", + "settings.email.smtp_user": "SMTP Username", + "settings.email.smtp_user_desc": "SMTP authentication username", + "settings.email.smtp_pass": "SMTP Password", + "settings.email.smtp_pass_desc": "SMTP authentication password", + "settings.email.from": "From Email", + "settings.email.from_desc": "Sender email address", + "settings.email.from_name": "From Name", + "settings.email.from_name_desc": "Sender display name", + "settings.sms.enabled": "Enable SMS", + "settings.sms.enabled_desc": "Enable SMS service for verification codes", + "settings.sms.provider": "SMS Provider", + "settings.sms.provider_desc": "SMS service provider", + "settings.sms.provider_aliyun": "Alibaba Cloud", + "settings.sms.provider_tencent": "Tencent Cloud", + "settings.sms.access_key": "Access Key", + "settings.sms.access_key_desc": "API access key ID", + "settings.sms.access_secret": "Access Secret", + "settings.sms.access_secret_desc": "API access key secret", + "settings.sms.sign_name": "SMS Sign Name", + "settings.sms.sign_name_desc": "Registered SMS signature", + "settings.sms.template_code": "Template Code", + "settings.sms.template_code_desc": "Verification code template ID", + "settings.load_failed": "Failed to load settings", + "settings.save_success": "Settings saved successfully", + "settings.save_failed": "Failed to save settings", + "settings.reset_done": "Settings reset to original values", + "settings.no_changes": "No changes to save" }, "zh-CN": { "auth.email": "邮箱", @@ -72,7 +168,16 @@ "auth.confirm_password": "确认密码", "auth.username_or_email": "用户名或邮箱", "auth.email_or_phone": "邮箱或手机号", + "auth.phone": "手机号", + "auth.phone_placeholder": "请输入手机号", "auth.verification_code": "验证码", + "auth.send_code": "发送验证码", + "auth.code_sent": "验证码已发送", + "auth.code_login_not_supported": "验证码登录暂不支持", + "auth.target_required": "请输入邮箱或手机号", + "auth.target_and_code_required": "请输入邮箱/手机号和验证码", + "auth.email_disabled": "邮箱登录未启用", + "auth.sms_disabled": "手机号登录未启用", "auth.username_login": "用户名", "auth.code_login": "验证码", "auth.create_account": "创建账户", @@ -106,11 +211,29 @@ "common.loading": "加载中...", "common.not_found": "页面未找到", "common.save": "保存", + "common.saving": "保存中...", + "common.reset": "重置", "common.status": "状态", "nav.dashboard": "仪表盘", "nav.home": "首页", "nav.oauth": "OAuth应用", "nav.roles": "角色管理", + "nav.settings": "系统设置", + "nav.oauth_providers": "身份源管理", + "oauth.provider.code": "代码", + "oauth.provider.name": "名称", + "oauth.provider.client_id": "客户端ID", + "oauth.provider.client_secret": "客户端密钥", + "oauth.provider.redirect_uri": "回调地址", + "oauth.provider.auth_url": "授权地址", + "oauth.provider.token_url": "令牌地址", + "oauth.provider.user_info_url": "用户信息地址", + "oauth.provider.scope": "权限范围", + "oauth.provider.enabled": "启用", + "oauth.provider.create": "添加身份源", + "oauth.provider.edit": "编辑身份源", + "oauth.provider.delete_confirm": "确定删除该身份源吗?", + "oauth.provider.templates": "模板", "nav.profile": "个人中心", "nav.users": "用户管理", "user.email": "邮箱", @@ -123,6 +246,75 @@ "role.create": "创建角色", "role.edit": "编辑角色", "role.delete_confirm": "确定要删除该角色吗?", - "role.search_placeholder": "搜索角色..." + "role.search_placeholder": "搜索角色...", + "settings.category.app": "应用配置", + "settings.category.auth": "认证配置", + "settings.category.security": "安全配置", + "settings.category.code": "验证码配置", + "settings.category.email": "邮件配置", + "settings.category.sms": "短信配置", + "settings.app.name": "应用名称", + "settings.app.name_desc": "应用的显示名称", + "settings.app.id": "应用标识", + "settings.app.id_desc": "应用的唯一标识符", + "settings.auth.reg_require_email": "注册需要邮箱", + "settings.auth.reg_require_email_desc": "注册时强制要求填写邮箱", + "settings.auth.reg_require_phone": "注册需要手机号", + "settings.auth.reg_require_phone_desc": "注册时强制要求填写手机号", + "settings.auth.login_methods": "登录方式", + "settings.auth.login_methods_desc": "支持的登录方式(JSON数组)", + "settings.auth.password_fields": "密码登录字段", + "settings.auth.password_fields_desc": "密码登录支持的字段", + "settings.security.captcha_enabled": "启用验证码", + "settings.security.captcha_enabled_desc": "登录时显示验证码验证", + "settings.security.max_login_attempts": "最大登录尝试次数", + "settings.security.max_login_attempts_desc": "失败登录尝试的最大次数", + "settings.security.bcrypt_cost": "Bcrypt强度", + "settings.security.bcrypt_cost_desc": "密码哈希强度(4-31)", + "settings.code.expiry": "验证码有效期", + "settings.code.expiry_desc": "验证码有效时间(分钟)", + "settings.code.length": "验证码长度", + "settings.code.length_desc": "验证码的位数", + "settings.code.max_attempt": "最大尝试次数", + "settings.code.max_attempt_desc": "验证码最大尝试次数", + "settings.code.send_interval": "发送间隔", + "settings.code.send_interval_desc": "两次发送之间的最小间隔(秒)", + "settings.code.max_daily_count": "单日最大发送次数", + "settings.code.max_daily_count_desc": "单日发送验证码最大次数(0禁用,-1不限制)", + "settings.email.enabled": "启用邮件", + "settings.email.enabled_desc": "启用邮件服务用于通知", + "settings.email.provider": "邮件服务商", + "settings.email.provider_desc": "邮件服务提供商", + "settings.email.smtp_host": "SMTP服务器", + "settings.email.smtp_host_desc": "SMTP服务器地址", + "settings.email.smtp_port": "SMTP端口", + "settings.email.smtp_port_desc": "SMTP服务器端口", + "settings.email.smtp_user": "SMTP用户名", + "settings.email.smtp_user_desc": "SMTP认证用户名", + "settings.email.smtp_pass": "SMTP密码", + "settings.email.smtp_pass_desc": "SMTP认证密码", + "settings.email.from": "发件人邮箱", + "settings.email.from_desc": "发件人邮箱地址", + "settings.email.from_name": "发件人名称", + "settings.email.from_name_desc": "发件人显示名称", + "settings.sms.enabled": "启用短信", + "settings.sms.enabled_desc": "启用短信服务用于验证码", + "settings.sms.provider": "短信服务商", + "settings.sms.provider_desc": "短信服务提供商", + "settings.sms.provider_aliyun": "阿里云", + "settings.sms.provider_tencent": "腾讯云", + "settings.sms.access_key": "Access Key", + "settings.sms.access_key_desc": "API访问密钥ID", + "settings.sms.access_secret": "Access Secret", + "settings.sms.access_secret_desc": "API访问密钥密文", + "settings.sms.sign_name": "短信签名", + "settings.sms.sign_name_desc": "已注册的短信签名", + "settings.sms.template_code": "模板代码", + "settings.sms.template_code_desc": "验证码模板ID", + "settings.load_failed": "加载设置失败", + "settings.save_success": "设置保存成功", + "settings.save_failed": "保存设置失败", + "settings.reset_done": "设置已重置", + "settings.no_changes": "没有需要保存的更改" } } \ No newline at end of file diff --git a/ui/layout/default.html b/ui/layout/default.html index 83a352f..bb45e0d 100644 --- a/ui/layout/default.html +++ b/ui/layout/default.html @@ -140,7 +140,9 @@ // Admin only items would be filtered here ideally {label: () => $t('nav.users'), icon: "", path: "/users"}, {label: () => $t('nav.roles'), icon: "", path: "/roles"}, - {label: () => $t('nav.oauth'), icon: "", path: "/oauth/apps"}, + {label: () => $t('nav.oauth'), icon: "", path: "/oauth/apps"}, + {label: () => $t('nav.oauth_providers'), icon: "", path: "/oauth/providers"}, + {label: () => $t('nav.settings'), icon: "", path: "/settings"}, ]; getRouteName = () => { diff --git a/ui/page/auth/login.html b/ui/page/auth/login.html index 260b095..ee8c54f 100644 --- a/ui/page/auth/login.html +++ b/ui/page/auth/login.html @@ -413,9 +413,7 @@