@liujitcn/kratos-uni-app-core 0.0.21 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/module.mjs +653 -670
- package/dist/vite.mjs +5 -3
- package/package.json +1 -1
- package/src/api/base/language.ts +5 -5
- package/src/bootstrap.ts +1 -1
- package/src/locales/README.md +2 -2
- package/src/locales/en-US.json +65 -68
- package/src/locales/es-ES.json +88 -91
- package/src/locales/fr-FR.json +92 -95
- package/src/locales/generated.ts +22 -0
- package/src/locales/index.ts +48 -67
- package/src/locales/ja-JP.json +78 -81
- package/src/locales/ko-KR.json +87 -90
- package/src/locales/zh-CN.json +65 -68
- package/src/locales/zh-TW.json +65 -68
- package/src/module.ts +3 -17
- package/src/navigation.ts +32 -13
- package/src/rpc/base/v1/config.ts +12 -1
- package/src/rpc/base/v1/language.ts +7 -13
- package/src/rpc/base/v1/login.ts +14 -1
- package/src/stores/modules/setting.ts +3 -3
- package/src/utils/file.ts +2 -2
- package/src/utils/http.ts +5 -5
- package/src/utils/passwordCrypto.ts +14 -14
- package/src/views/pages/index/index.vue +12 -12
- package/src/views/pages/login/login.vue +47 -33
- package/src/views/pages/login/protocal.vue +2 -2
- package/src/views/pages/status/index.vue +9 -8
- package/src/views/pages/webview/webview.vue +4 -4
- package/src/vite.ts +4 -3
- package/src/rpc/base/v1/enum.ts +0 -54
- package/src/rpc/system/common/v1/enum.ts +0 -80
package/dist/vite.mjs
CHANGED
|
@@ -487,6 +487,8 @@ function scanViews(root) {
|
|
|
487
487
|
function appendPage(manifest, page) {
|
|
488
488
|
const [first, ...rest] = page.route.split("/");
|
|
489
489
|
if (!first.startsWith("pages") || first === "pages") {
|
|
490
|
+
if (manifest.pages.some((item) => normalizeRoute(item.path) === page.route))
|
|
491
|
+
return;
|
|
490
492
|
manifest.pages.push({ path: page.route, style: page.style });
|
|
491
493
|
return;
|
|
492
494
|
}
|
|
@@ -496,21 +498,21 @@ function appendPage(manifest, page) {
|
|
|
496
498
|
subPackage = { root: first, pages: [] };
|
|
497
499
|
manifest.subPackages.push(subPackage);
|
|
498
500
|
}
|
|
501
|
+
if (subPackage.pages.some((item) => normalizeRoute(`${first}/${item.path}`) === page.route))
|
|
502
|
+
return;
|
|
499
503
|
subPackage.pages.push({ path: rest.join("/"), style: page.style });
|
|
500
504
|
}
|
|
501
505
|
function createPageWrapper(page) {
|
|
502
506
|
const source = page.source.replace(/\\/g, "/");
|
|
503
507
|
return `<script setup lang="ts">
|
|
504
|
-
import type { Component } from 'vue'
|
|
505
508
|
import KratosPage from ${JSON.stringify(source)}
|
|
506
509
|
import KratosTabBar from '@liujitcn/kratos-uni-app-core/components/KratosTabBar.vue'
|
|
507
510
|
|
|
508
511
|
defineOptions({ inheritAttrs: false })
|
|
509
|
-
const Page = KratosPage as Component
|
|
510
512
|
</script>
|
|
511
513
|
|
|
512
514
|
<template>
|
|
513
|
-
<
|
|
515
|
+
<KratosPage v-bind="$attrs" />
|
|
514
516
|
<KratosTabBar route=${JSON.stringify(page.route)} />
|
|
515
517
|
</template>
|
|
516
518
|
`;
|
package/package.json
CHANGED
package/src/api/base/language.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { http } from '../../utils/http'
|
|
2
2
|
import type {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
OptionLanguageRequest,
|
|
4
|
+
OptionLanguageResponse,
|
|
5
5
|
LanguageService,
|
|
6
6
|
} from '../../rpc/base/v1/language'
|
|
7
7
|
|
|
@@ -9,9 +9,9 @@ const LANGUAGE_URL = '/v1/base/language'
|
|
|
9
9
|
|
|
10
10
|
/** 语言公共服务。 */
|
|
11
11
|
export class LanguageServiceImpl implements LanguageService {
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
return http<
|
|
12
|
+
/** 查询当前支持的语言选项。 */
|
|
13
|
+
OptionLanguage(request: OptionLanguageRequest): Promise<OptionLanguageResponse> {
|
|
14
|
+
return http<OptionLanguageResponse>({
|
|
15
15
|
url: LANGUAGE_URL,
|
|
16
16
|
method: 'GET',
|
|
17
17
|
authMode: 'none',
|
package/src/bootstrap.ts
CHANGED
|
@@ -29,7 +29,7 @@ export function bootstrapKratosApp(options: KratosAppBootstrapOptions) {
|
|
|
29
29
|
registerLocaleMessages(options.modules)
|
|
30
30
|
initializeLocale()
|
|
31
31
|
void defLanguageService
|
|
32
|
-
.
|
|
32
|
+
.OptionLanguage({})
|
|
33
33
|
.then((response) => {
|
|
34
34
|
applyLanguageConfig(response)
|
|
35
35
|
})
|
package/src/locales/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| 文件 | 用途 | 使用位置 |
|
|
6
6
|
| --- | --- | --- |
|
|
7
|
-
| `zh-CN.json` | 简体中文固定 UI
|
|
7
|
+
| `zh-CN.json` | 简体中文固定 UI 默认语言包,也是所有语言键集合和占位符校验基准。 | uni-app 固定文案默认语言及缺失翻译回退。 |
|
|
8
8
|
| `zh-TW.json` | 繁体中文 Core 语言包。 | uni-app 切换为繁体中文时使用。 |
|
|
9
9
|
| `en-US.json` | 英文 Core 语言包。 | uni-app 切换为英文时使用。 |
|
|
10
10
|
| `ja-JP.json` | 日文 Core 语言包。 | uni-app 切换为日文时使用。 |
|
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
| `fr-FR.json` | 法语 Core 语言包。 | uni-app 切换为法语时使用。 |
|
|
13
13
|
| `es-ES.json` | 西班牙语 Core 语言包。 | uni-app 切换为西班牙语时使用。 |
|
|
14
14
|
|
|
15
|
-
语言包是标准 JSON,不能在文件内直接写注释;公共键使用 `common.` 或 `core.`
|
|
15
|
+
语言包是标准 JSON,不能在文件内直接写注释;公共键使用 `common.` 或 `core.` 命名空间。新增语言后执行仓库根目录的 `make i18n-sync`。语言切换选项固定显示后端 `base_language.native_name`,接口不可用时使用代码内置的原生名称;`common.language.*` 仅用于普通文案和语言迁移初始数据。新增语言的完整文件清单见[国际化语言扩展指南](../../../../../../docs/国际化语言扩展指南.md)。
|
package/src/locales/en-US.json
CHANGED
|
@@ -5,10 +5,8 @@
|
|
|
5
5
|
"common.action.login": "Log in",
|
|
6
6
|
"common.action.logout": "Log out",
|
|
7
7
|
"common.action.new": "New",
|
|
8
|
-
"common.action.
|
|
9
|
-
"common.action.retry": "Retry",
|
|
8
|
+
"common.action.open_in_new_window": "Open in new window",
|
|
10
9
|
"common.action.save": "Save",
|
|
11
|
-
"common.action.search": "Search",
|
|
12
10
|
"common.field.language": "Language",
|
|
13
11
|
"common.language.en-US": "English",
|
|
14
12
|
"common.language.ja-JP": "日本語",
|
|
@@ -18,93 +16,92 @@
|
|
|
18
16
|
"common.language.fr-FR": "French",
|
|
19
17
|
"common.language.es-ES": "Spanish",
|
|
20
18
|
"common.message.loading": "Loading",
|
|
21
|
-
"common.message.
|
|
22
|
-
"common.message.
|
|
19
|
+
"common.message.network_error": "Network error. Check your connection and try again.",
|
|
20
|
+
"common.message.request_error": "Request failed",
|
|
23
21
|
"common.message.unknown": "Unable to process this request. Try again later.",
|
|
24
22
|
"common.title.notice": "Notice",
|
|
25
|
-
"core.auth.
|
|
26
|
-
"core.auth.
|
|
23
|
+
"core.auth.login_again": "Log in again",
|
|
24
|
+
"core.auth.session_expired": "Your session has expired. Please log in again.",
|
|
27
25
|
"core.config.missing": "Missing app configuration: {names}",
|
|
28
|
-
"core.crypto.
|
|
29
|
-
"core.crypto.
|
|
30
|
-
"core.crypto.
|
|
31
|
-
"core.crypto.
|
|
32
|
-
"core.crypto.
|
|
33
|
-
"core.crypto.
|
|
34
|
-
"core.crypto.
|
|
26
|
+
"core.crypto.base64_decode_unsupported": "Base64 decoding is not supported in this environment",
|
|
27
|
+
"core.crypto.base64_encode_unsupported": "Base64 encoding is not supported in this environment",
|
|
28
|
+
"core.crypto.encrypt_failed": "Password encryption failed",
|
|
29
|
+
"core.crypto.password_required": "Password is required",
|
|
30
|
+
"core.crypto.password_too_long": "Password exceeds the supported length",
|
|
31
|
+
"core.crypto.public_key_invalid": "Invalid public key",
|
|
32
|
+
"core.crypto.random_failed": "Failed to generate random data",
|
|
35
33
|
"core.crypto.unsupported": "Password encryption is not supported in this environment",
|
|
36
|
-
"core.file.
|
|
37
|
-
"core.home.
|
|
38
|
-
"core.home.
|
|
39
|
-
"core.home.
|
|
40
|
-
"core.home.
|
|
41
|
-
"core.home.
|
|
34
|
+
"core.file.upload_failed": "Upload failed",
|
|
35
|
+
"core.home.account_capability": "Account features",
|
|
36
|
+
"core.home.account_capability_description": "Profile, app settings, and AI assistant access are included",
|
|
37
|
+
"core.home.cross_platform": "Cross-platform pages",
|
|
38
|
+
"core.home.cross_platform_description": "One codebase for H5 and WeChat Mini Program",
|
|
39
|
+
"core.home.demo_scope": "Demo scope",
|
|
42
40
|
"core.home.framework": "App framework",
|
|
43
41
|
"core.home.language": "Language",
|
|
44
|
-
"core.home.
|
|
45
|
-
"core.home.
|
|
46
|
-
"core.home.
|
|
47
|
-
"core.home.
|
|
48
|
-
"core.home.
|
|
49
|
-
"core.home.
|
|
50
|
-
"core.home.
|
|
51
|
-
"core.login.
|
|
52
|
-
"core.login.
|
|
53
|
-
"core.login.
|
|
54
|
-
"core.login.
|
|
55
|
-
"core.login.
|
|
56
|
-
"core.login.
|
|
57
|
-
"core.login.
|
|
42
|
+
"core.home.main_title": "Application Framework",
|
|
43
|
+
"core.home.state_management": "State management",
|
|
44
|
+
"core.home.static_home": "Static home",
|
|
45
|
+
"core.home.static_home_description": "This page presents framework details without business APIs",
|
|
46
|
+
"core.home.style_solution": "Styling",
|
|
47
|
+
"core.home.sub_title": "Shared navigation and account experience",
|
|
48
|
+
"core.home.tech_stack": "Technology stack",
|
|
49
|
+
"core.login.agree_prefix": "I have read and agree to the",
|
|
50
|
+
"core.login.agree_separator": "and",
|
|
51
|
+
"core.login.behavior_click": "Click the characters in order",
|
|
52
|
+
"core.login.behavior_loading": "Loading...",
|
|
53
|
+
"core.login.behavior_puzzle": "Drag the slider to complete the puzzle",
|
|
54
|
+
"core.login.behavior_rotate": "Drag the slider to rotate the inner image upright",
|
|
55
|
+
"core.login.bind_wechat": "Log in and link WeChat",
|
|
58
56
|
"core.login.captcha": "Enter verification code",
|
|
59
|
-
"core.login.
|
|
60
|
-
"core.login.
|
|
61
|
-
"core.login.
|
|
62
|
-
"core.login.
|
|
63
|
-
"core.login.
|
|
64
|
-
"core.login.
|
|
65
|
-
"core.login.
|
|
66
|
-
"core.login.loginSuccess": "Logged in",
|
|
57
|
+
"core.login.captcha_load_failed": "Failed to load verification code",
|
|
58
|
+
"core.login.captcha_type_missing": "Verification method is not configured",
|
|
59
|
+
"core.login.captcha_type_name": "Login verification method",
|
|
60
|
+
"core.login.captcha_type_response_missing": "Verification response did not include a type",
|
|
61
|
+
"core.login.captcha_write_failed": "Failed to save verification image",
|
|
62
|
+
"core.login.default_sub_title": "Welcome",
|
|
63
|
+
"core.login.login_success": "Logged in",
|
|
67
64
|
"core.login.password": "Enter password",
|
|
68
65
|
"core.login.privacy": "Privacy Policy",
|
|
69
|
-
"core.login.
|
|
70
|
-
"core.login.
|
|
66
|
+
"core.login.protocol_missing": "Terms of Service and Privacy Policy are not configured",
|
|
67
|
+
"core.login.protocol_prompt": "Read and accept the agreements first. Confirm to accept and continue.",
|
|
71
68
|
"core.login.service": "Terms of Service",
|
|
72
69
|
"core.login.tenant": "Enter tenant code",
|
|
73
|
-
"core.login.
|
|
74
|
-
"core.login.
|
|
75
|
-
"core.login.
|
|
70
|
+
"core.login.user_name": "Enter username or mobile number",
|
|
71
|
+
"core.login.user_name_mobile": "Enter username or mobile number",
|
|
72
|
+
"core.login.user_name_password": "Enter username and password",
|
|
76
73
|
"core.login.wechat": "Continue with WeChat",
|
|
77
|
-
"core.login.
|
|
78
|
-
"core.login.
|
|
74
|
+
"core.login.wechat_bind_tip": "This WeChat account is not linked. Log in to an existing account to link it.",
|
|
75
|
+
"core.login.wechat_failed": "WeChat login failed. Try again later.",
|
|
79
76
|
"core.navigation.home": "Home",
|
|
80
77
|
"core.navigation.error.access": "Invalid menu access mode: {access}",
|
|
81
|
-
"core.navigation.error.
|
|
78
|
+
"core.navigation.error.child_tab": "Only second-level app menus can be tabs: {name}",
|
|
82
79
|
"core.navigation.error.cycle": "Menu parent cycle detected: {name}",
|
|
83
80
|
"core.navigation.error.identity": "Menu id, name, or app/ path is invalid",
|
|
84
|
-
"core.navigation.error.
|
|
85
|
-
"core.navigation.error.
|
|
86
|
-
"core.navigation.error.
|
|
87
|
-
"core.navigation.error.
|
|
88
|
-
"core.navigation.error.
|
|
89
|
-
"core.navigation.error.
|
|
90
|
-
"core.navigation.error.
|
|
91
|
-
"core.navigation.error.
|
|
92
|
-
"core.navigation.error.
|
|
81
|
+
"core.navigation.error.item_object": "Menu item is not an object",
|
|
82
|
+
"core.navigation.error.list_missing": "Menu response does not contain a flat list",
|
|
83
|
+
"core.navigation.error.name_prefix": "Menu name must start with App: {name}",
|
|
84
|
+
"core.navigation.error.parent_invalid": "Menu parent id is invalid: {name}",
|
|
85
|
+
"core.navigation.error.parent_missing": "Menu parent id is missing: {name}",
|
|
86
|
+
"core.navigation.error.parent_not_found": "Menu parent was not found: {name}",
|
|
87
|
+
"core.navigation.error.response_object": "Menu response is not an object",
|
|
88
|
+
"core.navigation.error.root_tab": "Second-level app menu must be a tab: {name}",
|
|
89
|
+
"core.navigation.error.tab_count": "tabBar must contain 0 or 2-5 items",
|
|
93
90
|
"core.navigation.error.unique": "Menu id, name, and path must be unique",
|
|
94
|
-
"core.navigation.error.
|
|
91
|
+
"core.navigation.error.view_key": "Unregistered viewKey: {viewKey}",
|
|
95
92
|
"core.navigation.my": "My Account",
|
|
96
93
|
"core.navigation.protocol": "Agreement",
|
|
97
|
-
"core.protocol.
|
|
98
|
-
"core.protocol.
|
|
94
|
+
"core.protocol.load_failed": "Failed to load app configuration",
|
|
95
|
+
"core.protocol.not_configured": "{title} is not configured and cannot be viewed",
|
|
99
96
|
"core.protocol.privacy": "Privacy Policy",
|
|
100
97
|
"core.protocol.service": "Terms of Service",
|
|
101
98
|
"core.status.CONFIG_ERROR": "Invalid navigation configuration",
|
|
102
|
-
"core.status.
|
|
99
|
+
"core.status.forbidden": "Access denied",
|
|
103
100
|
"core.status.NOT_FOUND": "Page not found",
|
|
104
|
-
"core.status.
|
|
105
|
-
"core.status.
|
|
101
|
+
"core.status.offline": "Network unavailable",
|
|
102
|
+
"core.status.page_unavailable": "Page temporarily unavailable",
|
|
106
103
|
"core.status.loading": "Loading",
|
|
107
|
-
"core.webview.
|
|
108
|
-
"core.webview.
|
|
109
|
-
"core.webview.
|
|
104
|
+
"core.webview.embed_blocked": "The destination may block embedding on H5",
|
|
105
|
+
"core.webview.invalid_url": "No valid link was provided",
|
|
106
|
+
"core.webview.open_failed": "Unable to open link"
|
|
110
107
|
}
|
package/src/locales/es-ES.json
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common.action.cancel": "Cancelar",
|
|
3
|
-
"common.action.confirm": "
|
|
3
|
+
"common.action.confirm": "Confirmar",
|
|
4
4
|
"common.action.delete": "Eliminar",
|
|
5
5
|
"common.action.login": "Iniciar sesión",
|
|
6
6
|
"common.action.logout": "Cerrar sesión",
|
|
7
7
|
"common.action.new": "Nuevo",
|
|
8
|
-
"common.action.
|
|
9
|
-
"common.action.retry": "Inténtalo de nuevo",
|
|
8
|
+
"common.action.open_in_new_window": "Abrir en una ventana nueva",
|
|
10
9
|
"common.action.save": "Guardar",
|
|
11
|
-
"common.action.search": "Buscar",
|
|
12
10
|
"common.field.language": "Idioma",
|
|
13
11
|
"common.language.en-US": "Inglés",
|
|
14
12
|
"common.language.ja-JP": "Japonés",
|
|
@@ -17,94 +15,93 @@
|
|
|
17
15
|
"common.language.ko-KR": "Coreano",
|
|
18
16
|
"common.language.fr-FR": "Francés",
|
|
19
17
|
"common.language.es-ES": "Español",
|
|
20
|
-
"common.message.loading": "
|
|
21
|
-
"common.message.
|
|
22
|
-
"common.message.
|
|
23
|
-
"common.message.unknown": "No se puede procesar
|
|
24
|
-
"common.title.notice": "
|
|
25
|
-
"core.auth.
|
|
26
|
-
"core.auth.
|
|
27
|
-
"core.config.missing": "Falta la configuración
|
|
28
|
-
"core.crypto.
|
|
29
|
-
"core.crypto.
|
|
30
|
-
"core.crypto.
|
|
31
|
-
"core.crypto.
|
|
32
|
-
"core.crypto.
|
|
33
|
-
"core.crypto.
|
|
34
|
-
"core.crypto.
|
|
35
|
-
"core.crypto.unsupported": "El
|
|
36
|
-
"core.file.
|
|
37
|
-
"core.home.
|
|
38
|
-
"core.home.
|
|
39
|
-
"core.home.
|
|
40
|
-
"core.home.
|
|
41
|
-
"core.home.
|
|
42
|
-
"core.home.framework": "Marco de aplicación",
|
|
43
|
-
"core.home.language": "
|
|
44
|
-
"core.home.
|
|
45
|
-
"core.home.
|
|
46
|
-
"core.home.
|
|
47
|
-
"core.home.
|
|
48
|
-
"core.home.
|
|
49
|
-
"core.home.
|
|
50
|
-
"core.home.
|
|
51
|
-
"core.login.
|
|
52
|
-
"core.login.
|
|
53
|
-
"core.login.
|
|
54
|
-
"core.login.
|
|
55
|
-
"core.login.
|
|
56
|
-
"core.login.
|
|
57
|
-
"core.login.
|
|
58
|
-
"core.login.captcha": "
|
|
59
|
-
"core.login.
|
|
60
|
-
"core.login.
|
|
61
|
-
"core.login.
|
|
62
|
-
"core.login.
|
|
63
|
-
"core.login.
|
|
64
|
-
"core.login.
|
|
65
|
-
"core.login.
|
|
66
|
-
"core.login.
|
|
67
|
-
"core.login.
|
|
68
|
-
"core.login.
|
|
69
|
-
"core.login.
|
|
70
|
-
"core.login.
|
|
71
|
-
"core.login.
|
|
72
|
-
"core.login.
|
|
73
|
-
"core.login.
|
|
74
|
-
"core.login.
|
|
75
|
-
"core.login.
|
|
76
|
-
"core.login.
|
|
77
|
-
"core.login.
|
|
78
|
-
"core.login.wechatFailed": "Error al iniciar sesión en WeChat, inténtelo de nuevo más tarde.",
|
|
18
|
+
"common.message.loading": "Cargando",
|
|
19
|
+
"common.message.network_error": "Error de red. Comprueba tu conexión e inténtalo de nuevo.",
|
|
20
|
+
"common.message.request_error": "Error de solicitud",
|
|
21
|
+
"common.message.unknown": "No se puede procesar esta solicitud. Inténtalo de nuevo más tarde.",
|
|
22
|
+
"common.title.notice": "Aviso",
|
|
23
|
+
"core.auth.login_again": "Vuelve a iniciar sesión",
|
|
24
|
+
"core.auth.session_expired": "Tu sesión ha caducado. Vuelve a iniciar sesión.",
|
|
25
|
+
"core.config.missing": "Falta la configuración de la aplicación: {names}",
|
|
26
|
+
"core.crypto.base64_decode_unsupported": "La decodificación Base64 no está disponible en este entorno",
|
|
27
|
+
"core.crypto.base64_encode_unsupported": "La codificación Base64 no está disponible en este entorno",
|
|
28
|
+
"core.crypto.encrypt_failed": "Error al cifrar la contraseña",
|
|
29
|
+
"core.crypto.password_required": "La contraseña es obligatoria",
|
|
30
|
+
"core.crypto.password_too_long": "La contraseña supera la longitud permitida",
|
|
31
|
+
"core.crypto.public_key_invalid": "Clave pública no válida",
|
|
32
|
+
"core.crypto.random_failed": "Error al generar datos aleatorios",
|
|
33
|
+
"core.crypto.unsupported": "El cifrado de contraseñas no está disponible en este entorno",
|
|
34
|
+
"core.file.upload_failed": "Error de carga",
|
|
35
|
+
"core.home.account_capability": "Funciones de la cuenta",
|
|
36
|
+
"core.home.account_capability_description": "Incluye el perfil, la configuración de la aplicación y el acceso al asistente de IA",
|
|
37
|
+
"core.home.cross_platform": "Páginas multiplataforma",
|
|
38
|
+
"core.home.cross_platform_description": "Una sola base de código para H5 y el miniprograma de WeChat",
|
|
39
|
+
"core.home.demo_scope": "Alcance de la demostración",
|
|
40
|
+
"core.home.framework": "Marco de la aplicación",
|
|
41
|
+
"core.home.language": "idioma",
|
|
42
|
+
"core.home.main_title": "Ejemplo de marco de aplicación",
|
|
43
|
+
"core.home.state_management": "Gestión del estado",
|
|
44
|
+
"core.home.static_home": "Página de inicio estática",
|
|
45
|
+
"core.home.static_home_description": "Esta página presenta información del marco sin usar APIs de negocio",
|
|
46
|
+
"core.home.style_solution": "Estilos",
|
|
47
|
+
"core.home.sub_title": "Navegación compartida y experiencia de cuenta",
|
|
48
|
+
"core.home.tech_stack": "Pila tecnológica",
|
|
49
|
+
"core.login.agree_prefix": "He leído y acepto",
|
|
50
|
+
"core.login.agree_separator": "y",
|
|
51
|
+
"core.login.behavior_click": "Haz clic en los caracteres en orden",
|
|
52
|
+
"core.login.behavior_loading": "Cargando...",
|
|
53
|
+
"core.login.behavior_puzzle": "Arrastra el control deslizante para completar el rompecabezas",
|
|
54
|
+
"core.login.behavior_rotate": "Arrastra el control deslizante para orientar correctamente la imagen interior",
|
|
55
|
+
"core.login.bind_wechat": "Iniciar sesión y vincular WeChat",
|
|
56
|
+
"core.login.captcha": "Introduce el código de verificación",
|
|
57
|
+
"core.login.captcha_load_failed": "Error al cargar el código de verificación",
|
|
58
|
+
"core.login.captcha_type_missing": "El método de verificación no está configurado",
|
|
59
|
+
"core.login.captcha_type_name": "Método de verificación de inicio de sesión",
|
|
60
|
+
"core.login.captcha_type_response_missing": "La respuesta de verificación no incluye un tipo",
|
|
61
|
+
"core.login.captcha_write_failed": "Error al guardar la imagen de verificación",
|
|
62
|
+
"core.login.default_sub_title": "Bienvenido",
|
|
63
|
+
"core.login.login_success": "Sesión iniciada",
|
|
64
|
+
"core.login.password": "Introduce la contraseña",
|
|
65
|
+
"core.login.privacy": "Política de privacidad",
|
|
66
|
+
"core.login.protocol_missing": "Los términos del servicio y la política de privacidad no están configurados",
|
|
67
|
+
"core.login.protocol_prompt": "Lee y acepta primero los acuerdos. Confirma para aceptar y continuar.",
|
|
68
|
+
"core.login.service": "Términos del servicio",
|
|
69
|
+
"core.login.tenant": "Introduce el código del inquilino",
|
|
70
|
+
"core.login.user_name": "Introduce el nombre de usuario",
|
|
71
|
+
"core.login.user_name_mobile": "Introduce el nombre de usuario o el número de móvil",
|
|
72
|
+
"core.login.user_name_password": "Introduce el nombre de usuario y la contraseña",
|
|
73
|
+
"core.login.wechat": "Continuar con WeChat",
|
|
74
|
+
"core.login.wechat_bind_tip": "Esta cuenta de WeChat no está vinculada. Inicia sesión con una cuenta existente para vincularla.",
|
|
75
|
+
"core.login.wechat_failed": "Error de inicio de sesión de WeChat. Inténtalo de nuevo más tarde.",
|
|
79
76
|
"core.navigation.home": "Inicio",
|
|
80
77
|
"core.navigation.error.access": "Modo de acceso al menú no válido: {access}",
|
|
81
|
-
"core.navigation.error.
|
|
82
|
-
"core.navigation.error.cycle": "
|
|
83
|
-
"core.navigation.error.identity": "
|
|
84
|
-
"core.navigation.error.
|
|
85
|
-
"core.navigation.error.
|
|
86
|
-
"core.navigation.error.
|
|
87
|
-
"core.navigation.error.
|
|
88
|
-
"core.navigation.error.
|
|
89
|
-
"core.navigation.error.
|
|
90
|
-
"core.navigation.error.
|
|
91
|
-
"core.navigation.error.
|
|
92
|
-
"core.navigation.error.
|
|
93
|
-
"core.navigation.error.unique": "
|
|
94
|
-
"core.navigation.error.
|
|
95
|
-
"core.navigation.my": "
|
|
96
|
-
"core.navigation.protocol": "
|
|
97
|
-
"core.protocol.
|
|
98
|
-
"core.protocol.
|
|
99
|
-
"core.protocol.privacy": "
|
|
100
|
-
"core.protocol.service": "Términos
|
|
78
|
+
"core.navigation.error.child_tab": "Solo los menús de aplicación de segundo nivel pueden ser pestañas: {name}",
|
|
79
|
+
"core.navigation.error.cycle": "Se detectó un ciclo en los menús superiores: {name}",
|
|
80
|
+
"core.navigation.error.identity": "El id, nombre o ruta app/ del menú no es válido",
|
|
81
|
+
"core.navigation.error.item_object": "El elemento del menú no es un objeto",
|
|
82
|
+
"core.navigation.error.list_missing": "La respuesta del menú no contiene una lista plana",
|
|
83
|
+
"core.navigation.error.name_prefix": "El nombre del menú debe comenzar por App: {name}",
|
|
84
|
+
"core.navigation.error.parent_invalid": "El id del menú superior no es válido: {name}",
|
|
85
|
+
"core.navigation.error.parent_missing": "Falta el ID del menú superior: {name}",
|
|
86
|
+
"core.navigation.error.parent_not_found": "No se encontró el menú superior: {name}",
|
|
87
|
+
"core.navigation.error.response_object": "La respuesta del menú no es un objeto",
|
|
88
|
+
"core.navigation.error.root_tab": "El menú de aplicación de segundo nivel debe ser una pestaña: {name}",
|
|
89
|
+
"core.navigation.error.tab_count": "tabBar debe contener 0 o entre 2 y 5 elementos",
|
|
90
|
+
"core.navigation.error.unique": "El id, nombre y ruta del menú deben ser únicos",
|
|
91
|
+
"core.navigation.error.view_key": "viewKey no registrado: {viewKey}",
|
|
92
|
+
"core.navigation.my": "Mi cuenta",
|
|
93
|
+
"core.navigation.protocol": "Acuerdo",
|
|
94
|
+
"core.protocol.load_failed": "Error al cargar la configuración de la aplicación",
|
|
95
|
+
"core.protocol.not_configured": "{title} no está configurado y no se puede ver",
|
|
96
|
+
"core.protocol.privacy": "Política de privacidad",
|
|
97
|
+
"core.protocol.service": "Términos del servicio",
|
|
101
98
|
"core.status.CONFIG_ERROR": "Configuración de navegación no válida",
|
|
102
|
-
"core.status.
|
|
103
|
-
"core.status.NOT_FOUND": "
|
|
104
|
-
"core.status.
|
|
105
|
-
"core.status.
|
|
106
|
-
"core.status.loading": "
|
|
107
|
-
"core.webview.
|
|
108
|
-
"core.webview.
|
|
109
|
-
"core.webview.
|
|
99
|
+
"core.status.forbidden": "Acceso denegado",
|
|
100
|
+
"core.status.NOT_FOUND": "Página no encontrada",
|
|
101
|
+
"core.status.offline": "Red no disponible",
|
|
102
|
+
"core.status.page_unavailable": "Página temporalmente no disponible",
|
|
103
|
+
"core.status.loading": "Cargando",
|
|
104
|
+
"core.webview.embed_blocked": "El destino puede impedir la incrustación en H5",
|
|
105
|
+
"core.webview.invalid_url": "No se ha proporcionado un enlace válido",
|
|
106
|
+
"core.webview.open_failed": "No se pudo abrir el enlace"
|
|
110
107
|
}
|