@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.
Files changed (131) hide show
  1. package/README.md +2 -2
  2. package/dist/package/declarations/src/api/base/language.d.ts +8 -0
  3. package/dist/package/declarations/src/components/Dialog/ProDialog.vue.d.ts +1 -0
  4. package/dist/package/declarations/src/components/Dict/index.vue.d.ts +4 -3
  5. package/dist/package/declarations/src/components/Dict/value.d.ts +11 -0
  6. package/dist/package/declarations/src/components/LocaleSwitch/index.vue.d.ts +3 -0
  7. package/dist/package/declarations/src/index.d.ts +2 -0
  8. package/dist/package/declarations/src/locales/generated.d.ts +3382 -0
  9. package/dist/package/declarations/src/locales/index.d.ts +53 -0
  10. package/dist/package/declarations/src/modules/index.d.ts +7 -2
  11. package/dist/package/declarations/src/request.d.ts +1 -0
  12. package/dist/package/declarations/src/routers/modules/staticRouter.d.ts +1 -0
  13. package/dist/package/declarations/src/rpc/base/v1/config.d.ts +13 -1
  14. package/dist/package/declarations/src/rpc/base/v1/language.d.ts +20 -0
  15. package/dist/package/declarations/src/rpc/base/v1/login.d.ts +13 -1
  16. package/dist/package/declarations/src/rpc/system/admin/v1/auth.d.ts +1 -1
  17. package/dist/package/declarations/src/rpc/system/admin/v1/base_dict.d.ts +9 -0
  18. package/dist/package/declarations/src/rpc/system/admin/v1/base_translation.d.ts +75 -0
  19. package/dist/package/declarations/src/rpc/system/admin/v1/common.d.ts +13 -0
  20. package/dist/package/declarations/src/stores/interface/index.d.ts +2 -0
  21. package/dist/package/declarations/src/stores/modules/auth.d.ts +6 -6
  22. package/dist/package/declarations/src/stores/runtime.d.ts +1 -0
  23. package/dist/package/declarations/src/utils/dict.d.ts +2 -2
  24. package/dist/package/declarations/src/utils/index.d.ts +1 -1
  25. package/dist/package/declarations/src/utils/oauthProvider.d.ts +2 -0
  26. package/dist/package/declarations/src/utils/passwordCrypto.d.ts +1 -1
  27. package/dist/package/declarations/src/utils/passwordStrength.d.ts +0 -7
  28. package/dist/package/src/App.vue +5 -2
  29. package/dist/package/src/api/base/language.ts +20 -0
  30. package/dist/package/src/api/base/oauth.ts +0 -1
  31. package/dist/package/src/api/system/auth.ts +0 -1
  32. package/dist/package/src/bootstrap.ts +57 -2
  33. package/dist/package/src/components/CronExpression/index.vue +80 -82
  34. package/dist/package/src/components/Dialog/FormDialog.vue +10 -5
  35. package/dist/package/src/components/Dialog/ProDialog.vue +10 -4
  36. package/dist/package/src/components/Dict/index.vue +26 -9
  37. package/dist/package/src/components/Dict/value.ts +18 -0
  38. package/dist/package/src/components/ECharts/config/index.ts +6 -1
  39. package/dist/package/src/components/ErrorMessage/index.vue +3 -1
  40. package/dist/package/src/components/ImportExcel/index.vue +29 -18
  41. package/dist/package/src/components/LocaleSwitch/index.vue +28 -0
  42. package/dist/package/src/components/PasswordStrength/index.vue +8 -5
  43. package/dist/package/src/components/ProForm/components/DynamicList.vue +8 -3
  44. package/dist/package/src/components/ProForm/components/KvList.vue +14 -6
  45. package/dist/package/src/components/ProForm/index.vue +2 -2
  46. package/dist/package/src/components/ProTable/components/ColSetting.vue +7 -5
  47. package/dist/package/src/components/ProTable/components/TableColumn.vue +2 -1
  48. package/dist/package/src/components/ProTable/index.vue +36 -11
  49. package/dist/package/src/components/SearchForm/components/SearchFormItem.vue +9 -4
  50. package/dist/package/src/components/SearchForm/index.vue +6 -3
  51. package/dist/package/src/components/SelectFilter/index.vue +4 -1
  52. package/dist/package/src/components/SelectIcon/index.vue +8 -4
  53. package/dist/package/src/components/TreeFilter/index.vue +14 -6
  54. package/dist/package/src/components/Upload/File.vue +18 -13
  55. package/dist/package/src/components/Upload/Files.vue +22 -15
  56. package/dist/package/src/components/Upload/Img.vue +14 -11
  57. package/dist/package/src/components/Upload/Imgs.vue +15 -12
  58. package/dist/package/src/components/WangEditor/index.vue +12 -4
  59. package/dist/package/src/directives/modules/copy.ts +2 -1
  60. package/dist/package/src/hooks/useDownload.ts +3 -2
  61. package/dist/package/src/hooks/useHandleData.ts +5 -4
  62. package/dist/package/src/hooks/useTheme.ts +2 -1
  63. package/dist/package/src/hooks/useTime.ts +11 -2
  64. package/dist/package/src/index.ts +2 -0
  65. package/dist/package/src/layouts/components/Header/ToolBarRight.vue +2 -0
  66. package/dist/package/src/layouts/components/Header/components/AssemblySize.vue +8 -6
  67. package/dist/package/src/layouts/components/Header/components/Avatar.vue +11 -9
  68. package/dist/package/src/layouts/components/Header/components/Breadcrumb.vue +11 -3
  69. package/dist/package/src/layouts/components/Header/components/Fullscreen.vue +4 -2
  70. package/dist/package/src/layouts/components/Header/components/InfoDialog.vue +6 -3
  71. package/dist/package/src/layouts/components/Header/components/PasswordDialog.vue +6 -3
  72. package/dist/package/src/layouts/components/Header/components/SearchMenu.vue +5 -3
  73. package/dist/package/src/layouts/components/Header/components/ThemeSetting.vue +3 -1
  74. package/dist/package/src/layouts/components/Main/index.vue +1 -0
  75. package/dist/package/src/layouts/components/Tabs/components/MoreButton.vue +9 -7
  76. package/dist/package/src/layouts/components/Tabs/index.vue +15 -1
  77. package/dist/package/src/layouts/components/ThemeDrawer/index.vue +27 -24
  78. package/dist/package/src/locales/README.md +15 -0
  79. package/dist/package/src/locales/en-US.json +283 -0
  80. package/dist/package/src/locales/es-ES.json +283 -0
  81. package/dist/package/src/locales/fr-FR.json +283 -0
  82. package/dist/package/src/locales/generated.ts +57 -0
  83. package/dist/package/src/locales/index.ts +222 -0
  84. package/dist/package/src/locales/ja-JP.json +283 -0
  85. package/dist/package/src/locales/ko-KR.json +283 -0
  86. package/dist/package/src/locales/zh-CN.json +283 -0
  87. package/dist/package/src/locales/zh-TW.json +283 -0
  88. package/dist/package/src/modules/index.ts +7 -2
  89. package/dist/package/src/modules/kratosAdmin.ts +5 -1
  90. package/dist/package/src/request.ts +8 -1
  91. package/dist/package/src/routers/index.ts +4 -1
  92. package/dist/package/src/routers/modules/dynamicRouter.ts +5 -4
  93. package/dist/package/src/routers/modules/staticRouter.ts +8 -4
  94. package/dist/package/src/rpc/base/v1/config.ts +14 -1
  95. package/dist/package/src/rpc/base/v1/language.ts +31 -0
  96. package/dist/package/src/rpc/base/v1/login.ts +14 -1
  97. package/dist/package/src/rpc/system/admin/v1/auth.ts +1 -1
  98. package/dist/package/src/rpc/system/admin/v1/base_dict.ts +9 -0
  99. package/dist/package/src/rpc/system/admin/v1/base_translation.ts +90 -0
  100. package/dist/package/src/rpc/system/admin/v1/common.ts +21 -0
  101. package/dist/package/src/stores/interface/index.ts +2 -0
  102. package/dist/package/src/stores/modules/config.ts +7 -3
  103. package/dist/package/src/stores/modules/user.ts +2 -1
  104. package/dist/package/src/stores/runtime.ts +1 -0
  105. package/dist/package/src/styles/element.scss +2 -0
  106. package/dist/package/src/utils/color.ts +5 -4
  107. package/dist/package/src/utils/dict.ts +27 -4
  108. package/dist/package/src/utils/eleValidate.ts +3 -2
  109. package/dist/package/src/utils/errorHandler.ts +9 -8
  110. package/dist/package/src/utils/index.ts +9 -8
  111. package/dist/package/src/utils/oauthProvider.ts +15 -10
  112. package/dist/package/src/utils/passwordCrypto.ts +4 -3
  113. package/dist/package/src/utils/passwordStrength.ts +1 -16
  114. package/dist/package/src/utils/request.ts +13 -8
  115. package/dist/package/src/views/error/403.vue +3 -1
  116. package/dist/package/src/views/error/404.vue +3 -1
  117. package/dist/package/src/views/error/500.vue +3 -1
  118. package/dist/package/src/views/error/pending.vue +5 -2
  119. package/dist/package/src/views/login/components/LoginForm.vue +58 -29
  120. package/dist/package/src/views/login/index.scss +6 -0
  121. package/dist/package/src/views/login/index.vue +2 -0
  122. package/dist/package/types/generated/auto-imports.d.ts +129 -111
  123. package/dist/package/types/generated/components.d.ts +67 -67
  124. package/package.json +4 -2
  125. package/types/generated/auto-imports.d.ts +129 -111
  126. package/types/generated/components.d.ts +67 -67
  127. package/vite.config.ts +12 -0
  128. package/dist/package/declarations/src/rpc/base/v1/enum.d.ts +0 -43
  129. package/dist/package/declarations/src/rpc/system/common/v1/enum.d.ts +0 -67
  130. package/dist/package/src/rpc/base/v1/enum.ts +0 -54
  131. 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
- label: string;
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 { ensureAccessToken, getRequestAccessToken, handleAuthExpired, hasValidAccessToken, requestBaseURL } from "./utils/request";
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
- document.title = to.meta.title ? `${to.meta.title} - ${title}` : title;
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