@liujitcn/kratos-admin-core 0.0.25 → 0.0.27
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/dist/package/declarations/src/layouts/components/Menu/MenuTitle.vue.d.ts +7 -0
- package/dist/package/declarations/src/locales/generated.d.ts +14 -1472
- package/dist/package/declarations/src/locales/index.d.ts +4 -4
- package/dist/package/declarations/src/rpc/common/v1/enum.d.ts +15 -6
- package/dist/package/declarations/src/rpc/system/admin/v1/base_dict.d.ts +5 -5
- package/dist/package/declarations/src/rpc/system/admin/v1/{base_translation.d.ts → base_i18n.d.ts} +3 -3
- package/dist/package/declarations/src/utils/index.d.ts +1 -3
- package/dist/package/declarations/src/utils/menuKey.d.ts +3 -0
- package/dist/package/src/components/Dialog/FormDialog.vue +1 -1
- package/dist/package/src/components/ImportExcel/index.vue +1 -1
- package/dist/package/src/components/ProForm/index.vue +5 -2
- package/dist/package/src/components/SelectIcon/index.vue +1 -1
- package/dist/package/src/layouts/components/Menu/MenuTitle.vue +43 -0
- package/dist/package/src/layouts/components/Menu/SubMenu.vue +3 -2
- package/dist/package/src/locales/README.md +0 -4
- package/dist/package/src/locales/en-US.json +1 -4
- package/dist/package/src/locales/generated.ts +0 -18
- package/dist/package/src/locales/index.ts +0 -3
- package/dist/package/src/locales/ja-JP.json +190 -193
- package/dist/package/src/locales/zh-CN.json +1 -4
- package/dist/package/src/locales/zh-TW.json +1 -4
- package/dist/package/src/rpc/common/v1/enum.ts +16 -6
- package/dist/package/src/rpc/system/admin/v1/base_dict.ts +5 -5
- package/dist/package/src/rpc/system/admin/v1/{base_translation.ts → base_i18n.ts} +4 -4
- package/dist/package/src/utils/index.ts +2 -16
- package/dist/package/src/utils/menuKey.ts +18 -0
- package/dist/package/src/views/login/components/LoginForm.vue +3 -0
- package/package.json +2 -2
- package/dist/package/src/locales/es-ES.json +0 -283
- package/dist/package/src/locales/fr-FR.json +0 -283
- package/dist/package/src/locales/ko-KR.json +0 -283
|
@@ -2,7 +2,7 @@ import type { AdminModule } from "../modules";
|
|
|
2
2
|
import type { OptionLanguageResponse } from "../rpc/base/v1/language";
|
|
3
3
|
import { type GeneratedLocale } from "./generated";
|
|
4
4
|
/** 管理端已打包的语言区域;运行时可切换列表由 base_language 接口决定。 */
|
|
5
|
-
export declare const SUPPORTED_LOCALES: ("zh-CN" | "en-US" | "
|
|
5
|
+
export declare const SUPPORTED_LOCALES: ("zh-CN" | "en-US" | "ja-JP" | "zh-TW")[];
|
|
6
6
|
/** 管理端支持的语言区域类型。 */
|
|
7
7
|
export type SupportedLocale = GeneratedLocale;
|
|
8
8
|
/** 单个模块的扁平语言包。 */
|
|
@@ -19,7 +19,7 @@ export interface LocaleOption {
|
|
|
19
19
|
export declare const DEFAULT_LOCALE: SupportedLocale;
|
|
20
20
|
export declare const LOCALE_STORAGE_KEY = "kratos-admin:locale";
|
|
21
21
|
/** 管理端 Vue I18n 实例。 */
|
|
22
|
-
export declare const adminI18n: import("vue-i18n").I18n<{}, {}, {}, "zh-CN" | "en-US" | "
|
|
22
|
+
export declare const adminI18n: import("vue-i18n").I18n<{}, {}, {}, "zh-CN" | "en-US" | "ja-JP" | "zh-TW", false>;
|
|
23
23
|
/** 规范化任意语言输入到管理端白名单。 */
|
|
24
24
|
export declare function normalizeLocale(value?: string): SupportedLocale;
|
|
25
25
|
/** 注册模块语言包并校验语言键、占位符和命名空间。 */
|
|
@@ -44,10 +44,10 @@ export declare function registerLocaleChangeHandler(handler: () => void | Promis
|
|
|
44
44
|
export declare function t(key: string, params?: LocaleParams): string;
|
|
45
45
|
/** 管理端响应式语言状态。 */
|
|
46
46
|
export declare function useLocaleStore(): {
|
|
47
|
-
locale: Readonly<globalThis.Ref<"zh-CN" | "en-US" | "
|
|
47
|
+
locale: Readonly<globalThis.Ref<"zh-CN" | "en-US" | "ja-JP" | "zh-TW", "zh-CN" | "en-US" | "ja-JP" | "zh-TW">>;
|
|
48
48
|
localeIndex: globalThis.ComputedRef<number>;
|
|
49
49
|
languageOptions: globalThis.ComputedRef<LocaleOption[]>;
|
|
50
|
-
supportedLocales: globalThis.ComputedRef<("zh-CN" | "en-US" | "
|
|
50
|
+
supportedLocales: globalThis.ComputedRef<("zh-CN" | "en-US" | "ja-JP" | "zh-TW")[]>;
|
|
51
51
|
setLocale: typeof setCurrentLocale;
|
|
52
52
|
t: typeof t;
|
|
53
53
|
};
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
/** 状态 */
|
|
2
2
|
export declare enum Status {
|
|
3
|
-
/**
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
|
|
3
|
+
/** STATUS_UNSPECIFIED - 未知状态 */
|
|
4
|
+
STATUS_UNSPECIFIED = 0,
|
|
5
|
+
/** STATUS_ENABLE - 启用 */
|
|
6
|
+
STATUS_ENABLE = 1,
|
|
7
|
+
/** STATUS_DISABLE - 禁用 */
|
|
8
|
+
STATUS_DISABLE = 2
|
|
9
|
+
}
|
|
10
|
+
/** 定时任务日志状态 */
|
|
11
|
+
export declare enum BaseJobLogStatus {
|
|
12
|
+
/** BASE_JOB_LOG_STATUS_UNSPECIFIED - 未指定定时任务日志状态 */
|
|
13
|
+
BASE_JOB_LOG_STATUS_UNSPECIFIED = 0,
|
|
14
|
+
/** BASE_JOB_LOG_STATUS_SUCCESS - 成功 */
|
|
15
|
+
BASE_JOB_LOG_STATUS_SUCCESS = 1,
|
|
16
|
+
/** BASE_JOB_LOG_STATUS_FAIL - 失败 */
|
|
17
|
+
BASE_JOB_LOG_STATUS_FAIL = 2
|
|
9
18
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Status } from "../../../common/v1/enum";
|
|
2
2
|
import type { Empty } from "../../../google/protobuf/empty";
|
|
3
|
-
import type {
|
|
3
|
+
import type { BaseI18n } from "./base_i18n";
|
|
4
4
|
/** 字典选项查询条件 */
|
|
5
5
|
export interface OptionBaseDictRequest {
|
|
6
6
|
}
|
|
@@ -81,7 +81,7 @@ export interface BaseDictForm {
|
|
|
81
81
|
/** 字典名称 */
|
|
82
82
|
name: string;
|
|
83
83
|
/** 非主语言翻译 */
|
|
84
|
-
translations:
|
|
84
|
+
translations: BaseI18n[];
|
|
85
85
|
/** 状态 */
|
|
86
86
|
status: Status;
|
|
87
87
|
}
|
|
@@ -105,7 +105,7 @@ export interface BaseDictItemForm {
|
|
|
105
105
|
/** 排序 */
|
|
106
106
|
sort: number;
|
|
107
107
|
/** 非主语言翻译 */
|
|
108
|
-
translations:
|
|
108
|
+
translations: BaseI18n[];
|
|
109
109
|
/** 状态 */
|
|
110
110
|
status: Status;
|
|
111
111
|
}
|
|
@@ -168,7 +168,7 @@ export interface BaseDict {
|
|
|
168
168
|
/** 更新时间 */
|
|
169
169
|
updated_at: string;
|
|
170
170
|
/** 非主语言翻译 */
|
|
171
|
-
translations:
|
|
171
|
+
translations: BaseI18n[];
|
|
172
172
|
}
|
|
173
173
|
/** 字典项 */
|
|
174
174
|
export interface BaseDictItem {
|
|
@@ -191,7 +191,7 @@ export interface BaseDictItem {
|
|
|
191
191
|
/** 更新时间 */
|
|
192
192
|
updated_at: string;
|
|
193
193
|
/** 非主语言翻译 */
|
|
194
|
-
translations:
|
|
194
|
+
translations: BaseI18n[];
|
|
195
195
|
}
|
|
196
196
|
/** Admin字典服务 */
|
|
197
197
|
export interface BaseDictService {
|
package/dist/package/declarations/src/rpc/system/admin/v1/{base_translation.d.ts → base_i18n.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Empty } from "../../../google/protobuf/empty";
|
|
2
|
-
/** 统一翻译表目标类型,和
|
|
2
|
+
/** 统一翻译表目标类型,和 base_i18n.target_type 的值一一对应。 */
|
|
3
3
|
export declare enum TranslationTargetType {
|
|
4
4
|
/** TRANSLATION_TARGET_TYPE_UNSPECIFIED - 未指定统一翻译表目标类型。 */
|
|
5
5
|
TRANSLATION_TARGET_TYPE_UNSPECIFIED = 0,
|
|
@@ -47,7 +47,7 @@ export interface UpdateBaseTranslationRequest {
|
|
|
47
47
|
name: string;
|
|
48
48
|
}
|
|
49
49
|
/** 国际化翻译信息 */
|
|
50
|
-
export interface
|
|
50
|
+
export interface BaseI18n {
|
|
51
51
|
/** 翻译记录ID */
|
|
52
52
|
id: number;
|
|
53
53
|
/** 翻译目标类型 */
|
|
@@ -67,7 +67,7 @@ export interface CodeGenLocaleConfig {
|
|
|
67
67
|
left_tree_comment: string;
|
|
68
68
|
}
|
|
69
69
|
/** 国际化翻译信息服务。 */
|
|
70
|
-
export interface
|
|
70
|
+
export interface BaseI18nService {
|
|
71
71
|
/** 翻译单个文本。 */
|
|
72
72
|
DraftBaseTranslation(request: DraftBaseTranslationRequest): Promise<DraftBaseTranslationResponse>;
|
|
73
73
|
/** 修改国际化翻译信息 */
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RouteItem, RouteMeta } from "../rpc/system/admin/v1/auth";
|
|
2
|
+
export { getRouteMenuKey } from "./menuKey";
|
|
2
3
|
/** 树形或枚举数据字段映射配置。 */
|
|
3
4
|
type FieldNamesProps = {
|
|
4
5
|
label?: string;
|
|
@@ -102,8 +103,6 @@ export declare function getUrlWithParams(): string;
|
|
|
102
103
|
export declare function isExternalPath(path?: string): boolean;
|
|
103
104
|
/** 获取菜单项实际跳转目标,外链优先使用 redirect。 */
|
|
104
105
|
export declare function getRouteTarget(item: RouteItem): string;
|
|
105
|
-
/** 获取菜单节点在 Element Plus 菜单树中的稳定索引。 */
|
|
106
|
-
export declare function getRouteMenuKey(item: RouteItem): string;
|
|
107
106
|
/** 判断菜单节点或其子节点是否对应当前路由。 */
|
|
108
107
|
export declare function isRouteMenuActive(item: RouteItem, currentPath: string): boolean;
|
|
109
108
|
/**
|
|
@@ -189,4 +188,3 @@ export declare function filterEnum(callValue: any, enumData?: any, fieldNames?:
|
|
|
189
188
|
* @description 递归查找 callValue 对应的 enum 值
|
|
190
189
|
* */
|
|
191
190
|
export declare function findItemNested(enumData: any, callValue: any, value: string, children: string): any;
|
|
192
|
-
export {};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
width="580px"
|
|
7
7
|
draggable
|
|
8
8
|
>
|
|
9
|
-
<el-form class="drawer-multiColumn-form" label-width="
|
|
9
|
+
<el-form class="drawer-multiColumn-form" label-width="180px">
|
|
10
10
|
<el-form-item :label="t('core.upload.template_download')">
|
|
11
11
|
<el-button type="primary" :icon="Download" @click="downloadTemp">{{ t("common.action.download") }}</el-button>
|
|
12
12
|
</el-form-item>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<el-form ref="formRef" :model="model" :rules="formRules" :label-width="labelWidth" v-bind="$attrs">
|
|
2
|
+
<el-form class="pro-form" ref="formRef" :model="model" :rules="formRules" :label-width="labelWidth" v-bind="$attrs">
|
|
3
3
|
<el-row :gutter="gutter">
|
|
4
4
|
<template v-for="field in visibleFields" :key="field.prop">
|
|
5
5
|
<span v-if="field.rowBreakBefore" class="pro-form__row-break" aria-hidden="true" />
|
|
@@ -47,7 +47,7 @@ interface ProFormProps {
|
|
|
47
47
|
|
|
48
48
|
const props = withDefaults(defineProps<ProFormProps>(), {
|
|
49
49
|
rules: () => ({}),
|
|
50
|
-
labelWidth: "",
|
|
50
|
+
labelWidth: "180px",
|
|
51
51
|
gutter: 20,
|
|
52
52
|
colSpan: 24
|
|
53
53
|
});
|
|
@@ -108,6 +108,9 @@ defineExpose({
|
|
|
108
108
|
flex: 0 0 100%;
|
|
109
109
|
height: 0;
|
|
110
110
|
}
|
|
111
|
+
:global(.pro-form .el-form-item__label) {
|
|
112
|
+
white-space: nowrap;
|
|
113
|
+
}
|
|
111
114
|
.pro-form__label {
|
|
112
115
|
display: inline-flex;
|
|
113
116
|
gap: 4px;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<el-button :icon="customIcons[iconValue]" />
|
|
14
14
|
</template>
|
|
15
15
|
</el-input>
|
|
16
|
-
<el-dialog v-model="dialogVisible" :title="placeholder" top="50px" width="
|
|
16
|
+
<el-dialog v-model="dialogVisible" :title="placeholder" top="50px" width="760px">
|
|
17
17
|
<el-input v-model="inputValue" :placeholder="t('core.icon.search')" size="large" :prefix-icon="Icons.Search" />
|
|
18
18
|
<el-scrollbar v-if="Object.keys(iconsList).length">
|
|
19
19
|
<div class="icon-list">
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-tooltip :content="title" placement="right" :show-after="0" :disabled="!isOverflow">
|
|
3
|
+
<span ref="titleRef" class="sle" :title="isOverflow ? title : undefined">{{ title }}</span>
|
|
4
|
+
</el-tooltip>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script setup lang="ts">
|
|
8
|
+
import { nextTick, onBeforeUnmount, onMounted, ref, watch } from "vue";
|
|
9
|
+
|
|
10
|
+
const props = defineProps<{
|
|
11
|
+
/** 菜单标题。 */
|
|
12
|
+
title: string;
|
|
13
|
+
}>();
|
|
14
|
+
|
|
15
|
+
const titleRef = ref<HTMLElement>();
|
|
16
|
+
const isOverflow = ref(false);
|
|
17
|
+
let resizeObserver: ResizeObserver | undefined;
|
|
18
|
+
|
|
19
|
+
/** 检测菜单标题是否被当前菜单宽度截断。 */
|
|
20
|
+
function updateOverflow() {
|
|
21
|
+
const element = titleRef.value;
|
|
22
|
+
isOverflow.value = Boolean(element && element.clientWidth > 0 && element.scrollWidth > element.clientWidth);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
onMounted(() => {
|
|
26
|
+
void nextTick(updateOverflow);
|
|
27
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
28
|
+
|
|
29
|
+
resizeObserver = new ResizeObserver(updateOverflow);
|
|
30
|
+
if (titleRef.value) resizeObserver.observe(titleRef.value);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
watch(
|
|
34
|
+
() => props.title,
|
|
35
|
+
() => {
|
|
36
|
+
void nextTick(updateOverflow);
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
onBeforeUnmount(() => {
|
|
41
|
+
resizeObserver?.disconnect();
|
|
42
|
+
});
|
|
43
|
+
</script>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<el-icon v-if="getRouteMetaIcon(subItem.meta)">
|
|
6
6
|
<component :is="getRouteMetaIcon(subItem.meta)"></component>
|
|
7
7
|
</el-icon>
|
|
8
|
-
<
|
|
8
|
+
<MenuTitle :title="getRouteMetaTitle(subItem.meta)" />
|
|
9
9
|
</template>
|
|
10
10
|
<SubMenu :menu-list="getSubMenuChildren(subItem)" />
|
|
11
11
|
</el-sub-menu>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<component :is="getRouteMetaIcon(getMenuItem(subItem).meta)"></component>
|
|
15
15
|
</el-icon>
|
|
16
16
|
<template #title>
|
|
17
|
-
<
|
|
17
|
+
<MenuTitle :title="getRouteMetaTitle(getMenuItem(subItem).meta)" />
|
|
18
18
|
</template>
|
|
19
19
|
</el-menu-item>
|
|
20
20
|
</template>
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
<script setup lang="ts">
|
|
24
24
|
import { useRouter } from "vue-router";
|
|
25
25
|
import type { RouteItem } from "../../../rpc/system/admin/v1/auth";
|
|
26
|
+
import MenuTitle from "./MenuTitle.vue";
|
|
26
27
|
import {
|
|
27
28
|
getRouteTarget,
|
|
28
29
|
getRouteMenuKey,
|
|
@@ -7,9 +7,5 @@
|
|
|
7
7
|
| `zh-CN.json` | 简体中文固定 UI 默认语言包,也是所有语言键集合和占位符校验基准。 | 管理端固定文案默认语言及缺失翻译回退。 |
|
|
8
8
|
| `zh-TW.json` | 繁体中文公共语言包。 | 管理端切换为繁体中文时由 Vue I18n 使用。 |
|
|
9
9
|
| `en-US.json` | 英文公共语言包。 | 管理端切换为英文时由 Vue I18n 使用。 |
|
|
10
|
-
| `ja-JP.json` | 日文公共语言包。 | 管理端切换为日文时由 Vue I18n 使用。 |
|
|
11
|
-
| `ko-KR.json` | 韩语公共语言包。 | 管理端切换为韩语时由 Vue I18n 使用。 |
|
|
12
|
-
| `fr-FR.json` | 法语公共语言包。 | 管理端切换为法语时由 Vue I18n 使用。 |
|
|
13
|
-
| `es-ES.json` | 西班牙语公共语言包。 | 管理端切换为西班牙语时由 Vue I18n 使用。 |
|
|
14
10
|
|
|
15
11
|
语言包是标准 JSON,不能在文件内直接写注释;新增语言或修改键后执行仓库根目录的 `make i18n-sync`,脚本会校验所有语言并生成注册产物。语言切换选项固定显示后端 `base_language.native_name`,接口不可用时使用代码内置的原生名称;`common.language.*` 仅用于普通文案和语言迁移初始数据。新增语言的完整文件清单见[国际化语言扩展指南](../../../../../../docs/国际化语言扩展指南.md)。
|
|
@@ -23,12 +23,9 @@
|
|
|
23
23
|
"common.field.phone": "Phone number",
|
|
24
24
|
"common.field.start_time": "Start time",
|
|
25
25
|
"common.language.en-US": "English",
|
|
26
|
-
"common.language.ja-JP": "日本語",
|
|
27
26
|
"common.language.zh-CN": "简体中文",
|
|
28
27
|
"common.language.zh-TW": "Traditional Chinese",
|
|
29
|
-
"common.language.
|
|
30
|
-
"common.language.fr-FR": "French",
|
|
31
|
-
"common.language.es-ES": "Spanish",
|
|
28
|
+
"common.language.ja-JP": "Japanese",
|
|
32
29
|
"common.message.no_data": "No data",
|
|
33
30
|
"common.message.operation_success": "Operation completed",
|
|
34
31
|
"common.message.system_error": "System error",
|
|
@@ -1,34 +1,22 @@
|
|
|
1
1
|
/* 此文件由 scripts/sync_locales.py 生成,请勿手工修改。 */
|
|
2
2
|
import "dayjs/locale/zh-cn";
|
|
3
3
|
import "dayjs/locale/en";
|
|
4
|
-
import "dayjs/locale/es";
|
|
5
|
-
import "dayjs/locale/fr";
|
|
6
4
|
import "dayjs/locale/ja";
|
|
7
|
-
import "dayjs/locale/ko";
|
|
8
5
|
import "dayjs/locale/zh-tw";
|
|
9
6
|
import elementLocaleZhCn from "element-plus/es/locale/lang/zh-cn";
|
|
10
7
|
import elementLocaleEnUs from "element-plus/es/locale/lang/en";
|
|
11
|
-
import elementLocaleEsEs from "element-plus/es/locale/lang/es";
|
|
12
|
-
import elementLocaleFrFr from "element-plus/es/locale/lang/fr";
|
|
13
8
|
import elementLocaleJaJp from "element-plus/es/locale/lang/ja";
|
|
14
|
-
import elementLocaleKoKr from "element-plus/es/locale/lang/ko";
|
|
15
9
|
import elementLocaleZhTw from "element-plus/es/locale/lang/zh-tw";
|
|
16
10
|
|
|
17
11
|
import localeZhCn from "./zh-CN.json";
|
|
18
12
|
import localeEnUs from "./en-US.json";
|
|
19
|
-
import localeEsEs from "./es-ES.json";
|
|
20
|
-
import localeFrFr from "./fr-FR.json";
|
|
21
13
|
import localeJaJp from "./ja-JP.json";
|
|
22
|
-
import localeKoKr from "./ko-KR.json";
|
|
23
14
|
import localeZhTw from "./zh-TW.json";
|
|
24
15
|
|
|
25
16
|
export const LOCALE_MESSAGES = {
|
|
26
17
|
"zh-CN": localeZhCn,
|
|
27
18
|
"en-US": localeEnUs,
|
|
28
|
-
"es-ES": localeEsEs,
|
|
29
|
-
"fr-FR": localeFrFr,
|
|
30
19
|
"ja-JP": localeJaJp,
|
|
31
|
-
"ko-KR": localeKoKr,
|
|
32
20
|
"zh-TW": localeZhTw,
|
|
33
21
|
} as const satisfies Record<string, Record<string, string>>;
|
|
34
22
|
|
|
@@ -39,19 +27,13 @@ export const SUPPORTED_LOCALES = Object.keys(LOCALE_MESSAGES) as GeneratedLocale
|
|
|
39
27
|
export const DAYJS_LOCALE_MAP: Record<string, string> = {
|
|
40
28
|
"zh-CN": "zh-cn",
|
|
41
29
|
"en-US": "en",
|
|
42
|
-
"es-ES": "es",
|
|
43
|
-
"fr-FR": "fr",
|
|
44
30
|
"ja-JP": "ja",
|
|
45
|
-
"ko-KR": "ko",
|
|
46
31
|
"zh-TW": "zh-tw",
|
|
47
32
|
};
|
|
48
33
|
|
|
49
34
|
export const ELEMENT_LOCALES = {
|
|
50
35
|
"zh-CN": elementLocaleZhCn,
|
|
51
36
|
"en-US": elementLocaleEnUs,
|
|
52
|
-
"es-ES": elementLocaleEsEs,
|
|
53
|
-
"fr-FR": elementLocaleFrFr,
|
|
54
37
|
"ja-JP": elementLocaleJaJp,
|
|
55
|
-
"ko-KR": elementLocaleKoKr,
|
|
56
38
|
"zh-TW": elementLocaleZhTw,
|
|
57
39
|
} as const;
|