@lazycatcloud/lzc-cli 1.3.12 → 1.3.14
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/changelog.md +21 -0
- package/lib/app/apkshell.js +37 -40
- package/lib/app/index.js +187 -186
- package/lib/app/lpk_build.js +345 -358
- package/lib/app/lpk_create.js +136 -155
- package/lib/app/lpk_create_generator.js +77 -66
- package/lib/app/lpk_devshell.js +444 -533
- package/lib/app/lpk_devshell_docker.js +48 -47
- package/lib/app/lpk_installer.js +120 -123
- package/lib/appstore/index.js +245 -214
- package/lib/appstore/login.js +146 -143
- package/lib/appstore/prePublish.js +101 -100
- package/lib/appstore/publish.js +256 -256
- package/lib/box/index.js +82 -77
- package/lib/config/index.js +59 -54
- package/lib/debug_bridge.js +282 -330
- package/lib/docker/index.js +84 -86
- package/lib/i18n/README.md +25 -0
- package/lib/i18n/index.js +37 -0
- package/lib/i18n/locales/en/translation.json +252 -0
- package/lib/i18n/locales/zh/translation.json +252 -0
- package/lib/shellapi.js +122 -146
- package/lib/utils.js +539 -552
- package/package.json +6 -8
- package/scripts/cli.js +81 -77
- package/scripts/lzc-docker-compose.js +34 -33
- package/scripts/lzc-docker.js +34 -33
package/lib/docker/index.js
CHANGED
|
@@ -1,105 +1,103 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import logger from 'loglevel';
|
|
3
|
+
import { DebugBridge } from '../debug_bridge.js';
|
|
4
|
+
import shellApi from '../shellapi.js';
|
|
5
|
+
import { isFileExist, isUserApp, loadFromYaml } from '../utils.js';
|
|
6
|
+
import { t } from '../i18n/index.js';
|
|
6
7
|
|
|
7
8
|
function dockerMiddleware(argv, yargs) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
if (argv.$0 == 'lzc-docker' || argv.$0 == 'lzc-docker-compose') {
|
|
10
|
+
argv.dockerArgs = argv._;
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
argv.dockerArgs = [];
|
|
15
|
+
// 找到 'docker-compose' 或者 ’docker’ 在参数中的位置
|
|
16
|
+
let index = argv._.indexOf('docker-compose');
|
|
17
|
+
if (index === -1) {
|
|
18
|
+
index = argv._.indexOf('docker');
|
|
19
|
+
}
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
if (index !== -1 && index < argv._.length - 1) {
|
|
22
|
+
// 获取原始的命令行参数
|
|
23
|
+
const originalArgs = argv._;
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
// 将 'docker-compose' 或者 ’docker’ 之后的所有参数(包括选项)移到 dockerArgs 数组中
|
|
26
|
+
argv.dockerArgs = originalArgs.slice(index + 1);
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
// 从原始参数中移除这些参数
|
|
29
|
+
argv._ = argv._.slice(0, index + 1);
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
// 移除已经被处理的参数
|
|
32
|
+
for (const arg of argv.dockerArgs) {
|
|
33
|
+
delete argv[arg];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return argv;
|
|
36
37
|
}
|
|
37
38
|
|
|
38
39
|
function builder(args) {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
// 禁用严格模式,允许未知参数
|
|
41
|
+
return args
|
|
42
|
+
.parserConfiguration({
|
|
43
|
+
'unknown-options-as-args': true,
|
|
44
|
+
})
|
|
45
|
+
.middleware(dockerMiddleware)
|
|
46
|
+
.strict(false);
|
|
46
47
|
}
|
|
47
48
|
|
|
48
|
-
export function singleLzcDockerCommand(commandName =
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
49
|
+
export function singleLzcDockerCommand(commandName = 'docker') {
|
|
50
|
+
return {
|
|
51
|
+
command: commandName,
|
|
52
|
+
desc: t('lzc_cli.lib.docker.index.docker_cmd_desc', '微服应用 docker 管理'),
|
|
53
|
+
builder: builder,
|
|
54
|
+
handler: async (args) => {
|
|
55
|
+
logger.debug('args: ', args);
|
|
56
|
+
await shellApi.init();
|
|
57
|
+
const bridge = new DebugBridge();
|
|
58
|
+
await bridge.init();
|
|
59
|
+
logger.debug('docker', args.dockerArgs);
|
|
60
|
+
await bridge.lzcDocker(args.dockerArgs);
|
|
61
|
+
},
|
|
62
|
+
};
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
export function singleLzcDockerComposeCommand(commandName =
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
65
|
+
export function singleLzcDockerComposeCommand(commandName = 'docker-compose') {
|
|
66
|
+
return {
|
|
67
|
+
command: commandName,
|
|
68
|
+
desc: t('lzc_cli.lib.docker.index.docker_compose_cmd_desc', '微服应用 docker-compose 管理'),
|
|
69
|
+
builder: builder,
|
|
70
|
+
handler: async (args) => {
|
|
71
|
+
logger.debug('args: ', args);
|
|
72
|
+
await shellApi.init();
|
|
73
|
+
let manifest = null;
|
|
74
|
+
try {
|
|
75
|
+
for (let name of ['lzc-manifest.yml', 'manifest.yml']) {
|
|
76
|
+
const mpath = path.join(process.cwd(), name);
|
|
77
|
+
if (isFileExist(mpath)) {
|
|
78
|
+
manifest = loadFromYaml(mpath);
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
} catch (e) {
|
|
83
|
+
logger.debug('load manifest: ', e);
|
|
84
|
+
}
|
|
85
|
+
const pkgId = manifest ? manifest['package'] : '';
|
|
86
|
+
const userApp = manifest ? isUserApp(manifest) : false;
|
|
86
87
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
await bridge.lzcDockerCompose(options)
|
|
98
|
-
}
|
|
99
|
-
}
|
|
88
|
+
const bridge = new DebugBridge();
|
|
89
|
+
await bridge.init();
|
|
90
|
+
const options = args.dockerArgs;
|
|
91
|
+
if (pkgId != '' && !options.some((o) => o == '--project-directory')) {
|
|
92
|
+
options.unshift('--project-directory', `/lzcapp/run/lzc-docker/compose/${pkgId}${userApp ? '/' + shellapi.uid : ''}`);
|
|
93
|
+
}
|
|
94
|
+
logger.debug('docker-compose', options.join(' '));
|
|
95
|
+
await bridge.lzcDockerCompose(options);
|
|
96
|
+
},
|
|
97
|
+
};
|
|
100
98
|
}
|
|
101
99
|
|
|
102
100
|
export function lzcDockerCommand(program) {
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
program.command(singleLzcDockerCommand());
|
|
102
|
+
program.command(singleLzcDockerComposeCommand());
|
|
105
103
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
* @Author: Bin
|
|
3
|
+
* @Date: 2025-08-25
|
|
4
|
+
* @FilePath: /lzc-cli/lib/i18n/README.md
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
# NodeJS i18n key 命名规范
|
|
8
|
+
|
|
9
|
+
> ⚠️ 请 **严格按照规范** 写 i18n key
|
|
10
|
+
|
|
11
|
+
1. 不得以数字或字符开头,符号仅允许包含 `.` 和 `_`,全部为小写字母,单词之间以 `_` 分隔,驼峰命名(路径、文件名或变量)声明为 i18n key 时强制以 `_` 作为单词之间分割符号。
|
|
12
|
+
2. prefix: 不同 nuxt 项目、模块或层需要增加不同前缀(lzc_site、lzc_as、lzc_plg)
|
|
13
|
+
3. layer: 根据 **代码文件路径** 严格区分 key 层级每层以 `.` 做为分割符,其中字符命名严格遵守第一条规范,例如 `components/about/AdvertiseJobOffers.tsx` 相应的 key 层为 `components.about.advertise_job_offers`
|
|
14
|
+
4. suffix: 后缀严格遵守第一条规范(尽量简短描述该文案在界面中的意义)每个 **key 后缀** 在单个文件中不可重复
|
|
15
|
+
5. i18n key 组成部分 `${prefix}.${layer}.${suffix}`,示例: `lzc_site.components.about.advertise_job_offers.text_hello`
|
|
16
|
+
6. 其他注意事项: 项目中的 asset 资源、icons 资源尽量使用 **英文** 命名文件以及文件路径名称
|
|
17
|
+
|
|
18
|
+
来自 lzc-cli 项目的 `scripts/cli.js` 完整示例:
|
|
19
|
+
|
|
20
|
+
```js
|
|
21
|
+
// scripts/cli.js
|
|
22
|
+
import { t } from "../lib/i18n/index.js";
|
|
23
|
+
|
|
24
|
+
t("lzc_cli.script.cli.help_msg_content", "使用 lzc-cli help 查看更多帮助");
|
|
25
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: Bin
|
|
3
|
+
* @Date: 2025-12-05
|
|
4
|
+
* @FilePath: /lzc-cli/lib/i18n/index.js
|
|
5
|
+
*/
|
|
6
|
+
import { join } from "path"
|
|
7
|
+
import i18next, { t } from "i18next"
|
|
8
|
+
import backend from "i18next-fs-backend"
|
|
9
|
+
|
|
10
|
+
import { fileURLToPath } from "url"
|
|
11
|
+
import { dirname } from "path"
|
|
12
|
+
|
|
13
|
+
const __filename = fileURLToPath(import.meta.url)
|
|
14
|
+
const __dirname = dirname(__filename)
|
|
15
|
+
|
|
16
|
+
i18next.use(backend).init({
|
|
17
|
+
debug: false,
|
|
18
|
+
initAsync: false,
|
|
19
|
+
fallbackLng: "zh",
|
|
20
|
+
ns: ["translation"],
|
|
21
|
+
preload: ["en", "zh"],
|
|
22
|
+
backend: {
|
|
23
|
+
loadPath: join(__dirname, "locales/{{lng}}/{{ns}}.json")
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
// i18next.changeLanguage("zh")
|
|
28
|
+
// console.log(
|
|
29
|
+
// "i18next.resolvedLanguage",
|
|
30
|
+
// __dirname,
|
|
31
|
+
// i18next.language,
|
|
32
|
+
// i18next.resolvedLanguage
|
|
33
|
+
// )
|
|
34
|
+
|
|
35
|
+
export default i18next
|
|
36
|
+
|
|
37
|
+
export { t }
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lzc_cli": {
|
|
3
|
+
"lib": {
|
|
4
|
+
"app": {
|
|
5
|
+
"apkshell": {
|
|
6
|
+
"trigger_apk_build_failed": "Error applying request button:",
|
|
7
|
+
"trigger_apk_build_failed_tips": "Error requesting application generation! Use --apk=n to stop generating APK",
|
|
8
|
+
"trigger_apk_build_ok_tips": "The APK build task has been created successfully. If you need to use the Android version, please wait patiently for about 1 minute.",
|
|
9
|
+
"trigger_apk_build_tips": "The APK build task has been created successfully. If you need to use the Android version, please wait patiently for about 1 minute.",
|
|
10
|
+
"trigger_apk_default_app_name": "Lazy cat application",
|
|
11
|
+
"trigger_apk_empty_appid": "Appid is required!"
|
|
12
|
+
},
|
|
13
|
+
"index": {
|
|
14
|
+
"lpk_cmd_app_desc": "Application management",
|
|
15
|
+
"lpk_cmd_build_args_file_desc": "Specify the lzc-build.yml file to build",
|
|
16
|
+
"lpk_cmd_build_args_output_desc": "output file",
|
|
17
|
+
"lpk_cmd_build_desc": "build",
|
|
18
|
+
"lpk_cmd_create_desc": "Create Lazycat Cloud Application",
|
|
19
|
+
"lpk_cmd_devshell_args_apk_desc": "Whether to generate APK(y/n)",
|
|
20
|
+
"lpk_cmd_devshell_args_config_desc": "devshell configuration file",
|
|
21
|
+
"lpk_cmd_devshell_args_contentdir_desc": "Also package the contentdir directory specified in lzc-build.yml",
|
|
22
|
+
"lpk_cmd_devshell_args_force_desc": "force rebuild",
|
|
23
|
+
"lpk_cmd_devshell_desc": "Enter the development environment of the box",
|
|
24
|
+
"lpk_cmd_index_rags_apk_desc": "Whether to generate APK(y/n)",
|
|
25
|
+
"lpk_cmd_init_desc": "Initialize Lazycat Cloud application (providing the most basic template)",
|
|
26
|
+
"lpk_cmd_init_success": "Application initialization completed",
|
|
27
|
+
"lpk_cmd_install_desc": "Deploy the application to the device. pkgPath can be a path, or https://, http:// request address. If not filled in, it will default to lpk in the current directory.",
|
|
28
|
+
"lpk_cmd_log_args_follow_desc": "Continuous output",
|
|
29
|
+
"lpk_cmd_log_desc": "View the logs of an app",
|
|
30
|
+
"lpk_cmd_project_desc": "Project management",
|
|
31
|
+
"lpk_cmd_status_desc": "Get the status of an application",
|
|
32
|
+
"lpk_cmd_uninstall_desc": "Uninstall an app from the device",
|
|
33
|
+
"lpk_cmd_uninstall_rags_delete_data_desc": "Delete App Data ⚠️ Warning: App data cannot be recovered after deletion"
|
|
34
|
+
},
|
|
35
|
+
"lpk_build": {
|
|
36
|
+
"archive_folder_to_exist_fail": "{{appDir}} folder does not exist",
|
|
37
|
+
"exec_ai_pos_service_not_exist": "{{aiPodService}} does not exist",
|
|
38
|
+
"exec_browser_extension_not_exist": "{{browserExtension}} does not exist",
|
|
39
|
+
"exec_build_fail": "Build failed",
|
|
40
|
+
"exec_output_lpk_path": "Output lpk package {{ path }}",
|
|
41
|
+
"exec_pkgout_not_exist": "{{pkgout}} does not exist",
|
|
42
|
+
"exec_skip_buildscript": "Skip execution of buildscript",
|
|
43
|
+
"exec_skip_copy_contentdir": "Skip copying contentdir content",
|
|
44
|
+
"fetch_icon_to_icon_empty_fail": "icon icon is not specified",
|
|
45
|
+
"fetch_icon_to_icon_extname_fail": "The icon icon is not a .png file",
|
|
46
|
+
"fetch_icon_to_icon_file_not_exist_fail": "Icon {{iconPath}} does not exist",
|
|
47
|
+
"fetch_icon_to_icon_is_png": "Icon {{iconPath}} Verification successful (png format)",
|
|
48
|
+
"fetch_icon_to_icon_not_is_png_fail": "Icon {{iconPath}} failed to verify (not in png format)",
|
|
49
|
+
"fetch_lzc_deploy_param_to_exist": "Detect lzc-deploy-params.yml in the current directory",
|
|
50
|
+
"fetch_lzc_deploy_param_to_not_exist": "deploy_params {{deployParamsPath}} does not exist",
|
|
51
|
+
"get_manifest_package_name_fail": "{{package}} contains illegal characters, please use the correct package name format (java package name format), such as: cloud.lazycat.apps.video",
|
|
52
|
+
"get_manifest_subdomain_empty": "The subdomain field under the application module cannot be empty",
|
|
53
|
+
"local_ip_is_windows_fail": "Currently Windows does not support using LocalIP reverse generation"
|
|
54
|
+
},
|
|
55
|
+
"lpk_create": {
|
|
56
|
+
"ask_lpk_info_message": "Please enter the app ID, for example app-demo1",
|
|
57
|
+
"ask_lpk_info_validate_fail": "A combination of lowercase letters or numbers or - is allowed, but does not start with a number, and cannot start or end with -, nor can there be consecutive dashes --",
|
|
58
|
+
"choose_template_message": "Select project build template",
|
|
59
|
+
"exec_init_project_name_exist_tips": "! The same directory has been detected and the old directory has been automatically renamed to {{renamedFileName}}",
|
|
60
|
+
"exec_init_project_success_tips": "✨ Initialize Lazycat Cloud application",
|
|
61
|
+
"exec_init_project_tips": "✨ Initialize project {{name}}"
|
|
62
|
+
},
|
|
63
|
+
"lpk_create_generator": {
|
|
64
|
+
"app_create_success_tip": "✨ Lazycat Microservice application has been created successfully!\n✨ After completing the following steps, you can enter container development\n cd {{name}}\n lzc-cli project devshell",
|
|
65
|
+
"template_config_vue3_green": "⚙️ After entering the application container, execute the following command:\n npm install\n npm rundev\n🚀 Launch the application:\n Enter the LCMD client launcher page and click the application icon to test the application.",
|
|
66
|
+
"write_file_tree_create_file": "Create file {{filePath}}"
|
|
67
|
+
},
|
|
68
|
+
"lpk_devshell": {
|
|
69
|
+
"devshell_build_dockerfile_tips": "Start creating the Dockerfile",
|
|
70
|
+
"devshell_build_field_fail": "In devshell mode, the devshell field must be specified",
|
|
71
|
+
"devshell_build_image_for_box_tips": "Start building the {{label}} image in the box from {{tempDir}}",
|
|
72
|
+
"devshell_build_label_image_box_tips": "Start building the {{label}} image in the box",
|
|
73
|
+
"devshell_build_routes_not_exists_fail": "In devshell mode, routes content must be specified",
|
|
74
|
+
"devshell_build_skip_dependencies_tips": "dependencies content is empty, skip dependencies",
|
|
75
|
+
"sync_project_code_tips": "Sync code:",
|
|
76
|
+
"sync_project_rsync_tips": "rsync synchronization failed"
|
|
77
|
+
},
|
|
78
|
+
"lpk_devshell_docker": {
|
|
79
|
+
"not_exists_dockerfile_fail": "Dockerfile not found"
|
|
80
|
+
},
|
|
81
|
+
"lpk_installer": {
|
|
82
|
+
"deploy_not_exists_builder_fail": "deploy must pass a builder",
|
|
83
|
+
"deploy_start_tips": "Start deploying the application",
|
|
84
|
+
"install_form_url_download_lpk_done_tips": "Download completed",
|
|
85
|
+
"install_form_url_download_lpk_tips": "Start downloading lpk",
|
|
86
|
+
"install_from_dir_scan_tips": "Installing the automatically scanned lpk package ({{lpk}})",
|
|
87
|
+
"install_from_file_done_tips": "👉 Please visit https://{{subdomain}}.{{boxname}}.heiyu.space in your browser",
|
|
88
|
+
"install_from_file_fail_tips": "Installation failed: {{error}}",
|
|
89
|
+
"install_from_file_gen_apk_error": "Failed to generate APK:",
|
|
90
|
+
"install_from_file_gen_apk_error_tips": "Failed to generate APK, use lzc-cli project devshell --apk n to ignore the error",
|
|
91
|
+
"install_from_file_gen_apk_tips": "Whether to generate APK:",
|
|
92
|
+
"install_from_file_login_tips": "👉 And log in using your Microservice username and password",
|
|
93
|
+
"install_from_file_lpk_path_fail": "install must specify a pkg path",
|
|
94
|
+
"install_from_file_lpk_path_not_exists_fail": "{{pkgPath}} does not exist",
|
|
95
|
+
"install_from_file_manifest_not_exists_app_subdomain_fail": "The `application.subdomain` field in manifest.yml cannot be empty",
|
|
96
|
+
"install_from_file_start_tips": "Start installing the app",
|
|
97
|
+
"install_from_file_success_tips": "Installation successful!"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"appstore": {
|
|
101
|
+
"index": {
|
|
102
|
+
"appstore_cmd_desc": "App store",
|
|
103
|
+
"copy_image_cmd_desc": "Copy the image to the official source of Lazycat Microservice",
|
|
104
|
+
"login_cmd_desc": "Log in",
|
|
105
|
+
"my_images_cmd_desc": "View the list of uploaded images",
|
|
106
|
+
"pre_publish_cmd_changelog_desc": "Change log",
|
|
107
|
+
"pre_publish_cmd_changelog_file_desc": "Change log file",
|
|
108
|
+
"pre_publish_cmd_desc": "Publish to closed beta",
|
|
109
|
+
"pre_publish_cmd_gid_desc": "Internal test group ID",
|
|
110
|
+
"publish_cmd_changelog_desc": "Change log",
|
|
111
|
+
"publish_cmd_changelog_file_desc": "Update log file",
|
|
112
|
+
"publish_cmd_changelog_files_desc": "Updating log localization language files lang:path",
|
|
113
|
+
"publish_cmd_changelog_lang_desc": "Update log language identifier, identified by the current shell locale by default",
|
|
114
|
+
"publish_cmd_desc": "Post to store"
|
|
115
|
+
},
|
|
116
|
+
"login": {
|
|
117
|
+
"login_success_tips": "Login successful!"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"box": {
|
|
121
|
+
"index": {
|
|
122
|
+
"add_public_key_cmd_apply_tips": "Please click the link below, or copy it to open in the browser, click Apply to complete the addition\n-> https://dev.{{boxname}}.heiyu.space/auth?key={{pk}}",
|
|
123
|
+
"add_public_key_cmd_desc": "Add public-key to developer tools",
|
|
124
|
+
"box_cmd_desc": "Box management",
|
|
125
|
+
"default_cmd_desc": "Output the current default box name",
|
|
126
|
+
"list_cmd_box_not_exist_tips": "No box found, add one now!",
|
|
127
|
+
"list_cmd_desc": "View box list",
|
|
128
|
+
"list_cmd_table_box_name": "name",
|
|
129
|
+
"list_cmd_table_is_admin_login": "Is it an administrator?",
|
|
130
|
+
"list_cmd_table_is_default_box": "Whether to use the default box",
|
|
131
|
+
"list_cmd_table_login_user": "Login user",
|
|
132
|
+
"list_cmd_table_status": "state",
|
|
133
|
+
"list_cmd_verbose_desc": "View detailed output",
|
|
134
|
+
"switch_cmd_desc": "Set default box"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"config": {
|
|
138
|
+
"index": {
|
|
139
|
+
"config_cmd_desc": "Configuration management",
|
|
140
|
+
"config_cmd_disable_check_version_tips": "Disable version update detection for lzc-cli",
|
|
141
|
+
"config_cmd_item_tips": "Get the configuration with key foo",
|
|
142
|
+
"config_cmd_list_tips": "List all configurations",
|
|
143
|
+
"del_cmd_desc": "Delete configuration",
|
|
144
|
+
"del_cmd_success": "Deleted {{key}} successfully!",
|
|
145
|
+
"get_cmd_desc": "Get configuration",
|
|
146
|
+
"set_cmd_desc": "Set configuration",
|
|
147
|
+
"set_cmd_key_or_value_is_empty_fail": "key and value cannot be empty",
|
|
148
|
+
"set_cmd_success_tips": "{{key}} configuration successful!"
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"debug_bridge": {
|
|
152
|
+
"backend_version_020_no_match_tips": "It is detected that your current lzc-cli version is newer, and the 'Lazy Cat Developer Tools' is relatively old. Please go to the Microservice store to upgrade the 'Lazy Cat Developer Tools' first, and click the link below to jump:\n\n-> https://appstore.{{boxname}}.heiyu.space/#/shop/detail/cloud.lazycat.developer.tools",
|
|
153
|
+
"build_image_fail": "Failed to build image in LCMD",
|
|
154
|
+
"can_public_key_resolve_fail": "Domain name resolution failed, please check whether the proxy software intercepts *.heiyu.space",
|
|
155
|
+
"check_dev_tools_fail_tips": "Failed to detect the Lazycat developer tools. Please check whether your current network or the Lazycat LCMD client is started normally.",
|
|
156
|
+
"check_dev_tools_not_exist_tips": "It is detected that you have not installed the 'Lazy Cat Developer Tools', please search and install it in the store first.\nClick to jump directly to https://appstore.{{boxname}}.heiyu.space/#/shop/detail/cloud.lazycat.developer.tools\nClick to open the application https://dev.{{boxname}}.heiyu.space to view the application status",
|
|
157
|
+
"common_exec_fail": "Error executing command {{cmd}} {{args}}\n{{stdout}}\n{{stderr}}",
|
|
158
|
+
"common_start_log": "Execute command {{cmd}} {{args}}",
|
|
159
|
+
"install_fail": "install failed",
|
|
160
|
+
"ssh_apply_grant_not_credible_tips": "The public key of your current machine has not been added to the trust list of Microservice ({{boxname}}). Please use the Microservice administrator account to visit the following address in the browser to automatically add the public key you selected to the trust list. (All operations are only performed in your LCMD, and no data, including this development machine, will be leaked outside your LCMD)\n\n-> https://{{domain}}/auth?key={{pk}}",
|
|
161
|
+
"ssh_apply_grant_not_exist_tips": "It is detected that your current environment has not added the ssh public key to the ‘Lazy Cat Developer Tools’. Please select the type of public key you need to add."
|
|
162
|
+
},
|
|
163
|
+
"docker": {
|
|
164
|
+
"index": {
|
|
165
|
+
"docker_cmd_desc": "LCMD application docker management",
|
|
166
|
+
"docker_compose_cmd_desc": "LCMD application docker-compose management"
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"login": {
|
|
170
|
+
"ask_user_info_password_prompt": "Please enter your login password",
|
|
171
|
+
"ask_user_info_username_prompt": "Please enter your login username",
|
|
172
|
+
"auto_login_interactive_login": "Token error, try to log in automatically",
|
|
173
|
+
"auto_login_success": "appstore has logged in",
|
|
174
|
+
"interactive_login_fail_tips": "Login failed, {{message}}",
|
|
175
|
+
"interactive_login_user_passwd_error_tips": "The account or password is wrong, please re-enter!",
|
|
176
|
+
"re_login_message_prompt": "It is detected that you have logged in. Do you want to log in again (y/n):",
|
|
177
|
+
"tips_first_login_tips": "Please log in to the Lazycat Microservice community account, account registration and developer permission application address: https://developer.lazycat.cloud/manage"
|
|
178
|
+
},
|
|
179
|
+
"pre_publish": {
|
|
180
|
+
"ask_changelog_prompt": "Fill in the changelog content",
|
|
181
|
+
"ask_group_prompt": "Select internal testing group",
|
|
182
|
+
"publish_done_tips": "The application was submitted successfully! Please check it in the internal beta tool",
|
|
183
|
+
"publish_fail_tips": "Application submission failed: {{message}}",
|
|
184
|
+
"publish_gid_not_exist_tips": "Please select internal testing group",
|
|
185
|
+
"publish_pending_tips": "Submitting for internal testing..."
|
|
186
|
+
},
|
|
187
|
+
"publish": {
|
|
188
|
+
"ask_changelog_prompt": "Fill in the changelog content ({{locale}})",
|
|
189
|
+
"ask_publish_app_info_author_prompt": "Please enter the author's name (optional for original applications):",
|
|
190
|
+
"ask_publish_app_info_name_prompt": "Please enter application name:",
|
|
191
|
+
"ask_publish_app_info_name_validate": "Application name cannot be empty",
|
|
192
|
+
"ask_publish_app_info_package_prompt": "Please enter the application bundle identifier:",
|
|
193
|
+
"ask_publish_app_info_package_validate": "The application bundle identifier does not comply with the specification. It is recommended to use reverse domain name notation.",
|
|
194
|
+
"ask_publish_app_info_source_prompt": "Please enter the application source (original applications are optional):",
|
|
195
|
+
"ask_whether_create_lpk_continue_prompt": "It is detected that your current application has not been created in Lazycat LCMD. Do you want to use the information in the current installation package to create it? [y/n]",
|
|
196
|
+
"ask_whether_create_lpk_fail_tips": "The application you currently want to publish has not been created in the 'Developer Center of Lazy Mao Microservice'. Please follow the steps below to create it:\n\n1. Open the browser https://developer.lazycat.cloud/manage\n2. Log in to your developer account\n3. After logging in successfully, you can view the applications in your account and manage your applications.\n4. Click 'Add' and fill in the information based on your application.\n5. After filling in, click Create\n6. After successful creation, you can publish the application through 'lzc-cli appstore publish'",
|
|
197
|
+
"ask_whether_create_lpk_success_tips": "Created {{package}} application successfully!",
|
|
198
|
+
"check_app_id_exist_fail_tips": "Check whether there is an error in the application. The error status code is:",
|
|
199
|
+
"pre_check_fail_tips": "Unable to release a devshell version, please re-build using `lzc-cli project build`",
|
|
200
|
+
"pre_check_icon_not_exist_tips": "The icon must exist and be in png format",
|
|
201
|
+
"publish_done_tips": "The application was submitted successfully! Please wait for the review results",
|
|
202
|
+
"publish_fail_tips": "An error occurred when publishing the application. The error status code is:",
|
|
203
|
+
"publish_lpk_fail_tips": "LPK file upload failed, err: {{message}}",
|
|
204
|
+
"publish_pending_tips": "Submitting for review..."
|
|
205
|
+
},
|
|
206
|
+
"shellapi": {
|
|
207
|
+
"init": {
|
|
208
|
+
"conf_file_not_exist_warn": "WARN:: The file in the following path cannot be read, and the client cannot be connected to automatically determine the box name and box user.\n\n{{addrFile}} The connection address of the box\n{{credFile}} The connection credential of the box\n\nHowever, it can be specified using environment variables:\n - BOX_NAME=foo specifies the name of the box\n - BOX_UID=bar specifies the user of the box\n\nNOTE: In the mode of specifying environment variables, some interfaces are still inaccessible. For a better development experience, it is recommended to start the client in the same host environment as possible.",
|
|
209
|
+
"proxy_env_warn": "WARN:: The current terminal environment has configured HTTP_PROXY proxy, which may cause access to Lazycat LCMD to fail. If the function is not affected, you can ignore this warning."
|
|
210
|
+
},
|
|
211
|
+
"init_box_info": {
|
|
212
|
+
"box_not_exists_fail": "There is no default box information. Please use lzc-cli box switch to set the default box information first.",
|
|
213
|
+
"boxes_list_fail": "Failed to obtain box information, please check whether the client is connected!"
|
|
214
|
+
},
|
|
215
|
+
"set_default_box": {
|
|
216
|
+
"box_not_exists_fail": "{{boxname}} box does not exist"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
"utils": {
|
|
220
|
+
"check_nodejs_version_no_match_tips": "It is detected that your current nodejs version {{version}} does not match. The minimum nodejs version required by lzc-cli is {{requiredVersion}}. Please upgrade.",
|
|
221
|
+
"check_rsync_exec_version_log": "Execute the command rsync --version",
|
|
222
|
+
"check_rsync_not_install_fail": "Please check whether rsync is installed and whether the path is correct!",
|
|
223
|
+
"check_rsync_version_fail": "Please check if rsync is installed correctly, specifying rsync --version is wrong",
|
|
224
|
+
"check_rsync_version_no_match_fail": "The current rsync version is: {{versionMatch}}, the required rsync version is: 3.2.0+",
|
|
225
|
+
"check_rsync_version_print_log": "The current rsync version is: {{versionMatch}}",
|
|
226
|
+
"ensure_directory_exists_fail": "Error creating folder {{filePath}}: {{err}}",
|
|
227
|
+
"find_ssh_public_key_dir_info_get_fail": "Cannot query .ssh directory",
|
|
228
|
+
"find_ssh_public_key_dir_not_exist_fail": "The .ssh directory does not exist, please ensure that ssh is installed and ssh-keygen generates the public key",
|
|
229
|
+
"find_ssh_public_key_files_not_exits_fail": "No .pub public key was found in the .ssh directory. Please use ssh-keygen to generate",
|
|
230
|
+
"find_ssh_public_key_not_is_dir_fail": ".ssh currently exists, but is not a normal directory. Please ensure that ssh is installed and ssh-keygen generates the public key.",
|
|
231
|
+
"get_latest_version_fail_tips": "Request {{url}} failed, error: {{err}}",
|
|
232
|
+
"get_latest_version_success_tips": "Already in the latest version: {{latestVersion}}",
|
|
233
|
+
"get_latest_version_tips": "The latest version of {{pkgName}} detected is {{latestVersion}}, use 'npm i -g {{pkgName}}@{{latestVersion}}' to upgrade to the latest version!",
|
|
234
|
+
"resolve_domain_fail_tips": "Unable to resolve domain name {{domain}}:",
|
|
235
|
+
"select_ssh_public_key_prompt": "Select the public key to use",
|
|
236
|
+
"unzip_sync_not_exist_fail": "{{zipPath}} The file cannot be found",
|
|
237
|
+
"unzip_sync_not_exist_file_log": "The {{entry}} file was not found in the compressed package."
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
"script": {
|
|
241
|
+
"cli": {
|
|
242
|
+
"help_msg_content": "Use lzc-cli help to see more help"
|
|
243
|
+
},
|
|
244
|
+
"lzc_docker": {
|
|
245
|
+
"help_msg_content": "Use lzc-cli help to see more help"
|
|
246
|
+
},
|
|
247
|
+
"lzc_docker_compose": {
|
|
248
|
+
"help_msg_content": "Use lzc-cli help to see more help"
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|