@liujitcn/kratos-admin-core 0.0.20 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/package/declarations/src/api/base/language.d.ts +8 -0
- package/dist/package/declarations/src/components/Dialog/ProDialog.vue.d.ts +1 -0
- package/dist/package/declarations/src/components/Dict/index.vue.d.ts +4 -3
- package/dist/package/declarations/src/components/Dict/value.d.ts +11 -0
- package/dist/package/declarations/src/components/LocaleSwitch/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/index.d.ts +2 -0
- package/dist/package/declarations/src/locales/generated.d.ts +3382 -0
- package/dist/package/declarations/src/locales/index.d.ts +53 -0
- package/dist/package/declarations/src/modules/index.d.ts +7 -2
- package/dist/package/declarations/src/request.d.ts +1 -0
- package/dist/package/declarations/src/routers/modules/staticRouter.d.ts +1 -0
- package/dist/package/declarations/src/rpc/base/v1/config.d.ts +13 -1
- package/dist/package/declarations/src/rpc/base/v1/language.d.ts +20 -0
- package/dist/package/declarations/src/rpc/base/v1/login.d.ts +13 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/auth.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/base_dict.d.ts +9 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_translation.d.ts +75 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/common.d.ts +13 -0
- package/dist/package/declarations/src/stores/interface/index.d.ts +2 -0
- package/dist/package/declarations/src/stores/modules/auth.d.ts +6 -6
- package/dist/package/declarations/src/stores/runtime.d.ts +1 -0
- package/dist/package/declarations/src/utils/dict.d.ts +2 -2
- package/dist/package/declarations/src/utils/index.d.ts +1 -1
- package/dist/package/declarations/src/utils/oauthProvider.d.ts +2 -0
- package/dist/package/declarations/src/utils/passwordCrypto.d.ts +1 -1
- package/dist/package/declarations/src/utils/passwordStrength.d.ts +0 -7
- package/dist/package/src/App.vue +5 -2
- package/dist/package/src/api/base/language.ts +20 -0
- package/dist/package/src/api/base/oauth.ts +0 -1
- package/dist/package/src/api/system/auth.ts +0 -1
- package/dist/package/src/bootstrap.ts +57 -2
- package/dist/package/src/components/CronExpression/index.vue +80 -82
- package/dist/package/src/components/Dialog/FormDialog.vue +10 -5
- package/dist/package/src/components/Dialog/ProDialog.vue +10 -4
- package/dist/package/src/components/Dict/index.vue +26 -9
- package/dist/package/src/components/Dict/value.ts +18 -0
- package/dist/package/src/components/ECharts/config/index.ts +6 -1
- package/dist/package/src/components/ErrorMessage/index.vue +3 -1
- package/dist/package/src/components/ImportExcel/index.vue +29 -18
- package/dist/package/src/components/LocaleSwitch/index.vue +28 -0
- package/dist/package/src/components/PasswordStrength/index.vue +8 -5
- package/dist/package/src/components/ProForm/components/DynamicList.vue +8 -3
- package/dist/package/src/components/ProForm/components/KvList.vue +14 -6
- package/dist/package/src/components/ProForm/index.vue +2 -2
- package/dist/package/src/components/ProTable/components/ColSetting.vue +7 -5
- package/dist/package/src/components/ProTable/components/TableColumn.vue +2 -1
- package/dist/package/src/components/ProTable/index.vue +36 -11
- package/dist/package/src/components/SearchForm/components/SearchFormItem.vue +9 -4
- package/dist/package/src/components/SearchForm/index.vue +6 -3
- package/dist/package/src/components/SelectFilter/index.vue +4 -1
- package/dist/package/src/components/SelectIcon/index.vue +8 -4
- package/dist/package/src/components/TreeFilter/index.vue +14 -6
- package/dist/package/src/components/Upload/File.vue +18 -13
- package/dist/package/src/components/Upload/Files.vue +22 -15
- package/dist/package/src/components/Upload/Img.vue +14 -11
- package/dist/package/src/components/Upload/Imgs.vue +15 -12
- package/dist/package/src/components/WangEditor/index.vue +12 -4
- package/dist/package/src/directives/modules/copy.ts +2 -1
- package/dist/package/src/hooks/useDownload.ts +3 -2
- package/dist/package/src/hooks/useHandleData.ts +5 -4
- package/dist/package/src/hooks/useTheme.ts +2 -1
- package/dist/package/src/hooks/useTime.ts +11 -2
- package/dist/package/src/index.ts +2 -0
- package/dist/package/src/layouts/components/Header/ToolBarRight.vue +2 -0
- package/dist/package/src/layouts/components/Header/components/AssemblySize.vue +8 -6
- package/dist/package/src/layouts/components/Header/components/Avatar.vue +11 -9
- package/dist/package/src/layouts/components/Header/components/Breadcrumb.vue +11 -3
- package/dist/package/src/layouts/components/Header/components/Fullscreen.vue +4 -2
- package/dist/package/src/layouts/components/Header/components/InfoDialog.vue +6 -3
- package/dist/package/src/layouts/components/Header/components/PasswordDialog.vue +6 -3
- package/dist/package/src/layouts/components/Header/components/SearchMenu.vue +5 -3
- package/dist/package/src/layouts/components/Header/components/ThemeSetting.vue +3 -1
- package/dist/package/src/layouts/components/Main/index.vue +1 -0
- package/dist/package/src/layouts/components/Tabs/components/MoreButton.vue +9 -7
- package/dist/package/src/layouts/components/Tabs/index.vue +15 -1
- package/dist/package/src/layouts/components/ThemeDrawer/index.vue +27 -24
- package/dist/package/src/locales/README.md +15 -0
- package/dist/package/src/locales/en-US.json +283 -0
- package/dist/package/src/locales/es-ES.json +283 -0
- package/dist/package/src/locales/fr-FR.json +283 -0
- package/dist/package/src/locales/generated.ts +57 -0
- package/dist/package/src/locales/index.ts +222 -0
- package/dist/package/src/locales/ja-JP.json +283 -0
- package/dist/package/src/locales/ko-KR.json +283 -0
- package/dist/package/src/locales/zh-CN.json +283 -0
- package/dist/package/src/locales/zh-TW.json +283 -0
- package/dist/package/src/modules/index.ts +7 -2
- package/dist/package/src/modules/kratosAdmin.ts +5 -1
- package/dist/package/src/request.ts +8 -1
- package/dist/package/src/routers/index.ts +4 -1
- package/dist/package/src/routers/modules/dynamicRouter.ts +5 -4
- package/dist/package/src/routers/modules/staticRouter.ts +8 -4
- package/dist/package/src/rpc/base/v1/config.ts +14 -1
- package/dist/package/src/rpc/base/v1/language.ts +31 -0
- package/dist/package/src/rpc/base/v1/login.ts +14 -1
- package/dist/package/src/rpc/system/admin/v1/auth.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/base_dict.ts +9 -0
- package/dist/package/src/rpc/system/admin/v1/base_translation.ts +90 -0
- package/dist/package/src/rpc/system/admin/v1/common.ts +21 -0
- package/dist/package/src/stores/interface/index.ts +2 -0
- package/dist/package/src/stores/modules/config.ts +7 -3
- package/dist/package/src/stores/modules/user.ts +2 -1
- package/dist/package/src/stores/runtime.ts +1 -0
- package/dist/package/src/styles/element.scss +2 -0
- package/dist/package/src/utils/color.ts +5 -4
- package/dist/package/src/utils/dict.ts +27 -4
- package/dist/package/src/utils/eleValidate.ts +3 -2
- package/dist/package/src/utils/errorHandler.ts +9 -8
- package/dist/package/src/utils/index.ts +9 -8
- package/dist/package/src/utils/oauthProvider.ts +15 -10
- package/dist/package/src/utils/passwordCrypto.ts +4 -3
- package/dist/package/src/utils/passwordStrength.ts +1 -16
- package/dist/package/src/utils/request.ts +13 -8
- package/dist/package/src/views/error/403.vue +3 -1
- package/dist/package/src/views/error/404.vue +3 -1
- package/dist/package/src/views/error/500.vue +3 -1
- package/dist/package/src/views/error/pending.vue +5 -2
- package/dist/package/src/views/login/components/LoginForm.vue +58 -29
- package/dist/package/src/views/login/index.scss +6 -0
- package/dist/package/src/views/login/index.vue +2 -0
- package/dist/package/types/generated/auto-imports.d.ts +129 -111
- package/dist/package/types/generated/components.d.ts +67 -67
- package/package.json +4 -2
- package/types/generated/auto-imports.d.ts +129 -111
- package/types/generated/components.d.ts +67 -67
- package/vite.config.ts +12 -0
- package/dist/package/declarations/src/rpc/base/v1/enum.d.ts +0 -43
- package/dist/package/declarations/src/rpc/system/common/v1/enum.d.ts +0 -67
- package/dist/package/src/rpc/base/v1/enum.ts +0 -54
- package/dist/package/src/rpc/system/common/v1/enum.ts +0 -80
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common.action.back": "返回",
|
|
3
|
+
"common.action.cancel": "取消",
|
|
4
|
+
"common.action.close": "关闭",
|
|
5
|
+
"common.action.confirm": "确定",
|
|
6
|
+
"common.action.create": "新增",
|
|
7
|
+
"common.action.delete": "删除",
|
|
8
|
+
"common.action.download": "下载",
|
|
9
|
+
"common.action.edit": "编辑",
|
|
10
|
+
"common.action.expand": "展开",
|
|
11
|
+
"common.action.collapse": "收起",
|
|
12
|
+
"common.action.login": "登录",
|
|
13
|
+
"common.action.logout": "退出登录",
|
|
14
|
+
"common.action.reset": "重置",
|
|
15
|
+
"common.action.save": "保存",
|
|
16
|
+
"common.action.search": "搜索",
|
|
17
|
+
"common.action.view": "查看",
|
|
18
|
+
"common.field.end_time": "结束时间",
|
|
19
|
+
"common.field.language": "语言",
|
|
20
|
+
"common.field.operation": "操作",
|
|
21
|
+
"common.field.parameter_name": "参数名",
|
|
22
|
+
"common.field.parameter_value": "参数值",
|
|
23
|
+
"common.field.phone": "手机号码",
|
|
24
|
+
"common.field.start_time": "开始时间",
|
|
25
|
+
"common.language.en-US": "English",
|
|
26
|
+
"common.language.ja-JP": "日本語",
|
|
27
|
+
"common.language.zh-CN": "简体中文",
|
|
28
|
+
"common.language.zh-TW": "繁体中文",
|
|
29
|
+
"common.language.ko-KR": "韩语",
|
|
30
|
+
"common.language.fr-FR": "法语",
|
|
31
|
+
"common.language.es-ES": "西班牙语",
|
|
32
|
+
"common.message.no_data": "暂无数据",
|
|
33
|
+
"common.message.operation_success": "操作成功",
|
|
34
|
+
"common.message.system_error": "系统出错",
|
|
35
|
+
"common.validation.phone_invalid": "请输入正确的手机号码",
|
|
36
|
+
"common.validation.phone_required": "请输入手机号码",
|
|
37
|
+
"common.title.notice": "提示",
|
|
38
|
+
"common.title.warning": "温馨提示",
|
|
39
|
+
"common.placeholder.input": "请输入",
|
|
40
|
+
"common.placeholder.input_content": "请输入内容",
|
|
41
|
+
"common.placeholder.select": "请选择",
|
|
42
|
+
"common.status.disabled": "禁用",
|
|
43
|
+
"common.status.enabled": "启用",
|
|
44
|
+
"common.value.female": "女",
|
|
45
|
+
"common.value.male": "男",
|
|
46
|
+
"common.value.all": "全部",
|
|
47
|
+
"core.auth.login_again": "重新登录",
|
|
48
|
+
"core.auth.refresh_token_missing": "刷新令牌不存在",
|
|
49
|
+
"core.auth.session_expired": "登录状态已失效,请重新登录",
|
|
50
|
+
"core.auth.no_menu_permission": "当前账号无任何菜单权限,请联系系统管理员",
|
|
51
|
+
"core.auth.no_permission": "无权限访问",
|
|
52
|
+
"core.clipboard.success": "复制成功",
|
|
53
|
+
"core.cron.cycle_unit.day": "天",
|
|
54
|
+
"core.cron.cycle_unit.hour": "小时",
|
|
55
|
+
"core.cron.cycle_unit.minute": "分钟",
|
|
56
|
+
"core.cron.cycle_unit.month": "个月",
|
|
57
|
+
"core.cron.cycle_unit.second": "秒",
|
|
58
|
+
"core.cron.cycle_unit.year": "年",
|
|
59
|
+
"core.cron.description.every": "每{unit}",
|
|
60
|
+
"core.cron.description.range": "{segment}{start}到{end}",
|
|
61
|
+
"core.cron.description.specific": "{segment}指定为 {values}",
|
|
62
|
+
"core.cron.description.step": "从{start}{unit}开始,每{step}{cycleUnit}执行一次",
|
|
63
|
+
"core.cron.description.unspecified": "{segment}不指定",
|
|
64
|
+
"core.cron.description.weekday": "本月 {day} 号最近的工作日",
|
|
65
|
+
"core.cron.description_separator": ",",
|
|
66
|
+
"core.cron.edit": "编辑表达式",
|
|
67
|
+
"core.cron.every_unit": "每{unit}",
|
|
68
|
+
"core.cron.expression": "Cron 表达式",
|
|
69
|
+
"core.cron.from": "从",
|
|
70
|
+
"core.cron.last_day": "本月最后一天",
|
|
71
|
+
"core.cron.nearest_workday": "号最近的工作日",
|
|
72
|
+
"core.cron.not_configured": "未配置执行规则",
|
|
73
|
+
"core.cron.placeholder": "请输入 Cron 表达式",
|
|
74
|
+
"core.cron.preset.daily_eight": "每天早上 8 点执行",
|
|
75
|
+
"core.cron.preset.daily_midnight": "每天零点执行",
|
|
76
|
+
"core.cron.preset.every_five_minutes": "每 5 分钟执行",
|
|
77
|
+
"core.cron.preset.every_hour": "每小时执行",
|
|
78
|
+
"core.cron.preset.every_minute": "每分钟执行",
|
|
79
|
+
"core.cron.preset.monthly_first": "每月 1 号零点执行",
|
|
80
|
+
"core.cron.preset.next_year_daily": "明年每天零点执行",
|
|
81
|
+
"core.cron.presets": "常用表达式",
|
|
82
|
+
"core.cron.range": "周期",
|
|
83
|
+
"core.cron.repeat": "循环",
|
|
84
|
+
"core.cron.run_once": "{unit}执行一次",
|
|
85
|
+
"core.cron.segment.day": "日期",
|
|
86
|
+
"core.cron.segment.hour": "小时",
|
|
87
|
+
"core.cron.segment.minute": "分钟",
|
|
88
|
+
"core.cron.segment.month": "月份",
|
|
89
|
+
"core.cron.segment.second": "秒",
|
|
90
|
+
"core.cron.segment.year": "年份",
|
|
91
|
+
"core.cron.specific": "指定",
|
|
92
|
+
"core.cron.start_every": "{unit}开始,每",
|
|
93
|
+
"core.cron.this_month": "本月",
|
|
94
|
+
"core.cron.title": "编辑定时表达式",
|
|
95
|
+
"core.cron.to": "至",
|
|
96
|
+
"core.cron.unit.day": "日",
|
|
97
|
+
"core.cron.unit.hour": "时",
|
|
98
|
+
"core.cron.unit.minute": "分",
|
|
99
|
+
"core.cron.unit.month": "月",
|
|
100
|
+
"core.cron.unit.second": "秒",
|
|
101
|
+
"core.cron.unit.year": "年",
|
|
102
|
+
"core.cron.unspecified": "不指定",
|
|
103
|
+
"core.cron.value_separator": "、",
|
|
104
|
+
"core.cron.value_with_unit": "{value}{unit}",
|
|
105
|
+
"core.cron.workday": "工作日",
|
|
106
|
+
"core.data.confirm_action": "是否{action}?",
|
|
107
|
+
"core.data.operation_success": "{action}成功",
|
|
108
|
+
"core.download.large_file_notice": "数据量较大时下载会较慢,请耐心等待",
|
|
109
|
+
"core.error.403.detail": "抱歉,您没有权限访问此页面",
|
|
110
|
+
"core.error.404.detail": "抱歉,您访问的页面不存在",
|
|
111
|
+
"core.error.500.detail": "抱歉,服务器发生错误",
|
|
112
|
+
"core.error.pending.detail": "该页面功能正在建设中",
|
|
113
|
+
"core.error.javascript.eval": "Eval 使用错误",
|
|
114
|
+
"core.error.javascript.internal": "JavaScript 引擎内部错误",
|
|
115
|
+
"core.error.javascript.range": "参数超出允许范围",
|
|
116
|
+
"core.error.javascript.reference": "未找到对象",
|
|
117
|
+
"core.error.javascript.syntax": "语法错误",
|
|
118
|
+
"core.error.javascript.type": "使用了错误的类型或对象",
|
|
119
|
+
"core.error.javascript.unknown": "未知错误",
|
|
120
|
+
"core.error.javascript.uri": "URI 错误",
|
|
121
|
+
"core.header.fullscreen": "全屏",
|
|
122
|
+
"core.header.fullscreen_exit": "退出全屏",
|
|
123
|
+
"core.header.fullscreen_unsupported": "当前浏览器不支持全屏",
|
|
124
|
+
"core.header.language": "切换语言",
|
|
125
|
+
"core.header.menu_search": "菜单搜索",
|
|
126
|
+
"core.header.menu_search_empty": "暂无菜单",
|
|
127
|
+
"core.header.menu_search_placeholder": "菜单搜索:支持菜单名称、路径",
|
|
128
|
+
"core.header.size.default": "默认",
|
|
129
|
+
"core.header.size.large": "大型",
|
|
130
|
+
"core.header.size.small": "小型",
|
|
131
|
+
"core.header.size_select": "组件大小",
|
|
132
|
+
"core.header.theme": "主题设置",
|
|
133
|
+
"core.icon.empty": "未搜索到您要找的图标",
|
|
134
|
+
"core.icon.placeholder": "请选择图标",
|
|
135
|
+
"core.icon.search": "搜索图标",
|
|
136
|
+
"core.layout.department_unassigned": "未分配部门",
|
|
137
|
+
"core.layout.home": "首页",
|
|
138
|
+
"core.layout.info": "个人信息",
|
|
139
|
+
"core.layout.password_change": "修改密码",
|
|
140
|
+
"core.layout.unnamed_menu": "未命名菜单",
|
|
141
|
+
"core.layout.logout_confirm": "您是否确认退出登录?",
|
|
142
|
+
"core.layout.logout_success": "退出登录成功",
|
|
143
|
+
"core.layout.not_set": "未设置",
|
|
144
|
+
"core.layout.role_unassigned": "未分配角色",
|
|
145
|
+
"core.login.behavior_click": "请按顺序点击文字",
|
|
146
|
+
"core.login.behavior_confirm": "确认",
|
|
147
|
+
"core.login.behavior_puzzle": "请拖动滑块完成拼图",
|
|
148
|
+
"core.login.behavior_rotate": "拖动滑块,将内圈图片转正",
|
|
149
|
+
"core.login.captcha": "请输入验证码",
|
|
150
|
+
"core.login.captcha_alt": "验证码",
|
|
151
|
+
"core.login.greeting.afternoon": "下午好",
|
|
152
|
+
"core.login.greeting.evening": "晚上好",
|
|
153
|
+
"core.login.greeting.morning": "早上好",
|
|
154
|
+
"core.login.greeting.night": "凌晨好",
|
|
155
|
+
"core.login.greeting.noon": "中午好",
|
|
156
|
+
"core.login.other_methods": "其他登录方式",
|
|
157
|
+
"core.login.password": "请输入密码",
|
|
158
|
+
"core.login.tenant_code": "请输入租户编码",
|
|
159
|
+
"core.login.user_name": "请输入用户名",
|
|
160
|
+
"core.login.welcome": "欢迎登录管理后台",
|
|
161
|
+
"core.oauth.dingtalk": "钉钉",
|
|
162
|
+
"core.oauth.feishu": "飞书",
|
|
163
|
+
"core.oauth.wechat": "微信",
|
|
164
|
+
"core.oauth.wechatmp": "微信公众号",
|
|
165
|
+
"core.oauth.wechatwork": "企业微信",
|
|
166
|
+
"core.oauth.unknown": "未知方式",
|
|
167
|
+
"core.password.error": "密码需同时包含大小写字母、数字、特殊字符,且长度不少于 8 位",
|
|
168
|
+
"core.password.crypto_unsupported": "当前环境不支持密码加密",
|
|
169
|
+
"core.password.required": "密码不能为空",
|
|
170
|
+
"core.password.strength": "密码强度",
|
|
171
|
+
"core.password.strength.empty": "未输入",
|
|
172
|
+
"core.password.strength.high": "高",
|
|
173
|
+
"core.password.strength.low": "低",
|
|
174
|
+
"core.password.strength.medium": "中",
|
|
175
|
+
"core.password.tip": "需同时包含大小写字母、数字、特殊字符,且长度不少于 8 位,达到最高强度后才可提交。",
|
|
176
|
+
"core.theme.accordion": "菜单手风琴",
|
|
177
|
+
"core.theme.aside_inverted": "侧边栏反转色",
|
|
178
|
+
"core.theme.aside_inverted_tip": "侧边栏颜色变为深色模式",
|
|
179
|
+
"core.theme.breadcrumb": "面包屑",
|
|
180
|
+
"core.theme.breadcrumb_icon": "面包屑图标",
|
|
181
|
+
"core.theme.color": "主题颜色",
|
|
182
|
+
"core.theme.dark": "暗黑模式",
|
|
183
|
+
"core.theme.footer": "页脚",
|
|
184
|
+
"core.theme.global": "全局主题",
|
|
185
|
+
"core.theme.grey": "灰色模式",
|
|
186
|
+
"core.theme.header_inverted": "头部反转色",
|
|
187
|
+
"core.theme.header_inverted_tip": "头部颜色变为深色模式",
|
|
188
|
+
"core.theme.interface": "界面设置",
|
|
189
|
+
"core.theme.layout": "布局样式",
|
|
190
|
+
"core.theme.layout.classic": "经典",
|
|
191
|
+
"core.theme.layout.columns": "分栏",
|
|
192
|
+
"core.theme.layout.transverse": "横向",
|
|
193
|
+
"core.theme.layout.vertical": "纵向",
|
|
194
|
+
"core.theme.menu_collapse": "菜单折叠",
|
|
195
|
+
"core.theme.primary_reset": "主题颜色已重置为 {color}",
|
|
196
|
+
"core.theme.settings": "布局设置",
|
|
197
|
+
"core.theme.tabs": "标签栏",
|
|
198
|
+
"core.theme.tabs_icon": "标签栏图标",
|
|
199
|
+
"core.theme.watermark": "水印",
|
|
200
|
+
"core.theme.weak": "色弱模式",
|
|
201
|
+
"core.theme.color_hex_invalid": "请输入正确的十六进制颜色值",
|
|
202
|
+
"core.theme.color_rgb_invalid": "请输入正确的 RGB 颜色值",
|
|
203
|
+
"core.route.forbidden": "403 页面",
|
|
204
|
+
"core.route.login": "登录",
|
|
205
|
+
"core.route.not_found": "404 页面",
|
|
206
|
+
"core.route.server_error": "500 页面",
|
|
207
|
+
"core.tabs.close_all": "关闭全部",
|
|
208
|
+
"core.tabs.close_current": "关闭当前",
|
|
209
|
+
"core.tabs.close_left": "关闭左侧",
|
|
210
|
+
"core.tabs.close_other": "关闭其他",
|
|
211
|
+
"core.tabs.close_right": "关闭右侧",
|
|
212
|
+
"core.tabs.maximize": "最大化",
|
|
213
|
+
"core.tabs.refresh": "刷新当前",
|
|
214
|
+
"core.table.collapse_all": "折叠全部",
|
|
215
|
+
"core.table.column_name": "列名",
|
|
216
|
+
"core.table.column_setting": "列设置",
|
|
217
|
+
"core.table.expand_all": "展开全部",
|
|
218
|
+
"core.table.hide_search": "隐藏搜索",
|
|
219
|
+
"core.table.no_configurable_columns": "暂无可配置列",
|
|
220
|
+
"core.table.refresh": "刷新数据",
|
|
221
|
+
"core.table.show": "显示",
|
|
222
|
+
"core.table.show_search": "显示搜索",
|
|
223
|
+
"core.table.sort": "排序",
|
|
224
|
+
"core.tree.filter_placeholder": "输入关键字进行过滤",
|
|
225
|
+
"core.tree.reset_selection": "重置选择",
|
|
226
|
+
"core.upload.action": "上传文件",
|
|
227
|
+
"core.upload.batch_add": "批量添加{resource}",
|
|
228
|
+
"core.upload.batch_failed": "批量添加{resource}失败,请重新上传",
|
|
229
|
+
"core.upload.batch_success": "批量添加{resource}成功",
|
|
230
|
+
"core.upload.click": "点击上传",
|
|
231
|
+
"core.upload.data_cover": "数据覆盖",
|
|
232
|
+
"core.upload.drag_or_click": "将文件拖到此处,或",
|
|
233
|
+
"core.upload.excel_format": "请上传 .xls、.xlsx 标准格式文件,文件最大为 {size} MB",
|
|
234
|
+
"core.upload.file": "文件上传",
|
|
235
|
+
"core.upload.file_failed": "文件上传失败,请重新上传",
|
|
236
|
+
"core.upload.file_format_invalid": "上传文件不符合所需的格式",
|
|
237
|
+
"core.upload.file_size_exceeded": "上传文件大小不能超过 {size} MB",
|
|
238
|
+
"core.upload.file_success": "文件上传成功",
|
|
239
|
+
"core.upload.image_failed": "图片上传失败,请重新上传",
|
|
240
|
+
"core.upload.image_format_invalid": "上传图片不符合所需的格式",
|
|
241
|
+
"core.upload.image_limit_exceeded": "当前最多只能上传 {limit} 张图片,请移除后上传",
|
|
242
|
+
"core.upload.image_size_exceeded": "上传图片大小不能超过 {size} MB",
|
|
243
|
+
"core.upload.image_success": "图片上传成功",
|
|
244
|
+
"core.upload.limit_exceeded": "当前最多只能上传 {limit} 个文件,请移除后上传",
|
|
245
|
+
"core.upload.single_file_only": "最多只能上传一个文件",
|
|
246
|
+
"core.upload.template": "{resource}模板",
|
|
247
|
+
"core.upload.template_download": "模板下载",
|
|
248
|
+
"core.upload.unnamed_file": "未命名文件",
|
|
249
|
+
"common.action.create_resource": "新增{resource}",
|
|
250
|
+
"common.action.edit_resource": "修改{resource}",
|
|
251
|
+
"common.action.refresh_cache": "刷新缓存",
|
|
252
|
+
"common.dialog.cancel_delete": "已取消删除{resource}",
|
|
253
|
+
"common.dialog.delete_batch": "确认删除已选中的{count}{unit}{resource}吗?",
|
|
254
|
+
"common.dialog.delete_selected": "确认删除已选中的{resource}吗?",
|
|
255
|
+
"common.dialog.delete_single": "是否确定删除{resource}?",
|
|
256
|
+
"common.dialog.resource_field": "{field}:{value}",
|
|
257
|
+
"common.dialog.status_change": "是否确定{action}{resource}?\n{field}:{value}",
|
|
258
|
+
"common.field.created_at": "创建时间",
|
|
259
|
+
"common.field.remark": "备注",
|
|
260
|
+
"common.field.sort": "排序",
|
|
261
|
+
"common.field.status": "状态",
|
|
262
|
+
"common.field.tenant": "租户",
|
|
263
|
+
"common.field.updated_at": "更新时间",
|
|
264
|
+
"common.message.create_success": "新增{resource}成功",
|
|
265
|
+
"common.message.delete_success": "删除{resource}成功",
|
|
266
|
+
"common.message.load_children_failed": "加载{resource}子节点失败",
|
|
267
|
+
"common.message.refresh_success": "刷新成功",
|
|
268
|
+
"common.message.select_delete_item": "请勾选删除项",
|
|
269
|
+
"common.message.status_success": "{action}成功",
|
|
270
|
+
"common.message.update_success": "修改{resource}成功",
|
|
271
|
+
"common.placeholder.remark": "请输入备注",
|
|
272
|
+
"common.validation.max_length": "{field}不能超过 {max} 个字符",
|
|
273
|
+
"common.validation.required_input": "请输入{field}",
|
|
274
|
+
"common.validation.required_select": "请选择{field}",
|
|
275
|
+
"common.validation.sort_positive": "排序必须大于 0",
|
|
276
|
+
"common.field.action": "操作",
|
|
277
|
+
"common.placeholder.start_date": "开始时间",
|
|
278
|
+
"common.placeholder.end_date": "截止时间",
|
|
279
|
+
"common.value.yes": "是",
|
|
280
|
+
"common.value.no": "否",
|
|
281
|
+
"common.value.unknown": "未知",
|
|
282
|
+
"common.value.none": "无"
|
|
283
|
+
}
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common.action.back": "返回",
|
|
3
|
+
"common.action.cancel": "取消",
|
|
4
|
+
"common.action.close": "關閉",
|
|
5
|
+
"common.action.confirm": "確定",
|
|
6
|
+
"common.action.create": "新增",
|
|
7
|
+
"common.action.delete": "刪除",
|
|
8
|
+
"common.action.download": "下載",
|
|
9
|
+
"common.action.edit": "編輯",
|
|
10
|
+
"common.action.expand": "展開",
|
|
11
|
+
"common.action.collapse": "收起",
|
|
12
|
+
"common.action.login": "登入",
|
|
13
|
+
"common.action.logout": "退出登入",
|
|
14
|
+
"common.action.reset": "重置",
|
|
15
|
+
"common.action.save": "儲存",
|
|
16
|
+
"common.action.search": "搜尋",
|
|
17
|
+
"common.action.view": "檢視",
|
|
18
|
+
"common.field.end_time": "結束時間",
|
|
19
|
+
"common.field.language": "語言",
|
|
20
|
+
"common.field.operation": "操作",
|
|
21
|
+
"common.field.parameter_name": "引數名",
|
|
22
|
+
"common.field.parameter_value": "引數值",
|
|
23
|
+
"common.field.phone": "手機號碼",
|
|
24
|
+
"common.field.start_time": "開始時間",
|
|
25
|
+
"common.language.en-US": "英文",
|
|
26
|
+
"common.language.ja-JP": "日文",
|
|
27
|
+
"common.language.zh-CN": "簡體中文",
|
|
28
|
+
"common.language.zh-TW": "繁體中文",
|
|
29
|
+
"common.language.ko-KR": "韓文",
|
|
30
|
+
"common.language.fr-FR": "法文",
|
|
31
|
+
"common.language.es-ES": "西班牙文",
|
|
32
|
+
"common.message.no_data": "暫無資料",
|
|
33
|
+
"common.message.operation_success": "操作成功",
|
|
34
|
+
"common.message.system_error": "系統出錯",
|
|
35
|
+
"common.validation.phone_invalid": "請輸入正確的手機號碼",
|
|
36
|
+
"common.validation.phone_required": "請輸入手機號碼",
|
|
37
|
+
"common.title.notice": "提示",
|
|
38
|
+
"common.title.warning": "溫馨提示",
|
|
39
|
+
"common.placeholder.input": "請輸入",
|
|
40
|
+
"common.placeholder.input_content": "請輸入內容",
|
|
41
|
+
"common.placeholder.select": "請選擇",
|
|
42
|
+
"common.status.disabled": "禁用",
|
|
43
|
+
"common.status.enabled": "啟用",
|
|
44
|
+
"common.value.female": "女",
|
|
45
|
+
"common.value.male": "男",
|
|
46
|
+
"common.value.all": "全部",
|
|
47
|
+
"core.auth.login_again": "重新登入",
|
|
48
|
+
"core.auth.refresh_token_missing": "重新整理令牌不存在",
|
|
49
|
+
"core.auth.session_expired": "登入狀態已失效,請重新登入",
|
|
50
|
+
"core.auth.no_menu_permission": "當前賬號無任何選單許可權,請聯絡系統管理員",
|
|
51
|
+
"core.auth.no_permission": "無許可權訪問",
|
|
52
|
+
"core.clipboard.success": "複製成功",
|
|
53
|
+
"core.cron.cycle_unit.day": "天",
|
|
54
|
+
"core.cron.cycle_unit.hour": "小時",
|
|
55
|
+
"core.cron.cycle_unit.minute": "分鐘",
|
|
56
|
+
"core.cron.cycle_unit.month": "個月",
|
|
57
|
+
"core.cron.cycle_unit.second": "秒",
|
|
58
|
+
"core.cron.cycle_unit.year": "年",
|
|
59
|
+
"core.cron.description.every": "每{unit}",
|
|
60
|
+
"core.cron.description.range": "{segment}{start}到{end}",
|
|
61
|
+
"core.cron.description.specific": "{segment}指定為 {values}",
|
|
62
|
+
"core.cron.description.step": "從{start}{unit}開始,每{step}{cycleUnit}執行一次",
|
|
63
|
+
"core.cron.description.unspecified": "{segment}不指定",
|
|
64
|
+
"core.cron.description.weekday": "本月 {day} 號最近的工作日",
|
|
65
|
+
"core.cron.description_separator": ",",
|
|
66
|
+
"core.cron.edit": "編輯表示式",
|
|
67
|
+
"core.cron.every_unit": "每{unit}",
|
|
68
|
+
"core.cron.expression": "Cron 表示式",
|
|
69
|
+
"core.cron.from": "從",
|
|
70
|
+
"core.cron.last_day": "本月最後一天",
|
|
71
|
+
"core.cron.nearest_workday": "號最近的工作日",
|
|
72
|
+
"core.cron.not_configured": "未配置執行規則",
|
|
73
|
+
"core.cron.placeholder": "請輸入 Cron 表示式",
|
|
74
|
+
"core.cron.preset.daily_eight": "每天早上 8 點執行",
|
|
75
|
+
"core.cron.preset.daily_midnight": "每天零點執行",
|
|
76
|
+
"core.cron.preset.every_five_minutes": "每 5 分鐘執行",
|
|
77
|
+
"core.cron.preset.every_hour": "每小時執行",
|
|
78
|
+
"core.cron.preset.every_minute": "每分鐘執行",
|
|
79
|
+
"core.cron.preset.monthly_first": "每月 1 號零點執行",
|
|
80
|
+
"core.cron.preset.next_year_daily": "明年每天零點執行",
|
|
81
|
+
"core.cron.presets": "常用表示式",
|
|
82
|
+
"core.cron.range": "週期",
|
|
83
|
+
"core.cron.repeat": "迴圈",
|
|
84
|
+
"core.cron.run_once": "{unit}執行一次",
|
|
85
|
+
"core.cron.segment.day": "日期",
|
|
86
|
+
"core.cron.segment.hour": "小時",
|
|
87
|
+
"core.cron.segment.minute": "分鐘",
|
|
88
|
+
"core.cron.segment.month": "月份",
|
|
89
|
+
"core.cron.segment.second": "秒",
|
|
90
|
+
"core.cron.segment.year": "年份",
|
|
91
|
+
"core.cron.specific": "指定",
|
|
92
|
+
"core.cron.start_every": "{unit}開始,每",
|
|
93
|
+
"core.cron.this_month": "本月",
|
|
94
|
+
"core.cron.title": "編輯定時表示式",
|
|
95
|
+
"core.cron.to": "至",
|
|
96
|
+
"core.cron.unit.day": "日",
|
|
97
|
+
"core.cron.unit.hour": "時",
|
|
98
|
+
"core.cron.unit.minute": "分",
|
|
99
|
+
"core.cron.unit.month": "月",
|
|
100
|
+
"core.cron.unit.second": "秒",
|
|
101
|
+
"core.cron.unit.year": "年",
|
|
102
|
+
"core.cron.unspecified": "不指定",
|
|
103
|
+
"core.cron.value_separator": "、",
|
|
104
|
+
"core.cron.value_with_unit": "{value}{unit}",
|
|
105
|
+
"core.cron.workday": "工作日",
|
|
106
|
+
"core.data.confirm_action": "是否{action}?",
|
|
107
|
+
"core.data.operation_success": "{action}成功",
|
|
108
|
+
"core.download.large_file_notice": "資料量較大時下載會較慢,請耐心等待",
|
|
109
|
+
"core.error.403.detail": "抱歉,您沒有許可權訪問此頁面",
|
|
110
|
+
"core.error.404.detail": "抱歉,您訪問的頁面不存在",
|
|
111
|
+
"core.error.500.detail": "抱歉,伺服器發生錯誤",
|
|
112
|
+
"core.error.pending.detail": "該頁面功能正在建設中",
|
|
113
|
+
"core.error.javascript.eval": "Eval 使用錯誤",
|
|
114
|
+
"core.error.javascript.internal": "JavaScript 引擎內部錯誤",
|
|
115
|
+
"core.error.javascript.range": "引數超出允許範圍",
|
|
116
|
+
"core.error.javascript.reference": "未找到物件",
|
|
117
|
+
"core.error.javascript.syntax": "語法錯誤",
|
|
118
|
+
"core.error.javascript.type": "使用了錯誤的型別或物件",
|
|
119
|
+
"core.error.javascript.unknown": "未知錯誤",
|
|
120
|
+
"core.error.javascript.uri": "URI 錯誤",
|
|
121
|
+
"core.header.fullscreen": "全屏",
|
|
122
|
+
"core.header.fullscreen_exit": "退出全屏",
|
|
123
|
+
"core.header.fullscreen_unsupported": "當前瀏覽器不支援全屏",
|
|
124
|
+
"core.header.language": "切換語言",
|
|
125
|
+
"core.header.menu_search": "選單搜尋",
|
|
126
|
+
"core.header.menu_search_empty": "暫無選單",
|
|
127
|
+
"core.header.menu_search_placeholder": "選單搜尋:支援選單名稱、路徑",
|
|
128
|
+
"core.header.size.default": "預設",
|
|
129
|
+
"core.header.size.large": "大型",
|
|
130
|
+
"core.header.size.small": "小型",
|
|
131
|
+
"core.header.size_select": "元件大小",
|
|
132
|
+
"core.header.theme": "主題設定",
|
|
133
|
+
"core.icon.empty": "未搜尋到您要找的圖示",
|
|
134
|
+
"core.icon.placeholder": "請選擇圖示",
|
|
135
|
+
"core.icon.search": "搜尋圖示",
|
|
136
|
+
"core.layout.department_unassigned": "未分配部門",
|
|
137
|
+
"core.layout.home": "首頁",
|
|
138
|
+
"core.layout.info": "個人資訊",
|
|
139
|
+
"core.layout.password_change": "修改密碼",
|
|
140
|
+
"core.layout.unnamed_menu": "未命名選單",
|
|
141
|
+
"core.layout.logout_confirm": "您是否確認退出登入?",
|
|
142
|
+
"core.layout.logout_success": "退出登入成功",
|
|
143
|
+
"core.layout.not_set": "未設定",
|
|
144
|
+
"core.layout.role_unassigned": "未分配角色",
|
|
145
|
+
"core.login.behavior_click": "請按順序點選文字",
|
|
146
|
+
"core.login.behavior_confirm": "確認",
|
|
147
|
+
"core.login.behavior_puzzle": "請拖動滑塊完成拼圖",
|
|
148
|
+
"core.login.behavior_rotate": "拖動滑塊,將內圈圖片轉正",
|
|
149
|
+
"core.login.captcha": "請輸入驗證碼",
|
|
150
|
+
"core.login.captcha_alt": "驗證碼",
|
|
151
|
+
"core.login.greeting.afternoon": "下午好",
|
|
152
|
+
"core.login.greeting.evening": "晚上好",
|
|
153
|
+
"core.login.greeting.morning": "早上好",
|
|
154
|
+
"core.login.greeting.night": "凌晨好",
|
|
155
|
+
"core.login.greeting.noon": "中午好",
|
|
156
|
+
"core.login.other_methods": "其他登入方式",
|
|
157
|
+
"core.login.password": "請輸入密碼",
|
|
158
|
+
"core.login.tenant_code": "請輸入租戶編碼",
|
|
159
|
+
"core.login.user_name": "請輸入使用者名稱",
|
|
160
|
+
"core.login.welcome": "歡迎登入管理後臺",
|
|
161
|
+
"core.oauth.dingtalk": "釘釘",
|
|
162
|
+
"core.oauth.feishu": "飛書",
|
|
163
|
+
"core.oauth.wechat": "微信",
|
|
164
|
+
"core.oauth.wechatmp": "微信公眾號",
|
|
165
|
+
"core.oauth.wechatwork": "企業微信",
|
|
166
|
+
"core.oauth.unknown": "未知方式",
|
|
167
|
+
"core.password.error": "密碼需同時包含大小寫字母、數字、特殊字元,且長度不少於 8 位",
|
|
168
|
+
"core.password.crypto_unsupported": "當前環境不支援密碼加密",
|
|
169
|
+
"core.password.required": "密碼不能為空",
|
|
170
|
+
"core.password.strength": "密碼強度",
|
|
171
|
+
"core.password.strength.empty": "未輸入",
|
|
172
|
+
"core.password.strength.high": "高",
|
|
173
|
+
"core.password.strength.low": "低",
|
|
174
|
+
"core.password.strength.medium": "中",
|
|
175
|
+
"core.password.tip": "需同時包含大小寫字母、數字、特殊字元,且長度不少於 8 位,達到最高強度後才可提交。",
|
|
176
|
+
"core.theme.accordion": "選單手風琴",
|
|
177
|
+
"core.theme.aside_inverted": "側邊欄反轉色",
|
|
178
|
+
"core.theme.aside_inverted_tip": "側邊欄顏色變為深色模式",
|
|
179
|
+
"core.theme.breadcrumb": "麵包屑",
|
|
180
|
+
"core.theme.breadcrumb_icon": "麵包屑圖示",
|
|
181
|
+
"core.theme.color": "主題顏色",
|
|
182
|
+
"core.theme.dark": "暗黑模式",
|
|
183
|
+
"core.theme.footer": "頁尾",
|
|
184
|
+
"core.theme.global": "全域性主題",
|
|
185
|
+
"core.theme.grey": "灰色模式",
|
|
186
|
+
"core.theme.header_inverted": "頭部反轉色",
|
|
187
|
+
"core.theme.header_inverted_tip": "頭部顏色變為深色模式",
|
|
188
|
+
"core.theme.interface": "介面設定",
|
|
189
|
+
"core.theme.layout": "佈局樣式",
|
|
190
|
+
"core.theme.layout.classic": "經典",
|
|
191
|
+
"core.theme.layout.columns": "分欄",
|
|
192
|
+
"core.theme.layout.transverse": "橫向",
|
|
193
|
+
"core.theme.layout.vertical": "縱向",
|
|
194
|
+
"core.theme.menu_collapse": "選單摺疊",
|
|
195
|
+
"core.theme.primary_reset": "主題顏色已重置為 {color}",
|
|
196
|
+
"core.theme.settings": "佈局設定",
|
|
197
|
+
"core.theme.tabs": "標籤欄",
|
|
198
|
+
"core.theme.tabs_icon": "標籤欄圖示",
|
|
199
|
+
"core.theme.watermark": "水印",
|
|
200
|
+
"core.theme.weak": "色弱模式",
|
|
201
|
+
"core.theme.color_hex_invalid": "請輸入正確的十六進位制顏色值",
|
|
202
|
+
"core.theme.color_rgb_invalid": "請輸入正確的 RGB 顏色值",
|
|
203
|
+
"core.route.forbidden": "403 頁面",
|
|
204
|
+
"core.route.login": "登入",
|
|
205
|
+
"core.route.not_found": "404 頁面",
|
|
206
|
+
"core.route.server_error": "500 頁面",
|
|
207
|
+
"core.tabs.close_all": "關閉全部",
|
|
208
|
+
"core.tabs.close_current": "關閉當前",
|
|
209
|
+
"core.tabs.close_left": "關閉左側",
|
|
210
|
+
"core.tabs.close_other": "關閉其他",
|
|
211
|
+
"core.tabs.close_right": "關閉右側",
|
|
212
|
+
"core.tabs.maximize": "最大化",
|
|
213
|
+
"core.tabs.refresh": "重新整理當前",
|
|
214
|
+
"core.table.collapse_all": "摺疊全部",
|
|
215
|
+
"core.table.column_name": "列名",
|
|
216
|
+
"core.table.column_setting": "列設定",
|
|
217
|
+
"core.table.expand_all": "展開全部",
|
|
218
|
+
"core.table.hide_search": "隱藏搜尋",
|
|
219
|
+
"core.table.no_configurable_columns": "暫無可配置列",
|
|
220
|
+
"core.table.refresh": "重新整理資料",
|
|
221
|
+
"core.table.show": "顯示",
|
|
222
|
+
"core.table.show_search": "顯示搜尋",
|
|
223
|
+
"core.table.sort": "排序",
|
|
224
|
+
"core.tree.filter_placeholder": "輸入關鍵字進行過濾",
|
|
225
|
+
"core.tree.reset_selection": "重置選擇",
|
|
226
|
+
"core.upload.action": "上傳檔案",
|
|
227
|
+
"core.upload.batch_add": "批次新增{resource}",
|
|
228
|
+
"core.upload.batch_failed": "批次新增{resource}失敗,請重新上傳",
|
|
229
|
+
"core.upload.batch_success": "批次新增{resource}成功",
|
|
230
|
+
"core.upload.click": "點選上傳",
|
|
231
|
+
"core.upload.data_cover": "資料覆蓋",
|
|
232
|
+
"core.upload.drag_or_click": "將檔案拖到此處,或",
|
|
233
|
+
"core.upload.excel_format": "請上傳 .xls、.xlsx 標準格式檔案,檔案最大為 {size} MB",
|
|
234
|
+
"core.upload.file": "檔案上傳",
|
|
235
|
+
"core.upload.file_failed": "檔案上傳失敗,請重新上傳",
|
|
236
|
+
"core.upload.file_format_invalid": "上傳檔案不符合所需的格式",
|
|
237
|
+
"core.upload.file_size_exceeded": "上傳檔案大小不能超過 {size} MB",
|
|
238
|
+
"core.upload.file_success": "檔案上傳成功",
|
|
239
|
+
"core.upload.image_failed": "圖片上傳失敗,請重新上傳",
|
|
240
|
+
"core.upload.image_format_invalid": "上傳圖片不符合所需的格式",
|
|
241
|
+
"core.upload.image_limit_exceeded": "當前最多隻能上傳 {limit} 張圖片,請移除後上傳",
|
|
242
|
+
"core.upload.image_size_exceeded": "上傳圖片大小不能超過 {size} MB",
|
|
243
|
+
"core.upload.image_success": "圖片上傳成功",
|
|
244
|
+
"core.upload.limit_exceeded": "當前最多隻能上傳 {limit} 個檔案,請移除後上傳",
|
|
245
|
+
"core.upload.single_file_only": "最多隻能上傳一個檔案",
|
|
246
|
+
"core.upload.template": "{resource}模板",
|
|
247
|
+
"core.upload.template_download": "模板下載",
|
|
248
|
+
"core.upload.unnamed_file": "未命名檔案",
|
|
249
|
+
"common.action.create_resource": "新增{resource}",
|
|
250
|
+
"common.action.edit_resource": "修改{resource}",
|
|
251
|
+
"common.action.refresh_cache": "重新整理快取",
|
|
252
|
+
"common.dialog.cancel_delete": "已取消刪除{resource}",
|
|
253
|
+
"common.dialog.delete_batch": "確認刪除已選中的{count}{unit}{resource}嗎?",
|
|
254
|
+
"common.dialog.delete_selected": "確認刪除已選中的{resource}嗎?",
|
|
255
|
+
"common.dialog.delete_single": "是否確定刪除{resource}?",
|
|
256
|
+
"common.dialog.resource_field": "{field}:{value}",
|
|
257
|
+
"common.dialog.status_change": "是否確定{action}{resource}?\n{field}:{value}",
|
|
258
|
+
"common.field.created_at": "建立時間",
|
|
259
|
+
"common.field.remark": "備註",
|
|
260
|
+
"common.field.sort": "排序",
|
|
261
|
+
"common.field.status": "狀態",
|
|
262
|
+
"common.field.tenant": "租戶",
|
|
263
|
+
"common.field.updated_at": "更新時間",
|
|
264
|
+
"common.message.create_success": "新增{resource}成功",
|
|
265
|
+
"common.message.delete_success": "刪除{resource}成功",
|
|
266
|
+
"common.message.load_children_failed": "載入{resource}子節點失敗",
|
|
267
|
+
"common.message.refresh_success": "重新整理成功",
|
|
268
|
+
"common.message.select_delete_item": "請勾選刪除項",
|
|
269
|
+
"common.message.status_success": "{action}成功",
|
|
270
|
+
"common.message.update_success": "修改{resource}成功",
|
|
271
|
+
"common.placeholder.remark": "請輸入備註",
|
|
272
|
+
"common.validation.max_length": "{field}不能超過 {max} 個字元",
|
|
273
|
+
"common.validation.required_input": "請輸入{field}",
|
|
274
|
+
"common.validation.required_select": "請選擇{field}",
|
|
275
|
+
"common.validation.sort_positive": "排序必須大於 0",
|
|
276
|
+
"common.field.action": "操作",
|
|
277
|
+
"common.placeholder.start_date": "開始時間",
|
|
278
|
+
"common.placeholder.end_date": "截止時間",
|
|
279
|
+
"common.value.yes": "是",
|
|
280
|
+
"common.value.no": "否",
|
|
281
|
+
"common.value.unknown": "未知",
|
|
282
|
+
"common.value.none": "無"
|
|
283
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Component } from "vue";
|
|
2
2
|
import type { RouteLocationNormalizedLoaded } from "vue-router";
|
|
3
|
+
import type { LocaleMessages, SupportedLocale } from "../locales";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* 管理端视图加载器。
|
|
@@ -42,8 +43,10 @@ export interface AdminHeaderTool {
|
|
|
42
43
|
export interface AdminUserMenuAction {
|
|
43
44
|
/** 操作唯一名称。 */
|
|
44
45
|
name: string;
|
|
45
|
-
/**
|
|
46
|
-
|
|
46
|
+
/** 操作显示名称对应的稳定语言键。 */
|
|
47
|
+
labelKey?: string;
|
|
48
|
+
/** 兼容未迁移模块的静态显示名称。 */
|
|
49
|
+
label?: string;
|
|
47
50
|
/** 对应后端动态菜单名称,菜单不存在时不显示操作。 */
|
|
48
51
|
menuName: string;
|
|
49
52
|
/** 操作图标。 */
|
|
@@ -74,6 +77,8 @@ export interface AdminModule {
|
|
|
74
77
|
routeOptions?: Record<string, AdminRouteOptions>;
|
|
75
78
|
/** 模块提供的命名扩展,由扩展所属业务包定义具体类型。 */
|
|
76
79
|
extensions?: Record<string, unknown>;
|
|
80
|
+
/** 模块按语言区域贡献的扁平语言包。 */
|
|
81
|
+
messages?: Partial<Record<SupportedLocale, LocaleMessages>>;
|
|
77
82
|
}
|
|
78
83
|
|
|
79
84
|
const registeredModules = new Map<string, AdminModule>();
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { ADMIN_STATIC_VIEWS, defineAdminModule, type AdminStaticViewModules } from "./index";
|
|
2
2
|
|
|
3
|
+
// 语言包由同步脚本生成并注册,供管理端公共组件、登录页和错误处理使用。
|
|
4
|
+
import { LOCALE_MESSAGES } from "../locales/generated";
|
|
5
|
+
|
|
3
6
|
const staticViewModules: AdminStaticViewModules = {
|
|
4
7
|
[ADMIN_STATIC_VIEWS.LOGIN]: () => import("../views/login/index.vue"),
|
|
5
8
|
[ADMIN_STATIC_VIEWS.FORBIDDEN]: () => import("../views/error/403.vue"),
|
|
@@ -13,5 +16,6 @@ const staticViewModules: AdminStaticViewModules = {
|
|
|
13
16
|
*/
|
|
14
17
|
export const kratosAdminModule = defineAdminModule({
|
|
15
18
|
name: "kratos-admin",
|
|
16
|
-
staticViews: staticViewModules
|
|
19
|
+
staticViews: staticViewModules,
|
|
20
|
+
messages: LOCALE_MESSAGES
|
|
17
21
|
});
|
|
@@ -1,2 +1,9 @@
|
|
|
1
1
|
export { default } from "./utils/request";
|
|
2
|
-
export {
|
|
2
|
+
export {
|
|
3
|
+
ensureAccessToken,
|
|
4
|
+
getRequestAccessToken,
|
|
5
|
+
handleAuthExpired,
|
|
6
|
+
hasValidAccessToken,
|
|
7
|
+
requestBaseURL
|
|
8
|
+
} from "./utils/request";
|
|
9
|
+
export { getLocaleRequestHeaders } from "./locales";
|
|
@@ -6,6 +6,7 @@ import { staticRouter, errorRouter } from "../routers/modules/staticRouter";
|
|
|
6
6
|
import NProgress from "../config/nprogress";
|
|
7
7
|
import { isUnmatchedRoute } from "../utils/router";
|
|
8
8
|
import { ensureAccessToken } from "../utils/request";
|
|
9
|
+
import { t } from "../locales";
|
|
9
10
|
|
|
10
11
|
const mode = import.meta.env.VITE_ROUTER_MODE;
|
|
11
12
|
|
|
@@ -48,7 +49,9 @@ router.beforeEach(async to => {
|
|
|
48
49
|
|
|
49
50
|
// 2.动态设置标题
|
|
50
51
|
const title = import.meta.env.VITE_GLOB_APP_TITLE;
|
|
51
|
-
|
|
52
|
+
const titleKey = typeof to.meta.titleKey === "string" ? to.meta.titleKey : "";
|
|
53
|
+
const routeTitle = titleKey ? t(titleKey) : String(to.meta.title ?? "");
|
|
54
|
+
document.title = routeTitle ? `${routeTitle} - ${title}` : title;
|
|
52
55
|
|
|
53
56
|
const hasAccessToken = await ensureAccessToken();
|
|
54
57
|
|