@liujitcn/kratos-admin-system 0.0.28 → 0.0.31
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 +19 -2
- package/dist/package/declarations/src/api/base/notification.d.ts +24 -0
- package/dist/package/declarations/src/api/system/base_audit_log.d.ts +55 -0
- package/dist/package/declarations/src/api/system/base_dashboard.d.ts +14 -0
- package/dist/package/declarations/src/api/system/base_file.d.ts +13 -0
- package/dist/package/declarations/src/api/system/base_i18n.d.ts +5 -5
- package/dist/package/declarations/src/api/system/base_login_policy.d.ts +10 -0
- package/dist/package/declarations/src/api/system/base_message.d.ts +24 -0
- package/dist/package/declarations/src/api/system/base_message_category.d.ts +21 -0
- package/dist/package/declarations/src/api/system/base_session.d.ts +11 -0
- package/dist/package/declarations/src/api/system/oauth_client.d.ts +24 -0
- package/dist/package/declarations/src/components/AuditLogTable.vue.d.ts +45 -0
- package/dist/package/declarations/src/components/DynamicI18nCell.vue.d.ts +16 -0
- package/dist/package/declarations/src/components/DynamicI18nEditor.vue.d.ts +20 -0
- package/dist/package/declarations/src/components/auditLog.d.ts +9 -0
- package/dist/package/declarations/src/components/dynamicI18n.d.ts +38 -0
- package/dist/package/declarations/src/locales/generated.d.ts +1364 -68
- package/dist/package/declarations/src/rpc/base/v1/login.d.ts +149 -0
- package/dist/package/declarations/src/rpc/base/v1/notification.d.ts +281 -0
- package/dist/package/declarations/src/rpc/base/v1/oauth.d.ts +25 -0
- package/dist/package/declarations/src/rpc/base/v1/oauth_client.d.ts +23 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_audit_log.d.ts +640 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_config.d.ts +3 -3
- package/dist/package/declarations/src/rpc/system/admin/v1/base_dashboard.d.ts +60 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_dict.d.ts +4 -4
- package/dist/package/declarations/src/rpc/system/admin/v1/base_file.d.ts +73 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_i18n.d.ts +27 -23
- package/dist/package/declarations/src/rpc/system/admin/v1/base_job.d.ts +5 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_login_policy.d.ts +51 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_menu.d.ts +2 -2
- package/dist/package/declarations/src/rpc/system/admin/v1/base_message.d.ts +193 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_message_category.d.ts +125 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_session.d.ts +33 -0
- package/dist/package/declarations/src/rpc/system/admin/v1/base_user.d.ts +3 -3
- package/dist/package/declarations/src/rpc/system/admin/v1/code_gen.d.ts +1 -1
- package/dist/package/declarations/src/rpc/system/admin/v1/oauth_client.d.ts +145 -0
- package/dist/package/declarations/src/views/base/api-log/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/dashboard/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/data-access-log/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/file/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/login-log/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/login-policy/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/message/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/message-category/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/oauth-client/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/operation-log/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/permission-log/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/base/policy-evaluation-log/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/message/inbox/index.vue.d.ts +3 -0
- package/dist/package/declarations/src/views/profile/components/session.vue.d.ts +3 -0
- package/dist/package/src/api/base/notification.ts +69 -0
- package/dist/package/src/api/base/sse.ts +4 -4
- package/dist/package/src/api/system/auth.ts +1 -0
- package/dist/package/src/api/system/base_audit_log.ts +168 -0
- package/dist/package/src/api/system/base_dashboard.ts +55 -0
- package/dist/package/src/api/system/base_file.ts +43 -0
- package/dist/package/src/api/system/base_i18n.ts +12 -12
- package/dist/package/src/api/system/base_login_policy.ts +32 -0
- package/dist/package/src/api/system/base_message.ts +70 -0
- package/dist/package/src/api/system/base_message_category.ts +57 -0
- package/dist/package/src/api/system/base_session.ts +33 -0
- package/dist/package/src/api/system/oauth_client.ts +102 -0
- package/dist/package/src/components/AuditLogTable.vue +105 -0
- package/dist/package/src/components/{DynamicTranslationCell.vue → DynamicI18nCell.vue} +50 -50
- package/dist/package/src/components/{DynamicTranslationEditor.vue → DynamicI18nEditor.vue} +45 -45
- package/dist/package/src/components/Notification.vue +196 -0
- package/dist/package/src/components/auditLog.ts +46 -0
- package/dist/package/src/components/{dynamicTranslation.ts → dynamicI18n.ts} +15 -15
- package/dist/package/src/locales/README.md +5 -3
- package/dist/package/src/locales/en-US.json +345 -21
- package/dist/package/src/locales/ja-JP.json +347 -23
- package/dist/package/src/locales/zh-CN.json +343 -19
- package/dist/package/src/locales/zh-TW.json +346 -22
- package/dist/package/src/module.ts +5 -2
- package/dist/package/src/rpc/base/v1/login.ts +172 -0
- package/dist/package/src/rpc/base/v1/notification.ts +315 -0
- package/dist/package/src/rpc/base/v1/oauth.ts +25 -0
- package/dist/package/src/rpc/base/v1/oauth_client.ts +33 -0
- package/dist/package/src/rpc/system/admin/v1/base_audit_log.ts +737 -0
- package/dist/package/src/rpc/system/admin/v1/base_config.ts +3 -3
- package/dist/package/src/rpc/system/admin/v1/base_dashboard.ts +81 -0
- package/dist/package/src/rpc/system/admin/v1/base_dict.ts +4 -4
- package/dist/package/src/rpc/system/admin/v1/base_file.ts +88 -0
- package/dist/package/src/rpc/system/admin/v1/base_i18n.ts +27 -23
- package/dist/package/src/rpc/system/admin/v1/base_job.ts +5 -0
- package/dist/package/src/rpc/system/admin/v1/base_login_policy.ts +63 -0
- package/dist/package/src/rpc/system/admin/v1/base_menu.ts +2 -2
- package/dist/package/src/rpc/system/admin/v1/base_message.ts +236 -0
- package/dist/package/src/rpc/system/admin/v1/base_message_category.ts +149 -0
- package/dist/package/src/rpc/system/admin/v1/base_session.ts +44 -0
- package/dist/package/src/rpc/system/admin/v1/base_user.ts +3 -3
- package/dist/package/src/rpc/system/admin/v1/code_gen.ts +1 -1
- package/dist/package/src/rpc/system/admin/v1/oauth_client.ts +174 -0
- package/dist/package/src/views/ai/chat/components/ChatPanel.vue +2 -2
- package/dist/package/src/views/ai/chat/message.ts +7 -3
- package/dist/package/src/views/base/api-log/index.vue +83 -0
- package/dist/package/src/views/base/config/index.vue +41 -41
- package/dist/package/src/views/base/dashboard/index.vue +200 -0
- package/dist/package/src/views/base/data-access-log/index.vue +84 -0
- package/dist/package/src/views/base/dict/index.vue +23 -23
- package/dist/package/src/views/base/dict/item.vue +25 -25
- package/dist/package/src/views/base/file/index.vue +119 -0
- package/dist/package/src/views/base/job/index.vue +62 -7
- package/dist/package/src/views/base/language/index.vue +2 -1
- package/dist/package/src/views/base/login-log/index.vue +92 -0
- package/dist/package/src/views/base/login-policy/index.vue +219 -0
- package/dist/package/src/views/base/menu/index.vue +23 -23
- package/dist/package/src/views/base/message/index.vue +582 -0
- package/dist/package/src/views/base/message-category/index.vue +356 -0
- package/dist/package/src/views/base/oauth-client/index.vue +411 -0
- package/dist/package/src/views/base/operation-log/index.vue +82 -0
- package/dist/package/src/views/base/permission-log/index.vue +85 -0
- package/dist/package/src/views/base/policy-evaluation-log/index.vue +82 -0
- package/dist/package/src/views/message/inbox/index.vue +249 -0
- package/dist/package/src/views/profile/components/base.vue +6 -5
- package/dist/package/src/views/profile/components/password.vue +2 -2
- package/dist/package/src/views/profile/components/security.vue +475 -62
- package/dist/package/src/views/profile/components/session.vue +153 -0
- package/dist/package/src/views/profile/index.vue +35 -22
- package/dist/package/src/views/tool/code-gen/code-preview/index.vue +9 -9
- package/dist/package/src/views/tool/code-gen/columns/index.vue +1 -1
- package/dist/package/src/views/tool/code-gen/components/CodeGenLocaleEditor.vue +8 -8
- package/dist/package/src/views/tool/code-gen/config.ts +1 -0
- package/dist/package/src/views/tool/code-gen/table/index.vue +7 -7
- package/dist/package/src/views/tool/ops-monitoring/index.vue +25 -21
- package/package.json +2 -2
- package/dist/package/declarations/src/api/system/base_log.d.ts +0 -9
- package/dist/package/declarations/src/components/DynamicTranslationCell.vue.d.ts +0 -16
- package/dist/package/declarations/src/components/DynamicTranslationEditor.vue.d.ts +0 -20
- package/dist/package/declarations/src/components/dynamicTranslation.d.ts +0 -38
- package/dist/package/declarations/src/rpc/system/admin/v1/base_log.d.ts +0 -87
- package/dist/package/src/api/system/base_log.ts +0 -32
- package/dist/package/src/rpc/system/admin/v1/base_log.ts +0 -101
- package/dist/package/src/views/base/log/index.vue +0 -339
- /package/dist/package/declarations/src/{views/base/log/index.vue.d.ts → components/Notification.vue.d.ts} +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ColumnProps, EnumProps, SearchProps } from "@liujitcn/kratos-admin-core/components/ProTable/interface";
|
|
2
|
+
|
|
3
|
+
/** 根据枚举值生成表格筛选项。 */
|
|
4
|
+
export function createAuditEnumOptions(items: Array<[number, string]>): EnumProps[] {
|
|
5
|
+
return items.map(([value, label]) => ({ value, label }));
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/** 根据枚举值查找展示文案。 */
|
|
9
|
+
export function auditEnumLabel(options: EnumProps[], value: unknown): string {
|
|
10
|
+
return options.find(item => item.value === value)?.label ?? String(value ?? "--");
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** 创建审计日志时间范围筛选项。 */
|
|
14
|
+
export function auditDateSearch(t: (key: string) => string): SearchProps {
|
|
15
|
+
return {
|
|
16
|
+
el: "date-picker",
|
|
17
|
+
props: {
|
|
18
|
+
type: "daterange",
|
|
19
|
+
editable: false,
|
|
20
|
+
class: "!w-[240px]",
|
|
21
|
+
rangeSeparator: "~",
|
|
22
|
+
startPlaceholder: t("common.placeholder.start_date"),
|
|
23
|
+
endPlaceholder: t("common.placeholder.end_date"),
|
|
24
|
+
valueFormat: "YYYY-MM-DD"
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** 创建审计日志详情按钮列。 */
|
|
30
|
+
export function auditDetailColumn(label: string, onClick: (id: number) => void): ColumnProps {
|
|
31
|
+
return {
|
|
32
|
+
prop: "detailAction",
|
|
33
|
+
label,
|
|
34
|
+
width: 100,
|
|
35
|
+
fixed: "right",
|
|
36
|
+
cellType: "actions",
|
|
37
|
+
actions: [
|
|
38
|
+
{
|
|
39
|
+
label,
|
|
40
|
+
type: "primary",
|
|
41
|
+
link: true,
|
|
42
|
+
onClick: scope => onClick(Number(scope.row.id))
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
};
|
|
46
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { getEnabledBaseLanguages } from "@liujitcn/kratos-admin-system/api/system/base_language";
|
|
2
|
-
import type {
|
|
2
|
+
import type { I18nTargetType } from "@liujitcn/kratos-admin-system/rpc/system/admin/v1/base_i18n";
|
|
3
3
|
|
|
4
|
-
/**
|
|
5
|
-
export interface
|
|
4
|
+
/** DynamicI18nValue 动态资源单语言翻译编辑状态。 */
|
|
5
|
+
export interface DynamicI18nValue {
|
|
6
6
|
/** 语言代码。 */
|
|
7
7
|
locale: string;
|
|
8
8
|
text: string;
|
|
9
9
|
id: number;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
/**
|
|
13
|
-
export interface
|
|
14
|
-
target_type?:
|
|
12
|
+
/** DynamicI18nRecord 描述三类动态资源翻译共有字段。 */
|
|
13
|
+
export interface DynamicI18nRecord extends Omit<DynamicI18nValue, "text"> {
|
|
14
|
+
target_type?: I18nTargetType;
|
|
15
15
|
target_id?: number;
|
|
16
16
|
name?: string;
|
|
17
17
|
/** 兼容旧接口缓存中的字段名。 */
|
|
@@ -40,12 +40,12 @@ export function getLanguageLabel(locale: string): string {
|
|
|
40
40
|
return language?.native_name || language?.language_name || locale;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
/**
|
|
44
|
-
export function
|
|
45
|
-
records:
|
|
43
|
+
/** normalizeDynamicI18ns 将后端翻译记录补齐为全部非主语言编辑状态。 */
|
|
44
|
+
export function normalizeDynamicI18ns(
|
|
45
|
+
records: DynamicI18nRecord[] | undefined,
|
|
46
46
|
_textField: "title" | "name" | "label",
|
|
47
47
|
locales: string[] = getEditableLanguageOptions().map(item => item.value)
|
|
48
|
-
):
|
|
48
|
+
): DynamicI18nValue[] {
|
|
49
49
|
return locales.map(locale => {
|
|
50
50
|
const record = records?.find(item => item.locale === locale);
|
|
51
51
|
return {
|
|
@@ -56,11 +56,11 @@ export function normalizeDynamicTranslations(
|
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
/**
|
|
60
|
-
export function
|
|
61
|
-
values:
|
|
62
|
-
targetType:
|
|
59
|
+
/** serializeDynamicI18ns 将编辑状态转换回后端资源翻译结构。 */
|
|
60
|
+
export function serializeDynamicI18ns(
|
|
61
|
+
values: DynamicI18nValue[],
|
|
62
|
+
targetType: I18nTargetType,
|
|
63
63
|
targetId: number
|
|
64
|
-
): Array<{ id: number; target_type:
|
|
64
|
+
): Array<{ id: number; target_type: I18nTargetType; target_id: number; locale: string; name: string }> {
|
|
65
65
|
return values.map(({ id, locale, text }) => ({ id, target_type: targetType, target_id: targetId, locale, name: text }));
|
|
66
66
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# 管理端 System 语言包
|
|
2
2
|
|
|
3
|
-
本目录提供 System 管理业务模块的页面、AI
|
|
3
|
+
本目录提供 System 管理业务模块的页面、AI、个人中心安全设置、开放授权客户端、基础资料和代码生成等业务文案。语言包由同级 `../module.ts` 导入,随 `systemAdminModule` 注册;管理端启动时由 core 的 `registerLocaleMessages` 合并,System 页面和组件通过 `t()` 或 `useLocaleStore()` 使用 `system.*` 键。
|
|
4
4
|
|
|
5
5
|
| 文件 | 用途 | 使用位置 |
|
|
6
6
|
| --- | --- | --- |
|
|
7
7
|
| `zh-CN.json` | System 模块简体中文固定 UI 默认语言包,也是所有语言键集合和占位符校验基准。 | 管理端固定文案默认语言及缺失翻译回退。 |
|
|
8
8
|
| `zh-TW.json` | System 模块繁体中文语言包。 | 管理端切换为繁体中文时由 Vue I18n 使用。 |
|
|
9
9
|
| `en-US.json` | System 模块英文语言包。 | 管理端切换为英文时由 Vue I18n 使用。 |
|
|
10
|
+
| `ja-JP.json` | System 模块日文语言包。 | 管理端切换为日文时由 Vue I18n 使用。 |
|
|
10
11
|
|
|
11
12
|
## 命名空间与使用位置
|
|
12
13
|
|
|
@@ -16,11 +17,12 @@
|
|
|
16
17
|
| `system.ai.*` | AI 会话、消息流、重试和错误提示。 | `src/views/ai/**`、`src/api/base/ai_message.ts`。 |
|
|
17
18
|
| `system.profile.*` | 个人资料、安全设置和用户中心导航。 | `src/views/profile/**`、`src/module.ts` 的用户菜单。 |
|
|
18
19
|
| `system.base.*` | 区域、配置、部门、字典、岗位、角色、租户、用户等基础管理页面。 | `src/views/base/**`。 |
|
|
20
|
+
| `system.base.oauth_client.*` | 开放授权客户端字段、凭据和 API 选择。 | `src/views/base/oauth-client/**`。 |
|
|
19
21
|
| `system.code.gen.*` | 代码生成配置、预览、列配置和多语言编辑。 | `src/views/tool/code-gen/**`。 |
|
|
20
|
-
| `system.
|
|
22
|
+
| `system.i18n.*` | 动态翻译编辑、草稿生成和语言包状态。 | `src/components/DynamicI18nEditor.vue`、代码生成语言编辑组件。 |
|
|
21
23
|
|
|
22
24
|
语言包由生成的 `generated.ts` 传入 `systemAdminModule.messages`,由 core 的 `registerLocaleMessages` 校验语言键集合、命名空间和占位符后注册到 Vue I18n;业务代码统一使用 `t('system....')` 或 `useLocaleStore()` 读取。
|
|
23
25
|
|
|
24
26
|
语言键按文案归属使用 `common.` 或 `system.` 命名空间;语言包保持标准 JSON,不在文件内写注释。
|
|
25
27
|
|
|
26
|
-
新增语言的完整文件清单和迁移流程见[国际化语言扩展指南](
|
|
28
|
+
新增语言的完整文件清单和迁移流程见[国际化语言扩展指南](../../../../../../../docs/国际化语言扩展指南.md)。
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"system.ai.request_failed_with_status": "AI assistant request failed ({status})",
|
|
3
3
|
"system.profile.title": "Profile",
|
|
4
|
+
"system.base.oauth_client.resource": "OAuth client",
|
|
5
|
+
"system.base.oauth_client.action.copy_credentials": "Copy credentials",
|
|
6
|
+
"system.base.oauth_client.field.client_id": "Client ID",
|
|
7
|
+
"system.base.oauth_client.field.tenant": "Bound tenant",
|
|
8
|
+
"system.base.oauth_client.field.client_secret": "Client secret",
|
|
9
|
+
"system.base.oauth_client.field.client_name": "Client name",
|
|
10
|
+
"system.base.oauth_client.field.crypto_type": "Protocol encryption",
|
|
11
|
+
"system.base.oauth_client.field.crypto_key": "Protocol key",
|
|
12
|
+
"system.base.oauth_client.field.ip_whitelist": "IP allowlist",
|
|
13
|
+
"system.base.oauth_client.field.api": "Authorized APIs",
|
|
14
|
+
"system.base.oauth_client.value.available_api": "Available APIs",
|
|
15
|
+
"system.base.oauth_client.value.selected_api": "Authorized APIs",
|
|
4
16
|
"system.base.area.action.create": "Create administrative area",
|
|
5
17
|
"system.base.area.action.edit": "Edit administrative area",
|
|
6
18
|
"system.base.area.field.name": "Area name",
|
|
@@ -51,6 +63,18 @@
|
|
|
51
63
|
"system.base.config.message.rich_text_missing": "No rich text configured",
|
|
52
64
|
"system.base.config.message.value_missing": "Not configured",
|
|
53
65
|
"system.base.config.resource": "system configuration",
|
|
66
|
+
"system.base.login_policy.title": "Login policy",
|
|
67
|
+
"system.base.login_policy.description": "Restrict management logins by address, time, and device.",
|
|
68
|
+
"system.base.login_policy.enabled": "Enable policy",
|
|
69
|
+
"system.base.login_policy.hint": "IP values support exact addresses or CIDR. Enter multiple values on separate lines. Time windows use HH:MM-HH:MM.",
|
|
70
|
+
"system.base.login_policy.field.ip_blacklist": "IP blacklist",
|
|
71
|
+
"system.base.login_policy.field.ip_whitelist": "IP whitelist",
|
|
72
|
+
"system.base.login_policy.field.time_windows": "Blocked time windows",
|
|
73
|
+
"system.base.login_policy.field.device_blacklist": "Device blacklist",
|
|
74
|
+
"system.base.login_policy.field.device_whitelist": "Device whitelist",
|
|
75
|
+
"system.base.login_policy.placeholder.ip": "For example 192.0.2.10 or 192.0.2.0/24",
|
|
76
|
+
"system.base.login_policy.placeholder.time": "For example 22:00-06:00",
|
|
77
|
+
"system.base.login_policy.placeholder.device": "For example Chrome, iPhone, or a client device ID",
|
|
54
78
|
"system.base.log.field.browser": "Browser",
|
|
55
79
|
"system.base.log.field.client_id": "Client ID",
|
|
56
80
|
"system.base.log.field.client_ip": "Client IP",
|
|
@@ -59,6 +83,7 @@
|
|
|
59
83
|
"system.base.log.field.location": "Location",
|
|
60
84
|
"system.base.log.field.method": "Request method",
|
|
61
85
|
"system.base.log.field.operation": "Operation",
|
|
86
|
+
"system.base.log.field.audit_type": "Audit layer",
|
|
62
87
|
"system.base.log.field.os": "Operating system",
|
|
63
88
|
"system.base.log.field.path": "Request path",
|
|
64
89
|
"system.base.log.field.reason": "Failure reason",
|
|
@@ -73,12 +98,19 @@
|
|
|
73
98
|
"system.base.log.field.status_code": "Status code",
|
|
74
99
|
"system.base.log.field.user_id": "User ID",
|
|
75
100
|
"system.base.log.field.user_name": "Username",
|
|
101
|
+
"system.base.log.field.user_agent": "User agent",
|
|
76
102
|
"system.base.log.section.basic": "Basic information",
|
|
77
103
|
"system.base.log.section.client": "Client information",
|
|
78
104
|
"system.base.log.section.request": "Request information",
|
|
79
105
|
"system.base.log.section.user": "User information",
|
|
80
106
|
"system.base.log.status.failed": "Failed",
|
|
81
107
|
"system.base.log.status.success": "Succeeded",
|
|
108
|
+
"system.base.log.audit.unspecified": "Unclassified",
|
|
109
|
+
"system.base.log.audit.authentication": "Authentication",
|
|
110
|
+
"system.base.log.audit.authorization": "Authorization",
|
|
111
|
+
"system.base.log.audit.operation": "Business operation",
|
|
112
|
+
"system.base.log.audit.api": "API access",
|
|
113
|
+
"system.base.log.audit.system": "System",
|
|
82
114
|
"system.base.log.title.detail": "System log details",
|
|
83
115
|
"system.base.job.log.title.detail": "Scheduled job log details",
|
|
84
116
|
"system.base.job.log.section.basic": "Basic information",
|
|
@@ -248,17 +280,17 @@
|
|
|
248
280
|
"system.base.user.message.confirm_delete_selected": "Delete the selected users?",
|
|
249
281
|
"system.base.user.message.delete_success": "User deleted",
|
|
250
282
|
"system.base.user.message.delete_canceled": "User deletion canceled",
|
|
251
|
-
"system.base.
|
|
252
|
-
"system.base.
|
|
253
|
-
"system.base.
|
|
254
|
-
"system.base.
|
|
255
|
-
"system.base.
|
|
256
|
-
"system.base.
|
|
257
|
-
"system.base.
|
|
258
|
-
"system.base.
|
|
259
|
-
"system.base.
|
|
260
|
-
"system.base.
|
|
261
|
-
"system.base.
|
|
283
|
+
"system.base.i18n.field.i18ns": "Field i18n",
|
|
284
|
+
"system.base.i18n.field.name_i18ns": "Name field i18n",
|
|
285
|
+
"system.base.i18n.field.value_i18ns": "Value field i18n",
|
|
286
|
+
"system.base.i18n.placeholder.text": "Enter the {language} i18n",
|
|
287
|
+
"system.base.i18n.action.translate": "Translate",
|
|
288
|
+
"system.base.i18n.action.batch_translate": "Translate all",
|
|
289
|
+
"system.base.i18n.message.translate_success": "{language} translated",
|
|
290
|
+
"system.base.i18n.message.translate_failed": "Failed to translate {language}",
|
|
291
|
+
"system.base.i18n.message.batch_translate_success": "Translated {count} languages",
|
|
292
|
+
"system.base.i18n.message.batch_translate_partial": "Translated {success} languages, {failed} failed",
|
|
293
|
+
"system.base.i18n.message.batch_translate_failed": "Batch i18n failed",
|
|
262
294
|
"system.base.menu.title.list": "Menus",
|
|
263
295
|
"system.base.menu.action.create": "Create menu",
|
|
264
296
|
"system.base.menu.action.edit": "Edit menu",
|
|
@@ -404,14 +436,12 @@
|
|
|
404
436
|
"system.profile.value.private": "Private",
|
|
405
437
|
"system.profile.security.title": "Security settings",
|
|
406
438
|
"system.profile.security.nav_description": "Manage verification and security",
|
|
407
|
-
"system.profile.security.description": "Manage your password, phone verification, and
|
|
439
|
+
"system.profile.security.description": "Manage your login password, phone verification, and multi-factor authentication.",
|
|
408
440
|
"system.profile.security.value.account_normal": "Account status normal",
|
|
409
441
|
"system.profile.security.field.login_password": "Login password",
|
|
410
442
|
"system.profile.security.field.phone": "Bound phone",
|
|
411
443
|
"system.profile.security.field.phone_number": "Phone number",
|
|
412
444
|
"system.profile.security.field.code": "Verification code",
|
|
413
|
-
"system.profile.security.field.phone_verification": "Phone verification",
|
|
414
|
-
"system.profile.security.field.profile_completion": "Profile completeness",
|
|
415
445
|
"system.profile.security.message.password_hint": "Update your password regularly to avoid using the same password for too long.",
|
|
416
446
|
"system.profile.security.message.phone_bound": "Bound: {phone}",
|
|
417
447
|
"system.profile.security.message.phone_unbound": "No phone number is currently bound.",
|
|
@@ -428,12 +458,39 @@
|
|
|
428
458
|
"system.profile.security.action.unbind": "Unbind",
|
|
429
459
|
"system.profile.security.action.send_code": "Send code",
|
|
430
460
|
"system.profile.security.action.retry_after": "Retry in {seconds}s",
|
|
431
|
-
"system.profile.security.status.title": "Account status",
|
|
432
|
-
"system.profile.security.status.description": "Review verification status and profile completeness.",
|
|
433
461
|
"system.profile.security.dialog.bind_phone": "Bind phone",
|
|
434
462
|
"system.profile.security.dialog.confirm_unbind": "Unbind this sign-in method?\nSign-in method: {provider}",
|
|
435
463
|
"system.profile.security.placeholder.phone": "Enter a phone number",
|
|
436
464
|
"system.profile.security.placeholder.code": "Enter the verification code",
|
|
465
|
+
"system.profile.security.field.mfa": "Multi-factor authentication",
|
|
466
|
+
"system.profile.security.field.mfa_recovery_code": "Recovery code",
|
|
467
|
+
"system.profile.security.message.mfa_enabled": "Multi-factor authentication is enabled.",
|
|
468
|
+
"system.profile.security.message.mfa_enabled_method": "Multi-factor authentication is enabled ({method}).",
|
|
469
|
+
"system.profile.security.message.mfa_disabled": "Multi-factor authentication is disabled.",
|
|
470
|
+
"system.profile.security.message.mfa_method_totp": "TOTP",
|
|
471
|
+
"system.profile.security.message.mfa_method_webauthn": "WebAuthn",
|
|
472
|
+
"system.profile.security.message.mfa_webauthn_manage_hint": "Disabling WebAuthn requires a registered Passkey or recovery code; disable it before binding a new credential.",
|
|
473
|
+
"system.profile.security.message.mfa_disable_factor_required": "Enter a TOTP code or recovery code.",
|
|
474
|
+
"system.profile.security.message.mfa_setup_qr_alt": "Multi-factor authentication binding QR code",
|
|
475
|
+
"system.profile.security.message.mfa_uri_copied": "Binding address copied",
|
|
476
|
+
"system.profile.security.message.mfa_recovery_codes_warning": "Each code works once and will not be shown again after this dialog closes.",
|
|
477
|
+
"system.profile.security.message.mfa_recovery_codes_copied": "Recovery codes copied",
|
|
478
|
+
"system.profile.security.action.mfa_enable": "Enable",
|
|
479
|
+
"system.profile.security.action.mfa_disable": "Disable",
|
|
480
|
+
"system.profile.security.action.mfa_recovery": "Regenerate recovery codes",
|
|
481
|
+
"system.profile.security.action.mfa_next": "Next",
|
|
482
|
+
"system.profile.security.action.mfa_confirm": "Confirm binding",
|
|
483
|
+
"system.profile.security.action.mfa_show_uri": "Show backup binding address",
|
|
484
|
+
"system.profile.security.action.mfa_copy_uri": "Copy binding address",
|
|
485
|
+
"system.profile.security.action.mfa_copy_recovery_codes": "Copy recovery codes",
|
|
486
|
+
"system.profile.security.action.mfa_recovery_codes_confirm": "I saved them",
|
|
487
|
+
"system.profile.security.dialog.mfa_setup": "Bind multi-factor authentication",
|
|
488
|
+
"system.profile.security.dialog.mfa_disable": "Disable multi-factor authentication",
|
|
489
|
+
"system.profile.security.dialog.mfa_recovery": "Regenerate recovery codes",
|
|
490
|
+
"system.profile.security.dialog.mfa_recovery_codes": "Save MFA recovery codes",
|
|
491
|
+
"system.profile.security.placeholder.current_password": "Enter current password",
|
|
492
|
+
"system.profile.security.placeholder.mfa_code": "Enter the 6-digit code",
|
|
493
|
+
"system.profile.security.placeholder.mfa_recovery_code": "Enter recovery code (optional)",
|
|
437
494
|
"system.profile.security.validation.phone": "Enter a valid phone number",
|
|
438
495
|
"system.profile.password.title": "Change password",
|
|
439
496
|
"system.profile.password.nav_description": "Update your login password",
|
|
@@ -455,6 +512,23 @@
|
|
|
455
512
|
"system.profile.password.tip.strength_description": "Use a combination of uppercase and lowercase letters, numbers, and symbols.",
|
|
456
513
|
"system.profile.password.tip.record_title": "Keep records current",
|
|
457
514
|
"system.profile.password.tip.record_description": "When transferring an account, update the password custody record as well.",
|
|
515
|
+
"system.profile.session.title": "Login session",
|
|
516
|
+
"system.profile.session.nav_description": "View and revoke the current session",
|
|
517
|
+
"system.profile.session.description": "Review the current login source and token lifetime.",
|
|
518
|
+
"system.profile.session.action.refresh": "Refresh",
|
|
519
|
+
"system.profile.session.action.revoke_all": "Revoke all sessions",
|
|
520
|
+
"system.profile.session.status.active": "Current session active",
|
|
521
|
+
"system.profile.session.empty": "No active session",
|
|
522
|
+
"system.profile.session.field.client_ip": "Client IP",
|
|
523
|
+
"system.profile.session.field.device": "Login device",
|
|
524
|
+
"system.profile.session.field.issued_at": "Queried at",
|
|
525
|
+
"system.profile.session.field.expires_in": "Token lifetime",
|
|
526
|
+
"system.profile.session.confirm.title": "Revoke session",
|
|
527
|
+
"system.profile.session.confirm.revoke_all": "The current login will stop working immediately. Continue?",
|
|
528
|
+
"system.profile.session.message.revoked": "Session revoked",
|
|
529
|
+
"system.profile.session.value.less_than_minute": "Less than 1 minute",
|
|
530
|
+
"system.profile.session.value.hours_minutes": "{hours} hours {minutes} minutes",
|
|
531
|
+
"system.profile.session.value.minutes": "{minutes} minutes",
|
|
458
532
|
"system.ai.chat.welcome_description": "Ask a question directly or upload attachments for analysis.",
|
|
459
533
|
"system.ai.chat.welcome.morning": "Good morning, I am your general AI assistant",
|
|
460
534
|
"system.ai.chat.welcome.afternoon": "Good afternoon, I am your general AI assistant",
|
|
@@ -489,6 +563,8 @@
|
|
|
489
563
|
"system.ai.chat.title.recent_conversations": "Recent conversations",
|
|
490
564
|
"system.ai.chat.title.assistant": "AI assistant",
|
|
491
565
|
"system.ai.chat.field.input_tokens": "Input",
|
|
566
|
+
"system.ai.chat.field.request_payload": "Request",
|
|
567
|
+
"system.ai.chat.field.response_payload": "Response",
|
|
492
568
|
"system.ai.chat.field.output_tokens": "Output",
|
|
493
569
|
"system.ai.chat.field.cache_tokens": "Cache read",
|
|
494
570
|
"system.ai.chat.field.total_tokens": "Total",
|
|
@@ -515,6 +591,9 @@
|
|
|
515
591
|
"system.ai.chat.value.attachments_available": "Attachments available",
|
|
516
592
|
"system.ai.chat.value.analyze_attachments": "Continue the analysis using the attachments",
|
|
517
593
|
"system.ai.chat.value.new_conversation": "New conversation",
|
|
594
|
+
"system.sse.error.auth_expired": "SSE authentication has expired",
|
|
595
|
+
"system.sse.error.connection_failed": "SSE connection failed: {status}",
|
|
596
|
+
"system.sse.error.connection_closed": "SSE connection closed",
|
|
518
597
|
"system.ai.chat.value.branch_title": "Branch: {title}",
|
|
519
598
|
"system.ai.chat.placeholder.input": "Ask anything or upload attachments to continue",
|
|
520
599
|
"system.ai.chat.placeholder.search_conversation": "Search conversations",
|
|
@@ -588,6 +667,7 @@
|
|
|
588
667
|
"system.code.gen.component.password": "Password input",
|
|
589
668
|
"system.code.gen.component.textarea": "Text area",
|
|
590
669
|
"system.code.gen.component.input_number": "Number input",
|
|
670
|
+
"system.code.gen.component.color_picker": "Color picker",
|
|
591
671
|
"system.code.gen.component.segmented": "Segmented control",
|
|
592
672
|
"system.code.gen.component.switch": "Switch",
|
|
593
673
|
"system.code.gen.component.checkbox": "Checkbox",
|
|
@@ -626,14 +706,14 @@
|
|
|
626
706
|
"system.code.gen.validation.left_tree_parent_required": "Select the tree parent column",
|
|
627
707
|
"system.code.gen.validation.left_tree_label_required": "Select the tree label column",
|
|
628
708
|
"system.code.gen.validation.left_tree_value_required": "Select the tree value column",
|
|
629
|
-
"system.code.gen.i18n.field.
|
|
709
|
+
"system.code.gen.i18n.field.i18ns": "Field i18n",
|
|
630
710
|
"system.code.gen.i18n.action.edit_column": "Edit non-primary language field descriptions",
|
|
631
711
|
"system.code.gen.i18n.status.complete": "Complete",
|
|
632
712
|
"system.code.gen.i18n.status.missing": "Missing",
|
|
633
713
|
"system.code.gen.i18n.message.missing": "Required before generation: {locales}",
|
|
634
714
|
"system.code.gen.i18n.placeholder.comment": "Chinese source: {source}",
|
|
635
715
|
"system.code.gen.i18n.placeholder.left_tree_comment": "Chinese tree source: {source}",
|
|
636
|
-
"system.code.gen.i18n.tooltip.table": "Maintain non-primary language descriptions used by generated pages, menus, and locale files. Incomplete drafts can be saved, but generation requires all
|
|
716
|
+
"system.code.gen.i18n.tooltip.table": "Maintain non-primary language descriptions used by generated pages, menus, and locale files. Incomplete drafts can be saved, but generation requires all i18ns.",
|
|
637
717
|
"system.code.gen.table.title.create": "Create code generation table",
|
|
638
718
|
"system.code.gen.table.title.edit": "Edit code generation table",
|
|
639
719
|
"system.code.gen.table.field.name": "Business table",
|
|
@@ -685,7 +765,7 @@
|
|
|
685
765
|
"system.code.gen.table.tooltip.left_tree_lazy": "Request children only when a node is expanded.",
|
|
686
766
|
"system.code.gen.table.tooltip.gen_backend": "Generate Proto, backend Biz, Service, and registration code.",
|
|
687
767
|
"system.code.gen.table.tooltip.gen_frontend": "Generate the frontend API, pages, and locale files for all supported languages.",
|
|
688
|
-
"system.code.gen.table.tooltip.gen_sql": "Synchronize page menus, button permissions, and
|
|
768
|
+
"system.code.gen.table.tooltip.gen_sql": "Synchronize page menus, button permissions, and i18ns for all supported languages.",
|
|
689
769
|
"system.code.gen.table.tooltip.status": "Disabled configurations are read-only. Successful generation sets the status to generated.",
|
|
690
770
|
"system.code.gen.table.tooltip.remark": "Visible to maintainers only and not used for generated names.",
|
|
691
771
|
"system.code.gen.table.value.disabled_module": "{module} (disabled)",
|
|
@@ -881,7 +961,7 @@
|
|
|
881
961
|
"system.code.gen.preview.message.create_success": "Created",
|
|
882
962
|
"system.code.gen.preview.message.update_success": "Updated",
|
|
883
963
|
"system.code.gen.preview.message.delete_success": "Deleted",
|
|
884
|
-
"system.code.gen.preview.message.
|
|
964
|
+
"system.code.gen.preview.message.missing_i18ns": "Complete these i18ns before generation: {items}",
|
|
885
965
|
"system.code.gen.preview.value.list_separator": ", ",
|
|
886
966
|
"system.project.document.title.navigation": "Project document navigation",
|
|
887
967
|
"system.project.document.placeholder.search": "Search projects or paths",
|
|
@@ -960,5 +1040,249 @@
|
|
|
960
1040
|
"system.runtime.log.status.loading": "Reading logs",
|
|
961
1041
|
"system.runtime.log.message.gap": "The live stream skipped {count} entries. Check the history file for the missing logs.",
|
|
962
1042
|
"system.runtime.log.message.file_changed": "The log file rotated or was truncated. Reading again from the end.",
|
|
963
|
-
"system.runtime.log.message.download_started": "Log file download started"
|
|
1043
|
+
"system.runtime.log.message.download_started": "Log file download started",
|
|
1044
|
+
"system.base.message.priority.normal": "Normal",
|
|
1045
|
+
"system.base.message.priority.important": "Important",
|
|
1046
|
+
"system.base.message.priority.urgent": "Urgent",
|
|
1047
|
+
"system.base.message.content_format.plain": "Plain text",
|
|
1048
|
+
"system.base.message.content_format.markdown": "Safe Markdown",
|
|
1049
|
+
"system.base.message.audience.tenant": "All tenant users",
|
|
1050
|
+
"system.base.message.audience.user": "User",
|
|
1051
|
+
"system.base.message.audience.role": "Role",
|
|
1052
|
+
"system.base.message.audience.dept": "Department",
|
|
1053
|
+
"system.base.message.audience.post": "Position",
|
|
1054
|
+
"system.base.message.status.draft": "Draft",
|
|
1055
|
+
"system.base.message.status.scheduled": "Scheduled",
|
|
1056
|
+
"system.base.message.status.publishing": "Delivering",
|
|
1057
|
+
"system.base.message.status.published": "Published",
|
|
1058
|
+
"system.base.message.status.revoked": "Revoked",
|
|
1059
|
+
"system.base.message.field.category": "Category",
|
|
1060
|
+
"system.base.message.field.title": "Title",
|
|
1061
|
+
"system.base.message.field.content": "Content",
|
|
1062
|
+
"system.base.message.field.content_format": "Content format",
|
|
1063
|
+
"system.base.message.field.priority": "Priority",
|
|
1064
|
+
"system.base.message.field.audience_type": "Audience type",
|
|
1065
|
+
"system.base.message.field.audience_id": "Audience ID",
|
|
1066
|
+
"system.base.message.field.user_id": "User ID",
|
|
1067
|
+
"system.base.message.field.role_id": "Role ID",
|
|
1068
|
+
"system.base.message.field.dept_id": "Department ID",
|
|
1069
|
+
"system.base.message.field.post_id": "Position ID",
|
|
1070
|
+
"system.base.message.field.include_children": "Include child departments",
|
|
1071
|
+
"system.base.message.field.action_type": "Click action",
|
|
1072
|
+
"system.base.message.field.scheduled_at": "Scheduled at",
|
|
1073
|
+
"system.base.message.field.expires_at": "Expires at",
|
|
1074
|
+
"system.base.message.field.action_target": "Action view key",
|
|
1075
|
+
"system.base.message.field.delivered_total": "Delivered",
|
|
1076
|
+
"system.base.message.field.recipient_total": "Recipients",
|
|
1077
|
+
"system.base.message.field.matched_total": "Matched",
|
|
1078
|
+
"system.base.message.field.inserted_total": "Inserted",
|
|
1079
|
+
"system.base.message.field.attempt_count": "Attempts",
|
|
1080
|
+
"system.base.message.field.last_error": "Last error",
|
|
1081
|
+
"system.base.message.detail.title": "Message details",
|
|
1082
|
+
"system.base.message.detail.action": "Details",
|
|
1083
|
+
"system.base.message.action.retry": "Retry",
|
|
1084
|
+
"system.base.message.validation.audience_id": "Enter an audience ID",
|
|
1085
|
+
"system.base.message.action_type.none": "No action",
|
|
1086
|
+
"system.base.message.action_type.view_key": "Open a page",
|
|
1087
|
+
"system.base.message.tooltip.tenant": "Messages and recipients are isolated by tenant; the default tenant can send for a selected tenant",
|
|
1088
|
+
"system.base.message.tooltip.category": "A category controls presentation and retention policy; it is not a content template",
|
|
1089
|
+
"system.base.message.tooltip.title": "The short title shown in the recipient's inbox",
|
|
1090
|
+
"system.base.message.tooltip.content": "The rich-text body recipients see when they open the message",
|
|
1091
|
+
"system.base.message.tooltip.content_format": "Rich-text editing is currently supported",
|
|
1092
|
+
"system.base.message.tooltip.priority": "Urgent messages are highlighted first in the inbox",
|
|
1093
|
+
"system.base.message.tooltip.audience_type": "Choose which members of the tenant should receive the message",
|
|
1094
|
+
"system.base.message.tooltip.audience_id": "Enter the numeric ID of a user, role, department, or position in the current tenant",
|
|
1095
|
+
"system.base.message.tooltip.include_children": "For a department audience, also include members of all child departments",
|
|
1096
|
+
"system.base.message.tooltip.action_type": "Choose what happens when a recipient clicks the message",
|
|
1097
|
+
"system.base.message.tooltip.action_target": "Enter an admin view key, for example system/base/user/index",
|
|
1098
|
+
"system.base.message.placeholder.tenant": "Select the message tenant",
|
|
1099
|
+
"system.base.message.placeholder.category": "Select a tenant first, then choose a category",
|
|
1100
|
+
"system.base.message.placeholder.title": "For example: System maintenance tonight",
|
|
1101
|
+
"system.base.message.placeholder.content": "Enter the notification body using rich text",
|
|
1102
|
+
"system.base.message.placeholder.audience_id": "Enter a numeric ID",
|
|
1103
|
+
"system.base.message.placeholder.action_target": "For example: system/base/user/index",
|
|
1104
|
+
"system.base.message.placeholder.scheduled_at": "Leave empty to publish immediately",
|
|
1105
|
+
"system.base.message.placeholder.expires_at": "Optional; the message expires after this time",
|
|
1106
|
+
"system.base.message.action.publish": "Publish",
|
|
1107
|
+
"system.base.message.action.cancel_schedule": "Cancel schedule",
|
|
1108
|
+
"system.base.message.action.revoke": "Revoke",
|
|
1109
|
+
"system.base.message.confirm.publish": "Publish this message?",
|
|
1110
|
+
"system.base.message.confirm.revoke": "Revoke this message?",
|
|
1111
|
+
"system.base.message_category.field.code": "Category code",
|
|
1112
|
+
"system.base.message_category.field.name": "Category name",
|
|
1113
|
+
"system.base.message_category.field.icon": "Icon",
|
|
1114
|
+
"system.base.message_category.field.color": "Color",
|
|
1115
|
+
"system.base.message_category.field.default_priority": "Default priority",
|
|
1116
|
+
"system.base.message_category.field.retention_days": "Retention days",
|
|
1117
|
+
"system.base.message_category.field.allow_archive": "Allow archive",
|
|
1118
|
+
"system.base.message_category.field.allow_delete": "Allow delete",
|
|
1119
|
+
"system.base.message_category.icon.bell": "Notification",
|
|
1120
|
+
"system.base.message_category.icon.lock": "Security",
|
|
1121
|
+
"system.base.message_category.icon.list": "Task list",
|
|
1122
|
+
"system.base.message_category.icon.message": "Message",
|
|
1123
|
+
"system.base.message_category.icon.info": "Information",
|
|
1124
|
+
"system.base.message_category.icon.warning": "Warning",
|
|
1125
|
+
"system.base.message_category.icon.success": "Success",
|
|
1126
|
+
"system.base.message_category.icon.promotion": "Publishing",
|
|
1127
|
+
"system.base.message_category.icon.setting": "Settings",
|
|
1128
|
+
"system.base.message_category.icon.user": "User",
|
|
1129
|
+
"system.base.message_category.icon.calendar": "Calendar",
|
|
1130
|
+
"system.base.message_category.icon.chat": "Conversation",
|
|
1131
|
+
"system.base.message_category.icon.analysis": "Analysis",
|
|
1132
|
+
"system.base.message_category.tooltip.code": "A stable English identifier used by APIs and integrations",
|
|
1133
|
+
"system.base.message_category.tooltip.name": "The category name shown in the inbox and message management",
|
|
1134
|
+
"system.base.message_category.tooltip.icon": "Choose a preset icon to help recipients identify the message source",
|
|
1135
|
+
"system.base.message_category.tooltip.color": "The accent color used for the inbox icon and unread marker",
|
|
1136
|
+
"system.base.message_category.tooltip.default_priority": "The priority prefilled for new messages; it can be changed per message",
|
|
1137
|
+
"system.base.message_category.tooltip.retention_days": "Messages are cleaned up after this many days; 0 uses the system default",
|
|
1138
|
+
"system.base.message_category.tooltip.allow_archive": "When disabled, recipients cannot archive messages in this category",
|
|
1139
|
+
"system.base.message_category.tooltip.allow_delete": "When disabled, recipients cannot delete messages in this category",
|
|
1140
|
+
"system.base.message_category.placeholder.code": "For example: SYSTEM, SECURITY",
|
|
1141
|
+
"system.base.message_category.placeholder.name": "For example: System messages",
|
|
1142
|
+
"system.base.message_category.placeholder.icon": "Choose a preset icon",
|
|
1143
|
+
"system.base.message_category.placeholder.sort": "Lower numbers appear first",
|
|
1144
|
+
"system.base.message_category.placeholder.retention_days": "0 uses the system default",
|
|
1145
|
+
"system.notification.title": "Message Center",
|
|
1146
|
+
"system.notification.description": "View system notifications and business messages",
|
|
1147
|
+
"system.notification.empty": "No messages",
|
|
1148
|
+
"system.notification.view.inbox": "All messages",
|
|
1149
|
+
"system.notification.view.unread": "Unread",
|
|
1150
|
+
"system.notification.view.archived": "Archived",
|
|
1151
|
+
"system.notification.field.read_status": "Read status",
|
|
1152
|
+
"system.notification.field.sender": "Sender",
|
|
1153
|
+
"system.notification.field.received_at": "Received at",
|
|
1154
|
+
"system.notification.status.read": "Read",
|
|
1155
|
+
"system.notification.status.unread": "Unread",
|
|
1156
|
+
"system.notification.action.mark_unread": "Mark unread",
|
|
1157
|
+
"system.notification.action.mark_all_read": "Mark all read",
|
|
1158
|
+
"system.notification.action.archive": "Archive",
|
|
1159
|
+
"system.notification.action.restore": "Restore",
|
|
1160
|
+
"system.notification.action.view_all": "View all",
|
|
1161
|
+
"system.base.audit.login.title.detail": "Login log details",
|
|
1162
|
+
"system.base.audit.api.title.detail": "API access log details",
|
|
1163
|
+
"system.base.audit.operation.title.detail": "Operation log details",
|
|
1164
|
+
"system.base.audit.data_access.title.detail": "Data access log details",
|
|
1165
|
+
"system.base.audit.permission.title.detail": "Permission log details",
|
|
1166
|
+
"system.base.audit.policy.title.detail": "Policy evaluation log details",
|
|
1167
|
+
"system.base.audit.field.id": "Log ID",
|
|
1168
|
+
"system.base.audit.field.tenant_id": "Tenant ID",
|
|
1169
|
+
"system.base.audit.field.tenant_code": "Tenant code",
|
|
1170
|
+
"system.base.audit.field.user_id": "User ID",
|
|
1171
|
+
"system.base.audit.field.user_name": "Username",
|
|
1172
|
+
"system.base.audit.field.login_type": "Login type",
|
|
1173
|
+
"system.base.audit.field.result": "Result",
|
|
1174
|
+
"system.base.audit.field.reason_code": "Reason code",
|
|
1175
|
+
"system.base.audit.field.reason": "Reason",
|
|
1176
|
+
"system.base.audit.field.client_ip": "Client IP",
|
|
1177
|
+
"system.base.audit.field.user_agent": "User agent",
|
|
1178
|
+
"system.base.audit.field.device_id": "Device ID",
|
|
1179
|
+
"system.base.audit.field.request_id": "Request ID",
|
|
1180
|
+
"system.base.audit.field.trace_id": "Trace ID",
|
|
1181
|
+
"system.base.audit.field.occurred_at": "Event time",
|
|
1182
|
+
"system.base.audit.field.created_at": "Created at",
|
|
1183
|
+
"system.base.audit.field.service_name": "Service",
|
|
1184
|
+
"system.base.audit.field.operation": "Operation",
|
|
1185
|
+
"system.base.audit.field.method": "Method",
|
|
1186
|
+
"system.base.audit.field.path": "Path",
|
|
1187
|
+
"system.base.audit.field.status_code": "Status code",
|
|
1188
|
+
"system.base.audit.field.latency_ms": "Latency (ms)",
|
|
1189
|
+
"system.base.audit.field.request_size": "Request size",
|
|
1190
|
+
"system.base.audit.field.response_size": "Response size",
|
|
1191
|
+
"system.base.audit.field.resource_type": "Resource type",
|
|
1192
|
+
"system.base.audit.field.resource_id": "Resource ID",
|
|
1193
|
+
"system.base.audit.field.resource_name": "Resource name",
|
|
1194
|
+
"system.base.audit.field.action": "Action",
|
|
1195
|
+
"system.base.audit.field.changed_fields": "Changed fields",
|
|
1196
|
+
"system.base.audit.field.before_data": "Before data",
|
|
1197
|
+
"system.base.audit.field.after_data": "After data",
|
|
1198
|
+
"system.base.audit.field.access_type": "Access type",
|
|
1199
|
+
"system.base.audit.field.data_source": "Data source",
|
|
1200
|
+
"system.base.audit.field.table_name": "Table",
|
|
1201
|
+
"system.base.audit.field.field_scope": "Field scope",
|
|
1202
|
+
"system.base.audit.field.data_scope": "Data scope",
|
|
1203
|
+
"system.base.audit.field.affected_rows": "Affected rows",
|
|
1204
|
+
"system.base.audit.field.sensitive": "Sensitive data",
|
|
1205
|
+
"system.base.audit.field.sql_text": "Masked SQL",
|
|
1206
|
+
"system.base.audit.field.sql_digest": "SQL digest",
|
|
1207
|
+
"system.base.audit.field.target_type": "Target type",
|
|
1208
|
+
"system.base.audit.field.target_id": "Target ID",
|
|
1209
|
+
"system.base.audit.field.target_name": "Target name",
|
|
1210
|
+
"system.base.audit.field.old_value": "Previous permission",
|
|
1211
|
+
"system.base.audit.field.new_value": "New permission",
|
|
1212
|
+
"system.base.audit.field.engine": "Authorization engine",
|
|
1213
|
+
"system.base.audit.field.evaluation_type": "Evaluation type",
|
|
1214
|
+
"system.base.audit.field.resource": "Resource",
|
|
1215
|
+
"system.base.audit.field.project": "Project",
|
|
1216
|
+
"system.base.audit.field.decision": "Decision",
|
|
1217
|
+
"system.base.audit.field.duration_ms": "Evaluation latency (ms)",
|
|
1218
|
+
"system.base.audit.field.candidate_count": "Candidates",
|
|
1219
|
+
"system.base.audit.field.matched_count": "Matched",
|
|
1220
|
+
"system.base.audit.field.input_hash": "Input digest",
|
|
1221
|
+
"system.base.audit.result.success": "Succeeded",
|
|
1222
|
+
"system.base.audit.result.failure": "Failed",
|
|
1223
|
+
"system.base.audit.result.error": "Error",
|
|
1224
|
+
"system.base.audit.login_type.password": "Password login",
|
|
1225
|
+
"system.base.audit.login_type.oauth": "OAuth login",
|
|
1226
|
+
"system.base.audit.login_type.mfa": "MFA",
|
|
1227
|
+
"system.base.audit.login_type.token_refresh": "Token refresh",
|
|
1228
|
+
"system.base.audit.login_type.logout": "Logout",
|
|
1229
|
+
"system.base.audit.operation_action.create": "Create",
|
|
1230
|
+
"system.base.audit.operation_action.update": "Update",
|
|
1231
|
+
"system.base.audit.operation_action.delete": "Delete",
|
|
1232
|
+
"system.base.audit.operation_action.publish": "Publish",
|
|
1233
|
+
"system.base.audit.operation_action.revoke": "Revoke",
|
|
1234
|
+
"system.base.audit.operation_action.import": "Import",
|
|
1235
|
+
"system.base.audit.operation_action.export": "Export",
|
|
1236
|
+
"system.base.audit.operation_action.other": "Other",
|
|
1237
|
+
"system.base.audit.access_type.list": "List",
|
|
1238
|
+
"system.base.audit.access_type.detail": "Detail",
|
|
1239
|
+
"system.base.audit.access_type.query": "Query",
|
|
1240
|
+
"system.base.audit.access_type.export": "Export",
|
|
1241
|
+
"system.base.audit.access_type.download": "Download",
|
|
1242
|
+
"system.base.audit.access_type.import": "Import",
|
|
1243
|
+
"system.base.audit.target_type.user": "User",
|
|
1244
|
+
"system.base.audit.target_type.role": "Role",
|
|
1245
|
+
"system.base.audit.target_type.menu": "Menu",
|
|
1246
|
+
"system.base.audit.target_type.api": "API",
|
|
1247
|
+
"system.base.audit.target_type.tenant": "Tenant",
|
|
1248
|
+
"system.base.audit.permission_action.grant": "Grant",
|
|
1249
|
+
"system.base.audit.permission_action.revoke": "Revoke",
|
|
1250
|
+
"system.base.audit.permission_action.create": "Create",
|
|
1251
|
+
"system.base.audit.permission_action.update": "Update",
|
|
1252
|
+
"system.base.audit.permission_action.delete": "Delete",
|
|
1253
|
+
"system.base.audit.permission_action.assign": "Assign",
|
|
1254
|
+
"system.base.audit.policy_decision.allow": "Allow",
|
|
1255
|
+
"system.base.audit.policy_decision.deny": "Deny",
|
|
1256
|
+
"system.base.audit.policy_decision.error": "Error",
|
|
1257
|
+
"system.base.audit.evaluation_type.is_authorized": "Single authorization",
|
|
1258
|
+
"system.base.audit.evaluation_type.filter_pairs": "Resource filtering",
|
|
1259
|
+
"system.base.audit.evaluation_type.filter_projects": "Project filtering",
|
|
1260
|
+
"system.dashboard.title": "Dashboard",
|
|
1261
|
+
"system.dashboard.updated_at": "Updated {time}",
|
|
1262
|
+
"system.dashboard.overview": "Overview",
|
|
1263
|
+
"system.dashboard.users": "Total users",
|
|
1264
|
+
"system.dashboard.roles": "Total roles",
|
|
1265
|
+
"system.dashboard.today_logins": "Today's logins",
|
|
1266
|
+
"system.dashboard.today_operations": "Today's operations",
|
|
1267
|
+
"system.dashboard.login_trend": "Login trend",
|
|
1268
|
+
"system.dashboard.login_distribution": "Login results",
|
|
1269
|
+
"system.dashboard.operation_distribution": "Operation actions",
|
|
1270
|
+
"system.dashboard.load_failed": "Failed to load dashboard statistics",
|
|
1271
|
+
"system.base.file.resource": "File asset",
|
|
1272
|
+
"system.base.file.detail": "File asset details",
|
|
1273
|
+
"system.base.file.confirm_delete": "Delete file \"{name}\" and its object?",
|
|
1274
|
+
"system.base.file.field.name": "Original file name",
|
|
1275
|
+
"system.base.file.field.path": "Storage path",
|
|
1276
|
+
"system.base.file.field.extension": "Extension",
|
|
1277
|
+
"system.base.file.field.mime": "MIME type",
|
|
1278
|
+
"system.base.file.field.size": "File size",
|
|
1279
|
+
"system.base.file.field.hash": "Content hash",
|
|
1280
|
+
"system.base.file.field.tenant": "Tenant ID",
|
|
1281
|
+
"system.base.file.field.url": "Access URL",
|
|
1282
|
+
"system.base.login_policy.rules.title": "Targeted rules",
|
|
1283
|
+
"system.base.login_policy.rules.description": "Override global login source restrictions by tenant code or username",
|
|
1284
|
+
"system.base.login_policy.rules.add": "Add rule",
|
|
1285
|
+
"system.base.login_policy.rules.target_type": "Target type",
|
|
1286
|
+
"system.base.login_policy.rules.target_value": "Target value",
|
|
1287
|
+
"system.base.login_policy.rules.enabled": "Enabled"
|
|
964
1288
|
}
|