From c9f4d7d91223e5606b0fc8e8466a401a9710bdf1 Mon Sep 17 00:00:00 2001 From: zypo Date: Thu, 30 Mar 2023 20:47:00 +0800 Subject: [PATCH] update en language --- README-zh_CN.md | 116 +++++ spug_web/src/locales/en/menu.js | 845 ++++++++++++++++++++++++++++++++ 2 files changed, 961 insertions(+) create mode 100644 README-zh_CN.md create mode 100644 spug_web/src/locales/en/menu.js diff --git a/README-zh_CN.md b/README-zh_CN.md new file mode 100644 index 0000000..486c2fb --- /dev/null +++ b/README-zh_CN.md @@ -0,0 +1,116 @@ +[English](./README.md) | 简体中文 + +

Spug

+ +
+ +Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。 + +
+ + +## 演示环境 + +演示地址:https://demo.spug.cc + +## 🔥推送助手 + +推送助手是一个集成了电话、短信、邮件、飞书、钉钉、微信、企业微信等多通道的消息推送平台,用户只需要调用一个简单的URL,就可以完成多通道的消息推送,点击体验:[https://push.spug.cc](https://push.spug.cc) + + +## 特性 + +- **批量执行**: 支持主机命令在线批量执行 +- **在线终端**: 主机支持浏览器在线终端登录 +- **文件管理**: 支持主机文件在线上传下载 +- **任务计划**: 支持在线配置Crontab、间隔等任务计划 +- **构建部署**: 支持应用自定义构建部署 +- **配置中心**: 支持KV、文本、json等格式的在线配置 +- **监控中心**: 支持站点、端口、进程、自定义等监控 +- **报警中心**: 支持短信、邮件、钉钉、微信等报警方式 +- **优雅美观**: 基于 Ant Design 的UI界面 +- **开源免费**: 前后端代码完全开源 + + +## 环境 + +* Python 3.6+ +* Django 2.2 +* Node 12.14 +* React 16.11 + +## 安装文档 + +- 官网地址:https://spug.cc/docs/install-docker/ +- 使用文档:https://spug.cc/docs/about-spug/ +- 更新日志:https://spug.cc/docs/change-log/ +- 常见问题:https://spug.cc/docs/faq/ +- 推送助手:https://push.spug.cc + + +## 推荐项目 +[Yearning — MYSQL 开源SQL语句审核平台](https://github.com/cookieY/Yearning) + + +## 预览 + +### 主机管理 +![image](https://cdn.spug.cc/img/3.0/host.jpg) + +#### 主机在线终端 +![image](https://cdn.spug.cc/img/3.0/web-terminal.jpg) + +#### 文件在线上传下载 +![image](https://cdn.spug.cc/img/3.0/file-manager.jpg) + +#### 主机批量执行 +![image](https://cdn.spug.cc/img/3.0/host-exec.jpg) +![image](https://cdn.spug.cc/img/3.0/host-exec2.jpg) + +#### 应用发布 +![image](https://cdn.spug.cc/img/3.0/deploy.jpg) + +#### 监控报警 +![image](https://cdn.spug.cc/img/3.0/monitor.jpg) + +#### 角色权限 +![image](https://cdn.spug.cc/img/3.0/user-role.jpg) + + +## 赞助 + + + + + + + + +
+ +
+ UCloud
+ 5 元/月云主机 +
+
+ +
+ 阿里云通用券
+ 300元限量免费领 +
+
+ +
+ 马哥教育
+ IT人高薪职业学院 +
+
+ +## 开发者群 +#### 关注Spug运维公众号加微信群、QQ群、获取最新产品动态 +
+ spug-qq +
+ +## License & Copyright +[AGPL-3.0](https://opensource.org/licenses/AGPL-3.0) diff --git a/spug_web/src/locales/en/menu.js b/spug_web/src/locales/en/menu.js new file mode 100644 index 0000000..9e3703c --- /dev/null +++ b/spug_web/src/locales/en/menu.js @@ -0,0 +1,845 @@ +const en_US = { + '首页': 'Home', + '编辑': 'Edit', + '删除': 'Delete', + '新建': 'Add', + '确定': 'Confirm', + '取消': 'Cancel', + '操作': 'Operation', + '暂无数据': 'No Data', + '状态': 'Status', + '操作': 'Operation', + '请输入': 'Please Input', + '请选择': 'Please Select', + '列展示': 'Column Display', + '重置': 'Reset', + '描述信息': 'Description', + '开启': 'Enable', + '关闭': 'Disable', + '钉钉': 'DingTalk', + '飞书': 'Feishu', + '企业微信': 'WeChat Work', + '保存成功': 'Save Successfully', + '小提示': 'Tips', + '移除': 'Remove', + '刷新': 'Refresh', + '删除确认': 'Delete Confirmation', + '确定要删除': 'Are you sure to delete', + '上一步': 'Previous', + '下一步': 'Next', + '禁用': 'Disable', + '启用': 'Enable', + '确定要禁用?': 'Are you sure to disable it?', + '确定要启用?': 'Are you sure to enable it?', + + + + // 工作台 + '工作台': 'Workplace', + '待办事项': 'To Do', + '系统公告': 'System Announcement', + '导航图标': 'Navigation Icon', + '导航标题': 'Navigation Title', + '导航描述': 'Navigation Description', + '导航链接': 'Navigation Link', + '添加链接(推荐最多三个)': 'Add Link (Recommended up to three)', + + + // Dashboard + 'Dashboard': 'Dashboard', + '应用': 'Application', + '主机': 'Host', + '任务': 'Task', + '监控': 'Monitor', + '报警趋势': 'Alarm Trend', + '过滤监控项, 默认所有': 'Filter monitoring items, default all', + '发布申请TOP20': 'Publish Apply TOP20', + '今日' : 'This Today', + '本周' : 'This Week', + '本月' : 'This Month', + + // 主机管理 + '主机管理': 'Host Management', + 'Web终端': 'Web Terminal', + '分组列表': 'Group List', + '浏览': 'Browse', + '排版': 'Layout', + '排版模式下,可通过拖拽分组实现快速排序,右键点击分组进行分组管理。': 'In the layout mode, you can drag the group to sort quickly, right-click the group to manage the group.', + '右键点击分组进行分组管理哦': 'Right-click the group to manage the group', + '新建主机': 'Add Host', + '阿里云': 'Aliyun', + '腾讯云': 'Tencent Cloud', + '导出': 'Export', + '验证': 'Verify', + '批量验证(同步)': 'Batch Verify(Sync)', + '默认密码': 'Default Password', + '选择主机': 'Select Host', + '未验证' : 'Unverified', + '将会覆盖已有的扩展信息(CPU、内存、磁盘等)': 'Will overwrite the existing extended information (CPU, memory, disk, etc.)', + '提交验证': 'Submit Verification', + '全部': 'All', + + '主机名称': 'Host Name', + 'IP地址': 'IP Address', + '配置信息': 'Configuration Information', + '到期信息': 'Expiration Information', + '备注信息': 'Remarks', + + + // 批量执行 + '批量执行': 'Host Batch Execution', + '执行任务': 'Execution Tasks', + '目标主机': 'Target Host', + '添加目标主机': 'Add Target Host', + '执行命令': 'Execution Command', + '使用全局变量': 'Use Global Variables', + '从执行模板中选择': 'Select from Execution Template', + '选择执行模板': 'Select Execution Template', + '开始执行': 'Start Execution', + '执行记录': 'Execution Record', + '多次相同的执行记录将会合并展示,每天自动清理,保留最近30条记录。': 'Multiple identical execution records will be merged and displayed. The records will be automatically cleared every day and the latest 30 records will be retained.', + '执行详情': 'Execution Details', + + // 模板管理 + '模版管理': 'Template Management', + '模板类型': 'Template Type', + '模版名称': 'Template Name', + '模板列表': 'Template List', + '模板内容': 'Template Content', + + + // 新建模板 + '新建模板': 'Add Template', + '添加类型': 'Add Type', + '添加模板类型': 'Add Template Type', + '脚本语言': 'Script Language', + '模板内容': 'Template Content', + '参数化': 'Parameterization', + '添加参数': 'Add Parameter', + '编辑参数': 'Edit Parameter', + '参数名': 'Parameter Name', + '参数的简短名称': 'A short name for the parameter', + '请输入参数名称' : 'Please enter the parameter name', + '变量名': 'Variable Name', + '在脚本使用的变量名称,固定前缀_SPUG_ + 输入的变量名,例如变量名name,则最终生成环境变量为 _SPUG_name': 'The variable name used in the script, the fixed prefix _SPUG_ + the entered variable name, for example, the variable name name, then the final generated environment variable is _SPUG_name', + '请输入变量名' : 'Please enter the variable name', + '参数类型': 'Parameter Type', + '不同类型展示的形式不同。': 'The form of display is different for different types.', + '文本框': 'Text Box', + '密码框': 'Password Box', + '下拉选择': 'Drop-down Selection', + '可选项': 'Optional Items', + '每项单独一行,每行可以用英文冒号分割前边是值后边是显示的内容。': 'Each item is on a separate line, and each line can be separated by an English colon in front of the value and the content displayed after it.', + '每行一个选项,例如:': 'One option per line, for example:', + '必填': 'Required', + '该参数是否为必填项': 'Whether the parameter is required', + '是': 'Yes', + '否': 'No', + '默认值': 'Default Value', + '提示信息': 'Prompt Information', + '会展示在参数的输入框下方': 'Will be displayed below the input box of the parameter', + '请输入该参数的帮助提示信息': 'Please enter the help prompt information for this parameter', + + // 文件分发 + '文件分发': 'File Distribution', + '数据源': 'Data Source', + '上传本地文件': 'Upload Local File', + '添加主机文件': 'Add Host File', + '分发目标': 'Distribution Target', + + '文件分发功能依赖rsync,大部分linux发行版默认都已安装,如未安装可通过「批量执行/执行任务」进行批量安装。': 'The file distribution function depends on rsync. Most Linux distributions are installed by default. If not installed, you can install it in batches through "Batch Execution / Execution Task".', + '目标路径': 'Target Path', + '分发记录': 'Distribution Record', + '每天自动清理,保留最近30条记录。': 'Automatically cleaned up every day, retaining the latest 30 records.', + '请添加数据源': 'Please add data source', + '本地上传': 'Local Upload', + '请输入目标路径': 'Please enter the target path', + '请选择目标主机': 'Please select the target host', + + + // 应用发布 + '应用发布': 'Application Release', + '发布配置': 'Release Configuration', + '应用名称': 'Application Name', + '应用列表': 'Application List', + '排序': 'Sort', + '标识符': 'Identifier', + '新建应用': 'Add Application', + '请输入应用名称,例如:订单服务': 'Please enter the application name, for example: order service', + '唯一标识符': 'Unique Identifier', + '请输入唯一标识符,例如:api_order': 'Please enter the unique identifier, for example: api_order', + '给应用设置的唯一标识符,会用于配置中心的配置生成。': 'The unique identifier set for the application will be used for the configuration generation of the configuration center.', + '请输入备注信息': 'Please enter the remarks', + '新建发布': 'New Release', + '克隆发布': 'Clone Release', + '选择发布方式': 'Select Release Method', + + '常规发布': 'General Release', + '由 Spug 来控制发布的主流程,你可以通过添加钩子脚本来执行额外的自定义操作。': 'Spug controls the main process of the release. You can add hook scripts to perform additional custom operations.', + '新建常规发布': 'Add General Release', + '基本配置': 'Basic Configuration', + '构建配置': 'Build Configuration', + '发布配置': 'Release Configuration', + '发布环境': 'Release Environment', + '可以建立多个环境,实现同一应用在不同环境里配置不同的发布流程。': 'You can create multiple environments to achieve different release processes for the same application in different environments.', + '请选择发布环境': 'Please select the release environment', + '该发布配置作用于哪些目标主机。': 'Which target', + 'Git仓库地址': 'Git Repository Address', + '请输入Git仓库地址': 'Please enter the Git repository address', + '私有仓库?': 'Private repository?', + '设置Git仓库': 'Set Git Repository', + '认证类型': 'Authentication Type', + '账户密码': 'Account Password', + '密钥': 'Key', + '仓库地址': 'Repository Address', + '账户': 'Account', + '密码': 'Password', + + '发布模式': 'Release Mode', + '串行即发布时一台完成后再发布下一台,期间出现异常则终止发布。并行则每个主机相互独立发布同时进行。': 'Serial is to complete one machine after the release of the next machine, and the exception is terminated during the release. Parallel is to release each machine independently and simultaneously.', + '并行': 'Parallel', + '串行': 'Serial', + '发布审核': 'Release Audit', + '开启后发布申请需要审核(审核权限在系统管理/角色管理/功能权限中配置)通过后才能发布。': 'After opening, the release application needs to be audited (the audit authority is configured in the system management / role management / function authority) before it can be released.', + '消息通知': 'Message Notification', + '应用审核及发布成功或失败结果通知,钉钉收不到通知?': 'Application audit and release success or failure result notification, DingDing can not receive notification?', + '文件过滤规则': 'File Filter Rules', + '请输入相对于项目根目录的文件路径,根据包含或排除规则进行打包。': 'Please enter the file path relative to the project root directory, and package according to the inclusion or exclusion rules.', + '包含': 'Include', + '排除': 'Exclude', + '仅打包匹配到的文件或目录,如果内容为空则打包所有。': 'Only package the matched files or directories. If the content is empty, all files will be packaged.', + '打包时排除匹配到的文件或目录,如果内容为空则不排除任何文件。': 'Exclude the matched files or directories when packaging. If the content is empty, no files will be excluded.', + '每行一条规则': 'One rule per line', + '代码检出前执行': 'Execute before code checkout', + '在运行 Spug 的服务器(或容器)上执行,当前目录为仓库源代码目录,可以执行任意自定义命令。': 'Execute on the server (or container) running Spug, the current directory is the repository source code directory, and you can execute any custom commands.', + '输入要执行的命令': 'Enter the command to execute', + '可使用内置全局变量和配置中心的配置变量,请避免在此修改已跟踪的文件,防止在检出代码时失败。': 'You can use the built-in global variables and configuration center configuration variables. Please avoid modifying the tracked files here to prevent failure when checking out the code.', + '代码检出后执行': 'Execute after code checkout', + '在运行 Spug 的服务器(或容器)上执行,当前目录为检出后的源代码目录,可执行任意自定义命令。': 'Execute on the server (or container) running Spug, the current directory is the source code directory after checkout, and you can execute any custom commands.', + '可使用内置全局变量和配置中心的配置变量,大多数情况下在此进行构建操作。': 'You can use the built-in global variables and configuration center configuration variables. In most cases, the build operation is performed here.', + '部署路径': 'Deployment Path', + '应用最终在主机上的部署路径,为了数据安全请确保该目录不存在,Spug 将会自动创建并接管该目录,可使用全局变量,例如:/www/$SPUG_APP_KEY。': 'The final deployment path of the application on the host. To ensure data security, please make sure that the directory does not exist. Spug will automatically create and take over the directory. You can use global variables, such as: /www/$SPUG_APP_KEY.', + '请输入部署目标路径': 'Please enter the deployment target path', + '存储路径': 'Storage Path', + '此目录用于存储应用的历史版本,可使用全局变量,例如:/data/repos/$SPUG_APP_KEY。': 'This directory is used to store the history version of the application. You can use global variables, such as: /data/repos/$SPUG_APP_KEY.', + '版本数量': 'Version Quantity', + '早于指定数量的构建纪录及历史版本会被删除,以释放磁盘空间。': 'Build records and history versions earlier than the specified number will be deleted to release disk space.', + '请输入保存的版本数量': 'Please enter the number of saved versions', + '应用发布前执行': 'Execute before application release', + '在发布的目标主机上运行,当前目录为目标主机上待发布的源代码目录,可执行任意自定义命令。': 'Run on the target host to be released. The current directory is the source code directory on the target host to be released, and you can execute any custom commands.', + '可使用内置全局变量和配置中心的配置变量,此时还未进行文件变更,可进行一些发布前置操作。': 'You can use the built-in global variables and configuration center configuration variables. At this time, the file changes have not been made, and you can perform some pre-release operations.', + '应用发布后执行': 'Execute after application release', + '在发布的目标主机上运行,当前目录为已发布的应用目录,可执行任意自定义命令。': 'Run on the target host to be released. The current directory is the published application directory, and you can execute any custom commands.', + '可使用内置全局变量和配置中心的配置变量,可以在发布后进行重启服务等操作。': 'You can use the built-in global variables and configuration center configuration variables. You can perform operations such as restarting services after release.', + '存储路径不能位于部署路径内': 'The storage path cannot be inside the deployment path', + '请输入发布保留版本数量': 'Please enter the number of versions to be retained', + + '自定义发布': 'Custom Release', + '你可以完全自己定义发布的所有流程和操作,Spug 负责按顺序依次执行你记录的动作。': 'You can completely define all the processes and operations of the release. Spug is responsible for executing the actions you recorded in sequence.', + 'Spug将遵循先本地后目标主机的原则,按照顺序依次执行添加的动作,例如:本地动作1 -> 本地动作2 -> 目标主机动作1 -> 目标主机动作2': 'Spug will follow the principle of local first and target host first, and execute the added actions in sequence, for example: local action 1 -> local action 2 -> target host action 1 -> target host action 2', + '执行的命令内可以使用发布申请中设置的环境变量 SPUG_RELEASE,一般可用于标记一次发布的版本号或提交ID等,在执行的脚本内通过使用 $SPUG_RELEASE 获取其值来执行相应操作。': 'The command can use the environment variable SPUG_RELEASE set in the release application, which can be used to mark the version number or commit ID of a release. In the script to be executed, use $SPUG_RELEASE to get its value to perform the corresponding operation.', + '可使用 内置全局变量 和 配置中心的配置变量。': 'You can use built-in global variables and configuration center configuration variables.', + '添加本地执行动作(在服务端本地执行)': 'Add local execution action (execute locally on the server)', + '添加目标主机执行动作(在部署目标主机执行)': 'Add target host execution action (execute on the deployment target host)', + '添加数据传输动作(仅能添加一个)': 'Add data transfer action (only one can be added)', + '本地动作': 'Local Action', + '执行内容': 'Execution Content', + '目标主机动作': 'Target Host Action', + '请输入要执行的动作': 'Please enter the action to be executed', + '数据传输': 'Data Transfer', + '数据来源': 'Data Source', + '本地路径': 'Local Path', + '请输入本地(部署spug的容器或主机)路径': 'Please enter the local (container or host) path of the deployment spug', + '过滤规则': 'Filter Rule', + '请输入逗号分割的过滤规则': 'Please enter a comma-separated filter rule', + '相对于输入的本地路径的文件路径,仅将匹配到文件传输至要发布的目标主机。': 'The file path relative to the input local path, only the matched file is transferred to the target host to be released.', + '支持模糊匹配,基于输入的本地路径匹配,匹配到文件将不会被传输。': 'Support fuzzy matching, based on the input local path matching, the matched file will not be transferred.', + '使用前请务必阅读官方文档': 'Please read the official documentation before use', + + // webhook + 'Webhook可以用来与Git结合实现触发后自动发布。': 'Webhook can be used to automatically release after triggering with Git.', + '触发方式': 'Trigger Mode', + '选择分支': 'Select Branch', + '仅指定分支的事件触发自动发布': 'Only the specified branch event triggers automatic release', + '根据你的网络情况,首次刷新可能会很慢,请耐心等待。': 'Depending on your network situation, the first refresh may be very slow, please wait patiently.', + '刷新失败?': 'Refresh failed?', + '请指定分支名称': 'Please specify the branch name', + '请在系统管理/系统设置/开放服务设置中设置。': 'Please set it in the system management / system settings / open service settings.', + '删除发布配置将会影响基于该配置所创建发布申请的发布和回滚功能,确定要删除【prod】的发布配置?': 'Deleting the release configuration will affect the release and rollback functions of the release applications created based on the configuration. Are you sure you want to delete the release configuration of [prod]?', + + + // 克隆发布 + '选择克隆对象': 'Select Clone Object', + '克隆的应用': 'Cloned Application', + '请选择要克隆的应用': 'Please select the application to be cloned', + '克隆的环境': 'Cloned Environment', + '请选择要克隆的环境': 'Please select the environment to be cloned', + '确定要删除应用': 'Are you sure you want to delete the application', + + + // 构建仓库 + '构建仓库': 'Building Repository', + '应用': 'Application', + '环境': 'Environment', + '构建版本列表': 'Build Version List', + '最新版本': 'Latest Version', + '构建时间': 'Build Time', + '构建人': 'Builder', + '版本': 'Version', + '构建': 'Build', + '日志': 'Log', + + '请输入快速检索应用': 'Please enter the quick search application name', + '该环境下还没有可发布或构建的应用哦,快去应用管理创建应用发布配置吧。': 'There are no applications that can be published or built in this environment. Go to the application management to create the application release configuration.', + '请输入快速检索应用': 'Please enter the quick search application name', + + // 新建构建 + '新建构建': 'New Build', + '构建版本': 'Build Version', + '请输入构建版本': 'Please enter the build version', + '选择分支/标签/版本': 'Select Branch/Tag/Version', + '选择': 'Select', + '构建控制台': 'Build Console', + + + //重新构建提示 + '重新构建提示': 'Rebuild Prompt', + '当前选择版本 已完成构建,再次构建将覆盖已有的数据,要再次重新构建吗?': 'The currently selected version has been built. Rebuilding will overwrite the existing data. Do you want to rebuild again?', + + // 版本 + '基本信息': 'Basic Information', + 'Git分支': 'Git Branch', + '内部版本': 'Internal Version', + + + + // 发布申请 + '发布申请': 'Publish Apply', + '发布环境': 'Publish Environment', + '应用名称': 'Application Name', + '申请时间': 'Apply Time', + '开始时间': 'Start Time', + '结束时间': 'End Time', + '批量删除': 'Batch Delete', + '申请列表': 'Apply List', + '新建申请': 'New Apply', + '待审核': 'Waiting Approval', + '待发布': 'Waiting Publish', + '发布成功': 'Success', + '发布异常': 'Exception', + '申请标题': 'Apply Title', + '申请人': 'Apply Person', + '申请时间': 'Apply Time', + '审核人': 'Approval Person', + '审核时间': 'Approval Time', + '发布人': 'Publish Person', + '发布时间': 'Publish Time', + '查看': 'View', + '发布': 'Publish', + '回滚': 'Rollback', + + + // 新建发布申请 + '新建发布申请': 'Add Publish Apply', + '可以通过创建多个发布申请单,选择主机分批发布': 'You can create multiple release application forms and select the host to publish in batches', + '定时发布': 'Timing Publish', + '在到达指定时间后自动发布,会有最多1分钟的延迟。': 'Automatically publish after the specified time, with a maximum delay of 1 minute.', + + // 确认发布方式 + '确认发布方式': 'Confirm Publish Mode', + '全量:发布所有主机(包含已成功的)。': 'Full: Publish all hosts (including successful ones).', + '补偿:仅发布上次发布失败的主机。': 'Compensation: Only publish the hosts that failed to publish last time.', + '灰度:选择指定主机发布。': 'Gray: Select the specified host to publish.', + '补偿': 'Compensation', + '灰度': 'Gray', + '全量': 'Full', + + // 回滚 + '新建回滚发布申请': 'New Rollback Publish Apply', + '选择版本': 'Select Version', + + + + // 流水线 + '流水线': 'Pipeline', + '流水线列表': 'Pipeline List', + '新建流水线': 'Add Pipeline', + '请选择节点模块': 'Please select the node module', + '选择模块': 'Select Module', + '模块配置': 'Module Configuration', + '内置模块': 'Built-in Module', + '节点名称': 'Node Name', + '请输入节点名称': 'Please enter the node name', + '执行条件': 'Execution Condition', + '当该节点为流程的起始节点时(无上游节点),该条件将会被忽略。': 'When this node is the starting node of the process (no upstream node), this condition will be ignored.', + '上游执行成功时': 'When the upstream is executed successfully', + '上游执行失败时': 'When the upstream is executed failed', + '总是执行': 'Always Execute', + 'Git仓库': 'Git Repository', + '请输入Git仓库地址': 'Please enter the Git repository address', + '访问凭据': 'Access Credentials', + '请选择访问凭据': 'Please select the access credentials', + '工作目录': 'Working Directory', + '请输入工作目录': 'Please enter the working directory', + + '动态参数': 'Dynamic Parameters', + '添加参数': 'Add Parameter', + '动态参数会在执行时弹窗提示用户输入,最终生成全局变量': 'Dynamic parameters will pop up a window to prompt the user to enter when executing, and finally generate global variables', + '编辑参数': 'Edit Parameters', + '参数名': 'Parameter Name', + '请输入参数名称': 'Please enter the parameter name', + '变量名': 'Variable Name', + '请输入变量名称': 'Please enter the variable name', + '在脚本使用的变量名称,固定前缀_SPUG_ + 输入的变量名,例如变量名name,则最终生成环境变量为 _SPUG_name': 'The variable name used in the script, fixed prefix _SPUG_ + the variable name entered, for example, the variable name name, then the final generated environment variable is _SPUG_name', + '参数类型': 'Parameter Type', + '请选择参数类型': 'Please select the parameter type', + '单行文本': 'Single Line Text', + '多行文本': 'Multi-line Text', + '密码输入框': 'Password Input Box', + '日期选择框': 'Date Selection Box', + '下拉单选': 'Drop-down Single Selection', + '可选项': 'Optional Items', + '每行一个可选项, 例如': 'One optional item per line, for example', + '张三': 'ZhangSan', + 'lisi:李四': 'lisi:LiSi', + '下拉多选': 'Drop-down Multiple Selection', + '上传文件(请使用数据上传控件)': 'Upload File (please use the data upload control)', + '必填': 'Required', + '该参数是否为必填项': 'Whether this parameter is required', + '请输入该参数的帮助提示信息': 'Please enter the help prompt information for this parameter', + + '静态参数': 'Static Parameters', + '静态参数生成固定的全局变量': 'Static parameters generate fixed global variables', + '输入变量名': 'Input Variable Name', + '输入变量值': 'Input Variable Value', + + '数据源路径': 'Data Source Path', + '请输入数据源路径': 'Please enter the data source path', + '数据源主机': 'Data Source Host', + + '上传路径(目录)': 'Upload Path (Directory)', + '文件将会上传到该目录下,同名文件将会被覆盖': 'The file will be uploaded to this directory, and the same name file will be overwritten', + '请输入上传路径': 'Please enter the upload path', + '文件类型限制': 'File Type Limit', + '限制上传的文件类型': 'Limit the file type to be uploaded', + '请输入接受上传的文件类型': 'Please enter the file type accepted for upload', + '文件大小限制': 'File Size Limit', + '请输入文件大小限制': 'Please enter the file size limit', + + + '数据上传': 'Data Upload', + '钉钉推送': 'DingTalk Push', + '推送助手': 'Push Assistant', + + + + + // 任务计划 + '任务计划': 'Task Schedule', + '类型': 'Type', + '名称': 'Name', + '任务列表': 'Task List', + '任务名称': 'Task Name', + '任务类型': 'Task Type', + '触发方式': 'Trigger Mode', + '最新状态': 'Latest Status', + '更新于': 'Update At', + '已激活': 'Activated', + '未激活': 'Not Activated', + '详情': 'Detail', + '更多': 'More', + '执行测试': 'Execute Test', + '激活任务': 'Activate Task', + '历史记录': 'History Record', + + + // 编辑任务 + '创建任务': 'Create Task', + '设置触发器': 'Set Trigger', + '选择执行对象': 'Select Execution Object', + '添加类型': 'Add Type', + '添加任务类型': 'Add Task Type', + '任务内容': 'Task Content', + '从模板添加': 'Add From Template', + '失败通知': 'Failure Notification', + '普通间隔': 'Normal Interval', + '间隔时间(秒)': 'Interval Time (seconds)', + '每隔指定n秒执行一次。': 'Execute once every n seconds.', + '一次性': 'One Time', + '执行时间': 'Execution Time', + '请选择执行时间': 'Please select execution time', + '仅在指定时间运行一次': 'Only run once at the specified time', + '执行规则': 'Execution Rule', + '兼容Cron风格,可参考官方例子。': 'Compatible with Cron style, you can refer to the official example.', + '生效时间': 'Effective Time', + '可选输入': 'Optional Input', + '定义的执行规则在到达该时间后生效。': 'The defined execution rule takes effect after reaching the specified time.', + '结束时间': 'End Time', + '执行规则在到达该时间后不再执行。': 'The execution rule will no longer be executed after reaching the specified time.', + + '监控告警': 'Monitor Alarm', + '监控项目': 'Monitor Item', + '添加监控项': 'Add Monitor Item', + '当监控项触发告警时执行。': 'Execute when the monitor item triggers an alarm.', + '执行对象': 'Execution Object', + '本机': 'Local', + '添加执行对象': 'Add Execution Object', + '本机即Spug服务运行所在的容器或主机。': 'Local is the container or host where Spug service is running.', + + // 执行测试 + '操作确认': 'Operation Confirmation', + '立即以串行模式执行该任务(不影响调度规则,且不会触发失败通知,测试执行会有120秒的超时,真实调度执行无此限制)?': 'Execute the task in serial mode immediately (does not affect the scheduling rules, and will not trigger failure notifications, the test execution will have a 120-second timeout, and the real scheduling execution has no such limit)?', + + // 激活任务 + '确定要激活任务': 'Are you sure you want to activate the task ', + + // 历史记录 + '任务执行记录': 'Task Execution Record', + '执行时间': 'Execution Time', + '执行状态': 'Execution Status', + '任务执行详情': 'Task Execution Details', + '执行成功': 'Execution Success', + '执行失败': 'Execution Failure', + '平均耗时(秒)': 'Average Time (seconds)', + '运行耗时': 'Running Time', + '返回状态': 'Return Status', + '非 0 则判定为失败': 'If it is not 0, it is considered a failure', + '执行输出': 'Execution Output', + + + + '配置中心': 'Configuration Center', + '环境管理': 'environmental Management', + '环境名称': 'environmental Name', + '环境列表': 'environmental List', + '排序': 'Sort', + '环境名称': 'environmental Name', + '标识符': 'Identifier', + '环境的唯一标识符,会在配置中心API中使用,具体请参考官方文档。': 'The unique identifier of the environment will be used in the configuration center API. For details, please refer to the official documentation.', + '请输入环境名称,例如:开发环境': 'Please enter the environment name, for example: development environment', + '请输入唯一标识符,例如:dev': 'Please enter a unique identifier, for example: dev', + '可以由字母、数字和下划线组成': 'Can be composed of letters, numbers and underscores', + + + + + '服务配置': 'Service Configuration', + '服务名称': 'Service Name', + '服务列表': 'Service List', + '请输入服务名称': 'Please enter the service name', + '服务可以理解为一些配置的集合': 'The service can be understood as a collection of some configurations', + '服务的唯一标识符,会作为生成配置的前缀。': 'The unique identifier of the service will be used as the prefix of the generated configuration.', + '请输入唯一标识符': 'Please enter a unique identifier', + '对比配置': 'Compare Configuration', + '通过对比配置功能,可以查看多个环境间的配置差异。': 'Through the comparison configuration function, you can view the configuration differences between multiple environments.', + '要对比的环境': 'The environment to be compared', + '隐藏相同配置': 'Hide the same configuration', + '视图': 'View', + '操作人': 'Operator', + '操作时间': 'Operation Time', + + '新增配置': 'Add Configuration', + '请输入变量名': 'Please enter the variable name', + '请输入变量值': 'Please enter the variable value', + '更新历史': 'Update History', + '更改历史记录': 'Change History Record', + '动作': 'Action', + + + + '应用配置': 'Application Configuration', + '应用名称': 'Application Name', + '应用列表': 'Application List', + '请输入应用名称,例如:订单服务': 'Please enter the application name, for example: order service', + '应用的唯一标识符,会作为生成配置的前缀。': 'The unique identifier of the application will be used as the prefix of the generated configuration.', + '请输入唯一标识符,例如:api_order': 'Please enter a unique identifier, for example: api_order', + '配置服务依赖': 'Configure Service Dependencies', + '应用依赖': 'Application Dependencies', + '设置依赖后,该应用将能够获取到所依赖应用的配置。': 'After setting the dependency, the application will be able to obtain the configuration of the dependent application.', + '服务依赖': 'Service Dependencies', + '所有服务': 'All Services', + '已选服务': 'Selected Services', + '设置依赖后,该应用将能够获取到所依赖服务的配置。': 'After setting the dependency, the application will be able to obtain the configuration of the dependent service.', + + + + // 监控中心 + '监控中心': 'Monitoring Center', + '总览': 'Overview', + '分组': 'Group', + '监控任务': 'Monitoring Task', + '监控分组': 'Monitoring Group', + '监控名称': 'Monitoring Name', + '频率': 'Frequency', + + // 新建任务 + '新建任务': 'Add Task', + '创建任务': 'Create Task', + '设置规则': 'Set Rules', + '监控分组': 'Monitoring Group', + '请选择监控分组': 'Please select monitoring group', + '添加监控分组': 'Add Monitoring Group', + '监控类型': 'Monitoring Type', + '返回HTTP状态码200-399则判定为正常,其他为异常': 'If the HTTP status code returned is 200-399, it is considered normal, and other status codes are considered abnormal', + '站点检测': 'Site Detection', + '端口检测': 'Port Detection', + 'Ping检测': 'Ping Detection', + '进程检测': 'Process Detection', + '自定义脚本': 'Custom Script', + '监控名称': 'Monitoring Name', + '请输入监控名称': 'Please enter monitoring name', + 'IP或域名,支持多个地址,每输入完成一个后按回车确认': 'IP or domain name, support multiple addresses, press Enter after each input is completed', + '检测端口': 'Detection Port', + '请输入端口': 'Please enter detection port', + '监控主机': 'Monitoring Host', + '进程名称': 'Process Name', + '请输入进程名称': 'Please enter process name', + '执行 ps -ef 看到的进程名称。': 'The process name seen by executing ps -ef.', + '脚本内容': 'Script Content', + '从模板添加': 'Add from template', + '监控地址': 'Monitoring Address', + 'http(s)://开头,支持多个地址,每输入完成一个后按回车确认': 'Start with http(s)://, support multiple addresses, press Enter after each input is completed', + '响应时间': 'Response Time', + '最长响应时间(毫秒),不设置则默认10秒超时': 'Longest response time (milliseconds), no setting defaults to 10 seconds timeout', + '请输入备注信息': 'Please enter remarks', + '执行测试': 'Execute Test', + '仅测试第一个监控地址': 'Only the first monitored address is tested', + '监控频率': 'Monitoring Frequency', + '1分钟': '1 minute', + '5分钟': '5 minutes', + '15分钟': '10 minutes', + '30分钟': '30 minutes', + '60分钟': '60 minutes', + '每隔N分钟检测一次': 'Check once every N minutes', + '报警阈值': 'Alarm Threshold', + '连续N次检测失败,则发送告警': 'If N consecutive checks fail, an alarm is sent', + '报警联系人组': 'Alarm Contact Group', + '已有联系组': 'Existing Contact Group', + '已选联系组': 'Selected Contact Group', + '去创建 报警联系人 和 联系人组。': 'Go to create Alarm Contact Person and Contact Group.', + '报警方式': 'Alarm Mode', + '微信': 'WeChat', + '短信': 'SMS', + '邮件': 'Mail', + '钉钉': 'DingTalk', + '企业微信': 'Enterprise WeChat', + '通道沉默': 'Channel Silence Period', + '10分钟': '10 minutes', + '3小时': '3 hours', + '6小时': '6 hours', + '12小时': '12 hours', + '24小时': '24 hours', + '相同的告警信息,沉默期内只发送一次。': 'The same alarm information is only sent once within the silence period.', + '报警方式 微信、短信、邮件需要配置调用凭据(系统设置/基本设置),请配置后再启用该报警方式。': 'Alarm mode WeChat, SMS, and mail need to configure the call credentials (system settings / basic settings), please configure and then enable this alarm mode.', + + + //报警中心 + '报警中心': 'Alarm Center', + '报警历史': 'Alert History', + '报警历史记录': 'Alert History Record', + '每天自动清理,仅保留最近30天的报警记录': 'Automatically cleaned up every day, only the latest 30 days of alarm records are retained', + '监控对象': 'Monitoring Object', + '持续时间': 'Duration', + '通知方式': 'Notification Mode', + '通知对象': 'Notification Object', + '发生时间': 'Occurrence Time', + '报警发生': 'Alarm Occurs', + '报警恢复': 'Alarm Recovery', + + // 报警联系人 + '报警联系人': 'Alarm Contact Person', + '姓名': 'Name', + '手机号': 'Mobile Number', + '邮箱': 'Mailbox', + + // 新建联系人 + '新建联系人': 'Add Contact', + '请输入联系人姓名': 'Please enter the name of the contact', + '请输入手机号': 'Please enter the mobile number', + '请输入邮箱地址': 'Please enter the email address', + '微信Token': 'WeChat Token', + '请输入微信token': 'Please enter the WeChat token', + '如何获取微信 Token ?': 'How to get WeChat Token?', + '钉钉收不到通知? 请参考官方文档': 'DingTalk does not receive notification? Please refer to the official document', + + + // 报警联系组 + '报警联系组': 'Alarm Contact Group', + '组名称': 'Group Name', + '成员': 'Member', + + '新建联系组': 'Add Contact Group', + '请输入联系组名称': 'Please enter the name of the contact group', + '选择联系人': 'Select Contact Person', + '已有联系人': 'Existing Contact Person', + '已选联系人': 'Selected Contact Person', + '全选所有': 'Select All', + '反选当页': 'Invert Current Page', + + + // 系统管理 + '系统管理': 'System Management', + '登录日志': 'Login log', + '账户名称': 'Account Name', + '登录IP': 'Login IP', + '登录记录': 'Login Record', + '登录时间': 'Login Time', + '登录方式': 'Login Mode', + '提示信息': 'Prompt Message', + '成功': 'Success', + '失败': 'Failure', + + + // 凭据管理 + '凭证管理': 'Credential Management', + '凭据列表': 'Credential List', + '凭据名称': 'Credential Name', + '可共享': 'Shareable', + '凭据类型': 'Credential Type', + '用户名': 'Username', + '新建凭证': 'Add Credential', + '密码': 'Password', + '请输入凭证名称': 'Please enter the credential name', + '私钥密码': 'Private Key Password', + '请输入私钥密码': 'Please enter the private key password', + '共享凭据': 'Share Credential', + + + // 账户管理 + '账户管理': 'Account management', + '正常': 'Normal', + '登录名': 'Login Name', + '账户列表': 'Account List', + '角色': 'Role', + '最近登录': 'Last Login', + '重置密码': 'Reset Password', + '新建账户': 'Add Account', + '请输入登录名': 'Please enter the login name', + '请输入姓名': 'Please enter the name', + '请输入密码': 'Please enter the password', + '至少8位包含数字、小写和大写字母。': 'At least 8 digits including numbers, lowercase and uppercase letters.', + '权限最大化原则,组合多个角色权限。': 'The principle of maximizing authority, combining multiple role permissions.', + '如果启用了MFA(两步验证)则该项为必填。什么是微信Token?': 'If MFA (two-step verification) is enabled, this item is required. What is WeChat Token?', + '重置登录密码': 'Reset Login Password', + '重置后的新密码': 'New password after reset', + + + // 角色管理 + '角色管理': 'Role Management', + '角色名称': 'Role Name', + '角色列表': 'Role List', + '关联账户': 'Associated Account', + '功能权限': 'Function Permission', + '发布权限': 'Publish Permission', + '主机权限': 'Host Permission', + '新建角色': 'Add Role', + '请输入角色名称': 'Please enter the role name', + '请输入角色备注信息': 'Please enter the role remarks', + '功能权限设置': 'Function Permission Settings', + '功能权限仅影响页面功能,管理应用的发布权限请在发布权限中设置。权限更改成功后会强制属于该角色的账户重新登录。': 'The function permission only affects the page function, and the release permission of the management application should be set in the Release permission. A successful permission change will force the account belonging to that role to log back in.', + '模块': 'Module', + '页面': 'Page', + '功能': 'Function', + '发布权限设置': 'Release Permission Settings', + '环境权限和应用权限都需要设置,应用的创建者将默认拥有该应用的发布权限。': 'Both environment permissions and application permissions need to be set, and the creator of the application will automatically have the release permission of the application.', + '环境权限': 'Environment Permission', + '应用权限': 'Application Permission', + '设置可发布至哪个环境': 'Set which environment can be released', + '所有环境': 'All Environments', + '已选环境': 'Selected Environment', + '设置可发布的应用': 'Set the application that can be released', + '所有应用': 'All Applications', + '已选应用': 'Selected Application', + '主机权限设置': 'Host Permission Settings', + '授权访问主机组': 'Authorize access to host group', + '添加授权主机组': 'Add authorized host group', + '请选择分组': 'Please select a group', + + // 系统设置 + '系统设置': 'system Setup', + '基本设置': 'Basic Settings', + '调用凭据': 'Call Credentials', + '如需要使用Spug的邮件、微信和MFA等内置服务,请关注公众号Spug在【我的】页面获取调用凭据,否则请留空。': 'If you need to use Spug built-in services such as email, wechat and MFA, please pay attention to Spug official account to obtain the calling credentials on the "My" page, otherwise please leave it blank', + '保存设置': 'Save Settings', + + '安全设置': 'Security Settings', + '访问IP校验': 'Access IP Verification', + '建议开启,校验是否获取了真实的访问者IP,防止因为增加的反向代理层导致基于IP的安全策略失效,当校验失败时会在登录时弹窗提醒。如果你在内网部署且仅在内网使用可以关闭该特性。为什么没有获取到真实IP?': 'It is recommended to turn on the verification to check whether the real IP of the visitor is obtained to prevent the IP-based security policy from becoming invalid due to the added reverse proxy layer. When the verification fails, a pop-up window will be displayed when logging in to remind. If you deploy it in the intranet and only use it in the intranet, you can turn off this feature. Why didn\'t I get the real IP?', + '登录IP绑定': 'Login IP Binding', + '强烈建议开启,当开启后会把登录凭证与IP进行绑定,当该登录凭证通过其他IP访问时将自动失效。如非必要,切勿关闭该特性!': 'It is strongly recommended to turn on the binding of login credentials and IP when it is turned on. When this login credential is accessed through other IP, it will automatically become invalid. Unless necessary, do not turn off this feature!', + '登录MFA(两步)认证': 'Login MFA (two-step) authentication', + '建议开启,登录时额外使用验证码进行身份验证。开启前至少要确保管理员账户配置了微信Token(账户管理/编辑),开启后未配置微信Token的账户将无法登录,什么是微信Token?': 'It is recommended to turn on the additional verification code for identity verification when logging in. Before turning on, at least make sure that the administrator account has configured the WeChat Token (Account Management / Edit). After turning on, the account that has not configured the WeChat Token will not be able to log in. What is WeChat Token?', + + 'LDAP设置': 'LDAP Settings', + 'LDAP服务地址': 'LDAP Service Address', + '例如': 'For example', + '绑定DN': 'Binding DN', + 'LDAP管理密码': 'LDAP Management Password', + '用户OU': 'User OU', + '用户过滤器': 'User Filter', + '登录名映射': 'Login Name Mapping', + '登录名映射代表将LDAP用户的某个属性映射到Spug账户的登录名中,例如cn对应登录名': 'The login name mapping represents mapping a certain attribute of the LDAP user to the login name of Spug account. For example, cn corresponds to the login name.', + '姓名映射': 'Name Mapping', + '姓名映射代表将LDAP用户的某个属性映射到Spug账户的姓名中,例如sn对应姓名': 'The name mapping represents mapping a certain attribute of the LDAP user to the name of the Spug account. For example, sn corresponds to the name.', + '测试连接': 'Testing connection', + '测试登录': 'Testing login', + 'LDAP用户测试登录': 'LDAP user test login', + 'LDAP登录名': 'LDAP Login name', + 'LDAP用户密码': 'LDAP user password', + '用户导入': 'User import', + 'Ldap用户导入': 'Ldap user import', + 'LDAP用户列表': 'LDAP user list', + '搜索LDAP用户': 'Search LDAP user', + '登录名': 'Login name', + '姓名': 'Name', + '是否存在': 'Is Exist', + '导入选中': 'Import selected', + '导入全部': 'Import all', + + '密钥设置': 'Key Settings', + '小提示': 'Tips', + '在这里你可以上传并使用已有的密钥对,没有上传密钥的情况下,Spug会在首次添加主机时自动生成密钥对': 'Here you can upload and use an existing key pair. If no key is uploaded, Spug will generate a key pair when adding a host for the first time', + '公钥': 'Public key', + '请输入公钥': 'Please enter the public key', + '一般位于': 'Usually located at', + '私钥': 'Private key', + '请输入私钥内容': 'Please enter the private key content', + '报警服务设置': 'Alarm Service Settings', + '邮件服务': 'Mail Service', + '用于通过邮件方式发送报警信息': 'Used to send alarm information by email', + '邮件服务器': 'Mail Server', + '端口': 'Port', + '邮箱账号': 'Mailbox account', + '密码/授权码': 'Password / Authorization Code', + '请输入对应的密码或授权码': 'Please enter the corresponding password or authorization code', + '发件人昵称': 'Sender Nickname', + '请输入发件人昵称': 'Please enter the sender nickname', + '用于通过邮件方式发送报警信息': 'Used to send alarm information by email', + '测试邮件服务': 'Test Mail Service', + '开放服务设置': 'Open Service Settings', + '访问凭据': 'Access credentials', + '请输入自定义凭证': 'Please enter a custom credential', + '该自定义凭据用于访问平台的开放服务,例如:配置中心的配置获取API等,其他开放服务请查询官方文档。': 'This custom credential is used to access the open services of the platform, such as the configuration retrieval API of the configuration center. For other open services, please refer to the official documentation.', + + '关于': 'About', + '操作系统': 'Operating system', + 'Python版本': 'Python version', + 'Django版本': 'Django version', + 'Spug API版本': 'Spug API version', + 'Spug Web版本': 'Spug Web version', + '官网文档': 'Official website documentation', + '更新日志': 'Update log', + + + + // 个人中心 + '个人中心': 'Personal Center', + '微信Token': 'WeChat Token', + '什么是微信Token?': 'What is WeChat Token?', + '修改密码': 'Change Password', + '原密码': 'Old Password', + '新密码': 'New Password', + '至少8位包含数字、小写和大写字母。': 'At least 8 digits including numbers, lowercase and uppercase letters.', + '再次确认': 'Confirm again', + +} \ No newline at end of file