diff --git a/awx/locale/django.pot b/awx/locale/django.pot index fa98e93d6b..1e6a35b052 100644 --- a/awx/locale/django.pot +++ b/awx/locale/django.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-09 15:09+0000\n" +"POT-Creation-Date: 2020-11-09 16:26+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/awx/locale/en-us/LC_MESSAGES/django.po b/awx/locale/en-us/LC_MESSAGES/django.po index fa98e93d6b..1e6a35b052 100644 --- a/awx/locale/en-us/LC_MESSAGES/django.po +++ b/awx/locale/en-us/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-11-09 15:09+0000\n" +"POT-Creation-Date: 2020-11-09 16:26+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/awx/locale/zh/LC_MESSAGES/django.po b/awx/locale/zh/LC_MESSAGES/django.po index 7827966e11..c3e9c2a916 100644 --- a/awx/locale/zh/LC_MESSAGES/django.po +++ b/awx/locale/zh/LC_MESSAGES/django.po @@ -3,12 +3,11 @@ # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-28 21:45+0000\n" +"POT-Creation-Date: 2020-10-29 17:31+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,35 +26,42 @@ msgid "" "again." msgstr "用户在需要再次登录前处于不活跃状态的秒数。" -#: awx/api/conf.py:17 awx/api/conf.py:26 awx/api/conf.py:34 awx/api/conf.py:50 -#: awx/api/conf.py:62 awx/api/conf.py:74 awx/sso/conf.py:97 awx/sso/conf.py:108 +#: awx/api/conf.py:17 awx/api/conf.py:27 awx/api/conf.py:35 awx/api/conf.py:51 +#: awx/api/conf.py:64 awx/api/conf.py:76 awx/sso/conf.py:97 awx/sso/conf.py:108 #: awx/sso/conf.py:120 awx/sso/conf.py:135 msgid "Authentication" msgstr "身份验证" -#: awx/api/conf.py:24 +#: awx/api/conf.py:19 awx/api/conf.py:53 awx/main/conf.py:269 +#: awx/main/conf.py:281 awx/main/conf.py:294 awx/main/conf.py:516 +#: awx/main/conf.py:529 awx/main/conf.py:542 awx/main/conf.py:557 +#: awx/main/conf.py:695 awx/main/conf.py:777 awx/sso/conf.py:518 +msgid "seconds" +msgstr "秒" + +#: awx/api/conf.py:25 msgid "Maximum number of simultaneous logged in sessions" msgstr "同步登录会话的最大数量" -#: awx/api/conf.py:25 +#: awx/api/conf.py:26 msgid "" "Maximum number of simultaneous logged in sessions a user may have. To " "disable enter -1." msgstr "用户可以具有的同步登录会话的最大数量。要禁用,请输入 -1。" -#: awx/api/conf.py:32 +#: awx/api/conf.py:33 msgid "Enable HTTP Basic Auth" msgstr "启用 HTTP 基本身份验证" -#: awx/api/conf.py:33 +#: awx/api/conf.py:34 msgid "Enable HTTP Basic Auth for the API Browser." msgstr "为 API 浏览器启用 HTTP 基本身份验证。" -#: awx/api/conf.py:43 +#: awx/api/conf.py:44 msgid "OAuth 2 Timeout Settings" msgstr "OAuth 2 超时设置" -#: awx/api/conf.py:44 +#: awx/api/conf.py:45 msgid "" "Dictionary for customizing OAuth 2 timeouts, available items are " "`ACCESS_TOKEN_EXPIRE_SECONDS`, the duration of access tokens in the number " @@ -65,11 +71,11 @@ msgid "" "expired access tokens, in the number of seconds." msgstr "自定义 OAuth 2 超时的字典,可用项为 `ACCESS_TOKEN_EXPIRE_SECONDS`(访问令牌的持续时间,单位为秒数),`AUTHORIZATION_CODE_EXPIRE_SECONDS`(授权代码的持续时间,单位为秒数),以及 `REFRESH_TOKEN_EXPIRE_SECONDS`(访问令牌过期后刷新令牌的持续时间,单位为秒数)。" -#: awx/api/conf.py:57 +#: awx/api/conf.py:59 msgid "Allow External Users to Create OAuth2 Tokens" msgstr "允许外部用户创建 OAuth2 令牌" -#: awx/api/conf.py:58 +#: awx/api/conf.py:60 msgid "" "For security reasons, users from external auth providers (LDAP, SAML, SSO, " "Radius, and others) are not allowed to create OAuth2 tokens. To change this " @@ -77,11 +83,11 @@ msgid "" "setting is toggled off." msgstr "出于安全考虑,不允许来自外部验证提供商(LDAP、SAML、SSO、Radius 等)的用户创建 OAuth2 令牌。要更改此行为,请启用此设置。此设置关闭时不会删除现有令牌。" -#: awx/api/conf.py:71 +#: awx/api/conf.py:73 msgid "Login redirect override URL" msgstr "登录重定向覆写 URL" -#: awx/api/conf.py:72 +#: awx/api/conf.py:74 msgid "" "URL to which unauthorized users will be redirected to log in. If blank, " "users will be sent to the Tower login page." @@ -126,27 +132,27 @@ msgstr "没有提供查询字符串字段名称。" msgid "Invalid {field_name} id: {field_id}" msgstr "无效的 {field_name} ID:{field_id}" -#: awx/api/filters.py:333 +#: awx/api/filters.py:338 msgid "" "Cannot apply role_level filter to this list because its model does not use " "roles for access control." msgstr "无法将 role_level 过滤器应用到此列表,因为其模型不使用角色来进行访问控制。" -#: awx/api/generics.py:182 +#: awx/api/generics.py:181 msgid "" "You did not use correct Content-Type in your HTTP request. If you are using " "our REST API, the Content-Type must be application/json" msgstr "您没有在 HTTP 请求中使用正确的 Content-Type。如果您使用的是 REST API,Content-Type 必须是 application/json" -#: awx/api/generics.py:623 awx/api/generics.py:685 +#: awx/api/generics.py:647 awx/api/generics.py:709 msgid "\"id\" field must be an integer." msgstr "“id”字段必须是整数。" -#: awx/api/generics.py:682 +#: awx/api/generics.py:706 msgid "\"id\" is required to disassociate" msgstr "需要“id”才能解除关联" -#: awx/api/generics.py:733 +#: awx/api/generics.py:757 msgid "{} 'id' field is missing." msgstr "{} 'id' 字段缺失。" @@ -218,7 +224,7 @@ msgstr "Playbook 运行" msgid "Command" msgstr "命令" -#: awx/api/serializers.py:318 awx/main/models/unified_jobs.py:547 +#: awx/api/serializers.py:318 awx/main/models/unified_jobs.py:546 msgid "SCM Update" msgstr "SCM 更新" @@ -248,1139 +254,1161 @@ msgid "" "saved to the database." msgstr "表明该统一作业生成的所有事件是否已保存到数据库中。" -#: awx/api/serializers.py:878 +#: awx/api/serializers.py:880 msgid "Write-only field used to change the password." msgstr "用于更改密码只写字段。" -#: awx/api/serializers.py:880 +#: awx/api/serializers.py:882 msgid "Set if the account is managed by an external service" msgstr "设定帐户是否由外部服务管理" -#: awx/api/serializers.py:907 +#: awx/api/serializers.py:909 msgid "Password required for new User." msgstr "新用户需要密码。" -#: awx/api/serializers.py:992 +#: awx/api/serializers.py:994 #, python-format msgid "Unable to change %s on user managed by LDAP." msgstr "无法对 LDAP 管理的用户更改 %s。" -#: awx/api/serializers.py:1088 +#: awx/api/serializers.py:1090 msgid "Must be a simple space-separated string with allowed scopes {}." msgstr "必须是一个使用允许范围 {} 的以空格分隔的简单字符串。" -#: awx/api/serializers.py:1186 +#: awx/api/serializers.py:1188 msgid "Authorization Grant Type" msgstr "授权授予类型" -#: awx/api/serializers.py:1188 awx/main/credential_plugins/azure_kv.py:30 -#: awx/main/models/credential/__init__.py:960 +#: awx/api/serializers.py:1190 awx/main/credential_plugins/azure_kv.py:30 +#: awx/main/models/credential/__init__.py:972 msgid "Client Secret" msgstr "客户端机密" -#: awx/api/serializers.py:1191 +#: awx/api/serializers.py:1193 msgid "Client Type" msgstr "客户端类型" -#: awx/api/serializers.py:1194 +#: awx/api/serializers.py:1196 msgid "Redirect URIs" msgstr "重定向 URI" -#: awx/api/serializers.py:1197 +#: awx/api/serializers.py:1199 msgid "Skip Authorization" msgstr "跳过授权" -#: awx/api/serializers.py:1303 +#: awx/api/serializers.py:1306 msgid "Cannot change max_hosts." msgstr "无法更改 max_hosts。" -#: awx/api/serializers.py:1336 +#: awx/api/serializers.py:1339 msgid "This path is already being used by another manual project." msgstr "此路径已经被另一个手动项目使用。" -#: awx/api/serializers.py:1338 +#: awx/api/serializers.py:1341 +msgid "SCM branch cannot be used with archive projects." +msgstr "SCM 分支不能用于存档项目。" + +#: awx/api/serializers.py:1343 msgid "SCM refspec can only be used with git projects." msgstr "SCM refspec 只能用于 git 项目。" -#: awx/api/serializers.py:1415 +#: awx/api/serializers.py:1420 msgid "" "One or more job templates depend on branch override behavior for this " "project (ids: {})." msgstr "一个或多个作业模板依赖于此项目的分支覆写行为(ids:{})。" -#: awx/api/serializers.py:1422 +#: awx/api/serializers.py:1427 msgid "Update options must be set to false for manual projects." msgstr "手动项目必须将更新选项设置为 false。" -#: awx/api/serializers.py:1428 +#: awx/api/serializers.py:1433 msgid "Array of playbooks available within this project." msgstr "此项目中可用的 playbook 数组。" -#: awx/api/serializers.py:1447 +#: awx/api/serializers.py:1452 msgid "" "Array of inventory files and directories available within this project, not " "comprehensive." msgstr "此项目中可用的清单文件和目录数组,不全面。" -#: awx/api/serializers.py:1495 awx/api/serializers.py:3048 -#: awx/api/serializers.py:3260 +#: awx/api/serializers.py:1500 awx/api/serializers.py:3089 +#: awx/api/serializers.py:3301 msgid "A count of hosts uniquely assigned to each status." msgstr "分配给每个状态的唯一主机数量。" -#: awx/api/serializers.py:1498 awx/api/serializers.py:3051 +#: awx/api/serializers.py:1503 awx/api/serializers.py:3092 msgid "A count of all plays and tasks for the job run." msgstr "作业运行中的所有 play 和作业数量。" -#: awx/api/serializers.py:1625 +#: awx/api/serializers.py:1630 msgid "Smart inventories must specify host_filter" msgstr "智能清单必须指定 host_filter" -#: awx/api/serializers.py:1713 +#: awx/api/serializers.py:1722 #, python-format msgid "Invalid port specification: %s" msgstr "无效的端口规格:%s" -#: awx/api/serializers.py:1724 +#: awx/api/serializers.py:1733 msgid "Cannot create Host for Smart Inventory" msgstr "无法为智能清单创建主机" -#: awx/api/serializers.py:1808 +#: awx/api/serializers.py:1751 +msgid "A Group with that name already exists." +msgstr "有这个名称的组已存在。" + +#: awx/api/serializers.py:1822 +msgid "A Host with that name already exists." +msgstr "具有这个名称的主机已存在。" + +#: awx/api/serializers.py:1827 msgid "Invalid group name." msgstr "无效的组名称。" -#: awx/api/serializers.py:1813 +#: awx/api/serializers.py:1832 msgid "Cannot create Group for Smart Inventory" msgstr "无法为智能清单创建组" -#: awx/api/serializers.py:1888 +#: awx/api/serializers.py:1907 msgid "" "Script must begin with a hashbang sequence: i.e.... #!/usr/bin/env python" msgstr "脚本必须以 hashbang 序列开头:即... #!/usr/bin/env python" -#: awx/api/serializers.py:1917 +#: awx/api/serializers.py:1936 msgid "Cloud credential to use for inventory updates." msgstr "用于库存更新的云凭证。" -#: awx/api/serializers.py:1938 +#: awx/api/serializers.py:1957 msgid "`{}` is a prohibited environment variable" msgstr "`{}` 是禁止的环境变量" -#: awx/api/serializers.py:1949 +#: awx/api/serializers.py:1968 msgid "If 'source' is 'custom', 'source_script' must be provided." msgstr "如果 'source' 是 'custom',则必须提供 'source_script'。" -#: awx/api/serializers.py:1955 +#: awx/api/serializers.py:1974 msgid "Must provide an inventory." msgstr "必须提供清单。" -#: awx/api/serializers.py:1959 +#: awx/api/serializers.py:1978 msgid "" "The 'source_script' does not belong to the same organization as the " "inventory." msgstr "'source_script' 与清单不属于同一机构。" -#: awx/api/serializers.py:1961 +#: awx/api/serializers.py:1980 msgid "'source_script' doesn't exist." msgstr "'source_script' 不存在。" -#: awx/api/serializers.py:2063 +#: awx/api/serializers.py:2082 msgid "Cannot use manual project for SCM-based inventory." msgstr "无法在基于 SCM 的清单中使用手动项目。" -#: awx/api/serializers.py:2068 +#: awx/api/serializers.py:2087 msgid "Setting not compatible with existing schedules." msgstr "设置与现有计划不兼容。" -#: awx/api/serializers.py:2073 +#: awx/api/serializers.py:2092 msgid "Cannot create Inventory Source for Smart Inventory" msgstr "无法为智能清单创建清单源" -#: awx/api/serializers.py:2121 +#: awx/api/serializers.py:2140 msgid "Project required for scm type sources." msgstr "scm 类型源所需的项目。" -#: awx/api/serializers.py:2130 +#: awx/api/serializers.py:2149 #, python-format msgid "Cannot set %s if not SCM type." msgstr "如果不是 SCM 类型,则无法设置 %s。" -#: awx/api/serializers.py:2200 +#: awx/api/serializers.py:2219 msgid "The project used for this job." msgstr "用于此作业的项目。" -#: awx/api/serializers.py:2455 +#: awx/api/serializers.py:2475 msgid "Modifications not allowed for managed credential types" msgstr "不允许对受管凭证类型进行修改" -#: awx/api/serializers.py:2467 +#: awx/api/serializers.py:2487 msgid "" "Modifications to inputs are not allowed for credential types that are in use" msgstr "对于正在使用的凭证类型,不允许对输入进行修改" -#: awx/api/serializers.py:2472 +#: awx/api/serializers.py:2492 #, python-format msgid "Must be 'cloud' or 'net', not %s" msgstr "必须为 'cloud' 或 'net',不能为 %s" -#: awx/api/serializers.py:2478 +#: awx/api/serializers.py:2498 msgid "'ask_at_runtime' is not supported for custom credentials." msgstr "自定义凭证不支持 'ask_at_runtime'。" -#: awx/api/serializers.py:2526 +#: awx/api/serializers.py:2547 msgid "Credential Type" msgstr "凭证类型" -#: awx/api/serializers.py:2607 +#: awx/api/serializers.py:2611 +msgid "Modifications not allowed for managed credentials" +msgstr "不允许对受管凭证进行修改" + +#: awx/api/serializers.py:2629 awx/api/serializers.py:2703 +msgid "Galaxy credentials must be owned by an Organization." +msgstr "Galaxy 凭证必须属于机构。" + +#: awx/api/serializers.py:2646 msgid "" "You cannot change the credential type of the credential, as it may break the " "functionality of the resources using it." msgstr "您无法更改凭证的凭证类型,因为它可能会破坏使用该凭证的资源的功能。" -#: awx/api/serializers.py:2619 +#: awx/api/serializers.py:2658 msgid "" "Write-only field used to add user to owner role. If provided, do not give " "either team or organization. Only valid for creation." msgstr "用于将用户添加到所有者角色的只写字段。如果提供,则不给出团队或机构。只在创建时有效。" -#: awx/api/serializers.py:2624 +#: awx/api/serializers.py:2663 msgid "" "Write-only field used to add team to owner role. If provided, do not give " "either user or organization. Only valid for creation." msgstr "用于将团队添加到所有者角色的只写字段。如果提供,则不给出用户或机构。只在创建时有效。" -#: awx/api/serializers.py:2629 +#: awx/api/serializers.py:2668 msgid "" "Inherit permissions from organization roles. If provided on creation, do not " "give either user or team." msgstr "从机构角色继承权限。如果在创建时提供,则不给出用户或团队。" -#: awx/api/serializers.py:2645 +#: awx/api/serializers.py:2685 msgid "Missing 'user', 'team', or 'organization'." msgstr "缺少 'user' 、'team' 或 'organization'。" -#: awx/api/serializers.py:2662 +#: awx/api/serializers.py:2690 +msgid "" +"Only one of 'user', 'team', or 'organization' should be provided, received " +"{} fields." +msgstr "应该只提供 'user'、'team' 或 'organization' 中的一个,接收到 {} 字段。" + +#: awx/api/serializers.py:2718 msgid "" "Credential organization must be set and match before assigning to a team" msgstr "在分配给团队之前,必须设置凭证机构并匹配" -#: awx/api/serializers.py:2793 +#: awx/api/serializers.py:2844 msgid "This field is required." msgstr "此字段是必需的。" -#: awx/api/serializers.py:2802 +#: awx/api/serializers.py:2853 msgid "Playbook not found for project." msgstr "未找到用于项目的 playbook。" -#: awx/api/serializers.py:2804 +#: awx/api/serializers.py:2855 msgid "Must select playbook for project." msgstr "必须为项目选择 playbook。" -#: awx/api/serializers.py:2806 awx/api/serializers.py:2808 +#: awx/api/serializers.py:2857 awx/api/serializers.py:2859 msgid "Project does not allow overriding branch." msgstr "项目不允许覆写分支。" -#: awx/api/serializers.py:2845 +#: awx/api/serializers.py:2896 msgid "Must be a Personal Access Token." msgstr "必须是一个个人访问令牌。" -#: awx/api/serializers.py:2848 +#: awx/api/serializers.py:2899 msgid "Must match the selected webhook service." msgstr "必须与所选 Webhook 服务匹配。" -#: awx/api/serializers.py:2919 +#: awx/api/serializers.py:2970 msgid "Cannot enable provisioning callback without an inventory set." msgstr "无法在没有清单集的情况下启用部署回调。" -#: awx/api/serializers.py:2922 +#: awx/api/serializers.py:2973 msgid "Must either set a default value or ask to prompt on launch." msgstr "必须设置默认值或要求启动时提示。" -#: awx/api/serializers.py:2924 awx/main/models/jobs.py:299 +#: awx/api/serializers.py:2975 awx/main/models/jobs.py:299 msgid "Job Templates must have a project assigned." msgstr "作业模板必须分配有一个项目。" -#: awx/api/serializers.py:3092 +#: awx/api/serializers.py:3133 msgid "No change to job limit" msgstr "作业限制没有发生改变" -#: awx/api/serializers.py:3093 +#: awx/api/serializers.py:3134 msgid "All failed and unreachable hosts" msgstr "所有失败且无法访问的主机" -#: awx/api/serializers.py:3108 +#: awx/api/serializers.py:3149 msgid "Missing passwords needed to start: {}" msgstr "缺少启动时所需的密码:{}" -#: awx/api/serializers.py:3127 +#: awx/api/serializers.py:3168 msgid "Relaunch by host status not available until job finishes running." msgstr "在作业结束运行前,按主机状态重新启动不可用。" -#: awx/api/serializers.py:3141 +#: awx/api/serializers.py:3182 msgid "Job Template Project is missing or undefined." msgstr "作业模板项目缺失或未定义。" -#: awx/api/serializers.py:3143 +#: awx/api/serializers.py:3184 msgid "Job Template Inventory is missing or undefined." msgstr "作业模板清单缺失或未定义。" -#: awx/api/serializers.py:3181 +#: awx/api/serializers.py:3222 msgid "Unknown, job may have been ran before launch configurations were saved." msgstr "未知,在保存启动配置前作业可能已经运行。" -#: awx/api/serializers.py:3252 awx/main/tasks.py:2800 awx/main/tasks.py:2818 +#: awx/api/serializers.py:3293 awx/main/tasks.py:2838 awx/main/tasks.py:2856 msgid "{} are prohibited from use in ad hoc commands." msgstr "{} 被禁止在临时命令中使用。" -#: awx/api/serializers.py:3340 awx/api/views/__init__.py:4243 +#: awx/api/serializers.py:3381 awx/api/views/__init__.py:4212 #, python-brace-format msgid "" "Standard Output too large to display ({text_size} bytes), only download " "supported for sizes over {supported_size} bytes." msgstr "标准输出太大,无法显示({text_size} 字节),超过 {supported_size} 字节的大小只支持下载。" -#: awx/api/serializers.py:3653 +#: awx/api/serializers.py:3700 msgid "Provided variable {} has no database value to replace with." msgstr "提供的变量 {} 没有要替换的数据库值。" -#: awx/api/serializers.py:3671 +#: awx/api/serializers.py:3718 msgid "\"$encrypted$ is a reserved keyword, may not be used for {}.\"" msgstr "\"$encrypted$ 是一个保留的关键字,可能不能用于 {}\"" -#: awx/api/serializers.py:4078 +#: awx/api/serializers.py:4125 msgid "A project is required to run a job." msgstr "运行一个作业时需要一个项目。" -#: awx/api/serializers.py:4080 +#: awx/api/serializers.py:4127 msgid "Missing a revision to run due to failed project update." msgstr "由于项目更新失败,缺少运行的修订版本。" -#: awx/api/serializers.py:4084 +#: awx/api/serializers.py:4131 msgid "The inventory associated with this Job Template is being deleted." msgstr "与此作业模板关联的清单将被删除。" -#: awx/api/serializers.py:4086 awx/api/serializers.py:4202 +#: awx/api/serializers.py:4133 awx/api/serializers.py:4253 msgid "The provided inventory is being deleted." msgstr "提供的清单将被删除。" -#: awx/api/serializers.py:4094 +#: awx/api/serializers.py:4141 msgid "Cannot assign multiple {} credentials." msgstr "无法分配多个 {} 凭证。" -#: awx/api/serializers.py:4098 +#: awx/api/serializers.py:4146 msgid "Cannot assign a Credential of kind `{}`" msgstr "无法分配类型为 `{}` 的凭证" -#: awx/api/serializers.py:4111 +#: awx/api/serializers.py:4159 msgid "" "Removing {} credential at launch time without replacement is not supported. " "Provided list lacked credential(s): {}." msgstr "不支持在不替换的情况下在启动时删除 {} 凭证。提供的列表缺少凭证:{}。" -#: awx/api/serializers.py:4200 +#: awx/api/serializers.py:4251 msgid "The inventory associated with this Workflow is being deleted." msgstr "与此 Workflow 关联的清单将被删除。" -#: awx/api/serializers.py:4271 +#: awx/api/serializers.py:4322 msgid "Message type '{}' invalid, must be either 'message' or 'body'" msgstr "消息类型 '{}' 无效,必须是 'message' 或 'body'" -#: awx/api/serializers.py:4277 +#: awx/api/serializers.py:4328 msgid "Expected string for '{}', found {}, " msgstr "'{}' 的预期字符串,找到 {}," -#: awx/api/serializers.py:4281 +#: awx/api/serializers.py:4332 msgid "Messages cannot contain newlines (found newline in {} event)" msgstr "消息不能包含新行(在 {} 事件中找到新行)" -#: awx/api/serializers.py:4287 +#: awx/api/serializers.py:4338 msgid "Expected dict for 'messages' field, found {}" msgstr "'messages' 字段的预期字典,找到 {}" -#: awx/api/serializers.py:4291 +#: awx/api/serializers.py:4342 msgid "" "Event '{}' invalid, must be one of 'started', 'success', 'error', or " "'workflow_approval'" msgstr "事件 '{}' 无效,必须是 'started'、'success'、'error' 或 'workflow_approval' 之一" -#: awx/api/serializers.py:4297 +#: awx/api/serializers.py:4348 msgid "Expected dict for event '{}', found {}" msgstr "事件 '{}' 的预期字典,找到 {}" -#: awx/api/serializers.py:4302 +#: awx/api/serializers.py:4353 msgid "" "Workflow Approval event '{}' invalid, must be one of 'running', 'approved', " "'timed_out', or 'denied'" msgstr "工作流批准事件 '{}' 无效,必须是 'running'、'approved'、'timed_out' 或 'denied' 之一。" -#: awx/api/serializers.py:4309 +#: awx/api/serializers.py:4360 msgid "Expected dict for workflow approval event '{}', found {}" msgstr "工作流批准事件 '{}' 的预期字典,找到 {}" -#: awx/api/serializers.py:4336 +#: awx/api/serializers.py:4387 msgid "Unable to render message '{}': {}" msgstr "无法呈现消息 '{}':{}" -#: awx/api/serializers.py:4338 +#: awx/api/serializers.py:4389 msgid "Field '{}' unavailable" msgstr "字段 '{}' 不可用" -#: awx/api/serializers.py:4340 +#: awx/api/serializers.py:4391 msgid "Security error due to field '{}'" msgstr "因为字段 '{}' 导致安全错误" -#: awx/api/serializers.py:4360 +#: awx/api/serializers.py:4411 msgid "Webhook body for '{}' should be a json dictionary. Found type '{}'." msgstr "'{}' 的 Webhook 正文应该是 json 字典。找到类型 '{}'。" -#: awx/api/serializers.py:4363 +#: awx/api/serializers.py:4414 msgid "Webhook body for '{}' is not a valid json dictionary ({})." msgstr "'{}' 的 Webhook 正文不是有效的 json 字典 ({})。" -#: awx/api/serializers.py:4381 +#: awx/api/serializers.py:4432 msgid "" "Missing required fields for Notification Configuration: notification_type" msgstr "通知配置缺少所需字段:notification_type" -#: awx/api/serializers.py:4408 +#: awx/api/serializers.py:4459 msgid "No values specified for field '{}'" msgstr "没有为字段 '{}' 指定值" -#: awx/api/serializers.py:4413 +#: awx/api/serializers.py:4464 msgid "HTTP method must be either 'POST' or 'PUT'." msgstr "HTTP 方法必须是 'POST' 或 'PUT'。" -#: awx/api/serializers.py:4415 +#: awx/api/serializers.py:4466 msgid "Missing required fields for Notification Configuration: {}." msgstr "通知配置缺少所需字段:{}。" -#: awx/api/serializers.py:4418 +#: awx/api/serializers.py:4469 msgid "Configuration field '{}' incorrect type, expected {}." msgstr "配置字段 '{}' 类型错误,预期为 {}。" -#: awx/api/serializers.py:4435 +#: awx/api/serializers.py:4486 msgid "Notification body" msgstr "通知正文" -#: awx/api/serializers.py:4515 +#: awx/api/serializers.py:4566 msgid "" "Valid DTSTART required in rrule. Value should start with: DTSTART:" "YYYYMMDDTHHMMSSZ" msgstr "rrule 中需要有效的 DTSTART。值应该以 DTSTART:YYYMMDDTHHMMSSZ 开头" -#: awx/api/serializers.py:4517 +#: awx/api/serializers.py:4568 msgid "" "DTSTART cannot be a naive datetime. Specify ;TZINFO= or YYYYMMDDTHHMMSSZZ." msgstr "DTSTART 不能是一个不带时区的日期时间。指定 ;TZINFO= 或 YYYMMDDTHHMMSSZ。" -#: awx/api/serializers.py:4519 +#: awx/api/serializers.py:4570 msgid "Multiple DTSTART is not supported." msgstr "不支持多个 DTSTART。" -#: awx/api/serializers.py:4521 +#: awx/api/serializers.py:4572 msgid "RRULE required in rrule." msgstr "rrule 中需要 RRULE。" -#: awx/api/serializers.py:4523 +#: awx/api/serializers.py:4574 msgid "Multiple RRULE is not supported." msgstr "不支持多个 RRULE。" -#: awx/api/serializers.py:4525 +#: awx/api/serializers.py:4576 msgid "INTERVAL required in rrule." msgstr "rrule 需要 INTERVAL。" -#: awx/api/serializers.py:4527 +#: awx/api/serializers.py:4578 msgid "SECONDLY is not supported." msgstr "不支持 SECONDLY。" -#: awx/api/serializers.py:4529 +#: awx/api/serializers.py:4580 msgid "Multiple BYMONTHDAYs not supported." msgstr "不支持多个 BYMONTHDAY。" -#: awx/api/serializers.py:4531 +#: awx/api/serializers.py:4582 msgid "Multiple BYMONTHs not supported." msgstr "不支持多个 BYMONTH。" -#: awx/api/serializers.py:4533 +#: awx/api/serializers.py:4584 msgid "BYDAY with numeric prefix not supported." msgstr "不支持带有数字前缀的 BYDAY。" -#: awx/api/serializers.py:4535 +#: awx/api/serializers.py:4586 msgid "BYYEARDAY not supported." msgstr "不支持 BYYEARDAY。" -#: awx/api/serializers.py:4537 +#: awx/api/serializers.py:4588 msgid "BYWEEKNO not supported." msgstr "不支持 BYWEEKNO。" -#: awx/api/serializers.py:4539 +#: awx/api/serializers.py:4590 msgid "RRULE may not contain both COUNT and UNTIL" msgstr "RRULE 可能不包含 COUNT 和 UNTIL" -#: awx/api/serializers.py:4543 +#: awx/api/serializers.py:4594 msgid "COUNT > 999 is unsupported." msgstr "不支持 COUNT > 999。" -#: awx/api/serializers.py:4549 +#: awx/api/serializers.py:4600 msgid "rrule parsing failed validation: {}" msgstr "rrule 解析失败验证:{}" -#: awx/api/serializers.py:4611 +#: awx/api/serializers.py:4662 msgid "Inventory Source must be a cloud resource." msgstr "清单源必须是云资源。" -#: awx/api/serializers.py:4613 +#: awx/api/serializers.py:4664 msgid "Manual Project cannot have a schedule set." msgstr "手动项目不能有计划集。" -#: awx/api/serializers.py:4616 +#: awx/api/serializers.py:4667 msgid "" "Inventory sources with `update_on_project_update` cannot be scheduled. " "Schedule its source project `{}` instead." msgstr "无法调度带有 `update_on_project_update` 的清单源。改为调度其源项目 `{}`。" -#: awx/api/serializers.py:4626 +#: awx/api/serializers.py:4677 msgid "" "Count of jobs in the running or waiting state that are targeted for this " "instance" msgstr "处于运行状态或等待状态的针对此实例的作业计数" -#: awx/api/serializers.py:4631 +#: awx/api/serializers.py:4682 msgid "Count of all jobs that target this instance" msgstr "所有针对此实例的作业计数" -#: awx/api/serializers.py:4664 +#: awx/api/serializers.py:4717 msgid "" "Count of jobs in the running or waiting state that are targeted for this " "instance group" msgstr "处于运行状态或等待状态的针对此实例组的作业计数" -#: awx/api/serializers.py:4669 +#: awx/api/serializers.py:4722 msgid "Count of all jobs that target this instance group" msgstr "所有针对此实例组的作业计数" -#: awx/api/serializers.py:4674 +#: awx/api/serializers.py:4727 msgid "Indicates whether instance group controls any other group" msgstr "指明实例组是否控制任何其他组" -#: awx/api/serializers.py:4678 +#: awx/api/serializers.py:4731 msgid "" "Indicates whether instances in this group are isolated.Isolated groups have " "a designated controller group." msgstr "指明此组中的实例是否被隔离。隔离的组具有指定的控制器组。" -#: awx/api/serializers.py:4683 +#: awx/api/serializers.py:4736 msgid "" "Indicates whether instances in this group are containerized.Containerized " "groups have a designated Openshift or Kubernetes cluster." msgstr "指明此组中的实例是否容器化。容器化的组具有指定的 Openshift 或 Kubernetes 集群。" -#: awx/api/serializers.py:4691 +#: awx/api/serializers.py:4744 msgid "Policy Instance Percentage" msgstr "策略实例百分比" -#: awx/api/serializers.py:4692 +#: awx/api/serializers.py:4745 msgid "" "Minimum percentage of all instances that will be automatically assigned to " "this group when new instances come online." msgstr "新实例上线时将自动分配给此组的所有实例的最小百分比。" -#: awx/api/serializers.py:4697 +#: awx/api/serializers.py:4750 msgid "Policy Instance Minimum" msgstr "策略实例最小值" -#: awx/api/serializers.py:4698 +#: awx/api/serializers.py:4751 msgid "" "Static minimum number of Instances that will be automatically assign to this " "group when new instances come online." msgstr "新实例上线时自动分配给此组的静态最小实例数量。" -#: awx/api/serializers.py:4703 +#: awx/api/serializers.py:4756 msgid "Policy Instance List" msgstr "策略实例列表" -#: awx/api/serializers.py:4704 +#: awx/api/serializers.py:4757 msgid "List of exact-match Instances that will be assigned to this group" msgstr "将分配给此组的完全匹配实例的列表" -#: awx/api/serializers.py:4730 +#: awx/api/serializers.py:4783 msgid "Duplicate entry {}." msgstr "重复条目 {}。" -#: awx/api/serializers.py:4732 +#: awx/api/serializers.py:4785 msgid "{} is not a valid hostname of an existing instance." msgstr "{} 不是现有实例的有效主机名。" -#: awx/api/serializers.py:4734 awx/api/views/mixin.py:98 +#: awx/api/serializers.py:4787 awx/api/views/mixin.py:98 msgid "" "Isolated instances may not be added or removed from instances groups via the " "API." msgstr "可能无法通过 API 为实例组添加或删除隔离的实例。" -#: awx/api/serializers.py:4736 awx/api/views/mixin.py:102 +#: awx/api/serializers.py:4789 awx/api/views/mixin.py:102 msgid "Isolated instance group membership may not be managed via the API." msgstr "可能无法通过 API 管理隔离的实例组成员资格。" -#: awx/api/serializers.py:4738 awx/api/serializers.py:4743 -#: awx/api/serializers.py:4748 +#: awx/api/serializers.py:4791 awx/api/serializers.py:4796 +#: awx/api/serializers.py:4801 msgid "Containerized instances may not be managed via the API" msgstr "可能无法通过 API 管理容器化实例" -#: awx/api/serializers.py:4753 +#: awx/api/serializers.py:4806 msgid "tower instance group name may not be changed." msgstr "可能不会更改 tower 实例组名称。" -#: awx/api/serializers.py:4758 +#: awx/api/serializers.py:4811 msgid "Only Kubernetes credentials can be associated with an Instance Group" msgstr "只有 Kubernetes 凭证可以与实例组关联" -#: awx/api/serializers.py:4797 +#: awx/api/serializers.py:4850 msgid "" "When present, shows the field name of the role or relationship that changed." msgstr "存在时,显示更改的角色或关系的字段名称。" -#: awx/api/serializers.py:4799 +#: awx/api/serializers.py:4852 msgid "" "When present, shows the model on which the role or relationship was defined." msgstr "存在时,显示定义角色或关系的模型。" -#: awx/api/serializers.py:4832 +#: awx/api/serializers.py:4885 msgid "" "A summary of the new and changed values when an object is created, updated, " "or deleted" msgstr "创建、更新或删除对象时新值和更改值的概述" -#: awx/api/serializers.py:4834 +#: awx/api/serializers.py:4887 msgid "" "For create, update, and delete events this is the object type that was " "affected. For associate and disassociate events this is the object type " "associated or disassociated with object2." msgstr "对于创建、更新和删除事件,这是受影响的对象类型。对于关联和解除关联事件,这是与对象 2 关联或解除关联的对象类型。" -#: awx/api/serializers.py:4837 +#: awx/api/serializers.py:4890 msgid "" "Unpopulated for create, update, and delete events. For associate and " "disassociate events this is the object type that object1 is being associated " "with." msgstr "创建、更新和删除事件未填充。对于关联和解除关联事件,这是对象 1 要关联的对象类型。" -#: awx/api/serializers.py:4840 +#: awx/api/serializers.py:4893 msgid "The action taken with respect to the given object(s)." msgstr "对给定对象执行的操作。" -#: awx/api/views/__init__.py:181 +#: awx/api/views/__init__.py:186 +msgid "Not found." +msgstr "未找到。" + +#: awx/api/views/__init__.py:194 msgid "Dashboard" msgstr "仪表板" -#: awx/api/views/__init__.py:271 +#: awx/api/views/__init__.py:291 msgid "Dashboard Jobs Graphs" msgstr "仪表板作业图形" -#: awx/api/views/__init__.py:307 +#: awx/api/views/__init__.py:327 #, python-format msgid "Unknown period \"%s\"" msgstr "未知时期 \"%s\"" -#: awx/api/views/__init__.py:321 +#: awx/api/views/__init__.py:341 msgid "Instances" msgstr "实例" -#: awx/api/views/__init__.py:329 +#: awx/api/views/__init__.py:349 msgid "Instance Detail" msgstr "实例详情" -#: awx/api/views/__init__.py:346 +#: awx/api/views/__init__.py:366 msgid "Instance Jobs" msgstr "实例作业" -#: awx/api/views/__init__.py:360 +#: awx/api/views/__init__.py:380 msgid "Instance's Instance Groups" msgstr "实例的实例组" -#: awx/api/views/__init__.py:369 +#: awx/api/views/__init__.py:389 msgid "Instance Groups" msgstr "实例组" -#: awx/api/views/__init__.py:377 +#: awx/api/views/__init__.py:397 msgid "Instance Group Detail" msgstr "实例组详情" -#: awx/api/views/__init__.py:392 +#: awx/api/views/__init__.py:412 msgid "Isolated Groups can not be removed from the API" msgstr "无法从 API 中删除隔离的组" -#: awx/api/views/__init__.py:394 +#: awx/api/views/__init__.py:414 msgid "" "Instance Groups acting as a controller for an Isolated Group can not be " "removed from the API" msgstr "无法从 API 中删除作为隔离组控制器的实例组" -#: awx/api/views/__init__.py:400 +#: awx/api/views/__init__.py:420 msgid "Instance Group Running Jobs" msgstr "实例组的运行作业" -#: awx/api/views/__init__.py:409 +#: awx/api/views/__init__.py:429 msgid "Instance Group's Instances" msgstr "实例组的实例" -#: awx/api/views/__init__.py:419 +#: awx/api/views/__init__.py:439 msgid "Schedules" msgstr "计划" -#: awx/api/views/__init__.py:433 +#: awx/api/views/__init__.py:453 msgid "Schedule Recurrence Rule Preview" msgstr "计划重复规则预览" -#: awx/api/views/__init__.py:480 +#: awx/api/views/__init__.py:500 msgid "Cannot assign credential when related template is null." msgstr "当相关模板为 null 时无法分配凭证。" -#: awx/api/views/__init__.py:485 +#: awx/api/views/__init__.py:505 msgid "Related template cannot accept {} on launch." msgstr "相关的模板无法在启动时接受 {}。" -#: awx/api/views/__init__.py:487 +#: awx/api/views/__init__.py:507 msgid "" "Credential that requires user input on launch cannot be used in saved launch " "configuration." msgstr "在启动时需要用户输入的凭证不能用于保存的启动配置。" -#: awx/api/views/__init__.py:493 +#: awx/api/views/__init__.py:513 msgid "Related template is not configured to accept credentials on launch." msgstr "相关的模板未配置为在启动时接受凭证。" -#: awx/api/views/__init__.py:495 +#: awx/api/views/__init__.py:515 #, python-brace-format msgid "" "This launch configuration already provides a {credential_type} credential." msgstr "此启动配置已经提供了 {credential_type} 凭证。" -#: awx/api/views/__init__.py:498 +#: awx/api/views/__init__.py:518 #, python-brace-format msgid "Related template already uses {credential_type} credential." msgstr "相关的模板已使用 {credential_type} 凭证。" -#: awx/api/views/__init__.py:516 +#: awx/api/views/__init__.py:536 msgid "Schedule Jobs List" msgstr "调度作业列表" -#: awx/api/views/__init__.py:600 awx/api/views/__init__.py:4452 +#: awx/api/views/__init__.py:620 awx/api/views/__init__.py:4421 msgid "" "You cannot assign an Organization participation role as a child role for a " "Team." msgstr "您不能分配机构参与角色作为团队的子角色。" -#: awx/api/views/__init__.py:604 awx/api/views/__init__.py:4466 +#: awx/api/views/__init__.py:624 awx/api/views/__init__.py:4435 msgid "You cannot grant system-level permissions to a team." msgstr "您不能为团队授予系统级别权限。" -#: awx/api/views/__init__.py:611 awx/api/views/__init__.py:4458 +#: awx/api/views/__init__.py:631 awx/api/views/__init__.py:4427 msgid "" "You cannot grant credential access to a team when the Organization field " "isn't set, or belongs to a different organization" msgstr "您不能在机构字段未设置或属于不同机构时为团队授予凭证访问权限" -#: awx/api/views/__init__.py:713 +#: awx/api/views/__init__.py:733 msgid "Project Schedules" msgstr "项目计划" -#: awx/api/views/__init__.py:724 +#: awx/api/views/__init__.py:744 msgid "Project SCM Inventory Sources" msgstr "项目 SCM 清单源" -#: awx/api/views/__init__.py:825 +#: awx/api/views/__init__.py:845 msgid "Project Update Events List" msgstr "项目更新事件列表" -#: awx/api/views/__init__.py:839 +#: awx/api/views/__init__.py:859 msgid "System Job Events List" msgstr "系统作业事件列表" -#: awx/api/views/__init__.py:873 +#: awx/api/views/__init__.py:893 msgid "Project Update SCM Inventory Updates" msgstr "项目更新 SCM 清单更新" -#: awx/api/views/__init__.py:918 +#: awx/api/views/__init__.py:938 msgid "Me" msgstr "我" -#: awx/api/views/__init__.py:927 +#: awx/api/views/__init__.py:947 msgid "OAuth 2 Applications" msgstr "OAuth 2 应用" -#: awx/api/views/__init__.py:936 +#: awx/api/views/__init__.py:956 msgid "OAuth 2 Application Detail" msgstr "OAuth 2 应用详情" -#: awx/api/views/__init__.py:949 +#: awx/api/views/__init__.py:969 msgid "OAuth 2 Application Tokens" msgstr "OAuth 2 应用令牌" -#: awx/api/views/__init__.py:971 +#: awx/api/views/__init__.py:991 msgid "OAuth2 Tokens" msgstr "OAuth2 令牌" -#: awx/api/views/__init__.py:980 +#: awx/api/views/__init__.py:1000 msgid "OAuth2 User Tokens" msgstr "OAuth2 用户令牌" -#: awx/api/views/__init__.py:992 +#: awx/api/views/__init__.py:1012 msgid "OAuth2 User Authorized Access Tokens" msgstr "OAuth2 用户授权访问令牌" -#: awx/api/views/__init__.py:1007 +#: awx/api/views/__init__.py:1027 msgid "Organization OAuth2 Applications" msgstr "机构 OAuth2 应用" -#: awx/api/views/__init__.py:1019 +#: awx/api/views/__init__.py:1039 msgid "OAuth2 Personal Access Tokens" msgstr "OAuth2 个人访问令牌" -#: awx/api/views/__init__.py:1034 +#: awx/api/views/__init__.py:1054 msgid "OAuth Token Detail" msgstr "OAuth 令牌详情" -#: awx/api/views/__init__.py:1096 awx/api/views/__init__.py:4419 +#: awx/api/views/__init__.py:1116 awx/api/views/__init__.py:4388 msgid "" "You cannot grant credential access to a user not in the credentials' " "organization" msgstr "您不能为不在凭证机构中的用户授予凭证访问权限" -#: awx/api/views/__init__.py:1100 awx/api/views/__init__.py:4423 +#: awx/api/views/__init__.py:1120 awx/api/views/__init__.py:4392 msgid "You cannot grant private credential access to another user" msgstr "您不能为其他用户授予私有凭证访问权限" -#: awx/api/views/__init__.py:1198 +#: awx/api/views/__init__.py:1218 #, python-format msgid "Cannot change %s." msgstr "无法更改 %s。" -#: awx/api/views/__init__.py:1204 +#: awx/api/views/__init__.py:1224 msgid "Cannot delete user." msgstr "无法删除用户。" -#: awx/api/views/__init__.py:1228 +#: awx/api/views/__init__.py:1248 msgid "Deletion not allowed for managed credential types" msgstr "不允许删除受管凭证类型" -#: awx/api/views/__init__.py:1230 +#: awx/api/views/__init__.py:1250 msgid "Credential types that are in use cannot be deleted" msgstr "无法删除正在使用中的凭证类型" -#: awx/api/views/__init__.py:1381 +#: awx/api/views/__init__.py:1363 +msgid "Deletion not allowed for managed credentials" +msgstr "不允许删除受管凭证" + +#: awx/api/views/__init__.py:1408 msgid "External Credential Test" msgstr "外部凭证测试" -#: awx/api/views/__init__.py:1408 +#: awx/api/views/__init__.py:1443 msgid "Credential Input Source Detail" msgstr "凭证输入源详情" -#: awx/api/views/__init__.py:1416 awx/api/views/__init__.py:1424 +#: awx/api/views/__init__.py:1451 awx/api/views/__init__.py:1459 msgid "Credential Input Sources" msgstr "凭证输入源" -#: awx/api/views/__init__.py:1439 +#: awx/api/views/__init__.py:1474 msgid "External Credential Type Test" msgstr "外部凭证类型测试" -#: awx/api/views/__init__.py:1497 +#: awx/api/views/__init__.py:1540 msgid "The inventory for this host is already being deleted." msgstr "此主机的清单已经被删除。" -#: awx/api/views/__init__.py:1614 +#: awx/api/views/__init__.py:1657 msgid "SSLError while trying to connect to {}" msgstr "尝试连接到 {} 时出现 SSLError" -#: awx/api/views/__init__.py:1616 +#: awx/api/views/__init__.py:1659 msgid "Request to {} timed out." msgstr "请求 {} 超时。" -#: awx/api/views/__init__.py:1618 +#: awx/api/views/__init__.py:1661 msgid "Unknown exception {} while trying to GET {}" msgstr "尝试 GET {} 时出现未知异常 {}" -#: awx/api/views/__init__.py:1622 +#: awx/api/views/__init__.py:1665 msgid "" "Unauthorized access. Please check your Insights Credential username and " "password." msgstr "未授权访问。请检查您的 Insights 用户名和密码。" -#: awx/api/views/__init__.py:1626 +#: awx/api/views/__init__.py:1669 msgid "" "Failed to access the Insights API at URL {}. Server responded with {} status " "code and message {}" msgstr "无法通过 URL {} 访问 Insights API。服务器以 {} 状态代码和消息 {} 作为响应" -#: awx/api/views/__init__.py:1635 +#: awx/api/views/__init__.py:1678 msgid "Expected JSON response from Insights at URL {} but instead got {}" msgstr "访问 URL {} 时来自 Insights 的预期 JSON 响应,但实际为 {}" -#: awx/api/views/__init__.py:1653 +#: awx/api/views/__init__.py:1696 msgid "Could not translate Insights system ID {} into an Insights platform ID." msgstr "无法将 Insights 系统 ID {} 转换为 Insights 平台 ID。" -#: awx/api/views/__init__.py:1695 +#: awx/api/views/__init__.py:1738 msgid "This host is not recognized as an Insights host." msgstr "此主机不被识别为 Insights 主机。" -#: awx/api/views/__init__.py:1703 +#: awx/api/views/__init__.py:1746 msgid "The Insights Credential for \"{}\" was not found." msgstr "未找到 \"{}\" 的 Insights 凭证。" -#: awx/api/views/__init__.py:1782 +#: awx/api/views/__init__.py:1825 msgid "Cyclical Group association." msgstr "周期性组关联。" -#: awx/api/views/__init__.py:1948 +#: awx/api/views/__init__.py:1991 msgid "Inventory subset argument must be a string." msgstr "清单子集参数必须是字符串。" -#: awx/api/views/__init__.py:1952 +#: awx/api/views/__init__.py:1995 msgid "Subset does not use any supported syntax." msgstr "子集未使用任何支持的语法。" -#: awx/api/views/__init__.py:2002 +#: awx/api/views/__init__.py:2045 msgid "Inventory Source List" msgstr "清单源列表" -#: awx/api/views/__init__.py:2014 +#: awx/api/views/__init__.py:2057 msgid "Inventory Sources Update" msgstr "清单源更新" -#: awx/api/views/__init__.py:2047 +#: awx/api/views/__init__.py:2090 msgid "Could not start because `can_update` returned False" msgstr "无法启动,因为 `can_update` 返回 False" -#: awx/api/views/__init__.py:2055 +#: awx/api/views/__init__.py:2098 msgid "No inventory sources to update." msgstr "没有需要更新的清单源。" -#: awx/api/views/__init__.py:2077 +#: awx/api/views/__init__.py:2120 msgid "Inventory Source Schedules" msgstr "清单源计划" -#: awx/api/views/__init__.py:2104 +#: awx/api/views/__init__.py:2147 msgid "Notification Templates can only be assigned when source is one of {}." msgstr "只有源是 {} 之一时才能分配通知模板。" -#: awx/api/views/__init__.py:2202 +#: awx/api/views/__init__.py:2245 msgid "Source already has credential assigned." msgstr "源已经分配有凭证。" -#: awx/api/views/__init__.py:2350 -msgid "'credentials' cannot be used in combination with 'extra_credentials'." -msgstr "'credentials' 无法与 'extra_credentials' 结合使用。" - -#: awx/api/views/__init__.py:2368 -msgid "Incorrect type. Expected a list received {}." -msgstr "类型不正确。预期为列表,收到的是 {}。" - -#: awx/api/views/__init__.py:2466 +#: awx/api/views/__init__.py:2461 msgid "Job Template Schedules" msgstr "作业模板计划" -#: awx/api/views/__init__.py:2515 +#: awx/api/views/__init__.py:2510 msgid "Field '{}' is missing from survey spec." msgstr "问卷调查规格中缺少字段 '{}'。" -#: awx/api/views/__init__.py:2517 +#: awx/api/views/__init__.py:2512 msgid "Expected {} for field '{}', received {} type." msgstr "字段 '{}' 预期为 {},收到的是 {} 类型。" -#: awx/api/views/__init__.py:2521 +#: awx/api/views/__init__.py:2516 msgid "'spec' doesn't contain any items." msgstr "'spec' 不包含任何项。" -#: awx/api/views/__init__.py:2535 +#: awx/api/views/__init__.py:2530 #, python-format msgid "Survey question %s is not a json object." msgstr "问卷调查问题 %s 不是 json 对象。" -#: awx/api/views/__init__.py:2538 +#: awx/api/views/__init__.py:2533 #, python-brace-format msgid "'{field_name}' missing from survey question {idx}" msgstr "问卷调查问题 {idx} 中缺少 '{field_name}'" -#: awx/api/views/__init__.py:2548 +#: awx/api/views/__init__.py:2543 #, python-brace-format msgid "'{field_name}' in survey question {idx} expected to be {type_label}." msgstr "问卷调查问题 {idx} 中的 '{field_name}' 预期为 {type_label}。" -#: awx/api/views/__init__.py:2552 +#: awx/api/views/__init__.py:2547 #, python-format msgid "'variable' '%(item)s' duplicated in survey question %(survey)s." msgstr "问卷调查问题 %(survey)s 中的 'variable' '%(item)s' 重复。" -#: awx/api/views/__init__.py:2562 +#: awx/api/views/__init__.py:2557 #, python-brace-format msgid "" "'{survey_item[type]}' in survey question {idx} is not one of " "'{allowed_types}' allowed question types." msgstr "问卷调查问题 {idx} 中的 '{survey_item[type]}' 不是 '{allowed_types}' 允许的问题类型之一。" -#: awx/api/views/__init__.py:2572 +#: awx/api/views/__init__.py:2567 #, python-brace-format msgid "" "Default value {survey_item[default]} in survey question {idx} expected to be " "{type_label}." msgstr "问卷调查问题 {idx} 中的默认值 {survey_item[default]} 预期为 {type_label}。" -#: awx/api/views/__init__.py:2582 +#: awx/api/views/__init__.py:2577 #, python-brace-format msgid "The {min_or_max} limit in survey question {idx} expected to be integer." msgstr "问卷调查问题 {idx} 中的 {min_or_max} 限制预期为整数。" -#: awx/api/views/__init__.py:2592 +#: awx/api/views/__init__.py:2587 #, python-brace-format msgid "Survey question {idx} of type {survey_item[type]} must specify choices." msgstr "类型为 {survey_item[type]} 的问卷调查问题 {idx} 必须指定选择。" -#: awx/api/views/__init__.py:2606 +#: awx/api/views/__init__.py:2601 msgid "Multiple Choice (Single Select) can only have one default value." msgstr "多项选择(单选)只能有一个默认值。" -#: awx/api/views/__init__.py:2610 +#: awx/api/views/__init__.py:2605 msgid "Default choice must be answered from the choices listed." msgstr "默认的选择必须从列出的选择中回答。" -#: awx/api/views/__init__.py:2619 +#: awx/api/views/__init__.py:2614 #, python-brace-format msgid "" "$encrypted$ is a reserved keyword for password question defaults, survey " "question {idx} is type {survey_item[type]}." msgstr "$encrypted$ 是密码问题默认值的保留关键字,问卷调查问题 {idx} 的类型是 {survey_item[type]}。" -#: awx/api/views/__init__.py:2633 +#: awx/api/views/__init__.py:2628 #, python-brace-format msgid "" "$encrypted$ is a reserved keyword, may not be used for new default in " "position {idx}." msgstr "$encrypted$ 是一个保留关键字,可能无法用于位置 {idx} 中的新默认值。" -#: awx/api/views/__init__.py:2705 +#: awx/api/views/__init__.py:2700 #, python-brace-format msgid "Cannot assign multiple {credential_type} credentials." msgstr "无法分配多个 {credential_type} 凭证。" -#: awx/api/views/__init__.py:2709 +#: awx/api/views/__init__.py:2704 msgid "Cannot assign a Credential of kind `{}`." msgstr "无法分配种类为 `{}` 的凭证。" -#: awx/api/views/__init__.py:2726 -msgid "Extra credentials must be network or cloud." -msgstr "额外凭证必须是网络或云。" - -#: awx/api/views/__init__.py:2748 +#: awx/api/views/__init__.py:2727 msgid "Maximum number of labels for {} reached." msgstr "已达到 {} 的最大标签数。" -#: awx/api/views/__init__.py:2871 +#: awx/api/views/__init__.py:2850 msgid "No matching host could be found!" msgstr "无法找到匹配的主机!" -#: awx/api/views/__init__.py:2874 +#: awx/api/views/__init__.py:2853 msgid "Multiple hosts matched the request!" msgstr "多个主机与请求匹配!" -#: awx/api/views/__init__.py:2879 +#: awx/api/views/__init__.py:2858 msgid "Cannot start automatically, user input required!" msgstr "无法自动启动,需要用户输入!" -#: awx/api/views/__init__.py:2887 +#: awx/api/views/__init__.py:2866 msgid "Host callback job already pending." msgstr "主机回调作业已经待处理。" -#: awx/api/views/__init__.py:2903 awx/api/views/__init__.py:3664 +#: awx/api/views/__init__.py:2882 awx/api/views/__init__.py:3633 msgid "Error starting job!" msgstr "启动作业出错!" -#: awx/api/views/__init__.py:3027 awx/api/views/__init__.py:3047 +#: awx/api/views/__init__.py:3006 awx/api/views/__init__.py:3026 msgid "Cycle detected." msgstr "检测到循环。" -#: awx/api/views/__init__.py:3039 +#: awx/api/views/__init__.py:3018 msgid "Relationship not allowed." msgstr "不允许使用关系。" -#: awx/api/views/__init__.py:3268 +#: awx/api/views/__init__.py:3247 msgid "Cannot relaunch slice workflow job orphaned from job template." msgstr "无法重新启动从作业模板中孤立的分片工作流作业。" -#: awx/api/views/__init__.py:3270 +#: awx/api/views/__init__.py:3249 msgid "Cannot relaunch sliced workflow job after slice count has changed." msgstr "分片计数发生变化后无法重新启动分片工作流作业。" -#: awx/api/views/__init__.py:3303 +#: awx/api/views/__init__.py:3282 msgid "Workflow Job Template Schedules" msgstr "工作流作业模板计划" -#: awx/api/views/__init__.py:3446 awx/api/views/__init__.py:4087 +#: awx/api/views/__init__.py:3425 awx/api/views/__init__.py:4056 msgid "Superuser privileges needed." msgstr "需要超级用户权限。" -#: awx/api/views/__init__.py:3479 +#: awx/api/views/__init__.py:3458 msgid "System Job Template Schedules" msgstr "系统作业模板计划" -#: awx/api/views/__init__.py:3647 +#: awx/api/views/__init__.py:3616 #, python-brace-format msgid "Wait until job finishes before retrying on {status_value} hosts." msgstr "在 {status_value} 主机上重试前等待作业完成。" -#: awx/api/views/__init__.py:3652 +#: awx/api/views/__init__.py:3621 #, python-brace-format msgid "Cannot retry on {status_value} hosts, playbook stats not available." msgstr "无法在 {status_value} 主机上重试,playbook 统计数据不可用。" -#: awx/api/views/__init__.py:3657 +#: awx/api/views/__init__.py:3626 #, python-brace-format msgid "Cannot relaunch because previous job had 0 {status_value} hosts." msgstr "无法重新启动,因为以前的作业有 0 个 {status_value} 主机。" -#: awx/api/views/__init__.py:3686 +#: awx/api/views/__init__.py:3655 msgid "Cannot create schedule because job requires credential passwords." msgstr "无法创建计划,因为作业需要凭证密码。" -#: awx/api/views/__init__.py:3691 +#: awx/api/views/__init__.py:3660 msgid "Cannot create schedule because job was launched by legacy method." msgstr "无法创建计划,因为作业是由旧方法启动的。" -#: awx/api/views/__init__.py:3693 +#: awx/api/views/__init__.py:3662 msgid "Cannot create schedule because a related resource is missing." msgstr "无法创建计划,因为缺少相关资源。" -#: awx/api/views/__init__.py:3748 +#: awx/api/views/__init__.py:3717 msgid "Job Host Summaries List" msgstr "作业主机摘要列表" -#: awx/api/views/__init__.py:3802 +#: awx/api/views/__init__.py:3771 msgid "Job Event Children List" msgstr "作业事件子级列表" -#: awx/api/views/__init__.py:3818 +#: awx/api/views/__init__.py:3787 msgid "Job Event Hosts List" msgstr "作业事件主机列表" -#: awx/api/views/__init__.py:3833 +#: awx/api/views/__init__.py:3802 msgid "Job Events List" msgstr "作业事件列表" -#: awx/api/views/__init__.py:4044 +#: awx/api/views/__init__.py:4013 msgid "Ad Hoc Command Events List" msgstr "临时命令事件列表" -#: awx/api/views/__init__.py:4289 +#: awx/api/views/__init__.py:4258 msgid "Delete not allowed while there are pending notifications" msgstr "在有待处理的通知时不允许删除" -#: awx/api/views/__init__.py:4297 +#: awx/api/views/__init__.py:4266 msgid "Notification Template Test" msgstr "通知模板测试" -#: awx/api/views/__init__.py:4557 awx/api/views/__init__.py:4572 +#: awx/api/views/__init__.py:4526 awx/api/views/__init__.py:4541 msgid "User does not have permission to approve or deny this workflow." msgstr "用户没有批准或拒绝此工作流的权限。" -#: awx/api/views/__init__.py:4559 awx/api/views/__init__.py:4574 +#: awx/api/views/__init__.py:4528 awx/api/views/__init__.py:4543 msgid "This workflow step has already been approved or denied." msgstr "此工作流步骤已经被批准或拒绝。" @@ -1392,7 +1420,11 @@ msgstr "清单更新事件列表" msgid "Cannot delete inventory script." msgstr "无法删除清单脚本。" -#: awx/api/views/inventory.py:149 +#: awx/api/views/inventory.py:137 +msgid "You cannot turn a regular inventory into a \"smart\" inventory." +msgstr "您无法将常规清单变为\"智能\"清单。" + +#: awx/api/views/inventory.py:150 #, python-brace-format msgid "{0}" msgstr "{0}" @@ -1417,71 +1449,104 @@ msgstr "作业还没有完成处理事件。" msgid "Related job {} is still processing events." msgstr "相关的作业 {} 仍在处理事件。" -#: awx/api/views/root.py:49 awx/templates/rest_framework/api.html:28 +#: awx/api/views/organization.py:230 +#, python-brace-format +msgid "Credential must be a Galaxy credential, not {sub.credential_type.name}." +msgstr "凭证必须是 Galaxy 凭证,不是 {sub.credential_type.name}。" + +#: awx/api/views/root.py:51 awx/templates/rest_framework/api.html:28 msgid "REST API" msgstr "REST API" -#: awx/api/views/root.py:59 awx/templates/rest_framework/api.html:4 +#: awx/api/views/root.py:61 awx/templates/rest_framework/api.html:4 msgid "AWX REST API" msgstr "AWX REST API" -#: awx/api/views/root.py:72 +#: awx/api/views/root.py:74 msgid "API OAuth 2 Authorization Root" msgstr "API OAuth 2 授权根" -#: awx/api/views/root.py:139 +#: awx/api/views/root.py:141 msgid "Version 2" msgstr "版本 2" -#: awx/api/views/root.py:148 +#: awx/api/views/root.py:150 msgid "Ping" msgstr "Ping" -#: awx/api/views/root.py:180 awx/api/views/root.py:225 awx/conf/apps.py:10 -msgid "Configuration" -msgstr "配置" +#: awx/api/views/root.py:182 +msgid "Subscriptions" +msgstr "订阅" -#: awx/api/views/root.py:202 awx/api/views/root.py:308 -msgid "Invalid License" -msgstr "无效许可证" +#: awx/api/views/root.py:204 awx/api/views/root.py:249 +msgid "Invalid Subscription" +msgstr "无效订阅" -#: awx/api/views/root.py:207 +#: awx/api/views/root.py:209 awx/api/views/root.py:254 msgid "The provided credentials are invalid (HTTP 401)." msgstr "提供的凭证无效 (HTTP 401)。" -#: awx/api/views/root.py:209 +#: awx/api/views/root.py:211 awx/api/views/root.py:256 msgid "Unable to connect to proxy server." msgstr "无法连接到代理服务器。" -#: awx/api/views/root.py:211 +#: awx/api/views/root.py:213 awx/api/views/root.py:258 msgid "Could not connect to subscription service." msgstr "无法连接订阅服务。" -#: awx/api/views/root.py:284 -msgid "Invalid license data" -msgstr "无效的许可证数据" +#: awx/api/views/root.py:227 +msgid "Attach Subscription" +msgstr "附加订阅" -#: awx/api/views/root.py:286 +#: awx/api/views/root.py:239 +msgid "No subscription pool ID provided." +msgstr "没有提供订阅池 ID。" + +#: awx/api/views/root.py:271 +msgid "Error processing subscription metadata." +msgstr "处理订阅元数据出错。" + +#: awx/api/views/root.py:277 awx/conf/apps.py:10 +msgid "Configuration" +msgstr "配置" + +#: awx/api/views/root.py:334 +msgid "Invalid subscription data" +msgstr "无效的订阅数据" + +#: awx/api/views/root.py:336 msgid "Missing 'eula_accepted' property" msgstr "缺少 'eula_accepted' 属性" -#: awx/api/views/root.py:290 +#: awx/api/views/root.py:340 msgid "'eula_accepted' value is invalid" msgstr "'eula_accepted' 值无效" -#: awx/api/views/root.py:293 +#: awx/api/views/root.py:343 msgid "'eula_accepted' must be True" msgstr "'eula_accepted' 必须为 True" -#: awx/api/views/root.py:300 +#: awx/api/views/root.py:350 msgid "Invalid JSON" msgstr "无效的 JSON" -#: awx/api/views/root.py:319 -msgid "Invalid license" -msgstr "无效的许可证" +#: awx/api/views/root.py:355 awx/api/views/root.py:361 +msgid "Legacy license submitted. A subscription manifest is now required." +msgstr "提交了旧的许可证。现在需要使用一个订阅清单。" -#: awx/api/views/root.py:327 +#: awx/api/views/root.py:372 +msgid "Invalid manifest submitted." +msgstr "提交了无效的清单。" + +#: awx/api/views/root.py:379 +msgid "Invalid License" +msgstr "无效许可证" + +#: awx/api/views/root.py:391 +msgid "Invalid subscription" +msgstr "无效订阅" + +#: awx/api/views/root.py:399 msgid "Failed to remove license." msgstr "删除许可证失败。" @@ -1641,7 +1706,7 @@ msgstr "每个用户之间可以各不相同的设置示例。" msgid "User" msgstr "用户" -#: awx/conf/fields.py:63 awx/sso/fields.py:595 +#: awx/conf/fields.py:63 awx/sso/fields.py:599 #, python-brace-format msgid "" "Expected None, True, False, a string or list of strings but got {input_type} " @@ -1672,11 +1737,11 @@ msgstr "\"{input}\" 不是有效字符串。" msgid "Expected a list of tuples of max length 2 but got {input_type} instead." msgstr "预期为最大长度为 2 的元组列表,但实际为 {input_type}。" -#: awx/conf/registry.py:73 awx/conf/tests/unit/test_registry.py:155 +#: awx/conf/registry.py:73 awx/conf/tests/unit/test_registry.py:156 msgid "All" msgstr "所有" -#: awx/conf/registry.py:74 awx/conf/tests/unit/test_registry.py:156 +#: awx/conf/registry.py:74 awx/conf/tests/unit/test_registry.py:157 msgid "Changed" msgstr "已更改" @@ -1684,59 +1749,58 @@ msgstr "已更改" msgid "User-Defaults" msgstr "User-Defaults" -#: awx/conf/registry.py:143 +#: awx/conf/registry.py:145 msgid "This value has been set manually in a settings file." msgstr "此值已在设置文件中手动设置。" -#: awx/conf/tests/unit/test_registry.py:46 -#: awx/conf/tests/unit/test_registry.py:56 -#: awx/conf/tests/unit/test_registry.py:72 -#: awx/conf/tests/unit/test_registry.py:87 -#: awx/conf/tests/unit/test_registry.py:100 -#: awx/conf/tests/unit/test_registry.py:106 -#: awx/conf/tests/unit/test_registry.py:126 -#: awx/conf/tests/unit/test_registry.py:132 -#: awx/conf/tests/unit/test_registry.py:145 -#: awx/conf/tests/unit/test_registry.py:157 -#: awx/conf/tests/unit/test_registry.py:166 -#: awx/conf/tests/unit/test_registry.py:172 -#: awx/conf/tests/unit/test_registry.py:184 -#: awx/conf/tests/unit/test_registry.py:191 -#: awx/conf/tests/unit/test_registry.py:233 -#: awx/conf/tests/unit/test_registry.py:251 -#: awx/conf/tests/unit/test_settings.py:79 -#: awx/conf/tests/unit/test_settings.py:97 -#: awx/conf/tests/unit/test_settings.py:112 -#: awx/conf/tests/unit/test_settings.py:127 -#: awx/conf/tests/unit/test_settings.py:143 -#: awx/conf/tests/unit/test_settings.py:156 -#: awx/conf/tests/unit/test_settings.py:173 -#: awx/conf/tests/unit/test_settings.py:189 -#: awx/conf/tests/unit/test_settings.py:200 -#: awx/conf/tests/unit/test_settings.py:216 -#: awx/conf/tests/unit/test_settings.py:237 -#: awx/conf/tests/unit/test_settings.py:259 -#: awx/conf/tests/unit/test_settings.py:285 -#: awx/conf/tests/unit/test_settings.py:299 -#: awx/conf/tests/unit/test_settings.py:323 +#: awx/conf/tests/unit/test_registry.py:47 +#: awx/conf/tests/unit/test_registry.py:57 +#: awx/conf/tests/unit/test_registry.py:73 +#: awx/conf/tests/unit/test_registry.py:88 +#: awx/conf/tests/unit/test_registry.py:101 +#: awx/conf/tests/unit/test_registry.py:107 +#: awx/conf/tests/unit/test_registry.py:127 +#: awx/conf/tests/unit/test_registry.py:133 +#: awx/conf/tests/unit/test_registry.py:146 +#: awx/conf/tests/unit/test_registry.py:158 +#: awx/conf/tests/unit/test_registry.py:167 +#: awx/conf/tests/unit/test_registry.py:173 +#: awx/conf/tests/unit/test_registry.py:185 +#: awx/conf/tests/unit/test_registry.py:192 +#: awx/conf/tests/unit/test_registry.py:234 +#: awx/conf/tests/unit/test_registry.py:252 +#: awx/conf/tests/unit/test_settings.py:73 +#: awx/conf/tests/unit/test_settings.py:91 +#: awx/conf/tests/unit/test_settings.py:106 +#: awx/conf/tests/unit/test_settings.py:121 +#: awx/conf/tests/unit/test_settings.py:137 +#: awx/conf/tests/unit/test_settings.py:150 +#: awx/conf/tests/unit/test_settings.py:167 +#: awx/conf/tests/unit/test_settings.py:183 +#: awx/conf/tests/unit/test_settings.py:194 +#: awx/conf/tests/unit/test_settings.py:210 +#: awx/conf/tests/unit/test_settings.py:231 +#: awx/conf/tests/unit/test_settings.py:254 +#: awx/conf/tests/unit/test_settings.py:268 +#: awx/conf/tests/unit/test_settings.py:292 +#: awx/conf/tests/unit/test_settings.py:312 +#: awx/conf/tests/unit/test_settings.py:329 #: awx/conf/tests/unit/test_settings.py:343 -#: awx/conf/tests/unit/test_settings.py:360 -#: awx/conf/tests/unit/test_settings.py:374 -#: awx/conf/tests/unit/test_settings.py:398 -#: awx/conf/tests/unit/test_settings.py:411 -#: awx/conf/tests/unit/test_settings.py:430 -#: awx/conf/tests/unit/test_settings.py:466 awx/main/conf.py:24 -#: awx/main/conf.py:33 awx/main/conf.py:43 awx/main/conf.py:53 -#: awx/main/conf.py:65 awx/main/conf.py:78 awx/main/conf.py:91 -#: awx/main/conf.py:116 awx/main/conf.py:129 awx/main/conf.py:142 -#: awx/main/conf.py:154 awx/main/conf.py:162 awx/main/conf.py:173 -#: awx/main/conf.py:405 awx/main/conf.py:830 awx/main/conf.py:840 -#: awx/main/conf.py:852 +#: awx/conf/tests/unit/test_settings.py:367 +#: awx/conf/tests/unit/test_settings.py:380 +#: awx/conf/tests/unit/test_settings.py:399 +#: awx/conf/tests/unit/test_settings.py:435 awx/main/conf.py:22 +#: awx/main/conf.py:31 awx/main/conf.py:41 awx/main/conf.py:51 +#: awx/main/conf.py:63 awx/main/conf.py:76 awx/main/conf.py:89 +#: awx/main/conf.py:102 awx/main/conf.py:115 awx/main/conf.py:128 +#: awx/main/conf.py:141 awx/main/conf.py:154 awx/main/conf.py:166 +#: awx/main/conf.py:174 awx/main/conf.py:185 awx/main/conf.py:408 +#: awx/main/conf.py:763 awx/main/conf.py:775 msgid "System" msgstr "系统" -#: awx/conf/tests/unit/test_registry.py:151 -#: awx/conf/tests/unit/test_registry.py:158 +#: awx/conf/tests/unit/test_registry.py:152 +#: awx/conf/tests/unit/test_registry.py:159 msgid "OtherSystem" msgstr "OtherSystem" @@ -1803,112 +1867,172 @@ msgstr "无法将两个项与不同的清单关联。" msgid "Unable to change inventory on a group." msgstr "无法更改组上的清单。" -#: awx/main/access.py:1264 +#: awx/main/access.py:1261 msgid "Unable to change organization on a team." msgstr "无法更改团队上的机构。" -#: awx/main/access.py:1280 +#: awx/main/access.py:1277 msgid "The {} role cannot be assigned to a team" msgstr "无法为团队分配 {} 角色" -#: awx/main/access.py:1474 +#: awx/main/access.py:1471 msgid "Insufficient access to Job Template credentials." msgstr "对作业模板凭证的访问权限不足。" -#: awx/main/access.py:1639 awx/main/access.py:2063 +#: awx/main/access.py:1635 awx/main/access.py:2059 msgid "Job was launched with secret prompts provided by another user." msgstr "作业是使用其他用户提供的机密提示启动的。" -#: awx/main/access.py:1648 +#: awx/main/access.py:1644 msgid "Job has been orphaned from its job template and organization." msgstr "作业已从其作业模板和机构中孤立。" -#: awx/main/access.py:1650 +#: awx/main/access.py:1646 msgid "Job was launched with prompted fields you do not have access to." msgstr "作业启动时带有您无法访问的提示字段。" -#: awx/main/access.py:1652 +#: awx/main/access.py:1648 msgid "" "Job was launched with unknown prompted fields. Organization admin " "permissions required." msgstr "作业以未知的提示字段启动。需要机构管理员权限。" -#: awx/main/access.py:2053 +#: awx/main/access.py:2049 msgid "Workflow Job was launched with unknown prompts." msgstr "工作流作业启动时显示未知提示。" -#: awx/main/access.py:2065 +#: awx/main/access.py:2061 msgid "Job was launched with prompts you lack access to." msgstr "作业启动时显示您无法访问的提示。" -#: awx/main/access.py:2067 +#: awx/main/access.py:2063 msgid "Job was launched with prompts no longer accepted." msgstr "作业启动时显示不再接受的提示。" -#: awx/main/access.py:2079 +#: awx/main/access.py:2075 msgid "" "You do not have permission to the workflow job resources required for " "relaunch." msgstr "您没有权限访问重新启动所需的工作流作业资源。" +#: awx/main/analytics/collectors.py:36 +msgid "General platform configuration." +msgstr "通用平台配置。" + +#: awx/main/analytics/collectors.py:68 +msgid "Counts of objects such as organizations, inventories, and projects" +msgstr "机构、清单和项目等对象计数" + +#: awx/main/analytics/collectors.py:103 +msgid "Counts of users and teams by organization" +msgstr "机构用户和团队计数" + +#: awx/main/analytics/collectors.py:115 +msgid "Counts of credentials by credential type" +msgstr "根据凭证类型列出的凭证计数" + +#: awx/main/analytics/collectors.py:127 +msgid "Inventories, their inventory sources, and host counts" +msgstr "清单、清单源和主机计数" + +#: awx/main/analytics/collectors.py:152 +msgid "Counts of projects by source control type" +msgstr "根据源控制类型的项目计数" + +#: awx/main/analytics/collectors.py:171 +msgid "Cluster topology and capacity" +msgstr "集群拓扑和容量" + +#: awx/main/analytics/collectors.py:197 +msgid "Counts of jobs by status" +msgstr "根据状态的任务计数" + +#: awx/main/analytics/collectors.py:207 +msgid "Counts of jobs by execution node" +msgstr "根据执行节点的任务计数" + +#: awx/main/analytics/collectors.py:222 +msgid "Metadata about the analytics collected" +msgstr "关于收集的分析数据的元数据" + +#: awx/main/analytics/collectors.py:285 +msgid "Automation task records" +msgstr "自动化任务记录" + +#: awx/main/analytics/collectors.py:314 +msgid "Data on jobs run" +msgstr "作业运行的数据" + +#: awx/main/analytics/collectors.py:351 +msgid "Data on job templates" +msgstr "作业模板的数据" + +#: awx/main/analytics/collectors.py:374 +msgid "Data on workflow runs" +msgstr "工作流运行的数据" + +#: awx/main/analytics/collectors.py:410 +msgid "Data on workflows" +msgstr "工作流的数据" + #: awx/main/apps.py:8 msgid "Main" msgstr "主要" -#: awx/main/conf.py:22 +#: awx/main/conf.py:20 msgid "Enable Activity Stream" msgstr "启用活动流" -#: awx/main/conf.py:23 +#: awx/main/conf.py:21 msgid "Enable capturing activity for the activity stream." msgstr "为活动流启用捕获活动。" -#: awx/main/conf.py:31 +#: awx/main/conf.py:29 msgid "Enable Activity Stream for Inventory Sync" msgstr "为清单同步启用活动流" -#: awx/main/conf.py:32 +#: awx/main/conf.py:30 msgid "" "Enable capturing activity for the activity stream when running inventory " "sync." msgstr "在运行清单同步时,为活动流启用捕获活动。" -#: awx/main/conf.py:40 +#: awx/main/conf.py:38 msgid "All Users Visible to Organization Admins" msgstr "机构管理员可见所有用户" -#: awx/main/conf.py:41 +#: awx/main/conf.py:39 msgid "" "Controls whether any Organization Admin can view all users and teams, even " "those not associated with their Organization." msgstr "控制任何机构管理员是否可查看所有用户和团队,甚至包括与其机构没有关联的用户和团队。" -#: awx/main/conf.py:50 +#: awx/main/conf.py:48 msgid "Organization Admins Can Manage Users and Teams" msgstr "机构管理员可以管理用户和团队" -#: awx/main/conf.py:51 +#: awx/main/conf.py:49 msgid "" "Controls whether any Organization Admin has the privileges to create and " "manage users and teams. You may want to disable this ability if you are " "using an LDAP or SAML integration." msgstr "控制机构管理员是否具有创建和管理用户和团队的权限。如果您使用 LDAP 或 SAML 集成,您可能需要禁用此功能。" -#: awx/main/conf.py:62 +#: awx/main/conf.py:60 msgid "Base URL of the Tower host" msgstr "Tower 主机的基本 URL" -#: awx/main/conf.py:63 +#: awx/main/conf.py:61 msgid "" "This setting is used by services like notifications to render a valid url to " "the Tower host." msgstr "此设置供通知类的服务用来为 Tower 主机呈现有效的 URL。" -#: awx/main/conf.py:72 +#: awx/main/conf.py:70 msgid "Remote Host Headers" msgstr "远程主机标头" -#: awx/main/conf.py:73 +#: awx/main/conf.py:71 msgid "" "HTTP headers and meta keys to search to determine remote host name or IP. " "Add additional items to this list, such as \"HTTP_X_FORWARDED_FOR\", if " @@ -1916,114 +2040,124 @@ msgid "" "Adminstrator guide for more details." msgstr "为确定远程主机名或 IP 而搜索的 HTTP 标头和元键。如果位于反向代理后端,请将其他项添加到此列表,如 \"HTTP_X_FORWARDED_FOR\"。请参阅管理员指南的“代理支持”部分以了解更多详情。" -#: awx/main/conf.py:85 -msgid "Proxy IP Whitelist" -msgstr "代理 IP 白名单" +#: awx/main/conf.py:83 +msgid "Proxy IP Allowed List" +msgstr "代理 IP 允许列表" -#: awx/main/conf.py:86 +#: awx/main/conf.py:84 msgid "" "If Tower is behind a reverse proxy/load balancer, use this setting to " -"whitelist the proxy IP addresses from which Tower should trust custom " +"configure the proxy IP addresses from which Tower should trust custom " "REMOTE_HOST_HEADERS header values. If this setting is an empty list (the " "default), the headers specified by REMOTE_HOST_HEADERS will be trusted " "unconditionally')" msgstr "如果 Tower 位于反向代理/负载均衡器后端,则使用此设置可将 Tower 应该信任自定义 REMOTE_HOST_HEADERS 标头值的代理服务器 IP 地址列入白名单。如果此设置为空列表(默认设置),则将无条件地信任由 REMOTE_HOST_HEADERS 指定的标头。" -#: awx/main/conf.py:112 +#: awx/main/conf.py:98 msgid "License" msgstr "许可证" -#: awx/main/conf.py:113 +#: awx/main/conf.py:99 msgid "" "The license controls which features and functionality are enabled. Use /api/" "v2/config/ to update or change the license." msgstr "许可证控制启用哪些特性和功能。使用 /api/v2/config/ 来更新或更改许可证。" -#: awx/main/conf.py:127 +#: awx/main/conf.py:113 msgid "Red Hat customer username" msgstr "红帽客户用户名" -#: awx/main/conf.py:128 -msgid "" -"This username is used to retrieve license information and to send Automation " -"Analytics" -msgstr "此用户名用于检索许可证信息并发送自动化分析" +#: awx/main/conf.py:114 +msgid "This username is used to send data to Automation Analytics" +msgstr "向 Automation Analytics 发送数据所使用的用户名" -#: awx/main/conf.py:140 +#: awx/main/conf.py:126 msgid "Red Hat customer password" msgstr "红帽客户密码" -#: awx/main/conf.py:141 -msgid "" -"This password is used to retrieve license information and to send Automation " -"Analytics" -msgstr "此密码用于检索许可证信息并发送自动化分析" +#: awx/main/conf.py:127 +msgid "This password is used to send data to Automation Analytics" +msgstr "向 Automation Analytics 发送数据所使用的密码" + +#: awx/main/conf.py:139 +msgid "Red Hat or Satellite username" +msgstr "Red Hat 或 Satellite 用户名" + +#: awx/main/conf.py:140 +msgid "This username is used to retrieve subscription and content information" +msgstr "检索订阅和内容信息所使用的用户名" #: awx/main/conf.py:152 -msgid "Automation Analytics upload URL." -msgstr "自动化分析上传 URL。" +msgid "Red Hat or Satellite password" +msgstr "Red Hat 或 Satellite 密码" #: awx/main/conf.py:153 +msgid "This password is used to retrieve subscription and content information" +msgstr "检索订阅和内容信息所使用的密码" + +#: awx/main/conf.py:164 +msgid "Automation Analytics upload URL" +msgstr "Automation Analytics 上传 URL" + +#: awx/main/conf.py:165 msgid "" "This setting is used to to configure data collection for the Automation " "Analytics dashboard" msgstr "此设置用于为自动化分析仪表板配置数据收集" -#: awx/main/conf.py:161 +#: awx/main/conf.py:173 msgid "Unique identifier for an AWX/Tower installation" msgstr "AWX/Tower 安装的唯一标识符" -#: awx/main/conf.py:170 +#: awx/main/conf.py:182 msgid "Custom virtual environment paths" msgstr "自定义虚拟环境路径" -#: awx/main/conf.py:171 +#: awx/main/conf.py:183 msgid "" "Paths where Tower will look for custom virtual environments (in addition to /" "var/lib/awx/venv/). Enter one path per line." msgstr "(除了 /var/lib/awx/venv/ 之外)Tower 将在这些路径查找自定义虚拟环境。每行输入一个路径。" -#: awx/main/conf.py:181 +#: awx/main/conf.py:193 msgid "Ansible Modules Allowed for Ad Hoc Jobs" msgstr "允许用于临时作业的 Ansible 模块" -#: awx/main/conf.py:182 +#: awx/main/conf.py:194 msgid "List of modules allowed to be used by ad-hoc jobs." msgstr "允许供临时作业使用的模块列表。" -#: awx/main/conf.py:183 awx/main/conf.py:205 awx/main/conf.py:214 -#: awx/main/conf.py:225 awx/main/conf.py:235 awx/main/conf.py:245 -#: awx/main/conf.py:256 awx/main/conf.py:267 awx/main/conf.py:278 -#: awx/main/conf.py:290 awx/main/conf.py:299 awx/main/conf.py:312 -#: awx/main/conf.py:325 awx/main/conf.py:337 awx/main/conf.py:348 -#: awx/main/conf.py:359 awx/main/conf.py:371 awx/main/conf.py:383 -#: awx/main/conf.py:394 awx/main/conf.py:414 awx/main/conf.py:424 -#: awx/main/conf.py:434 awx/main/conf.py:450 awx/main/conf.py:463 -#: awx/main/conf.py:477 awx/main/conf.py:491 awx/main/conf.py:503 -#: awx/main/conf.py:513 awx/main/conf.py:524 awx/main/conf.py:534 -#: awx/main/conf.py:545 awx/main/conf.py:555 awx/main/conf.py:565 -#: awx/main/conf.py:577 awx/main/conf.py:589 awx/main/conf.py:601 -#: awx/main/conf.py:615 awx/main/conf.py:627 +#: awx/main/conf.py:195 awx/main/conf.py:217 awx/main/conf.py:226 +#: awx/main/conf.py:237 awx/main/conf.py:247 awx/main/conf.py:257 +#: awx/main/conf.py:267 awx/main/conf.py:279 awx/main/conf.py:292 +#: awx/main/conf.py:302 awx/main/conf.py:315 awx/main/conf.py:328 +#: awx/main/conf.py:340 awx/main/conf.py:351 awx/main/conf.py:362 +#: awx/main/conf.py:374 awx/main/conf.py:386 awx/main/conf.py:397 +#: awx/main/conf.py:417 awx/main/conf.py:427 awx/main/conf.py:437 +#: awx/main/conf.py:450 awx/main/conf.py:461 awx/main/conf.py:471 +#: awx/main/conf.py:482 awx/main/conf.py:492 awx/main/conf.py:502 +#: awx/main/conf.py:514 awx/main/conf.py:527 awx/main/conf.py:540 +#: awx/main/conf.py:555 awx/main/conf.py:568 msgid "Jobs" msgstr "作业" -#: awx/main/conf.py:192 +#: awx/main/conf.py:204 msgid "Always" msgstr "始终" -#: awx/main/conf.py:193 +#: awx/main/conf.py:205 msgid "Never" msgstr "永不" -#: awx/main/conf.py:194 +#: awx/main/conf.py:206 msgid "Only On Job Template Definitions" msgstr "仅在作业模板定义中" -#: awx/main/conf.py:197 +#: awx/main/conf.py:209 msgid "When can extra variables contain Jinja templates?" msgstr "额外变量何时可以包含 Jinja 模板?" -#: awx/main/conf.py:199 +#: awx/main/conf.py:211 msgid "" "Ansible allows variable substitution via the Jinja2 templating language for " "--extra-vars. This poses a potential security risk where Tower users with " @@ -2032,55 +2166,45 @@ msgid "" "to \"template\" or \"never\"." msgstr "Ansible 允许通过 Jinja2 模板语言为 --extra-vars 替换变量。这会带来潜在的安全风险,因为能够在作业启动时指定额外变量的 Tower 用户可使用 Jinja2 模板来运行任意 Python。建议将此值设为 \"template\" 或 \"never\"。" -#: awx/main/conf.py:212 +#: awx/main/conf.py:224 msgid "Enable job isolation" msgstr "启用作业隔离" -#: awx/main/conf.py:213 +#: awx/main/conf.py:225 msgid "" "Isolates an Ansible job from protected parts of the system to prevent " "exposing sensitive information." msgstr "将 Ansible 作业与系统受保护的部分隔离,以防止公开敏感信息。" -#: awx/main/conf.py:221 +#: awx/main/conf.py:233 msgid "Job execution path" msgstr "作业执行路径" -#: awx/main/conf.py:222 +#: awx/main/conf.py:234 msgid "" "The directory in which Tower will create new temporary directories for job " "execution and isolation (such as credential files and custom inventory " "scripts)." msgstr "Tower 将在此目录下为作业执行和隔离创建新临时目录(如凭证文件和自定义清单脚本)。" -#: awx/main/conf.py:233 +#: awx/main/conf.py:245 msgid "Paths to hide from isolated jobs" msgstr "向隔离作业隐藏的路径" -#: awx/main/conf.py:234 +#: awx/main/conf.py:246 msgid "" "Additional paths to hide from isolated processes. Enter one path per line." msgstr "向隔离进程隐藏的其他路径。每行输入一个路径。" -#: awx/main/conf.py:243 +#: awx/main/conf.py:255 msgid "Paths to expose to isolated jobs" msgstr "向隔离作业公开的路径" -#: awx/main/conf.py:244 +#: awx/main/conf.py:256 msgid "" -"Whitelist of paths that would otherwise be hidden to expose to isolated " -"jobs. Enter one path per line." -msgstr "要向隔离作业公开的原本隐藏的路径白名单。每行输入一个路径。" - -#: awx/main/conf.py:254 -msgid "Verbosity level for isolated node management tasks" -msgstr "隔离节点管理任务的详细程度" - -#: awx/main/conf.py:255 -msgid "" -"This can be raised to aid in debugging connection issues for isolated task " -"execution" -msgstr "可以提高此设置来帮助对隔离任务执行中的连接问题进行调试。" +"List of paths that would otherwise be hidden to expose to isolated jobs. " +"Enter one path per line." +msgstr "要向隔离作业公开的原本隐藏的路径列表。每行输入一个路径。" #: awx/main/conf.py:265 msgid "Isolated status check interval" @@ -2092,298 +2216,244 @@ msgid "" "isolated instances." msgstr "在隔离实例中运行的任务的状态检查间休眠的秒数。" -#: awx/main/conf.py:275 +#: awx/main/conf.py:276 msgid "Isolated launch timeout" msgstr "隔离启动超时" -#: awx/main/conf.py:276 +#: awx/main/conf.py:277 msgid "" "The timeout (in seconds) for launching jobs on isolated instances. This " "includes the time needed to copy source control files (playbooks) to the " "isolated instance." msgstr "在隔离的实例中启动作业的超时时间(以秒为单位)。这包括将源控制文件 (playbook) 复制到隔离实例所需的时间。" -#: awx/main/conf.py:287 +#: awx/main/conf.py:289 msgid "Isolated connection timeout" msgstr "隔离连接超时" -#: awx/main/conf.py:288 +#: awx/main/conf.py:290 msgid "" "Ansible SSH connection timeout (in seconds) to use when communicating with " "isolated instances. Value should be substantially greater than expected " "network latency." msgstr "与隔离的实例通信时使用的 Ansible SSH 连接超时(以秒为单位)。值应显著大于预期的网络延迟。" -#: awx/main/conf.py:297 +#: awx/main/conf.py:300 msgid "Isolated host key checking" msgstr "隔离主机密钥检查" -#: awx/main/conf.py:298 +#: awx/main/conf.py:301 msgid "" "When set to True, AWX will enforce strict host key checking for " "communication with isolated nodes." msgstr "当设置为 True 时,AWX 将针对与隔离的节点进行通信实行严格的主机密钥检查。" -#: awx/main/conf.py:308 +#: awx/main/conf.py:311 msgid "Generate RSA keys for isolated instances" msgstr "为隔离的实例生成 RSA 密钥" -#: awx/main/conf.py:309 +#: awx/main/conf.py:312 msgid "" "If set, a random RSA key will be generated and distributed to isolated " "instances. To disable this behavior and manage authentication for isolated " "instances outside of Tower, disable this setting." msgstr "如果设置,将生成随机 RSA 密钥并将其分发到隔离的实例。要禁用此行为并管理 Tower 之外的隔离实例的身份验证,请禁用此设置。" -#: awx/main/conf.py:323 awx/main/conf.py:324 +#: awx/main/conf.py:326 awx/main/conf.py:327 msgid "The RSA private key for SSH traffic to isolated instances" msgstr "到隔离实例的 SSH 流量的 RSA 私钥" -#: awx/main/conf.py:335 awx/main/conf.py:336 +#: awx/main/conf.py:338 awx/main/conf.py:339 msgid "The RSA public key for SSH traffic to isolated instances" msgstr "到隔离实例的 SSH 流量的 RSA 公钥" -#: awx/main/conf.py:345 +#: awx/main/conf.py:348 msgid "Enable detailed resource profiling on all playbook runs" msgstr "启用所有 playbook 运行的详细资源分析" -#: awx/main/conf.py:346 +#: awx/main/conf.py:349 msgid "" "If set, detailed resource profiling data will be collected on all jobs. This " "data can be gathered with `sosreport`." msgstr "如果设置,将收集所有作业的详细资源分析数据。这些数据可使用 `sosreport` 进行收集。" -#: awx/main/conf.py:356 +#: awx/main/conf.py:359 msgid "Interval (in seconds) between polls for cpu usage." msgstr "cpu 用量轮询间隔(以秒为单位)。" -#: awx/main/conf.py:357 +#: awx/main/conf.py:360 msgid "" "Interval (in seconds) between polls for cpu usage. Setting this lower than " "the default will affect playbook performance." msgstr "cpu 用量轮询间隔(以秒为单位)。此设置低于默认值会影响 playbook 性能。" -#: awx/main/conf.py:368 +#: awx/main/conf.py:371 msgid "Interval (in seconds) between polls for memory usage." msgstr "内存用量轮询间隔(以秒为单位)。" -#: awx/main/conf.py:369 +#: awx/main/conf.py:372 msgid "" "Interval (in seconds) between polls for memory usage. Setting this lower " "than the default will affect playbook performance." msgstr "内存用量轮询间隔(以秒为单位)。此设置低于默认值会影响 playbook 性能。" -#: awx/main/conf.py:380 +#: awx/main/conf.py:383 msgid "Interval (in seconds) between polls for PID count." msgstr "PID 计数轮询间隔(以秒为单位)。" -#: awx/main/conf.py:381 +#: awx/main/conf.py:384 msgid "" "Interval (in seconds) between polls for PID count. Setting this lower than " "the default will affect playbook performance." msgstr "PID 计数轮询间隔(以秒为单位)。此设置低于默认值会影响 playbook 的性能。" -#: awx/main/conf.py:392 +#: awx/main/conf.py:395 msgid "Extra Environment Variables" msgstr "额外环境变量" -#: awx/main/conf.py:393 +#: awx/main/conf.py:396 msgid "" "Additional environment variables set for playbook runs, inventory updates, " "project updates, and notification sending." msgstr "为 playbook 运行、库存更新、项目更新和通知发送设置的额外环境变量。" -#: awx/main/conf.py:403 +#: awx/main/conf.py:406 msgid "Gather data for Automation Analytics" msgstr "为自动化分析收集数据" -#: awx/main/conf.py:404 +#: awx/main/conf.py:407 msgid "Enables Tower to gather data on automation and send it to Red Hat." msgstr "允许 Tower 收集自动化数据并将其发送给红帽。" -#: awx/main/conf.py:412 +#: awx/main/conf.py:415 msgid "Run Project Updates With Higher Verbosity" msgstr "以更高的详细程度运行项目更新" -#: awx/main/conf.py:413 +#: awx/main/conf.py:416 msgid "" "Adds the CLI -vvv flag to ansible-playbook runs of project_update.yml used " "for project updates." msgstr "将 CLI -vvv 标记添加到用于项目更新的 project_update.yml 的 ansible-playbook 运行。" -#: awx/main/conf.py:422 +#: awx/main/conf.py:425 msgid "Enable Role Download" msgstr "启用角色下载" -#: awx/main/conf.py:423 +#: awx/main/conf.py:426 msgid "" "Allows roles to be dynamically downloaded from a requirements.yml file for " "SCM projects." msgstr "允许从 SCM 项目的 requirements.yml 文件中动态下载角色。" -#: awx/main/conf.py:432 +#: awx/main/conf.py:435 msgid "Enable Collection(s) Download" msgstr "启用集合下载" -#: awx/main/conf.py:433 +#: awx/main/conf.py:436 msgid "" "Allows collections to be dynamically downloaded from a requirements.yml file " "for SCM projects." msgstr "允许从 SCM 项目的 requirements.yml 文件中动态下载集合。" -#: awx/main/conf.py:443 -msgid "Primary Galaxy Server URL" -msgstr "主 Galaxy 服务器 URL" - #: awx/main/conf.py:445 +msgid "Follow symlinks" +msgstr "跟随符号链接" + +#: awx/main/conf.py:447 msgid "" -"For organizations that run their own Galaxy service, this gives the option " -"to specify a host as the primary galaxy server. Requirements will be " -"downloaded from the primary if the specific role or collection is available " -"there. If the content is not avilable in the primary, or if this field is " -"left blank, it will default to galaxy.ansible.com." -msgstr "对于运行其自己的 Galaxy 服务的机构,这提供了将主机指定为主 galaxy 服务器的选项。如果特定角色或集合可用,则需要从主服务器下载这些要求。如果内容在主服务器中不可用,或者此字段留空,则默认为 galaxy.ansible.com。" +"Follow symbolic links when scanning for playbooks. Be aware that setting " +"this to True can lead to infinite recursion if a link points to a parent " +"directory of itself." +msgstr "在扫描 playbook 时跟随的符号链接。请注意,如果链接指向其自身的父目录,则将其设置为 True 可能会导致无限递归。" -#: awx/main/conf.py:459 -msgid "Primary Galaxy Server Username" -msgstr "主 Galaxy 服务器用户名" - -#: awx/main/conf.py:460 -msgid "" -"For using a galaxy server at higher precedence than the public Ansible " -"Galaxy. The username to use for basic authentication against the Galaxy " -"instance, this is mutually exclusive with PRIMARY_GALAXY_TOKEN." -msgstr "适用于以高于公共 Ansible Galaxy 的优先级使用 galaxy 服务器的情况。用于针对 Galaxy 实例进行基本身份验证的用户名,与 PRIMARY_GALAXY_TOKEN 相互排斥。" - -#: awx/main/conf.py:473 -msgid "Primary Galaxy Server Password" -msgstr "主 Galaxy 服务器密码" - -#: awx/main/conf.py:474 -msgid "" -"For using a galaxy server at higher precedence than the public Ansible " -"Galaxy. The password to use for basic authentication against the Galaxy " -"instance, this is mutually exclusive with PRIMARY_GALAXY_TOKEN." -msgstr "适用于以高于公共 Ansible Galaxy 的优先级使用 galaxy 服务器的情况。用于针对 Galaxy 实例进行基本身份验证的密码,与 PRIMARY_GALAXY_TOKEN 相互排斥。" - -#: awx/main/conf.py:487 -msgid "Primary Galaxy Server Token" -msgstr "主 Galaxy 服务器令牌" - -#: awx/main/conf.py:488 -msgid "" -"For using a galaxy server at higher precedence than the public Ansible " -"Galaxy. The token to use for connecting with the Galaxy instance, this is " -"mutually exclusive with corresponding username and password settings." -msgstr "适用于以高于公共 Ansible Galaxy 的优先级使用 galaxy 服务器的情况。用于连接 Galaxy 实例的令牌,与对应的用户名和密码设置相互排斥。" - -#: awx/main/conf.py:500 -msgid "Primary Galaxy Authentication URL" -msgstr "主 Galaxy 身份验证 URL" - -#: awx/main/conf.py:501 -msgid "" -"For using a galaxy server at higher precedence than the public Ansible " -"Galaxy. The token_endpoint of a Keycloak server." -msgstr "适用于以高于公共 Ansible Galaxy 的优先级使用 galaxy 服务器的情况。Keycloak 服务器的 token_endpoint。" - -#: awx/main/conf.py:511 -msgid "Allow Access to Public Galaxy" -msgstr "允许访问公共 Galaxy" - -#: awx/main/conf.py:512 -msgid "" -"Allow or deny access to the public Ansible Galaxy during project updates." -msgstr "在项目更新期间允许或拒绝访问公共 Ansible Galaxy。" - -#: awx/main/conf.py:521 +#: awx/main/conf.py:458 msgid "Ignore Ansible Galaxy SSL Certificate Verification" msgstr "忽略 Ansible Galaxy SSL 证书验证" -#: awx/main/conf.py:522 +#: awx/main/conf.py:459 msgid "" -"If set to true, certificate validation will not be done wheninstalling " +"If set to true, certificate validation will not be done when installing " "content from any Galaxy server." msgstr "如果设为 true,则在从任何 Galaxy 服务器安装内容时将不执行证书验证。" -#: awx/main/conf.py:532 +#: awx/main/conf.py:469 msgid "Standard Output Maximum Display Size" msgstr "标准输出最大显示大小" -#: awx/main/conf.py:533 +#: awx/main/conf.py:470 msgid "" "Maximum Size of Standard Output in bytes to display before requiring the " "output be downloaded." msgstr "要求下载输出前显示的最大标准输出大小(以字节为单位)。" -#: awx/main/conf.py:542 +#: awx/main/conf.py:479 msgid "Job Event Standard Output Maximum Display Size" msgstr "作业事件标准输出最大显示大小" -#: awx/main/conf.py:544 +#: awx/main/conf.py:481 msgid "" "Maximum Size of Standard Output in bytes to display for a single job or ad " "hoc command event. `stdout` will end with `…` when truncated." msgstr "为单个作业或临时命令事件显示的最大标准输出大小(以字节为单位)。`stdout` 在截断时会以 `…` 结束。" -#: awx/main/conf.py:553 +#: awx/main/conf.py:490 msgid "Maximum Scheduled Jobs" msgstr "最多调度作业" -#: awx/main/conf.py:554 +#: awx/main/conf.py:491 msgid "" "Maximum number of the same job template that can be waiting to run when " "launching from a schedule before no more are created." msgstr "从计划启动时可以等待运行的同一作业模板的最大数量,此后不再创建更多模板。" -#: awx/main/conf.py:563 +#: awx/main/conf.py:500 msgid "Ansible Callback Plugins" msgstr "Ansible 回调插件" -#: awx/main/conf.py:564 +#: awx/main/conf.py:501 msgid "" "List of paths to search for extra callback plugins to be used when running " "jobs. Enter one path per line." msgstr "用于搜索供运行作业时使用的额外回调插件的路径列表。每行输入一个路径。" -#: awx/main/conf.py:574 +#: awx/main/conf.py:511 msgid "Default Job Timeout" msgstr "默认作业超时" -#: awx/main/conf.py:575 +#: awx/main/conf.py:512 msgid "" "Maximum time in seconds to allow jobs to run. Use value of 0 to indicate " "that no timeout should be imposed. A timeout set on an individual job " "template will override this." msgstr "允许运行作业的最长时间(以秒为单位)。使用 0 值表示不应应用超时。在单个作业模板中设置的超时会覆写此值。" -#: awx/main/conf.py:586 +#: awx/main/conf.py:524 msgid "Default Inventory Update Timeout" msgstr "默认清单更新超时" -#: awx/main/conf.py:587 +#: awx/main/conf.py:525 msgid "" "Maximum time in seconds to allow inventory updates to run. Use value of 0 to " "indicate that no timeout should be imposed. A timeout set on an individual " "inventory source will override this." msgstr "允许运行清单更新的最长时间(以秒为单位)。使用 0 值表示不应应用超时。在单个清单源中设置的超时会覆写此值。" -#: awx/main/conf.py:598 +#: awx/main/conf.py:537 msgid "Default Project Update Timeout" msgstr "默认项目更新超时" -#: awx/main/conf.py:599 +#: awx/main/conf.py:538 msgid "" "Maximum time in seconds to allow project updates to run. Use value of 0 to " "indicate that no timeout should be imposed. A timeout set on an individual " "project will override this." msgstr "允许运行项目更新的最长时间(以秒为单位)。使用 0 值表示不应应用超时。在单个项目中设置的超时会覆写此值。" -#: awx/main/conf.py:610 +#: awx/main/conf.py:550 msgid "Per-Host Ansible Fact Cache Timeout" msgstr "每个主机 Ansible 事实缓存超时" -#: awx/main/conf.py:611 +#: awx/main/conf.py:551 msgid "" "Maximum time, in seconds, that stored Ansible facts are considered valid " "since the last time they were modified. Only valid, non-stale, facts will be " @@ -2392,74 +2462,74 @@ msgid "" "timeout should be imposed." msgstr "存储的 Ansible 事实自上次修改后被视为有效的最长时间(以秒为单位)。只有有效且未过时的事实才会被 playbook 访问。注意,这不会影响从数据库中删除 ansible_facts。使用 0 值表示不应应用超时。" -#: awx/main/conf.py:624 -msgid "Maximum number of forks per job." +#: awx/main/conf.py:565 +msgid "Maximum number of forks per job" msgstr "每个作业的最大 fork 数量。" -#: awx/main/conf.py:625 +#: awx/main/conf.py:566 msgid "" "Saving a Job Template with more than this number of forks will result in an " "error. When set to 0, no limit is applied." msgstr "在保存作业模板时带有比这个数量更多的 fork 会出错。如果设置为 0,则代表没有限制。" -#: awx/main/conf.py:636 +#: awx/main/conf.py:577 msgid "Logging Aggregator" msgstr "日志记录聚合器" -#: awx/main/conf.py:637 +#: awx/main/conf.py:578 msgid "Hostname/IP where external logs will be sent to." msgstr "外部日志发送到的主机名/IP。" -#: awx/main/conf.py:638 awx/main/conf.py:649 awx/main/conf.py:661 -#: awx/main/conf.py:671 awx/main/conf.py:683 awx/main/conf.py:698 -#: awx/main/conf.py:710 awx/main/conf.py:719 awx/main/conf.py:729 -#: awx/main/conf.py:741 awx/main/conf.py:752 awx/main/conf.py:764 -#: awx/main/conf.py:777 awx/main/conf.py:787 awx/main/conf.py:799 -#: awx/main/conf.py:810 awx/main/conf.py:820 +#: awx/main/conf.py:579 awx/main/conf.py:590 awx/main/conf.py:602 +#: awx/main/conf.py:612 awx/main/conf.py:624 awx/main/conf.py:639 +#: awx/main/conf.py:651 awx/main/conf.py:660 awx/main/conf.py:670 +#: awx/main/conf.py:682 awx/main/conf.py:693 awx/main/conf.py:706 +#: awx/main/conf.py:719 awx/main/conf.py:731 awx/main/conf.py:742 +#: awx/main/conf.py:752 msgid "Logging" msgstr "日志记录" -#: awx/main/conf.py:646 +#: awx/main/conf.py:587 msgid "Logging Aggregator Port" msgstr "日志记录聚合器端口" -#: awx/main/conf.py:647 +#: awx/main/conf.py:588 msgid "" "Port on Logging Aggregator to send logs to (if required and not provided in " "Logging Aggregator)." msgstr "将日志发送到的日志记录聚合器上的端口(如果需要且未在日志聚合器中提供)。" -#: awx/main/conf.py:659 +#: awx/main/conf.py:600 msgid "Logging Aggregator Type" msgstr "日志记录聚合器类型" -#: awx/main/conf.py:660 +#: awx/main/conf.py:601 msgid "Format messages for the chosen log aggregator." msgstr "所选日志聚合器的格式消息。" -#: awx/main/conf.py:669 +#: awx/main/conf.py:610 msgid "Logging Aggregator Username" msgstr "日志记录聚合器用户名" -#: awx/main/conf.py:670 +#: awx/main/conf.py:611 msgid "Username for external log aggregator (if required; HTTP/s only)." msgstr "外部日志聚合器的用户名(如果需要。只支持 HTTP/s)。" -#: awx/main/conf.py:681 +#: awx/main/conf.py:622 msgid "Logging Aggregator Password/Token" msgstr "日志记录聚合器密码/令牌" -#: awx/main/conf.py:682 +#: awx/main/conf.py:623 msgid "" "Password or authentication token for external log aggregator (if required; " "HTTP/s only)." msgstr "外部日志聚合器的密码或身份验证令牌(如果需要。HTTP/s)。" -#: awx/main/conf.py:691 +#: awx/main/conf.py:632 msgid "Loggers Sending Data to Log Aggregator Form" msgstr "将数据发送到日志聚合器表单的日志记录器" -#: awx/main/conf.py:692 +#: awx/main/conf.py:633 msgid "" "List of loggers that will send HTTP logs to the collector, these can include " "any or all of: \n" @@ -2473,11 +2543,11 @@ msgstr "将 HTTP 日志发送到收集器的日志记录器列表,其中包括 "job_events - Ansible 作业事件的回调数据\n" "system_tracking - 从扫描作业收集的事实。" -#: awx/main/conf.py:705 +#: awx/main/conf.py:646 msgid "Log System Tracking Facts Individually" msgstr "单独记录系统跟踪事实" -#: awx/main/conf.py:706 +#: awx/main/conf.py:647 msgid "" "If set, system tracking facts will be sent for each package, service, or " "other item found in a scan, allowing for greater search query granularity. " @@ -2485,47 +2555,47 @@ msgid "" "efficiency in fact processing." msgstr "如果设置,则会为扫描中找到的每个软件包、服务或其他项发送系统跟踪事实,以便提高搜索查询的粒度。如果未设置,则将以单一字典形式发送事实,从而提高事实处理的效率。" -#: awx/main/conf.py:717 +#: awx/main/conf.py:658 msgid "Enable External Logging" msgstr "启用外部日志记录" -#: awx/main/conf.py:718 +#: awx/main/conf.py:659 msgid "Enable sending logs to external log aggregator." msgstr "启用将日志发送到外部日志聚合器。" -#: awx/main/conf.py:727 +#: awx/main/conf.py:668 msgid "Cluster-wide Tower unique identifier." msgstr "集群范围的 Tower 唯一标识符。" -#: awx/main/conf.py:728 +#: awx/main/conf.py:669 msgid "Useful to uniquely identify Tower instances." msgstr "用于唯一标识 Tower 实例。" -#: awx/main/conf.py:737 +#: awx/main/conf.py:678 msgid "Logging Aggregator Protocol" msgstr "日志记录聚合器协议" -#: awx/main/conf.py:738 +#: awx/main/conf.py:679 msgid "" "Protocol used to communicate with log aggregator. HTTPS/HTTP assumes HTTPS " "unless http:// is explicitly used in the Logging Aggregator hostname." msgstr "用于与日志聚合器通信的协议。HTTPS/HTTP 假设 HTTPS,除非在日志记录聚合器主机名中明确使用 http://。" -#: awx/main/conf.py:748 +#: awx/main/conf.py:689 msgid "TCP Connection Timeout" msgstr "TCP 连接超时" -#: awx/main/conf.py:749 +#: awx/main/conf.py:690 msgid "" "Number of seconds for a TCP connection to external log aggregator to " "timeout. Applies to HTTPS and TCP log aggregator protocols." msgstr "与外部日志聚合器的 TCP 连接超时的秒数。适用于 HTTPS 和 TCP 日志聚合器协议。" -#: awx/main/conf.py:759 +#: awx/main/conf.py:701 msgid "Enable/disable HTTPS certificate verification" msgstr "启用/禁用 HTTPS 证书验证" -#: awx/main/conf.py:760 +#: awx/main/conf.py:702 msgid "" "Flag to control enable/disable of certificate verification when " "LOG_AGGREGATOR_PROTOCOL is \"https\". If enabled, Tower's log handler will " @@ -2533,11 +2603,11 @@ msgid "" "connection." msgstr "当 LOG_aggregator_PROTOCOL 为 \"https\" 时,用来控制证书启用/禁用证书验证的标记。如果启用,Tower 的日志处理程序会在建立连接前验证外部日志聚合器发送的证书。" -#: awx/main/conf.py:772 +#: awx/main/conf.py:714 msgid "Logging Aggregator Level Threshold" msgstr "日志记录聚合器级别阈值" -#: awx/main/conf.py:773 +#: awx/main/conf.py:715 msgid "" "Level threshold used by log handler. Severities from lowest to highest are " "DEBUG, INFO, WARNING, ERROR, CRITICAL. Messages less severe than the " @@ -2545,198 +2615,144 @@ msgid "" "anlytics ignore this setting)" msgstr "日志处理程序使用的级别阈值。从最低到最高的严重性为:DEBUG、INFO、WARNING、ERROR、CRITICAL。日志处理程序会忽略严重性低于阈值的消息。(类别 awx.anlytics 下的消息会忽略此设置)" -#: awx/main/conf.py:785 -msgid "Enabled external log aggregation auditing" -msgstr "启用外部日志聚合审核" - -#: awx/main/conf.py:786 -msgid "" -"When enabled, all external logs emitted by Tower will also be written to /" -"var/log/tower/external.log. This is an experimental setting intended to be " -"used for debugging external log aggregation issues (and may be subject to " -"change in the future)." -msgstr "启用后,Tower 发出的所有外部日志也会写入 /var/log/tower/external.log。这是一个实验性设置,用于调试外部日志聚合问题(将来可能会有变化)。" - -#: awx/main/conf.py:795 +#: awx/main/conf.py:727 msgid "Maximum disk persistance for external log aggregation (in GB)" msgstr "外部日志聚合的最大磁盘持久性存储(以 GB 为单位)" -#: awx/main/conf.py:796 +#: awx/main/conf.py:728 msgid "" "Amount of data to store (in gigabytes) during an outage of the external log " "aggregator (defaults to 1). Equivalent to the rsyslogd queue.maxdiskspace " "setting." msgstr "外部日志聚合器停机时要保存的数据量(以 GB 为单位)(默认为 1),与 rsyslogd queue.maxdiskspace 设置相同。" -#: awx/main/conf.py:806 +#: awx/main/conf.py:738 msgid "File system location for rsyslogd disk persistence" msgstr "rsyslogd 磁盘持久存储在文件系统中的位置" -#: awx/main/conf.py:807 +#: awx/main/conf.py:739 msgid "" "Location to persist logs that should be retried after an outage of the " "external log aggregator (defaults to /var/lib/awx). Equivalent to the " "rsyslogd queue.spoolDirectory setting." msgstr "在外部日志聚合器停止工作后,重试的持久性日志的位置(默认为 /var/lib/awx)。与 rsyslogd queue.spoolDirectory 的设置相同。" -#: awx/main/conf.py:817 +#: awx/main/conf.py:749 msgid "Enable rsyslogd debugging" msgstr "启用 rsyslogd 调试" -#: awx/main/conf.py:818 +#: awx/main/conf.py:750 msgid "" "Enabled high verbosity debugging for rsyslogd. Useful for debugging " "connection issues for external log aggregation." msgstr "为 rsyslogd 启用高度详细调试。用于调试外部日志聚合的连接问题。" -#: awx/main/conf.py:828 -msgid "Message Durability" -msgstr "消息持续时间" - -#: awx/main/conf.py:829 -msgid "" -"When set (the default), underlying queues will be persisted to disk. " -"Disable this to enable higher message bus throughput." -msgstr "如果设置(默认值),底层队列将保留到磁盘中。禁用此设置可启用更高消息总线吞吐量。" - -#: awx/main/conf.py:838 +#: awx/main/conf.py:761 msgid "Last gather date for Automation Analytics." msgstr "为自动化分析收集的最新数据" -#: awx/main/conf.py:848 +#: awx/main/conf.py:771 msgid "Automation Analytics Gather Interval" msgstr "自动化分析收集间隔" -#: awx/main/conf.py:849 +#: awx/main/conf.py:772 msgid "Interval (in seconds) between data gathering." msgstr "收集数据间的间隔(以秒为单位)。" -#: awx/main/conf.py:871 awx/sso/conf.py:1239 +#: awx/main/conf.py:795 awx/sso/conf.py:1251 msgid "\n" msgstr "\n" -#: awx/main/conf.py:892 -msgid "" -"A URL for Primary Galaxy must be defined before disabling public Galaxy." -msgstr "在禁用公共 Galaxy 之前,必须定义主 Galaxy 的 URL。" - -#: awx/main/conf.py:912 -msgid "Cannot provide field if PRIMARY_GALAXY_URL is not set." -msgstr "如果未设置 PRIMARY_Galaxy_URL,则无法提供字段。" - -#: awx/main/conf.py:925 -#, python-brace-format -msgid "" -"Galaxy server settings are not available until Ansible {min_version}, you " -"are running {current_version}." -msgstr "在 Ansible {min_version} 之前,Galaxy 服务器设置不可用,您正在运行 {current_version}。" - -#: awx/main/conf.py:934 -msgid "" -"Setting Galaxy token and authentication URL is mutually exclusive with " -"username and password." -msgstr "设置 Galaxy 令牌和验证 URL 与用户名和密码相互排斥。" - -#: awx/main/conf.py:937 -msgid "If authenticating via username and password, both must be provided." -msgstr "如果通过用户名和密码进行身份验证,则必须提供两者。" - -#: awx/main/conf.py:943 -msgid "" -"If authenticating via token, both token and authentication URL must be " -"provided." -msgstr "如果通过令牌进行身份验证,则必须提供令牌和身份验证 URL。" - -#: awx/main/constants.py:17 +#: awx/main/constants.py:16 msgid "Sudo" msgstr "Sudo" -#: awx/main/constants.py:17 +#: awx/main/constants.py:16 msgid "Su" msgstr "Su" -#: awx/main/constants.py:17 +#: awx/main/constants.py:16 msgid "Pbrun" msgstr "Pbrun" -#: awx/main/constants.py:17 +#: awx/main/constants.py:16 msgid "Pfexec" msgstr "Pfexec" -#: awx/main/constants.py:18 +#: awx/main/constants.py:17 msgid "DZDO" msgstr "DZDO" -#: awx/main/constants.py:18 +#: awx/main/constants.py:17 msgid "Pmrun" msgstr "Pmrun" -#: awx/main/constants.py:18 +#: awx/main/constants.py:17 msgid "Runas" msgstr "Runas" -#: awx/main/constants.py:19 +#: awx/main/constants.py:18 msgid "Enable" msgstr "启用" -#: awx/main/constants.py:19 +#: awx/main/constants.py:18 msgid "Doas" msgstr "Doas" -#: awx/main/constants.py:19 +#: awx/main/constants.py:18 msgid "Ksu" msgstr "Ksu" -#: awx/main/constants.py:20 +#: awx/main/constants.py:19 msgid "Machinectl" msgstr "Machinectl" -#: awx/main/constants.py:20 +#: awx/main/constants.py:19 msgid "Sesu" msgstr "Sesu" -#: awx/main/constants.py:22 +#: awx/main/constants.py:21 msgid "None" msgstr "无" -#: awx/main/credential_plugins/aim.py:16 +#: awx/main/credential_plugins/aim.py:11 msgid "CyberArk AIM URL" msgstr "CyberArk AIM URL" -#: awx/main/credential_plugins/aim.py:21 +#: awx/main/credential_plugins/aim.py:16 msgid "Application ID" msgstr "应用 ID" -#: awx/main/credential_plugins/aim.py:26 +#: awx/main/credential_plugins/aim.py:21 msgid "Client Key" msgstr "客户端密钥" -#: awx/main/credential_plugins/aim.py:32 +#: awx/main/credential_plugins/aim.py:27 msgid "Client Certificate" msgstr "客户端证书" -#: awx/main/credential_plugins/aim.py:38 +#: awx/main/credential_plugins/aim.py:33 msgid "Verify SSL Certificates" msgstr "验证 SSL 证书" -#: awx/main/credential_plugins/aim.py:44 +#: awx/main/credential_plugins/aim.py:39 msgid "Object Query" msgstr "对象查询" -#: awx/main/credential_plugins/aim.py:46 +#: awx/main/credential_plugins/aim.py:41 msgid "" "Lookup query for the object. Ex: Safe=TestSafe;Object=testAccountName123" msgstr "对象的查找查询。例如:\"Safe=TestSafe;Object=testAccountName123\"" -#: awx/main/credential_plugins/aim.py:49 +#: awx/main/credential_plugins/aim.py:44 msgid "Object Query Format" msgstr "对象查询格式" -#: awx/main/credential_plugins/aim.py:55 +#: awx/main/credential_plugins/aim.py:50 msgid "Reason" msgstr "原因" -#: awx/main/credential_plugins/aim.py:57 +#: awx/main/credential_plugins/aim.py:52 msgid "" "Object request reason. This is only needed if it is required by the object's " "policy." @@ -2747,12 +2763,12 @@ msgid "Vault URL (DNS Name)" msgstr "Vault URL(DNS 名称)" #: awx/main/credential_plugins/azure_kv.py:26 -#: awx/main/models/credential/__init__.py:956 +#: awx/main/models/credential/__init__.py:968 msgid "Client ID" msgstr "客户端 ID" #: awx/main/credential_plugins/azure_kv.py:35 -#: awx/main/models/credential/__init__.py:965 +#: awx/main/models/credential/__init__.py:977 msgid "Tenant ID" msgstr "租户 ID" @@ -2773,142 +2789,177 @@ msgid "The name of the secret to look up." msgstr "要查找的机密的名称。" #: awx/main/credential_plugins/azure_kv.py:51 -#: awx/main/credential_plugins/conjur.py:47 +#: awx/main/credential_plugins/conjur.py:42 msgid "Secret Version" msgstr "机密版本" #: awx/main/credential_plugins/azure_kv.py:53 -#: awx/main/credential_plugins/conjur.py:49 -#: awx/main/credential_plugins/hashivault.py:67 +#: awx/main/credential_plugins/conjur.py:44 +#: awx/main/credential_plugins/hashivault.py:89 msgid "" "Used to specify a specific secret version (if left empty, the latest version " "will be used)." msgstr "用于指定特定机密版本(如果留空,则会使用最新版本)。" -#: awx/main/credential_plugins/conjur.py:18 +#: awx/main/credential_plugins/conjur.py:13 msgid "Conjur URL" msgstr "Conjur URL" -#: awx/main/credential_plugins/conjur.py:23 +#: awx/main/credential_plugins/conjur.py:18 msgid "API Key" msgstr "API 密钥" -#: awx/main/credential_plugins/conjur.py:28 awx/main/models/inventory.py:1018 +#: awx/main/credential_plugins/conjur.py:23 +#: awx/main/migrations/_inventory_source_vars.py:142 msgid "Account" msgstr "帐户" -#: awx/main/credential_plugins/conjur.py:32 -#: awx/main/models/credential/__init__.py:598 -#: awx/main/models/credential/__init__.py:654 -#: awx/main/models/credential/__init__.py:712 -#: awx/main/models/credential/__init__.py:785 -#: awx/main/models/credential/__init__.py:834 -#: awx/main/models/credential/__init__.py:860 -#: awx/main/models/credential/__init__.py:887 -#: awx/main/models/credential/__init__.py:947 -#: awx/main/models/credential/__init__.py:1020 -#: awx/main/models/credential/__init__.py:1051 -#: awx/main/models/credential/__init__.py:1101 +#: awx/main/credential_plugins/conjur.py:27 +#: awx/main/models/credential/__init__.py:606 +#: awx/main/models/credential/__init__.py:662 +#: awx/main/models/credential/__init__.py:720 +#: awx/main/models/credential/__init__.py:793 +#: awx/main/models/credential/__init__.py:846 +#: awx/main/models/credential/__init__.py:872 +#: awx/main/models/credential/__init__.py:899 +#: awx/main/models/credential/__init__.py:959 +#: awx/main/models/credential/__init__.py:1032 +#: awx/main/models/credential/__init__.py:1063 +#: awx/main/models/credential/__init__.py:1113 msgid "Username" msgstr "用户名" -#: awx/main/credential_plugins/conjur.py:36 +#: awx/main/credential_plugins/conjur.py:31 msgid "Public Key Certificate" msgstr "公钥证书" -#: awx/main/credential_plugins/conjur.py:42 +#: awx/main/credential_plugins/conjur.py:37 msgid "Secret Identifier" msgstr "机密标识符" -#: awx/main/credential_plugins/conjur.py:44 +#: awx/main/credential_plugins/conjur.py:39 msgid "The identifier for the secret e.g., /some/identifier" msgstr "机密的标识符,如 /some/identifier" -#: awx/main/credential_plugins/hashivault.py:19 +#: awx/main/credential_plugins/hashivault.py:14 msgid "Server URL" msgstr "服务器 URL" -#: awx/main/credential_plugins/hashivault.py:22 +#: awx/main/credential_plugins/hashivault.py:17 msgid "The URL to the HashiCorp Vault" msgstr "HashiCorp Vault 的 URL" -#: awx/main/credential_plugins/hashivault.py:25 -#: awx/main/models/credential/__init__.py:986 -#: awx/main/models/credential/__init__.py:1003 +#: awx/main/credential_plugins/hashivault.py:20 +#: awx/main/models/credential/__init__.py:998 +#: awx/main/models/credential/__init__.py:1015 msgid "Token" msgstr "令牌" -#: awx/main/credential_plugins/hashivault.py:28 +#: awx/main/credential_plugins/hashivault.py:23 msgid "The access token used to authenticate to the Vault server" msgstr "用于向 Vault 服务器进行身份验证的访问令牌" -#: awx/main/credential_plugins/hashivault.py:31 +#: awx/main/credential_plugins/hashivault.py:26 msgid "CA Certificate" msgstr "CA 证书" -#: awx/main/credential_plugins/hashivault.py:34 +#: awx/main/credential_plugins/hashivault.py:29 msgid "" "The CA certificate used to verify the SSL certificate of the Vault server" msgstr "用于验证 Vault 服务器 SSL 证书的 CA 证书" +#: awx/main/credential_plugins/hashivault.py:32 +msgid "AppRole role_id" +msgstr "AppRole role_id" + +#: awx/main/credential_plugins/hashivault.py:35 +msgid "The Role ID for AppRole Authentication" +msgstr "AppRole 身份验证的角色 ID" + #: awx/main/credential_plugins/hashivault.py:38 +msgid "AppRole secret_id" +msgstr "AppRole secret_id" + +#: awx/main/credential_plugins/hashivault.py:42 +msgid "The Secret ID for AppRole Authentication" +msgstr "AppRole 身份验证的 Secret ID" + +#: awx/main/credential_plugins/hashivault.py:45 +msgid "Path to Approle Auth" +msgstr "Approle Auth 的路径" + +#: awx/main/credential_plugins/hashivault.py:49 +msgid "" +"The AppRole Authentication path to use if one isn't provided in the metadata " +"when linking to an input field. Defaults to 'approle'" +msgstr "如果元数据中没有在链接到输入字段时提供,则要使用的 AppRole Authentication 路径。默认为 'approle'" + +#: awx/main/credential_plugins/hashivault.py:54 msgid "Path to Secret" msgstr "机密的路径" -#: awx/main/credential_plugins/hashivault.py:40 +#: awx/main/credential_plugins/hashivault.py:56 msgid "The path to the secret stored in the secret backend e.g, /some/secret/" msgstr "存储在机密后端的机密路径,如 /some/secret/" -#: awx/main/credential_plugins/hashivault.py:48 +#: awx/main/credential_plugins/hashivault.py:59 +msgid "Path to Auth" +msgstr "到 Auth 的路径" + +#: awx/main/credential_plugins/hashivault.py:62 +msgid "The path where the Authentication method is mounted e.g, approle" +msgstr "Authentication 方法被挂载的路径,如 approle" + +#: awx/main/credential_plugins/hashivault.py:70 msgid "API Version" msgstr "API 版本" -#: awx/main/credential_plugins/hashivault.py:50 +#: awx/main/credential_plugins/hashivault.py:72 msgid "" "API v1 is for static key/value lookups. API v2 is for versioned key/value " "lookups." msgstr "API v1 用于静态键/值查找。API v2 用于版本化的键/值查找。" -#: awx/main/credential_plugins/hashivault.py:55 +#: awx/main/credential_plugins/hashivault.py:77 msgid "Name of Secret Backend" msgstr "机密后端名称" -#: awx/main/credential_plugins/hashivault.py:57 +#: awx/main/credential_plugins/hashivault.py:79 msgid "" "The name of the kv secret backend (if left empty, the first segment of the " "secret path will be used)." msgstr "kv 机密后端的名称(如果留空,将使用机密路径的第一个分段)。" -#: awx/main/credential_plugins/hashivault.py:60 -#: awx/main/models/inventory.py:1023 +#: awx/main/credential_plugins/hashivault.py:82 +#: awx/main/migrations/_inventory_source_vars.py:147 msgid "Key Name" msgstr "密钥名称" -#: awx/main/credential_plugins/hashivault.py:62 +#: awx/main/credential_plugins/hashivault.py:84 msgid "The name of the key to look up in the secret." msgstr "在机密中查找的密钥名称。" -#: awx/main/credential_plugins/hashivault.py:65 +#: awx/main/credential_plugins/hashivault.py:87 msgid "Secret Version (v2 only)" msgstr "机密版本(仅限 v2)" -#: awx/main/credential_plugins/hashivault.py:74 +#: awx/main/credential_plugins/hashivault.py:96 msgid "Unsigned Public Key" msgstr "未签名的公钥" -#: awx/main/credential_plugins/hashivault.py:79 +#: awx/main/credential_plugins/hashivault.py:101 msgid "Role Name" msgstr "角色名称" -#: awx/main/credential_plugins/hashivault.py:81 +#: awx/main/credential_plugins/hashivault.py:103 msgid "The name of the role used to sign." msgstr "用于签名的角色的名称。" -#: awx/main/credential_plugins/hashivault.py:84 +#: awx/main/credential_plugins/hashivault.py:106 msgid "Valid Principals" msgstr "有效主体" -#: awx/main/credential_plugins/hashivault.py:86 +#: awx/main/credential_plugins/hashivault.py:108 msgid "" "Valid principals (either usernames or hostnames) that the certificate should " "be signed for." @@ -2943,70 +2994,74 @@ msgstr "为 %s 所需" msgid "secret values must be of type string, not {}" msgstr "机密值必须是字符串类型,不能是 {}" -#: awx/main/fields.py:667 +#: awx/main/fields.py:675 #, python-format msgid "cannot be set unless \"%s\" is set" msgstr "无法设置,除非设置了 \"%s\"" -#: awx/main/fields.py:702 +#: awx/main/fields.py:710 msgid "must be set when SSH key is encrypted." msgstr "必须在 SSH 密钥加密时设置。" -#: awx/main/fields.py:710 +#: awx/main/fields.py:718 msgid "should not be set when SSH key is not encrypted." msgstr "不应在 SSH 密钥没有加密时设置。" -#: awx/main/fields.py:769 +#: awx/main/fields.py:777 msgid "'dependencies' is not supported for custom credentials." msgstr "'dependencies' 不支持用于自定义凭证。" -#: awx/main/fields.py:783 +#: awx/main/fields.py:791 msgid "\"tower\" is a reserved field name" msgstr "\"tower\" 是保留字段名称" -#: awx/main/fields.py:790 +#: awx/main/fields.py:798 #, python-format msgid "field IDs must be unique (%s)" msgstr "字段 ID 必须是唯一的 (%s)" -#: awx/main/fields.py:805 +#: awx/main/fields.py:813 msgid "{} is not a {}" msgstr "{} 不是 {}" -#: awx/main/fields.py:811 +#: awx/main/fields.py:819 #, python-brace-format msgid "{sub_key} not allowed for {element_type} type ({element_id})" msgstr "{sub_key} 不允许用于 {element_type} 类型 ({element_id})" -#: awx/main/fields.py:869 +#: awx/main/fields.py:877 msgid "" "Environment variable {} may affect Ansible configuration so its use is not " "allowed in credentials." msgstr "环境变量 {} 可能会影响 Ansible 配置,因此在凭证中不允许使用它。" -#: awx/main/fields.py:875 -msgid "Environment variable {} is blacklisted from use in credentials." -msgstr "环境变量 {} 列入了禁止在凭证中使用的黑名单。" +#: awx/main/fields.py:883 +msgid "Environment variable {} is not allowed to be used in credentials." +msgstr "不允许在凭证中使用环境变量 {}。" -#: awx/main/fields.py:903 +#: awx/main/fields.py:911 msgid "" "Must define unnamed file injector in order to reference `tower.filename`." msgstr "必须定义未命名的文件注入程序,以便引用 `tower.filename`。" -#: awx/main/fields.py:910 +#: awx/main/fields.py:918 msgid "Cannot directly reference reserved `tower` namespace container." msgstr "无法直接引用保留的 `tower` 命名空间容器。" -#: awx/main/fields.py:920 +#: awx/main/fields.py:928 msgid "Must use multi-file syntax when injecting multiple files" msgstr "在注入多个文件时必须使用多文件语法" -#: awx/main/fields.py:940 +#: awx/main/fields.py:948 #, python-brace-format msgid "{sub_key} uses an undefined field ({error_msg})" msgstr "{sub_key} 使用了未定义字段 ({error_msg})" -#: awx/main/fields.py:947 +#: awx/main/fields.py:955 +msgid "Encountered unsafe code execution: {}" +msgstr "遇到不安全的代码执行:{}" + +#: awx/main/fields.py:959 #, python-brace-format msgid "" "Syntax error rendering template for {sub_key} inside of {type} ({error_msg})" @@ -3036,6 +3091,50 @@ msgid "" "this list to programmatically generate named URLs for resources" msgstr "键值对的只读列表,显示命名 URL 图形拓扑。使用此列表以编程方式为资源生成命名 URL。" +#: awx/main/migrations/_inventory_source_vars.py:140 +msgid "Image ID" +msgstr "镜像 ID" + +#: awx/main/migrations/_inventory_source_vars.py:141 +msgid "Availability Zone" +msgstr "可用性区域" + +#: awx/main/migrations/_inventory_source_vars.py:143 +msgid "Instance ID" +msgstr "实例 ID" + +#: awx/main/migrations/_inventory_source_vars.py:144 +msgid "Instance State" +msgstr "实例状态" + +#: awx/main/migrations/_inventory_source_vars.py:145 +msgid "Platform" +msgstr "平台" + +#: awx/main/migrations/_inventory_source_vars.py:146 +msgid "Instance Type" +msgstr "实例类型" + +#: awx/main/migrations/_inventory_source_vars.py:148 +msgid "Region" +msgstr "区域" + +#: awx/main/migrations/_inventory_source_vars.py:149 +msgid "Security Group" +msgstr "安全组" + +#: awx/main/migrations/_inventory_source_vars.py:150 +msgid "Tags" +msgstr "标签" + +#: awx/main/migrations/_inventory_source_vars.py:151 +msgid "Tag None" +msgstr "标签 None" + +#: awx/main/migrations/_inventory_source_vars.py:152 +msgid "VPC ID" +msgstr "VPC ID" + #: awx/main/models/activity_stream.py:28 msgid "Entity Created" msgstr "已创建实体" @@ -3082,17 +3181,17 @@ msgstr "不支持用于临时命令的模块。" msgid "No argument passed to %s module." msgstr "没有将参数传递给 %s 模块。" -#: awx/main/models/base.py:33 awx/main/models/base.py:39 -#: awx/main/models/base.py:44 awx/main/models/base.py:49 +#: awx/main/models/base.py:34 awx/main/models/base.py:40 +#: awx/main/models/base.py:45 awx/main/models/base.py:50 msgid "Run" msgstr "运行" -#: awx/main/models/base.py:34 awx/main/models/base.py:40 -#: awx/main/models/base.py:45 awx/main/models/base.py:50 +#: awx/main/models/base.py:35 awx/main/models/base.py:41 +#: awx/main/models/base.py:46 awx/main/models/base.py:51 msgid "Check" msgstr "检查" -#: awx/main/models/base.py:35 +#: awx/main/models/base.py:36 msgid "Scan" msgstr "扫描" @@ -3102,815 +3201,822 @@ msgid "" "Tower documentation for details on each type." msgstr "指定您要创建的凭证类型。有关每种类型的详情,请参阅 Ansible Tower 文档。" -#: awx/main/models/credential/__init__.py:110 -#: awx/main/models/credential/__init__.py:353 +#: awx/main/models/credential/__init__.py:114 +#: awx/main/models/credential/__init__.py:358 msgid "" "Enter inputs using either JSON or YAML syntax. Refer to the Ansible Tower " "documentation for example syntax." msgstr "使用 JSON 或 YAML 语法进行输入。示例语法请参阅 Ansible Tower 文档。" -#: awx/main/models/credential/__init__.py:325 -#: awx/main/models/credential/__init__.py:594 +#: awx/main/models/credential/__init__.py:329 +#: awx/main/models/credential/__init__.py:602 msgid "Machine" msgstr "机器" -#: awx/main/models/credential/__init__.py:326 -#: awx/main/models/credential/__init__.py:680 +#: awx/main/models/credential/__init__.py:330 +#: awx/main/models/credential/__init__.py:688 msgid "Vault" msgstr "Vault" -#: awx/main/models/credential/__init__.py:327 -#: awx/main/models/credential/__init__.py:707 +#: awx/main/models/credential/__init__.py:331 +#: awx/main/models/credential/__init__.py:715 msgid "Network" msgstr "网络" -#: awx/main/models/credential/__init__.py:328 -#: awx/main/models/credential/__init__.py:649 +#: awx/main/models/credential/__init__.py:332 +#: awx/main/models/credential/__init__.py:657 msgid "Source Control" msgstr "源控制" -#: awx/main/models/credential/__init__.py:329 +#: awx/main/models/credential/__init__.py:333 msgid "Cloud" msgstr "云" -#: awx/main/models/credential/__init__.py:330 +#: awx/main/models/credential/__init__.py:334 msgid "Personal Access Token" msgstr "个人访问令牌" -#: awx/main/models/credential/__init__.py:331 -#: awx/main/models/credential/__init__.py:1015 +#: awx/main/models/credential/__init__.py:335 +#: awx/main/models/credential/__init__.py:1027 msgid "Insights" msgstr "Insights" -#: awx/main/models/credential/__init__.py:332 +#: awx/main/models/credential/__init__.py:336 msgid "External" msgstr "外部" -#: awx/main/models/credential/__init__.py:333 +#: awx/main/models/credential/__init__.py:337 msgid "Kubernetes" msgstr "Kubernetes" -#: awx/main/models/credential/__init__.py:359 +#: awx/main/models/credential/__init__.py:338 +msgid "Galaxy/Automation Hub" +msgstr "Galaxy/Automation Hub" + +#: awx/main/models/credential/__init__.py:364 msgid "" "Enter injectors using either JSON or YAML syntax. Refer to the Ansible Tower " "documentation for example syntax." msgstr "使用 JSON 或 YAML 语法输入注入程序。示例语法请参阅 Ansible Tower 文档。" -#: awx/main/models/credential/__init__.py:428 +#: awx/main/models/credential/__init__.py:433 #, python-format msgid "adding %s credential type" msgstr "添加 %s 凭证类型" -#: awx/main/models/credential/__init__.py:602 -#: awx/main/models/credential/__init__.py:658 -#: awx/main/models/credential/__init__.py:716 -#: awx/main/models/credential/__init__.py:838 -#: awx/main/models/credential/__init__.py:864 -#: awx/main/models/credential/__init__.py:891 -#: awx/main/models/credential/__init__.py:951 -#: awx/main/models/credential/__init__.py:1024 -#: awx/main/models/credential/__init__.py:1055 -#: awx/main/models/credential/__init__.py:1105 +#: awx/main/models/credential/__init__.py:610 +#: awx/main/models/credential/__init__.py:666 +#: awx/main/models/credential/__init__.py:724 +#: awx/main/models/credential/__init__.py:850 +#: awx/main/models/credential/__init__.py:876 +#: awx/main/models/credential/__init__.py:903 +#: awx/main/models/credential/__init__.py:963 +#: awx/main/models/credential/__init__.py:1036 +#: awx/main/models/credential/__init__.py:1067 +#: awx/main/models/credential/__init__.py:1119 msgid "Password" msgstr "密码" -#: awx/main/models/credential/__init__.py:608 -#: awx/main/models/credential/__init__.py:721 +#: awx/main/models/credential/__init__.py:616 +#: awx/main/models/credential/__init__.py:729 msgid "SSH Private Key" msgstr "SSH 私钥" -#: awx/main/models/credential/__init__.py:615 +#: awx/main/models/credential/__init__.py:623 msgid "Signed SSH Certificate" msgstr "签名的 SSH 证书" -#: awx/main/models/credential/__init__.py:621 -#: awx/main/models/credential/__init__.py:670 -#: awx/main/models/credential/__init__.py:728 +#: awx/main/models/credential/__init__.py:629 +#: awx/main/models/credential/__init__.py:678 +#: awx/main/models/credential/__init__.py:736 msgid "Private Key Passphrase" msgstr "私钥密码" -#: awx/main/models/credential/__init__.py:627 +#: awx/main/models/credential/__init__.py:635 msgid "Privilege Escalation Method" msgstr "权限升级方法" -#: awx/main/models/credential/__init__.py:629 +#: awx/main/models/credential/__init__.py:637 msgid "" "Specify a method for \"become\" operations. This is equivalent to specifying " "the --become-method Ansible parameter." msgstr "指定 \"become\" 操作的方法。这等同于指定 --become-method Ansible 参数。" -#: awx/main/models/credential/__init__.py:634 +#: awx/main/models/credential/__init__.py:642 msgid "Privilege Escalation Username" msgstr "权限升级用户名" -#: awx/main/models/credential/__init__.py:638 +#: awx/main/models/credential/__init__.py:646 msgid "Privilege Escalation Password" msgstr "权限升级密码" -#: awx/main/models/credential/__init__.py:663 +#: awx/main/models/credential/__init__.py:671 msgid "SCM Private Key" msgstr "SCM 私钥" -#: awx/main/models/credential/__init__.py:685 +#: awx/main/models/credential/__init__.py:693 msgid "Vault Password" msgstr "Vault 密码" -#: awx/main/models/credential/__init__.py:691 +#: awx/main/models/credential/__init__.py:699 msgid "Vault Identifier" msgstr "Vault 标识符" -#: awx/main/models/credential/__init__.py:694 +#: awx/main/models/credential/__init__.py:702 msgid "" "Specify an (optional) Vault ID. This is equivalent to specifying the --vault-" "id Ansible parameter for providing multiple Vault passwords. Note: this " "feature only works in Ansible 2.4+." msgstr "指定(可选)Vault ID。这等同于为提供多个 Vault 密码指定 --vault-id Ansible 参数。请注意:此功能只在 Ansible 2.4+ 中有效。" -#: awx/main/models/credential/__init__.py:733 +#: awx/main/models/credential/__init__.py:741 msgid "Authorize" msgstr "授权" -#: awx/main/models/credential/__init__.py:737 +#: awx/main/models/credential/__init__.py:745 msgid "Authorize Password" msgstr "授权密码" -#: awx/main/models/credential/__init__.py:751 +#: awx/main/models/credential/__init__.py:759 msgid "Amazon Web Services" msgstr "Amazon Web Services" -#: awx/main/models/credential/__init__.py:756 +#: awx/main/models/credential/__init__.py:764 msgid "Access Key" msgstr "访问密钥" -#: awx/main/models/credential/__init__.py:760 +#: awx/main/models/credential/__init__.py:768 msgid "Secret Key" msgstr "机密密钥" -#: awx/main/models/credential/__init__.py:765 +#: awx/main/models/credential/__init__.py:773 msgid "STS Token" msgstr "STS 令牌" -#: awx/main/models/credential/__init__.py:768 +#: awx/main/models/credential/__init__.py:776 msgid "" "Security Token Service (STS) is a web service that enables you to request " "temporary, limited-privilege credentials for AWS Identity and Access " "Management (IAM) users." msgstr "安全令牌服务 (STS) 是一个 Web 服务,让您可以为 AWS 身份和访问管理 (IAM) 用户请求临时的有限权限凭证。" -#: awx/main/models/credential/__init__.py:780 awx/main/models/inventory.py:833 +#: awx/main/models/credential/__init__.py:788 awx/main/models/inventory.py:826 msgid "OpenStack" msgstr "OpenStack" -#: awx/main/models/credential/__init__.py:789 +#: awx/main/models/credential/__init__.py:797 msgid "Password (API Key)" msgstr "密码(API 密钥)" -#: awx/main/models/credential/__init__.py:794 -#: awx/main/models/credential/__init__.py:1046 +#: awx/main/models/credential/__init__.py:802 +#: awx/main/models/credential/__init__.py:1058 msgid "Host (Authentication URL)" msgstr "主机(身份验证 URL)" -#: awx/main/models/credential/__init__.py:796 +#: awx/main/models/credential/__init__.py:804 msgid "" "The host to authenticate with. For example, https://openstack.business.com/" "v2.0/" msgstr "要进行身份验证的主机。例如:https://openstack.business.com/v_2.0/" -#: awx/main/models/credential/__init__.py:800 +#: awx/main/models/credential/__init__.py:808 msgid "Project (Tenant Name)" msgstr "项目(租户名称)" -#: awx/main/models/credential/__init__.py:804 +#: awx/main/models/credential/__init__.py:812 +msgid "Project (Domain Name)" +msgstr "项目(域名)" + +#: awx/main/models/credential/__init__.py:816 msgid "Domain Name" msgstr "域名" -#: awx/main/models/credential/__init__.py:806 +#: awx/main/models/credential/__init__.py:818 msgid "" "OpenStack domains define administrative boundaries. It is only needed for " "Keystone v3 authentication URLs. Refer to Ansible Tower documentation for " "common scenarios." msgstr "OpenStack 域定义了管理边界。只有 Keystone v3 身份验证 URL 需要域。常见的情景请参阅 Ansible Tower 文档。" -#: awx/main/models/credential/__init__.py:812 -#: awx/main/models/credential/__init__.py:1110 -#: awx/main/models/credential/__init__.py:1144 +#: awx/main/models/credential/__init__.py:824 +#: awx/main/models/credential/__init__.py:1131 +#: awx/main/models/credential/__init__.py:1166 msgid "Verify SSL" msgstr "验证 SSL" -#: awx/main/models/credential/__init__.py:823 awx/main/models/inventory.py:830 +#: awx/main/models/credential/__init__.py:835 awx/main/models/inventory.py:824 msgid "VMware vCenter" msgstr "VMware vCenter" -#: awx/main/models/credential/__init__.py:828 +#: awx/main/models/credential/__init__.py:840 msgid "VCenter Host" msgstr "vCenter 主机" -#: awx/main/models/credential/__init__.py:830 +#: awx/main/models/credential/__init__.py:842 msgid "" "Enter the hostname or IP address that corresponds to your VMware vCenter." msgstr "输入与 VMware vCenter 对应的主机名或 IP 地址。" -#: awx/main/models/credential/__init__.py:849 awx/main/models/inventory.py:831 +#: awx/main/models/credential/__init__.py:861 awx/main/models/inventory.py:825 msgid "Red Hat Satellite 6" msgstr "红帽卫星 6" -#: awx/main/models/credential/__init__.py:854 +#: awx/main/models/credential/__init__.py:866 msgid "Satellite 6 URL" msgstr "卫星 6 URL" -#: awx/main/models/credential/__init__.py:856 +#: awx/main/models/credential/__init__.py:868 msgid "" "Enter the URL that corresponds to your Red Hat Satellite 6 server. For " "example, https://satellite.example.org" msgstr "输入与您的红帽卫星 6 服务器对应的 URL。例如:https://satellite.example.org" -#: awx/main/models/credential/__init__.py:875 awx/main/models/inventory.py:832 +#: awx/main/models/credential/__init__.py:887 msgid "Red Hat CloudForms" msgstr "Red Hat CloudForms" -#: awx/main/models/credential/__init__.py:880 +#: awx/main/models/credential/__init__.py:892 msgid "CloudForms URL" msgstr "CloudForms URL" -#: awx/main/models/credential/__init__.py:882 +#: awx/main/models/credential/__init__.py:894 msgid "" "Enter the URL for the virtual machine that corresponds to your CloudForms " "instance. For example, https://cloudforms.example.org" msgstr "输入与您的 CloudForms 实例对应的虚拟机的 URL。例如:https://cloudforms.example.org" -#: awx/main/models/credential/__init__.py:902 awx/main/models/inventory.py:828 +#: awx/main/models/credential/__init__.py:914 awx/main/models/inventory.py:822 msgid "Google Compute Engine" msgstr "Google Compute Engine" -#: awx/main/models/credential/__init__.py:907 +#: awx/main/models/credential/__init__.py:919 msgid "Service Account Email Address" msgstr "服务账户电子邮件地址" -#: awx/main/models/credential/__init__.py:909 +#: awx/main/models/credential/__init__.py:921 msgid "" "The email address assigned to the Google Compute Engine service account." msgstr "分配给 Google Compute Engine 服务账户的电子邮件地址。" -#: awx/main/models/credential/__init__.py:915 +#: awx/main/models/credential/__init__.py:927 msgid "" "The Project ID is the GCE assigned identification. It is often constructed " "as three words or two words followed by a three-digit number. Examples: " "project-id-000 and another-project-id" msgstr "项目 ID 是 GCE 分配的标识。它通常由两三个单词构成,后跟三位数字。示例:project-id-000 和 another-project-id" -#: awx/main/models/credential/__init__.py:921 +#: awx/main/models/credential/__init__.py:933 msgid "RSA Private Key" msgstr "RSA 私钥" -#: awx/main/models/credential/__init__.py:926 +#: awx/main/models/credential/__init__.py:938 msgid "" "Paste the contents of the PEM file associated with the service account email." msgstr "粘贴与服务账户电子邮件关联的 PEM 文件的内容。" -#: awx/main/models/credential/__init__.py:936 awx/main/models/inventory.py:829 +#: awx/main/models/credential/__init__.py:948 awx/main/models/inventory.py:823 msgid "Microsoft Azure Resource Manager" msgstr "Microsoft Azure Resource Manager" -#: awx/main/models/credential/__init__.py:941 +#: awx/main/models/credential/__init__.py:953 msgid "Subscription ID" msgstr "订阅 ID" -#: awx/main/models/credential/__init__.py:943 +#: awx/main/models/credential/__init__.py:955 msgid "Subscription ID is an Azure construct, which is mapped to a username." msgstr "订阅 ID 是一个 Azure 构造函数,它映射到一个用户名。" -#: awx/main/models/credential/__init__.py:969 +#: awx/main/models/credential/__init__.py:981 msgid "Azure Cloud Environment" msgstr "Azure 云环境" -#: awx/main/models/credential/__init__.py:971 +#: awx/main/models/credential/__init__.py:983 msgid "" "Environment variable AZURE_CLOUD_ENVIRONMENT when using Azure GovCloud or " "Azure stack." msgstr "使用 Azure GovCloud 或 Azure 堆栈时的环境变量 Azure_CLOUD_ENVIRONMENT。" -#: awx/main/models/credential/__init__.py:981 +#: awx/main/models/credential/__init__.py:993 msgid "GitHub Personal Access Token" msgstr "GitHub 个人访问令牌" -#: awx/main/models/credential/__init__.py:989 +#: awx/main/models/credential/__init__.py:1001 msgid "This token needs to come from your profile settings in GitHub" msgstr "此令牌需要来自您在 GitHub 中的配置文件设置" -#: awx/main/models/credential/__init__.py:998 +#: awx/main/models/credential/__init__.py:1010 msgid "GitLab Personal Access Token" msgstr "GitLab 个人访问令牌" -#: awx/main/models/credential/__init__.py:1006 +#: awx/main/models/credential/__init__.py:1018 msgid "This token needs to come from your profile settings in GitLab" msgstr "此令牌需要来自您在 GitLab 中的配置文件设置" -#: awx/main/models/credential/__init__.py:1041 awx/main/models/inventory.py:834 +#: awx/main/models/credential/__init__.py:1053 awx/main/models/inventory.py:827 msgid "Red Hat Virtualization" msgstr "红帽虚拟化" -#: awx/main/models/credential/__init__.py:1048 +#: awx/main/models/credential/__init__.py:1060 msgid "The host to authenticate with." msgstr "要进行验证的主机。" -#: awx/main/models/credential/__init__.py:1060 +#: awx/main/models/credential/__init__.py:1072 msgid "CA File" msgstr "CA 文件" -#: awx/main/models/credential/__init__.py:1062 +#: awx/main/models/credential/__init__.py:1074 msgid "Absolute file path to the CA file to use (optional)" msgstr "要使用的 CA 文件的绝对文件路径(可选)" -#: awx/main/models/credential/__init__.py:1091 awx/main/models/inventory.py:835 +#: awx/main/models/credential/__init__.py:1103 awx/main/models/inventory.py:828 msgid "Ansible Tower" msgstr "Ansible Tower" -#: awx/main/models/credential/__init__.py:1096 +#: awx/main/models/credential/__init__.py:1108 msgid "Ansible Tower Hostname" msgstr "Ansible Tower 主机名" -#: awx/main/models/credential/__init__.py:1098 +#: awx/main/models/credential/__init__.py:1110 msgid "The Ansible Tower base URL to authenticate with." msgstr "要进行身份验证的 Ansible Tower 基本 URL。" -#: awx/main/models/credential/__init__.py:1130 +#: awx/main/models/credential/__init__.py:1115 +msgid "" +"The Ansible Tower user to authenticate as.This should not be set if an OAuth " +"token is being used." +msgstr "要使用 OAuth 令牌进行身份验证的 Ansible Tower 用户。" + +#: awx/main/models/credential/__init__.py:1124 +msgid "OAuth Token" +msgstr "OAuth 令牌" + +#: awx/main/models/credential/__init__.py:1127 +msgid "" +"An OAuth token to use to authenticate to Tower with.This should not be set " +"if username/password are being used." +msgstr "用于使用 Tower 身份验证的 OAuth 令牌。如果使用了用户名/密码,则不要设置此令牌。" + +#: awx/main/models/credential/__init__.py:1152 msgid "OpenShift or Kubernetes API Bearer Token" msgstr "OpenShift 或 Kubernetes API 持有者令牌" -#: awx/main/models/credential/__init__.py:1134 +#: awx/main/models/credential/__init__.py:1156 msgid "OpenShift or Kubernetes API Endpoint" msgstr "OpenShift 或 Kubernetes API 端点" -#: awx/main/models/credential/__init__.py:1136 +#: awx/main/models/credential/__init__.py:1158 msgid "The OpenShift or Kubernetes API Endpoint to authenticate with." msgstr "要进行身份验证的 OpenShift 或 Kubernetes API 端点。" -#: awx/main/models/credential/__init__.py:1139 +#: awx/main/models/credential/__init__.py:1161 msgid "API authentication bearer token" msgstr "API 身份验证持有者令牌" -#: awx/main/models/credential/__init__.py:1149 +#: awx/main/models/credential/__init__.py:1171 msgid "Certificate Authority data" msgstr "证书颁发机构数据" +#: awx/main/models/credential/__init__.py:1184 +msgid "Ansible Galaxy/Automation Hub API Token" +msgstr "Ansible Galaxy/Automation Hub API 令牌" + +#: awx/main/models/credential/__init__.py:1188 +msgid "Galaxy Server URL" +msgstr "Galaxy Server URL" + #: awx/main/models/credential/__init__.py:1190 +msgid "The URL of the Galaxy instance to connect to." +msgstr "要连接的 Galaxy 实例的 URL。" + +#: awx/main/models/credential/__init__.py:1193 +msgid "Auth Server URL" +msgstr "Auth 服务器 URL" + +#: awx/main/models/credential/__init__.py:1196 +msgid "The URL of a Keycloak server token_endpoint, if using SSO auth." +msgstr "如果使用 SSO 身份验证,Keycloak 服务器 token_endpoint 的 URL。" + +#: awx/main/models/credential/__init__.py:1201 +msgid "API Token" +msgstr "API 令牌" + +#: awx/main/models/credential/__init__.py:1205 +msgid "A token to use for authentication against the Galaxy instance." +msgstr "用于针对 Galaxy 实例进行身份验证的令牌。" + +#: awx/main/models/credential/__init__.py:1244 msgid "Target must be a non-external credential" msgstr "目标必须是非外部凭证" -#: awx/main/models/credential/__init__.py:1195 +#: awx/main/models/credential/__init__.py:1249 msgid "Source must be an external credential" msgstr "源必须是外部凭证" -#: awx/main/models/credential/__init__.py:1202 +#: awx/main/models/credential/__init__.py:1256 msgid "Input field must be defined on target credential (options are {})." msgstr "输入字段必须在目标凭证上定义(选项为 {})。" -#: awx/main/models/events.py:152 awx/main/models/events.py:674 +#: awx/main/models/events.py:165 awx/main/models/events.py:707 msgid "Host Failed" msgstr "主机故障" -#: awx/main/models/events.py:153 +#: awx/main/models/events.py:166 msgid "Host Started" msgstr "主机已启动" -#: awx/main/models/events.py:154 awx/main/models/events.py:675 +#: awx/main/models/events.py:167 awx/main/models/events.py:708 msgid "Host OK" msgstr "主机正常" -#: awx/main/models/events.py:155 +#: awx/main/models/events.py:168 msgid "Host Failure" msgstr "主机故障" -#: awx/main/models/events.py:156 awx/main/models/events.py:681 +#: awx/main/models/events.py:169 awx/main/models/events.py:714 msgid "Host Skipped" msgstr "主机已跳过" -#: awx/main/models/events.py:157 awx/main/models/events.py:676 +#: awx/main/models/events.py:170 awx/main/models/events.py:709 msgid "Host Unreachable" msgstr "主机无法访问" -#: awx/main/models/events.py:158 awx/main/models/events.py:172 +#: awx/main/models/events.py:171 awx/main/models/events.py:185 msgid "No Hosts Remaining" msgstr "没有剩余主机" -#: awx/main/models/events.py:159 +#: awx/main/models/events.py:172 msgid "Host Polling" msgstr "主机轮询" -#: awx/main/models/events.py:160 +#: awx/main/models/events.py:173 msgid "Host Async OK" msgstr "主机异步正常" -#: awx/main/models/events.py:161 +#: awx/main/models/events.py:174 msgid "Host Async Failure" msgstr "主机同步故障" -#: awx/main/models/events.py:162 +#: awx/main/models/events.py:175 msgid "Item OK" msgstr "项正常" -#: awx/main/models/events.py:163 +#: awx/main/models/events.py:176 msgid "Item Failed" msgstr "项故障" -#: awx/main/models/events.py:164 +#: awx/main/models/events.py:177 msgid "Item Skipped" msgstr "项已跳过" -#: awx/main/models/events.py:165 +#: awx/main/models/events.py:178 msgid "Host Retry" msgstr "主机重试" -#: awx/main/models/events.py:167 +#: awx/main/models/events.py:180 msgid "File Difference" msgstr "文件差异" -#: awx/main/models/events.py:168 +#: awx/main/models/events.py:181 msgid "Playbook Started" msgstr "Playbook 已启动" -#: awx/main/models/events.py:169 +#: awx/main/models/events.py:182 msgid "Running Handlers" msgstr "正在运行的处理程序" -#: awx/main/models/events.py:170 +#: awx/main/models/events.py:183 msgid "Including File" msgstr "包含文件" -#: awx/main/models/events.py:171 +#: awx/main/models/events.py:184 msgid "No Hosts Matched" msgstr "未匹配主机" -#: awx/main/models/events.py:173 +#: awx/main/models/events.py:186 msgid "Task Started" msgstr "任务已启动" -#: awx/main/models/events.py:175 +#: awx/main/models/events.py:188 msgid "Variables Prompted" msgstr "提示变量" -#: awx/main/models/events.py:176 +#: awx/main/models/events.py:189 msgid "Gathering Facts" msgstr "收集事实" -#: awx/main/models/events.py:177 +#: awx/main/models/events.py:190 msgid "internal: on Import for Host" msgstr "内部:导入主机时" -#: awx/main/models/events.py:178 +#: awx/main/models/events.py:191 msgid "internal: on Not Import for Host" msgstr "内部:不为主机导入时" -#: awx/main/models/events.py:179 +#: awx/main/models/events.py:192 msgid "Play Started" msgstr "Play 已启动" -#: awx/main/models/events.py:180 +#: awx/main/models/events.py:193 msgid "Playbook Complete" msgstr "Playbook 完成" -#: awx/main/models/events.py:184 awx/main/models/events.py:691 +#: awx/main/models/events.py:197 awx/main/models/events.py:724 msgid "Debug" msgstr "调试" -#: awx/main/models/events.py:185 awx/main/models/events.py:692 +#: awx/main/models/events.py:198 awx/main/models/events.py:725 msgid "Verbose" msgstr "详细" -#: awx/main/models/events.py:186 awx/main/models/events.py:693 +#: awx/main/models/events.py:199 awx/main/models/events.py:726 msgid "Deprecated" msgstr "已弃用" -#: awx/main/models/events.py:187 awx/main/models/events.py:694 +#: awx/main/models/events.py:200 awx/main/models/events.py:727 msgid "Warning" msgstr "警告" -#: awx/main/models/events.py:188 awx/main/models/events.py:695 +#: awx/main/models/events.py:201 awx/main/models/events.py:728 msgid "System Warning" msgstr "系统警告" -#: awx/main/models/events.py:189 awx/main/models/events.py:696 +#: awx/main/models/events.py:202 awx/main/models/events.py:729 #: awx/main/models/unified_jobs.py:75 msgid "Error" msgstr "错误" -#: awx/main/models/ha.py:175 +#: awx/main/models/ha.py:184 msgid "Instances that are members of this InstanceGroup" msgstr "属于此实例组成员的实例" -#: awx/main/models/ha.py:180 +#: awx/main/models/ha.py:189 msgid "Instance Group to remotely control this group." msgstr "远程控制此组的实例组。" -#: awx/main/models/ha.py:200 +#: awx/main/models/ha.py:209 msgid "Percentage of Instances to automatically assign to this group" msgstr "自动分配给此组的实例百分比" -#: awx/main/models/ha.py:204 +#: awx/main/models/ha.py:213 msgid "" "Static minimum number of Instances to automatically assign to this group" msgstr "自动分配给此组的静态最小实例数量" -#: awx/main/models/ha.py:209 +#: awx/main/models/ha.py:218 msgid "" "List of exact-match Instances that will always be automatically assigned to " "this group" msgstr "将始终自动分配给此组的完全匹配实例的列表" -#: awx/main/models/inventory.py:80 +#: awx/main/models/inventory.py:74 msgid "Hosts have a direct link to this inventory." msgstr "主机具有指向此清单的直接链接。" -#: awx/main/models/inventory.py:81 +#: awx/main/models/inventory.py:75 msgid "Hosts for inventory generated using the host_filter property." msgstr "使用 host_filter 属性生成的清单的主机。" -#: awx/main/models/inventory.py:86 +#: awx/main/models/inventory.py:80 msgid "inventories" msgstr "清单" -#: awx/main/models/inventory.py:93 +#: awx/main/models/inventory.py:87 msgid "Organization containing this inventory." msgstr "包含此清单的机构。" -#: awx/main/models/inventory.py:100 +#: awx/main/models/inventory.py:94 msgid "Inventory variables in JSON or YAML format." msgstr "JSON 或 YAML 格式的清单变量。" -#: awx/main/models/inventory.py:105 +#: awx/main/models/inventory.py:99 msgid "" "This field is deprecated and will be removed in a future release. Flag " "indicating whether any hosts in this inventory have failed." msgstr "此字段已弃用,并将在以后的发行版本中删除。指示此清单中是否有任何主机故障的标记。" -#: awx/main/models/inventory.py:111 +#: awx/main/models/inventory.py:105 msgid "" "This field is deprecated and will be removed in a future release. Total " "number of hosts in this inventory." msgstr "此字段已弃用,并将在以后的发行版本中删除。此清单中的主机总数。" -#: awx/main/models/inventory.py:117 +#: awx/main/models/inventory.py:111 msgid "" "This field is deprecated and will be removed in a future release. Number of " "hosts in this inventory with active failures." msgstr "此字段已弃用,并将在以后的发行版本中删除。此清单中有活跃故障的主机数量。" -#: awx/main/models/inventory.py:123 +#: awx/main/models/inventory.py:117 msgid "" "This field is deprecated and will be removed in a future release. Total " "number of groups in this inventory." msgstr "此字段已弃用,并将在以后的发行版本中删除。此清单中的总组数。" -#: awx/main/models/inventory.py:129 +#: awx/main/models/inventory.py:123 msgid "" "This field is deprecated and will be removed in a future release. Flag " "indicating whether this inventory has any external inventory sources." msgstr "此字段已弃用,并将在以后的发行版本中删除。表示此清单是否有任何外部清单源的标记。" -#: awx/main/models/inventory.py:135 +#: awx/main/models/inventory.py:129 msgid "" "Total number of external inventory sources configured within this inventory." msgstr "在此清单中配置的外部清单源总数。" -#: awx/main/models/inventory.py:140 +#: awx/main/models/inventory.py:134 msgid "Number of external inventory sources in this inventory with failures." msgstr "此清单中有故障的外部清单源数量。" -#: awx/main/models/inventory.py:147 +#: awx/main/models/inventory.py:141 msgid "Kind of inventory being represented." msgstr "所代表的清单种类。" -#: awx/main/models/inventory.py:153 +#: awx/main/models/inventory.py:147 msgid "Filter that will be applied to the hosts of this inventory." msgstr "将应用到此清单的主机的过滤器。" -#: awx/main/models/inventory.py:181 +#: awx/main/models/inventory.py:175 msgid "" "Credentials to be used by hosts belonging to this inventory when accessing " "Red Hat Insights API." msgstr "访问红帽 Insights API 时供属于此清单的主机使用的凭证。" -#: awx/main/models/inventory.py:190 +#: awx/main/models/inventory.py:184 msgid "Flag indicating the inventory is being deleted." msgstr "指示正在删除清单的标记。" -#: awx/main/models/inventory.py:245 +#: awx/main/models/inventory.py:239 msgid "Could not parse subset as slice specification." msgstr "无法将子集作为分片规格来解析。" -#: awx/main/models/inventory.py:249 +#: awx/main/models/inventory.py:243 msgid "Slice number must be less than total number of slices." msgstr "分片数量必须小于分片总数。" -#: awx/main/models/inventory.py:251 +#: awx/main/models/inventory.py:245 msgid "Slice number must be 1 or higher." msgstr "分片数量必须为 1 或更高。" -#: awx/main/models/inventory.py:388 +#: awx/main/models/inventory.py:382 msgid "Assignment not allowed for Smart Inventory" msgstr "智能清单不允许分配" -#: awx/main/models/inventory.py:390 awx/main/models/projects.py:166 +#: awx/main/models/inventory.py:384 awx/main/models/projects.py:167 msgid "Credential kind must be 'insights'." msgstr "凭证种类必须是 'inights'。" -#: awx/main/models/inventory.py:475 +#: awx/main/models/inventory.py:469 msgid "Is this host online and available for running jobs?" msgstr "此主机是否在线,并可用于运行作业?" -#: awx/main/models/inventory.py:481 +#: awx/main/models/inventory.py:475 msgid "" "The value used by the remote inventory source to uniquely identify the host" msgstr "远程清单源用来唯一标识主机的值" -#: awx/main/models/inventory.py:486 +#: awx/main/models/inventory.py:480 msgid "Host variables in JSON or YAML format." msgstr "JSON 或 YAML 格式的主机变量。" -#: awx/main/models/inventory.py:509 +#: awx/main/models/inventory.py:503 msgid "Inventory source(s) that created or modified this host." msgstr "创建或修改此主机的清单源。" -#: awx/main/models/inventory.py:514 +#: awx/main/models/inventory.py:508 msgid "Arbitrary JSON structure of most recent ansible_facts, per-host." msgstr "每个主机最近的 ansible_facts 的任意 JSON 结构。" -#: awx/main/models/inventory.py:520 +#: awx/main/models/inventory.py:514 msgid "The date and time ansible_facts was last modified." msgstr "最后修改 ansible_facts 的日期和时间。" -#: awx/main/models/inventory.py:527 +#: awx/main/models/inventory.py:521 msgid "Red Hat Insights host unique identifier." msgstr "红帽 Insights 主机唯一标识符。" -#: awx/main/models/inventory.py:641 +#: awx/main/models/inventory.py:635 msgid "Group variables in JSON or YAML format." msgstr "JSON 或 YAML 格式的组变量。" -#: awx/main/models/inventory.py:647 +#: awx/main/models/inventory.py:641 msgid "Hosts associated directly with this group." msgstr "与此组直接关联的主机。" -#: awx/main/models/inventory.py:653 +#: awx/main/models/inventory.py:647 msgid "Inventory source(s) that created or modified this group." msgstr "创建或修改此组的清单源。" -#: awx/main/models/inventory.py:825 +#: awx/main/models/inventory.py:819 msgid "File, Directory or Script" msgstr "文件、目录或脚本" -#: awx/main/models/inventory.py:826 +#: awx/main/models/inventory.py:820 msgid "Sourced from a Project" msgstr "源于项目" -#: awx/main/models/inventory.py:827 +#: awx/main/models/inventory.py:821 msgid "Amazon EC2" msgstr "Amazon EC2" -#: awx/main/models/inventory.py:836 +#: awx/main/models/inventory.py:829 msgid "Custom Script" msgstr "自定义脚本" -#: awx/main/models/inventory.py:953 +#: awx/main/models/inventory.py:863 msgid "Inventory source variables in YAML or JSON format." msgstr "YAML 或 JSON 格式的清单源变量。" -#: awx/main/models/inventory.py:964 +#: awx/main/models/inventory.py:868 msgid "" -"Comma-separated list of filter expressions (EC2 only). Hosts are imported " -"when ANY of the filters match." -msgstr "以逗号分隔的过滤器表达式列表(仅限 EC2)。当任何过滤器匹配时会导入主机。" +"Retrieve the enabled state from the given dict of host variables. The " +"enabled variable may be specified as \"foo.bar\", in which case the lookup " +"will traverse into nested dicts, equivalent to: from_dict.get(\"foo\", {})." +"get(\"bar\", default)" +msgstr "从给定的主机变量字典中检索启用的状态。启用的变量可以指定为 \"foo.bar\",此时查找将进入嵌套字典,相当于: from_dict.get(\"foo\", {}).get(\"bar\", default)" -#: awx/main/models/inventory.py:970 -msgid "Limit groups automatically created from inventory source (EC2 only)." -msgstr "限制从清单源自动创建的组(仅限 EC2)。" +#: awx/main/models/inventory.py:876 +msgid "" +"Only used when enabled_var is set. Value when the host is considered " +"enabled. For example if enabled_var=\"status.power_state\"and enabled_value=" +"\"powered_on\" with host variables:{ \"status\": { \"power_state\": " +"\"powered_on\", \"created\": \"2020-08-04T18:13:04+00:00\", \"healthy" +"\": true }, \"name\": \"foobar\", \"ip_address\": \"192.168.2.1\"}" +"The host would be marked enabled. If power_state where any value other than " +"powered_on then the host would be disabled when imported into Tower. If the " +"key is not found then the host will be enabled" +msgstr "仅在设置 enabled_var 时使用。 主机被视为启用时的值。 例如: if enabled_var=\"status.power_state\"and enabled_value=\"powered_on\" with host variables:{ \"status\": { \"power_state\": \"powered_on\", \"created\": \"2020-08-04T18:13:04+00:00\", \"healthy\": true }, \"name\": \"foobar\", \"ip_address\": \"192.168.2.1\"}The host would be marked enabled. 如果 power_state 在除 powered_on 以外的任何值,则会在导入 Tower 时禁用主机。 如果没有找到密钥,则会启用主机" -#: awx/main/models/inventory.py:974 +#: awx/main/models/inventory.py:896 +msgid "Regex where only matching hosts will be imported into Tower." +msgstr "正则表达式,仅把与它匹配的主机导入到 Tower 中。" + +#: awx/main/models/inventory.py:900 msgid "Overwrite local groups and hosts from remote inventory source." msgstr "从远程清单源覆盖本地组和主机。" -#: awx/main/models/inventory.py:978 +#: awx/main/models/inventory.py:904 msgid "Overwrite local variables from remote inventory source." msgstr "从远程清单源覆盖本地变量。" -#: awx/main/models/inventory.py:983 awx/main/models/jobs.py:154 -#: awx/main/models/projects.py:135 +#: awx/main/models/inventory.py:909 awx/main/models/jobs.py:154 +#: awx/main/models/projects.py:136 msgid "The amount of time (in seconds) to run before the task is canceled." msgstr "取消任务前运行的时间(以秒为单位)。" -#: awx/main/models/inventory.py:1016 -msgid "Image ID" -msgstr "镜像 ID" - -#: awx/main/models/inventory.py:1017 -msgid "Availability Zone" -msgstr "可用性区域" - -#: awx/main/models/inventory.py:1019 -msgid "Instance ID" -msgstr "实例 ID" - -#: awx/main/models/inventory.py:1020 -msgid "Instance State" -msgstr "实例状态" - -#: awx/main/models/inventory.py:1021 -msgid "Platform" -msgstr "平台" - -#: awx/main/models/inventory.py:1022 -msgid "Instance Type" -msgstr "实例类型" - -#: awx/main/models/inventory.py:1024 -msgid "Region" -msgstr "区域" - -#: awx/main/models/inventory.py:1025 -msgid "Security Group" -msgstr "安全组" - -#: awx/main/models/inventory.py:1026 -msgid "Tags" -msgstr "标签" - -#: awx/main/models/inventory.py:1027 -msgid "Tag None" -msgstr "标签 None" - -#: awx/main/models/inventory.py:1028 -msgid "VPC ID" -msgstr "VPC ID" - -#: awx/main/models/inventory.py:1096 +#: awx/main/models/inventory.py:926 #, python-format msgid "" "Cloud-based inventory sources (such as %s) require credentials for the " "matching cloud service." msgstr "基于云的清单源(如 %s)需要匹配的云服务的凭证。" -#: awx/main/models/inventory.py:1102 +#: awx/main/models/inventory.py:932 msgid "Credential is required for a cloud source." msgstr "云源需要凭证。" -#: awx/main/models/inventory.py:1105 +#: awx/main/models/inventory.py:935 msgid "" "Credentials of type machine, source control, insights and vault are " "disallowed for custom inventory sources." msgstr "对于自定义清单源,不允许使用机器、源控制、insights 和 vault 类型的凭证。" -#: awx/main/models/inventory.py:1110 +#: awx/main/models/inventory.py:940 msgid "" "Credentials of type insights and vault are disallowed for scm inventory " "sources." msgstr "对于 scm 清单源,不允许使用 insights 和 vault 类型的凭证。" -#: awx/main/models/inventory.py:1170 -#, python-format -msgid "Invalid %(source)s region: %(region)s" -msgstr "无效的 %(source)s 区域:%(region)s" - -#: awx/main/models/inventory.py:1194 -#, python-format -msgid "Invalid filter expression: %(filter)s" -msgstr "无效的过滤器表达式:%(filter)s" - -#: awx/main/models/inventory.py:1215 -#, python-format -msgid "Invalid group by choice: %(choice)s" -msgstr "选择的组无效:%(choice)s" - -#: awx/main/models/inventory.py:1243 +#: awx/main/models/inventory.py:1004 msgid "Project containing inventory file used as source." msgstr "包含用作源的清单文件的项目。" -#: awx/main/models/inventory.py:1416 +#: awx/main/models/inventory.py:1177 msgid "" "More than one SCM-based inventory source with update on project update per-" "inventory not allowed." msgstr "不允许多个基于 SCM 的清单源按清单在项目更新时更新。" -#: awx/main/models/inventory.py:1423 +#: awx/main/models/inventory.py:1184 msgid "" "Cannot update SCM-based inventory source on launch if set to update on " "project update. Instead, configure the corresponding source project to " "update on launch." msgstr "如果设置为在项目更新时更新,则无法在启动时更新基于 SCM 的清单源。应将对应的源项目配置为在启动时更新。" -#: awx/main/models/inventory.py:1429 +#: awx/main/models/inventory.py:1190 msgid "Cannot set source_path if not SCM type." msgstr "如果不是 SCM 类型,则无法设置 source_path。" -#: awx/main/models/inventory.py:1472 +#: awx/main/models/inventory.py:1233 msgid "" "Inventory files from this Project Update were used for the inventory update." msgstr "此项目更新中的清单文件用于清单更新。" -#: awx/main/models/inventory.py:1583 +#: awx/main/models/inventory.py:1344 msgid "Inventory script contents" msgstr "清单脚本内容" -#: awx/main/models/inventory.py:1588 +#: awx/main/models/inventory.py:1349 msgid "Organization owning this inventory script" msgstr "拥有此清单脚本的机构" @@ -3948,89 +4054,89 @@ msgstr "作业模板必须提供“清单”或允许相关提示。" msgid "Maximum number of forks ({settings.MAX_FORKS}) exceeded." msgstr "超过了最大 fork 数量 ({settings.MAX_FORKS}) 。" -#: awx/main/models/jobs.py:463 +#: awx/main/models/jobs.py:459 msgid "Project is missing." msgstr "项目缺失。" -#: awx/main/models/jobs.py:467 +#: awx/main/models/jobs.py:463 msgid "Project does not allow override of branch." msgstr "项目不允许覆写分支。" -#: awx/main/models/jobs.py:477 awx/main/models/workflow.py:545 +#: awx/main/models/jobs.py:473 awx/main/models/workflow.py:545 msgid "Field is not configured to prompt on launch." msgstr "字段没有配置为启动时提示。" -#: awx/main/models/jobs.py:483 +#: awx/main/models/jobs.py:479 msgid "Saved launch configurations cannot provide passwords needed to start." msgstr "保存的启动配置无法提供启动所需的密码。" -#: awx/main/models/jobs.py:491 +#: awx/main/models/jobs.py:487 msgid "Job Template {} is missing or undefined." msgstr "作业模板 {} 缺失或未定义。" -#: awx/main/models/jobs.py:574 awx/main/models/projects.py:278 -#: awx/main/models/projects.py:497 +#: awx/main/models/jobs.py:570 awx/main/models/projects.py:284 +#: awx/main/models/projects.py:508 msgid "SCM Revision" msgstr "SCM 修订" -#: awx/main/models/jobs.py:575 +#: awx/main/models/jobs.py:571 msgid "The SCM Revision from the Project used for this job, if available" msgstr "用于此作业的项目中的 SCM 修订(如果可用)" -#: awx/main/models/jobs.py:583 +#: awx/main/models/jobs.py:579 msgid "" "The SCM Refresh task used to make sure the playbooks were available for the " "job run" msgstr "用于确保 playbook 可用于作业运行的 SCM 刷新任务" -#: awx/main/models/jobs.py:588 +#: awx/main/models/jobs.py:584 msgid "" "If part of a sliced job, the ID of the inventory slice operated on. If not " "part of sliced job, parameter is not used." msgstr "如果是分片作业的一部分,则为所操作的清单分片的 ID。如果不是分片作业的一部分,则不使用参数。" -#: awx/main/models/jobs.py:594 +#: awx/main/models/jobs.py:590 msgid "" "If ran as part of sliced jobs, the total number of slices. If 1, job is not " "part of a sliced job." msgstr "如果作为分片作业的一部分运行,则为分片总数。如果为 1,则作业不是分片作业的一部分。" -#: awx/main/models/jobs.py:676 +#: awx/main/models/jobs.py:672 #, python-brace-format msgid "{status_value} is not a valid status option." msgstr "{status_value} 不是有效的状态选项。" -#: awx/main/models/jobs.py:926 +#: awx/main/models/jobs.py:922 msgid "" "Inventory applied as a prompt, assuming job template prompts for inventory" msgstr "作为提示而应用的清单,假定作业模板提示提供清单" -#: awx/main/models/jobs.py:1085 +#: awx/main/models/jobs.py:1081 msgid "job host summaries" msgstr "作业主机摘要" -#: awx/main/models/jobs.py:1144 +#: awx/main/models/jobs.py:1140 msgid "Remove jobs older than a certain number of days" msgstr "删除超过特定天数的作业" -#: awx/main/models/jobs.py:1145 +#: awx/main/models/jobs.py:1141 msgid "Remove activity stream entries older than a certain number of days" msgstr "删除比特定天数旧的活动流条目" -#: awx/main/models/jobs.py:1146 +#: awx/main/models/jobs.py:1142 msgid "Removes expired browser sessions from the database" msgstr "从数据库中删除已过期的浏览器会话" -#: awx/main/models/jobs.py:1147 +#: awx/main/models/jobs.py:1143 msgid "Removes expired OAuth 2 access tokens and refresh tokens" msgstr "删除已过期的 OAuth 2 访问令牌并刷新令牌" -#: awx/main/models/jobs.py:1217 +#: awx/main/models/jobs.py:1213 #, python-brace-format msgid "Variables {list_of_keys} are not allowed for system jobs." msgstr "系统作业不允许使用变量 {list_of_keys}。" -#: awx/main/models/jobs.py:1233 +#: awx/main/models/jobs.py:1229 msgid "days must be a positive integer." msgstr "天必须为正整数。" @@ -4069,63 +4175,59 @@ msgstr "将状态发回服务 API 的个人访问令牌" msgid "Unique identifier of the event that triggered this webhook" msgstr "触发此 Webhook 的事件的唯一标识符" -#: awx/main/models/notifications.py:42 +#: awx/main/models/notifications.py:41 msgid "Email" msgstr "电子邮件" -#: awx/main/models/notifications.py:43 +#: awx/main/models/notifications.py:42 msgid "Slack" msgstr "Slack" -#: awx/main/models/notifications.py:44 +#: awx/main/models/notifications.py:43 msgid "Twilio" msgstr "Twilio" -#: awx/main/models/notifications.py:45 +#: awx/main/models/notifications.py:44 msgid "Pagerduty" msgstr "Pagerduty" -#: awx/main/models/notifications.py:46 +#: awx/main/models/notifications.py:45 msgid "Grafana" msgstr "Grafana" -#: awx/main/models/notifications.py:47 -msgid "HipChat" -msgstr "HipChat" - -#: awx/main/models/notifications.py:48 awx/main/models/unified_jobs.py:545 +#: awx/main/models/notifications.py:46 awx/main/models/unified_jobs.py:544 msgid "Webhook" msgstr "Webhook" -#: awx/main/models/notifications.py:49 +#: awx/main/models/notifications.py:47 msgid "Mattermost" msgstr "Mattermost" -#: awx/main/models/notifications.py:50 +#: awx/main/models/notifications.py:48 msgid "Rocket.Chat" msgstr "Rocket.Chat" -#: awx/main/models/notifications.py:51 +#: awx/main/models/notifications.py:49 msgid "IRC" msgstr "IRC" -#: awx/main/models/notifications.py:82 +#: awx/main/models/notifications.py:80 msgid "Optional custom messages for notification template." msgstr "通知模板的可选自定义消息。" -#: awx/main/models/notifications.py:212 awx/main/models/unified_jobs.py:70 +#: awx/main/models/notifications.py:210 awx/main/models/unified_jobs.py:70 msgid "Pending" msgstr "待处理" -#: awx/main/models/notifications.py:213 awx/main/models/unified_jobs.py:73 +#: awx/main/models/notifications.py:211 awx/main/models/unified_jobs.py:73 msgid "Successful" msgstr "成功" -#: awx/main/models/notifications.py:214 awx/main/models/unified_jobs.py:74 +#: awx/main/models/notifications.py:212 awx/main/models/unified_jobs.py:74 msgid "Failed" msgstr "失败" -#: awx/main/models/notifications.py:467 +#: awx/main/models/notifications.py:470 msgid "status must be either running, succeeded or failed" msgstr "状态必须是正在运行、成功或失败" @@ -4194,11 +4296,11 @@ msgid "" "authentication provider ({})" msgstr "OAuth2 令牌不能由与外部身份验证提供商 ({}) 关联的用户创建" -#: awx/main/models/organization.py:51 +#: awx/main/models/organization.py:57 msgid "Maximum number of hosts allowed to be managed by this organization." msgstr "允许由此机构管理的最大主机数。" -#: awx/main/models/projects.py:53 awx/main/models/unified_jobs.py:539 +#: awx/main/models/projects.py:53 awx/main/models/unified_jobs.py:538 msgid "Manual" msgstr "手动" @@ -4218,118 +4320,122 @@ msgstr "Subversion" msgid "Red Hat Insights" msgstr "红帽 Insights" -#: awx/main/models/projects.py:83 +#: awx/main/models/projects.py:58 +msgid "Remote Archive" +msgstr "远程归档" + +#: awx/main/models/projects.py:84 msgid "" "Local path (relative to PROJECTS_ROOT) containing playbooks and related " "files for this project." msgstr "本地路径(与 PROJECTS_ROOT 相对),包含此项目的 playbook 及相关文件。" -#: awx/main/models/projects.py:92 +#: awx/main/models/projects.py:93 msgid "SCM Type" msgstr "SCM 类型" -#: awx/main/models/projects.py:93 +#: awx/main/models/projects.py:94 msgid "Specifies the source control system used to store the project." msgstr "指定用来存储项目的源控制系统。" -#: awx/main/models/projects.py:99 +#: awx/main/models/projects.py:100 msgid "SCM URL" msgstr "SCM URL" -#: awx/main/models/projects.py:100 +#: awx/main/models/projects.py:101 msgid "The location where the project is stored." msgstr "项目的存储位置。" -#: awx/main/models/projects.py:106 +#: awx/main/models/projects.py:107 msgid "SCM Branch" msgstr "SCM 分支" -#: awx/main/models/projects.py:107 +#: awx/main/models/projects.py:108 msgid "Specific branch, tag or commit to checkout." msgstr "特定分支、标签或提交签出。" -#: awx/main/models/projects.py:113 +#: awx/main/models/projects.py:114 msgid "SCM refspec" msgstr "SCM refspec" -#: awx/main/models/projects.py:114 +#: awx/main/models/projects.py:115 msgid "For git projects, an additional refspec to fetch." msgstr "对于 git 项目,要获取的额外 refspec。" -#: awx/main/models/projects.py:118 +#: awx/main/models/projects.py:119 msgid "Discard any local changes before syncing the project." msgstr "在同步项目前丢弃任何本地更改。" -#: awx/main/models/projects.py:122 +#: awx/main/models/projects.py:123 msgid "Delete the project before syncing." msgstr "在同步前删除项目。" -#: awx/main/models/projects.py:151 +#: awx/main/models/projects.py:152 msgid "Invalid SCM URL." msgstr "无效的 SCM URL。" -#: awx/main/models/projects.py:154 +#: awx/main/models/projects.py:155 msgid "SCM URL is required." msgstr "需要 SCM URL。" -#: awx/main/models/projects.py:162 +#: awx/main/models/projects.py:163 msgid "Insights Credential is required for an Insights Project." msgstr "Insights 项目需要 Insights 凭证。" -#: awx/main/models/projects.py:168 +#: awx/main/models/projects.py:169 msgid "Credential kind must be 'scm'." msgstr "凭证种类必须是 'scm'。" -#: awx/main/models/projects.py:185 +#: awx/main/models/projects.py:186 msgid "Invalid credential." msgstr "无效凭证。" -#: awx/main/models/projects.py:259 +#: awx/main/models/projects.py:265 msgid "Update the project when a job is launched that uses the project." msgstr "当使用项目的作业启动时更新项目。" -#: awx/main/models/projects.py:264 +#: awx/main/models/projects.py:270 msgid "" "The number of seconds after the last project update ran that a new project " "update will be launched as a job dependency." msgstr "最后一次项目更新运行后等待的秒数,此后将启动一个新项目更新作为作业依赖项。" -#: awx/main/models/projects.py:269 +#: awx/main/models/projects.py:275 msgid "" "Allow changing the SCM branch or revision in a job template that uses this " "project." msgstr "允许在使用此项目的作业模板中更改 SCM 分支或修订版本。" -#: awx/main/models/projects.py:279 +#: awx/main/models/projects.py:285 msgid "The last revision fetched by a project update" msgstr "项目更新获取的最后修订版本" -#: awx/main/models/projects.py:286 +#: awx/main/models/projects.py:292 msgid "Playbook Files" msgstr "Playbook 文件" -#: awx/main/models/projects.py:287 +#: awx/main/models/projects.py:293 msgid "List of playbooks found in the project" msgstr "项目中找到的 playbook 列表" -#: awx/main/models/projects.py:294 +#: awx/main/models/projects.py:300 msgid "Inventory Files" msgstr "清单文件" -#: awx/main/models/projects.py:295 +#: awx/main/models/projects.py:301 msgid "" "Suggested list of content that could be Ansible inventory in the project" msgstr "可作为项目中的 Ansible 清单的建议内容列表" -#: awx/main/models/projects.py:332 +#: awx/main/models/projects.py:338 msgid "Organization cannot be changed when in use by job templates." msgstr "当作业使用时不能更改机构。" -#: awx/main/models/projects.py:490 +#: awx/main/models/projects.py:501 msgid "Parts of the project update playbook that will be run." msgstr "将要运行的项目更新 playbook 的部分。" -#: awx/main/models/projects.py:498 +#: awx/main/models/projects.py:509 msgid "" "The SCM Revision discovered by this update for the given project and branch." msgstr "此更新针对给定项目和分支发现的 SCM 修订。" @@ -4558,81 +4664,81 @@ msgstr "更新" msgid "The organization used to determine access to this template." msgstr "用于决定访问此模板的机构。" -#: awx/main/models/unified_jobs.py:466 +#: awx/main/models/unified_jobs.py:465 msgid "Field is not allowed on launch." msgstr "启动时不允许使用字段。" -#: awx/main/models/unified_jobs.py:494 +#: awx/main/models/unified_jobs.py:493 #, python-brace-format msgid "" "Variables {list_of_keys} provided, but this template cannot accept variables." msgstr "提供了 {list_of_keys} 变量,但此模板无法接受变量。" -#: awx/main/models/unified_jobs.py:540 +#: awx/main/models/unified_jobs.py:539 msgid "Relaunch" msgstr "重新启动" -#: awx/main/models/unified_jobs.py:541 +#: awx/main/models/unified_jobs.py:540 msgid "Callback" msgstr "回调" -#: awx/main/models/unified_jobs.py:542 +#: awx/main/models/unified_jobs.py:541 msgid "Scheduled" msgstr "已调度" -#: awx/main/models/unified_jobs.py:543 +#: awx/main/models/unified_jobs.py:542 msgid "Dependency" msgstr "依赖项" -#: awx/main/models/unified_jobs.py:544 +#: awx/main/models/unified_jobs.py:543 msgid "Workflow" msgstr "工作流" -#: awx/main/models/unified_jobs.py:546 +#: awx/main/models/unified_jobs.py:545 msgid "Sync" msgstr "同步" -#: awx/main/models/unified_jobs.py:601 +#: awx/main/models/unified_jobs.py:600 msgid "The node the job executed on." msgstr "执行作业的节点。" -#: awx/main/models/unified_jobs.py:607 +#: awx/main/models/unified_jobs.py:606 msgid "The instance that managed the isolated execution environment." msgstr "管理隔离执行环境的实例。" -#: awx/main/models/unified_jobs.py:634 +#: awx/main/models/unified_jobs.py:633 msgid "The date and time the job was queued for starting." msgstr "作业加入启动队列的日期和时间。" -#: awx/main/models/unified_jobs.py:639 +#: awx/main/models/unified_jobs.py:638 msgid "" "If True, the task manager has already processed potential dependencies for " "this job." msgstr "如果为 True,则任务管理器已处理了此作业的潜在依赖关系。" -#: awx/main/models/unified_jobs.py:645 +#: awx/main/models/unified_jobs.py:644 msgid "The date and time the job finished execution." msgstr "作业完成执行的日期和时间。" -#: awx/main/models/unified_jobs.py:652 +#: awx/main/models/unified_jobs.py:651 msgid "The date and time when the cancel request was sent." msgstr "发送取消请求的日期和时间。" -#: awx/main/models/unified_jobs.py:659 +#: awx/main/models/unified_jobs.py:658 msgid "Elapsed time in seconds that the job ran." msgstr "作业运行所经过的时间(以秒为单位)。" -#: awx/main/models/unified_jobs.py:681 +#: awx/main/models/unified_jobs.py:680 msgid "" "A status field to indicate the state of the job if it wasn't able to run and " "capture stdout" msgstr "当无法运行和捕获 stdout 时指示作业状态的状态字段" -#: awx/main/models/unified_jobs.py:710 +#: awx/main/models/unified_jobs.py:709 msgid "The Instance group the job was run under" msgstr "作业在其下运行的实例组" -#: awx/main/models/unified_jobs.py:718 +#: awx/main/models/unified_jobs.py:717 msgid "The organization used to determine access to this unified job." msgstr "用于决定访问这个统一作业的机构。" @@ -4686,41 +4792,33 @@ msgid "" "Shows when an approval node (with a timeout assigned to it) has timed out." msgstr "显示批准节点(为其分配了超时)超时的时间。" -#: awx/main/notifications/grafana_backend.py:86 +#: awx/main/notifications/grafana_backend.py:81 msgid "Error converting time {} or timeEnd {} to int." msgstr "将时间 {} 或 timeEnd {} 转换为 int 时出错。" -#: awx/main/notifications/grafana_backend.py:88 +#: awx/main/notifications/grafana_backend.py:83 msgid "Error converting time {} and/or timeEnd {} to int." msgstr "将时间 {} 和/或 timeEnd {} 转换为 int 时出错。" -#: awx/main/notifications/grafana_backend.py:102 -#: awx/main/notifications/grafana_backend.py:104 +#: awx/main/notifications/grafana_backend.py:97 +#: awx/main/notifications/grafana_backend.py:99 msgid "Error sending notification grafana: {}" msgstr "发送通知 grafana 时出错:{}" -#: awx/main/notifications/hipchat_backend.py:50 -msgid "Error sending messages: {}" -msgstr "发送消息时出错:{}" - -#: awx/main/notifications/hipchat_backend.py:52 -msgid "Error sending message to hipchat: {}" -msgstr "向 hipchat 发送消息时出错:{}" - #: awx/main/notifications/irc_backend.py:56 msgid "Exception connecting to irc server: {}" msgstr "连接到 irc 服务器时出现异常:{}" -#: awx/main/notifications/mattermost_backend.py:50 -#: awx/main/notifications/mattermost_backend.py:52 +#: awx/main/notifications/mattermost_backend.py:49 +#: awx/main/notifications/mattermost_backend.py:51 msgid "Error sending notification mattermost: {}" msgstr "发送通知 mattermost 时出错:{}" -#: awx/main/notifications/pagerduty_backend.py:64 +#: awx/main/notifications/pagerduty_backend.py:75 msgid "Exception connecting to PagerDuty: {}" msgstr "连接到 PagerDuty 时出现异常:{}" -#: awx/main/notifications/pagerduty_backend.py:73 +#: awx/main/notifications/pagerduty_backend.py:84 #: awx/main/notifications/slack_backend.py:58 #: awx/main/notifications/twilio_backend.py:48 msgid "Exception sending messages: {}" @@ -4747,46 +4845,52 @@ msgid "" "job node(s) missing unified job template and error handling path [{no_ufjt}]." msgstr "工作流作业节点没有错误处理路径 [{node_status}]。工作流作业节点缺少统一作业模板和错误处理路径 [{no_ufjt}]。" -#: awx/main/scheduler/task_manager.py:118 +#: awx/main/scheduler/task_manager.py:158 msgid "" "Workflow Job spawned from workflow could not start because it would result " "in recursion (spawn order, most recent first: {})" msgstr "从工作流生成的工作流作业可能无法启动,因为它会导致递归(生成顺序,最近最先:{})" -#: awx/main/scheduler/task_manager.py:126 +#: awx/main/scheduler/task_manager.py:166 msgid "" "Job spawned from workflow could not start because it was missing a related " "resource such as project or inventory" msgstr "从工作流生成的作业可能无法启动,因为它缺少了相关资源,如项目或清单" -#: awx/main/scheduler/task_manager.py:135 +#: awx/main/scheduler/task_manager.py:175 msgid "" "Job spawned from workflow could not start because it was not in the right " "state or required manual credentials" msgstr "从工作流生成的作业可能无法启动,因为它不处于正确的状态或需要手动凭证。" -#: awx/main/scheduler/task_manager.py:176 +#: awx/main/scheduler/task_manager.py:216 msgid "No error handling paths found, marking workflow as failed" msgstr "未找到错误处理路径,将工作流标记为失败" -#: awx/main/scheduler/task_manager.py:508 +#: awx/main/scheduler/task_manager.py:553 #, python-brace-format msgid "The approval node {name} ({pk}) has expired after {timeout} seconds." msgstr "批准节点 {name} ({pk}) 已在 {timeout} 秒后过期。" -#: awx/main/tasks.py:1049 +#: awx/main/tasks.py:599 +msgid "" +"Scheduled job could not start because it was not in the " +"right state or required manual credentials" +msgstr "调度的作业可能无法启动,因为它不处于正确的状态或需要手动凭证。" + +#: awx/main/tasks.py:1070 msgid "Invalid virtual environment selected: {}" msgstr "选择了无效的虚拟环境:{}" -#: awx/main/tasks.py:1853 +#: awx/main/tasks.py:1857 msgid "Job could not start because it does not have a valid inventory." msgstr "作业无法启动,因为它没有有效的清单。" -#: awx/main/tasks.py:1857 +#: awx/main/tasks.py:1861 msgid "Job could not start because it does not have a valid project." msgstr "作业无法启动,因为它没有有效的项目。" -#: awx/main/tasks.py:1862 +#: awx/main/tasks.py:1866 msgid "" "The project revision for this job template is unknown due to a failed update." msgstr "由于更新失败,此作业模板的项目修订版本未知。" @@ -4806,63 +4910,84 @@ msgid "" "missing unified job template and error handling path [{}]." msgstr "工作流作业节点没有错误处理路径 []。工作流作业节点缺少统一作业模板和错误处理路径 [{}]。" -#: awx/main/utils/common.py:87 +#: awx/main/utils/common.py:86 #, python-format msgid "Unable to convert \"%s\" to boolean" msgstr "无法将 \"%s\" 转换为布尔值" -#: awx/main/utils/common.py:261 +#: awx/main/utils/common.py:212 +#, python-format +msgid "Error importing Tower License: %s" +msgstr "导入 Tower 许可证时出错: %s" + +#: awx/main/utils/common.py:228 #, python-format msgid "Unsupported SCM type \"%s\"" msgstr "不受支持的 SCM 类型 \"%s\"" -#: awx/main/utils/common.py:268 awx/main/utils/common.py:280 -#: awx/main/utils/common.py:299 +#: awx/main/utils/common.py:235 awx/main/utils/common.py:247 +#: awx/main/utils/common.py:266 #, python-format msgid "Invalid %s URL" msgstr "无效的 %s URL" -#: awx/main/utils/common.py:270 awx/main/utils/common.py:309 +#: awx/main/utils/common.py:237 awx/main/utils/common.py:277 #, python-format msgid "Unsupported %s URL" msgstr "不受支持的 %s URL" -#: awx/main/utils/common.py:311 +#: awx/main/utils/common.py:279 #, python-format msgid "Unsupported host \"%s\" for file:// URL" msgstr "用于 file:// URL的主机 \"%s\" 不受支持" -#: awx/main/utils/common.py:313 +#: awx/main/utils/common.py:281 #, python-format msgid "Host is required for %s URL" msgstr "%s URL 需要主机" -#: awx/main/utils/common.py:331 +#: awx/main/utils/common.py:299 #, python-format msgid "Username must be \"git\" for SSH access to %s." msgstr "用户名必须是 \"git\" 以供 SSH 访问 %s。" -#: awx/main/utils/common.py:337 +#: awx/main/utils/common.py:305 #, python-format msgid "Username must be \"hg\" for SSH access to %s." msgstr "用户名必须是 \"hg\" 以供 SSH 访问 %s。" -#: awx/main/utils/common.py:668 +#: awx/main/utils/common.py:636 #, python-brace-format msgid "Input type `{data_type}` is not a dictionary" msgstr "输入类型 `{data_type}` 不是字典" -#: awx/main/utils/common.py:701 +#: awx/main/utils/common.py:669 #, python-brace-format msgid "Variables not compatible with JSON standard (error: {json_error})" msgstr "与 JSON 标准不兼容的变量(错误:{json_error})" -#: awx/main/utils/common.py:707 +#: awx/main/utils/common.py:675 #, python-brace-format msgid "" "Cannot parse as JSON (error: {json_error}) or YAML (error: {yaml_error})." msgstr "无法解析为 JSON(错误:{json_error})或 YAML(错误:{yaml_error})。" +#: awx/main/utils/licensing.py:58 +msgid "Invalid manifest: a subscription manifest zip file is required." +msgstr "无效的清单: 需要一个订阅清单 zip 文件。" + +#: awx/main/utils/licensing.py:63 +msgid "Invalid manifest: missing required files." +msgstr "无效清单:缺少所需文件。" + +#: awx/main/utils/licensing.py:72 +msgid "Invalid manifest: signature verification failed." +msgstr "无效清单:签名验证失败。" + +#: awx/main/utils/licensing.py:79 +msgid "Invalid manifest: manifest contains no subscriptions." +msgstr "无效清单:清单没有包含订阅。" + #: awx/main/validators.py:67 #, python-format msgid "Invalid certificate or key: %s..." @@ -4969,290 +5094,6 @@ msgstr "服务器错误" msgid "A server error has occurred." msgstr "发生服务器错误。" -#: awx/settings/defaults.py:683 -msgid "US East (Northern Virginia)" -msgstr "美国东部(北弗吉尼亚)" - -#: awx/settings/defaults.py:684 -msgid "US East (Ohio)" -msgstr "美国东部(俄亥俄)" - -#: awx/settings/defaults.py:685 -msgid "US West (Oregon)" -msgstr "美国西部(俄勒冈)" - -#: awx/settings/defaults.py:686 -msgid "US West (Northern California)" -msgstr "美国西部(北加利福尼亚)" - -#: awx/settings/defaults.py:687 -msgid "Canada (Central)" -msgstr "加拿大(中部)" - -#: awx/settings/defaults.py:688 -msgid "EU (Frankfurt)" -msgstr "欧盟(法兰克福)" - -#: awx/settings/defaults.py:689 -msgid "EU (Ireland)" -msgstr "欧盟(爱尔兰)" - -#: awx/settings/defaults.py:690 -msgid "EU (London)" -msgstr "欧盟(伦敦)" - -#: awx/settings/defaults.py:691 -msgid "Asia Pacific (Singapore)" -msgstr "亚太(新加坡)" - -#: awx/settings/defaults.py:692 -msgid "Asia Pacific (Sydney)" -msgstr "亚太(悉尼)" - -#: awx/settings/defaults.py:693 -msgid "Asia Pacific (Tokyo)" -msgstr "亚太(东京)" - -#: awx/settings/defaults.py:694 -msgid "Asia Pacific (Seoul)" -msgstr "亚太(首尔)" - -#: awx/settings/defaults.py:695 -msgid "Asia Pacific (Mumbai)" -msgstr "亚太(孟买)" - -#: awx/settings/defaults.py:696 -msgid "South America (Sao Paulo)" -msgstr "南美(圣保罗)" - -#: awx/settings/defaults.py:697 -msgid "US West (GovCloud)" -msgstr "美国西部 (GovCloud)" - -#: awx/settings/defaults.py:698 -msgid "China (Beijing)" -msgstr "中国(北京)" - -#: awx/settings/defaults.py:747 -msgid "US East 1 (B)" -msgstr "美国东部 1 (B)" - -#: awx/settings/defaults.py:748 -msgid "US East 1 (C)" -msgstr "美国东部 1 (C)" - -#: awx/settings/defaults.py:749 -msgid "US East 1 (D)" -msgstr "美国东部 1 (D)" - -#: awx/settings/defaults.py:750 -msgid "US East 4 (A)" -msgstr "美国东部 4 (A)" - -#: awx/settings/defaults.py:751 -msgid "US East 4 (B)" -msgstr "美国东部 4 (B)" - -#: awx/settings/defaults.py:752 -msgid "US East 4 (C)" -msgstr "美国东部 4 (C)" - -#: awx/settings/defaults.py:753 -msgid "US Central (A)" -msgstr "美国中部 (A)" - -#: awx/settings/defaults.py:754 -msgid "US Central (B)" -msgstr "美国中部 (B)" - -#: awx/settings/defaults.py:755 -msgid "US Central (C)" -msgstr "美国中部 (C)" - -#: awx/settings/defaults.py:756 -msgid "US Central (F)" -msgstr "美国中部 (F)" - -#: awx/settings/defaults.py:757 -msgid "US West (A)" -msgstr "美国西部 (A)" - -#: awx/settings/defaults.py:758 -msgid "US West (B)" -msgstr "美国西部 (B)" - -#: awx/settings/defaults.py:759 -msgid "US West (C)" -msgstr "美国西部 (C)" - -#: awx/settings/defaults.py:760 -msgid "Europe West 1 (B)" -msgstr "西欧 1 (B)" - -#: awx/settings/defaults.py:761 -msgid "Europe West 1 (C)" -msgstr "西欧 1 (C)" - -#: awx/settings/defaults.py:762 -msgid "Europe West 1 (D)" -msgstr "西欧 1 (D)" - -#: awx/settings/defaults.py:763 -msgid "Europe West 2 (A)" -msgstr "西欧 2 (A)" - -#: awx/settings/defaults.py:764 -msgid "Europe West 2 (B)" -msgstr "西欧 2 (B)" - -#: awx/settings/defaults.py:765 -msgid "Europe West 2 (C)" -msgstr "西欧 2 (C)" - -#: awx/settings/defaults.py:766 -msgid "Asia East (A)" -msgstr "东亚 (A)" - -#: awx/settings/defaults.py:767 -msgid "Asia East (B)" -msgstr "东亚 (B)" - -#: awx/settings/defaults.py:768 -msgid "Asia East (C)" -msgstr "东亚 (C)" - -#: awx/settings/defaults.py:769 -msgid "Asia Southeast (A)" -msgstr "东南亚 (A)" - -#: awx/settings/defaults.py:770 -msgid "Asia Southeast (B)" -msgstr "东南亚 (B)" - -#: awx/settings/defaults.py:771 -msgid "Asia Northeast (A)" -msgstr "亚州东北部 (A)" - -#: awx/settings/defaults.py:772 -msgid "Asia Northeast (B)" -msgstr "亚州东北部 (B)" - -#: awx/settings/defaults.py:773 -msgid "Asia Northeast (C)" -msgstr "亚州东北部 (C)" - -#: awx/settings/defaults.py:774 -msgid "Australia Southeast (A)" -msgstr "澳洲东南部 (A)" - -#: awx/settings/defaults.py:775 -msgid "Australia Southeast (B)" -msgstr "澳洲东南部 (B)" - -#: awx/settings/defaults.py:776 -msgid "Australia Southeast (C)" -msgstr "澳洲东南部 (C)" - -#: awx/settings/defaults.py:798 -msgid "US East" -msgstr "美国东部" - -#: awx/settings/defaults.py:799 -msgid "US East 2" -msgstr "美国东部 2" - -#: awx/settings/defaults.py:800 -msgid "US Central" -msgstr "美国中部" - -#: awx/settings/defaults.py:801 -msgid "US North Central" -msgstr "美国中北部" - -#: awx/settings/defaults.py:802 -msgid "US South Central" -msgstr "美国中南部" - -#: awx/settings/defaults.py:803 -msgid "US West Central" -msgstr "美国中西部" - -#: awx/settings/defaults.py:804 -msgid "US West" -msgstr "美国西部" - -#: awx/settings/defaults.py:805 -msgid "US West 2" -msgstr "美国西部 2" - -#: awx/settings/defaults.py:806 -msgid "Canada East" -msgstr "加拿大东部" - -#: awx/settings/defaults.py:807 -msgid "Canada Central" -msgstr "加拿大中部" - -#: awx/settings/defaults.py:808 -msgid "Brazil South" -msgstr "巴西南部" - -#: awx/settings/defaults.py:809 -msgid "Europe North" -msgstr "北欧" - -#: awx/settings/defaults.py:810 -msgid "Europe West" -msgstr "西欧" - -#: awx/settings/defaults.py:811 -msgid "UK West" -msgstr "英国西部" - -#: awx/settings/defaults.py:812 -msgid "UK South" -msgstr "英国南部" - -#: awx/settings/defaults.py:813 -msgid "Asia East" -msgstr "东亚" - -#: awx/settings/defaults.py:814 -msgid "Asia Southeast" -msgstr "东南亚" - -#: awx/settings/defaults.py:815 -msgid "Australia East" -msgstr "澳洲东部" - -#: awx/settings/defaults.py:816 -msgid "Australia Southeast" -msgstr "澳洲东南部" - -#: awx/settings/defaults.py:817 -msgid "India West" -msgstr "印度西部" - -#: awx/settings/defaults.py:818 -msgid "India South" -msgstr "印度南部" - -#: awx/settings/defaults.py:819 -msgid "Japan East" -msgstr "日本东部" - -#: awx/settings/defaults.py:820 -msgid "Japan West" -msgstr "日本西部" - -#: awx/settings/defaults.py:821 -msgid "Korea Central" -msgstr "韩国中部" - -#: awx/settings/defaults.py:822 -msgid "Korea South" -msgstr "韩国南部" - #: awx/sso/apps.py:9 msgid "Single Sign-On" msgstr "单点登录" @@ -5525,7 +5366,7 @@ msgid "Hostname of TACACS+ server." msgstr "TACACS+ 服务器的主机名。" #: awx/sso/conf.py:480 awx/sso/conf.py:492 awx/sso/conf.py:504 -#: awx/sso/conf.py:516 awx/sso/conf.py:527 awx/sso/models.py:15 +#: awx/sso/conf.py:516 awx/sso/conf.py:528 awx/sso/models.py:15 msgid "TACACS+" msgstr "TACACS+" @@ -5553,159 +5394,159 @@ msgstr "TACACS+ 身份验证会话超时" msgid "TACACS+ session timeout value in seconds, 0 disables timeout." msgstr "TACACS+ 会话超时值(以秒为单位),0 表示禁用超时。" -#: awx/sso/conf.py:525 +#: awx/sso/conf.py:526 msgid "TACACS+ Authentication Protocol" msgstr "TACACS+ 身份验证协议" -#: awx/sso/conf.py:526 +#: awx/sso/conf.py:527 msgid "Choose the authentication protocol used by TACACS+ client." msgstr "选择 TACACS+ 客户端使用的身份验证协议。" -#: awx/sso/conf.py:540 +#: awx/sso/conf.py:541 msgid "Google OAuth2 Callback URL" msgstr "Google OAuth2 回调 URL" -#: awx/sso/conf.py:541 awx/sso/conf.py:634 awx/sso/conf.py:699 +#: awx/sso/conf.py:542 awx/sso/conf.py:635 awx/sso/conf.py:700 msgid "" "Provide this URL as the callback URL for your application as part of your " "registration process. Refer to the Ansible Tower documentation for more " "detail." msgstr "在您的注册过程中,提供此 URL 作为应用的回调 URL。请参阅 Ansible Tower 文档了解更多详情。" -#: awx/sso/conf.py:544 awx/sso/conf.py:556 awx/sso/conf.py:568 -#: awx/sso/conf.py:581 awx/sso/conf.py:595 awx/sso/conf.py:607 -#: awx/sso/conf.py:619 +#: awx/sso/conf.py:545 awx/sso/conf.py:557 awx/sso/conf.py:569 +#: awx/sso/conf.py:582 awx/sso/conf.py:596 awx/sso/conf.py:608 +#: awx/sso/conf.py:620 msgid "Google OAuth2" msgstr "Google OAuth2" -#: awx/sso/conf.py:554 +#: awx/sso/conf.py:555 msgid "Google OAuth2 Key" msgstr "Google OAuth2 密钥" -#: awx/sso/conf.py:555 +#: awx/sso/conf.py:556 msgid "The OAuth2 key from your web application." msgstr "您的 Web 应用中的 OAuth2 密钥。" -#: awx/sso/conf.py:566 +#: awx/sso/conf.py:567 msgid "Google OAuth2 Secret" msgstr "Google OAuth2 机密" -#: awx/sso/conf.py:567 +#: awx/sso/conf.py:568 msgid "The OAuth2 secret from your web application." msgstr "您的 Web 应用中的 OAuth2 机密。" -#: awx/sso/conf.py:578 -msgid "Google OAuth2 Whitelisted Domains" -msgstr "Google OAuth2 白名单域" - #: awx/sso/conf.py:579 +msgid "Google OAuth2 Allowed Domains" +msgstr "Google OAuth2 允许的域" + +#: awx/sso/conf.py:580 msgid "" "Update this setting to restrict the domains who are allowed to login using " "Google OAuth2." msgstr "更新此设置,以限制允许使用 Google OAuth2 登录的域。" -#: awx/sso/conf.py:590 +#: awx/sso/conf.py:591 msgid "Google OAuth2 Extra Arguments" msgstr "Google OAuth2 额外参数" -#: awx/sso/conf.py:591 +#: awx/sso/conf.py:592 msgid "" "Extra arguments for Google OAuth2 login. You can restrict it to only allow a " "single domain to authenticate, even if the user is logged in with multple " "Google accounts. Refer to the Ansible Tower documentation for more detail." msgstr "用于 Google OAuth2 登录的额外参数。您可以将其限制为只允许单个域进行身份验证,即使用户使用多个 Google 帐户登录。请参阅 Ansible Tower 文档了解更多详情。" -#: awx/sso/conf.py:605 +#: awx/sso/conf.py:606 msgid "Google OAuth2 Organization Map" msgstr "Google OAuth2 机构映射" -#: awx/sso/conf.py:617 +#: awx/sso/conf.py:618 msgid "Google OAuth2 Team Map" msgstr "Google OAuth2 团队映射" -#: awx/sso/conf.py:633 +#: awx/sso/conf.py:634 msgid "GitHub OAuth2 Callback URL" msgstr "GitHub OAuth2 回调 URL" -#: awx/sso/conf.py:637 awx/sso/conf.py:649 awx/sso/conf.py:660 -#: awx/sso/conf.py:672 awx/sso/conf.py:684 +#: awx/sso/conf.py:638 awx/sso/conf.py:650 awx/sso/conf.py:661 +#: awx/sso/conf.py:673 awx/sso/conf.py:685 msgid "GitHub OAuth2" msgstr "GitHub OAuth2" -#: awx/sso/conf.py:647 +#: awx/sso/conf.py:648 msgid "GitHub OAuth2 Key" msgstr "GitHub OAuth2 密钥" -#: awx/sso/conf.py:648 +#: awx/sso/conf.py:649 msgid "The OAuth2 key (Client ID) from your GitHub developer application." msgstr "您的 GitHub 开发应用中的 OAuth2 密钥(客户端 ID)。" -#: awx/sso/conf.py:658 +#: awx/sso/conf.py:659 msgid "GitHub OAuth2 Secret" msgstr "GitHub OAuth2 机密" -#: awx/sso/conf.py:659 +#: awx/sso/conf.py:660 msgid "" "The OAuth2 secret (Client Secret) from your GitHub developer application." msgstr "您的 GitHub 开发应用中的 OAuth2 机密(客户端机密)。" -#: awx/sso/conf.py:670 +#: awx/sso/conf.py:671 msgid "GitHub OAuth2 Organization Map" msgstr "GitHub OAuth2 机构映射" -#: awx/sso/conf.py:682 +#: awx/sso/conf.py:683 msgid "GitHub OAuth2 Team Map" msgstr "GitHub OAuth2 团队映射" -#: awx/sso/conf.py:698 +#: awx/sso/conf.py:699 msgid "GitHub Organization OAuth2 Callback URL" msgstr "GitHub 机构 OAuth2 回调 URL" -#: awx/sso/conf.py:702 awx/sso/conf.py:714 awx/sso/conf.py:725 -#: awx/sso/conf.py:738 awx/sso/conf.py:749 awx/sso/conf.py:761 +#: awx/sso/conf.py:703 awx/sso/conf.py:715 awx/sso/conf.py:726 +#: awx/sso/conf.py:739 awx/sso/conf.py:750 awx/sso/conf.py:762 msgid "GitHub Organization OAuth2" msgstr "GitHub 机构 OAuth2" -#: awx/sso/conf.py:712 +#: awx/sso/conf.py:713 msgid "GitHub Organization OAuth2 Key" msgstr "GitHub 机构 OAuth2 密钥" -#: awx/sso/conf.py:713 awx/sso/conf.py:791 +#: awx/sso/conf.py:714 awx/sso/conf.py:792 msgid "The OAuth2 key (Client ID) from your GitHub organization application." msgstr "您的 GitHub 机构应用中的 OAuth2 密钥(客户端 ID)。" -#: awx/sso/conf.py:723 +#: awx/sso/conf.py:724 msgid "GitHub Organization OAuth2 Secret" msgstr "GitHub 机构 OAuth2 机密" -#: awx/sso/conf.py:724 awx/sso/conf.py:802 +#: awx/sso/conf.py:725 awx/sso/conf.py:803 msgid "" "The OAuth2 secret (Client Secret) from your GitHub organization application." msgstr "您的 GitHub 机构应用中的 OAuth2 机密(客户端机密)。" -#: awx/sso/conf.py:735 +#: awx/sso/conf.py:736 msgid "GitHub Organization Name" msgstr "GitHub 机构名称" -#: awx/sso/conf.py:736 +#: awx/sso/conf.py:737 msgid "" "The name of your GitHub organization, as used in your organization's URL: " "https://github.com//." msgstr "GitHub 机构的名称,用于您的机构 URL:https://github.com//。" -#: awx/sso/conf.py:747 +#: awx/sso/conf.py:748 msgid "GitHub Organization OAuth2 Organization Map" msgstr "GitHub 机构 OAuth2 机构映射" -#: awx/sso/conf.py:759 +#: awx/sso/conf.py:760 msgid "GitHub Organization OAuth2 Team Map" msgstr "GitHub 机构 OAuth2 团队映射" -#: awx/sso/conf.py:775 +#: awx/sso/conf.py:776 msgid "GitHub Team OAuth2 Callback URL" msgstr "GitHub 团队 OAuth2 回调 URL" -#: awx/sso/conf.py:776 +#: awx/sso/conf.py:777 msgid "" "Create an organization-owned application at https://github.com/organizations/" "/settings/applications and obtain an OAuth2 key (Client ID) and " @@ -5713,172 +5554,182 @@ msgid "" "application." msgstr "在 https://github.com/organizations//settings/applications 创建一个机构拥有的应用,并获取 OAuth2 密钥(客户端 ID)和机密(客户端机密)。为您的应用提供此 URL 作为回调 URL。" -#: awx/sso/conf.py:780 awx/sso/conf.py:792 awx/sso/conf.py:803 -#: awx/sso/conf.py:816 awx/sso/conf.py:827 awx/sso/conf.py:839 +#: awx/sso/conf.py:781 awx/sso/conf.py:793 awx/sso/conf.py:804 +#: awx/sso/conf.py:817 awx/sso/conf.py:828 awx/sso/conf.py:840 msgid "GitHub Team OAuth2" msgstr "GitHub 团队 OAuth2" -#: awx/sso/conf.py:790 +#: awx/sso/conf.py:791 msgid "GitHub Team OAuth2 Key" msgstr "GitHub 团队 OAuth2 机密" -#: awx/sso/conf.py:801 +#: awx/sso/conf.py:802 msgid "GitHub Team OAuth2 Secret" msgstr "GitHub 团队 OAuth2 机密" -#: awx/sso/conf.py:813 +#: awx/sso/conf.py:814 msgid "GitHub Team ID" msgstr "GitHub 团队 ID" -#: awx/sso/conf.py:814 +#: awx/sso/conf.py:815 msgid "" "Find the numeric team ID using the Github API: http://fabian-kostadinov." "github.io/2015/01/16/how-to-find-a-github-team-id/." msgstr "使用 Github API 查找数字团队 ID:http://fabian-kostadinov.github.io/2015/01/16/how-to-find-a-github-team-id/。" -#: awx/sso/conf.py:825 +#: awx/sso/conf.py:826 msgid "GitHub Team OAuth2 Organization Map" msgstr "GitHub 团队 OAuth2 机构映射" -#: awx/sso/conf.py:837 +#: awx/sso/conf.py:838 msgid "GitHub Team OAuth2 Team Map" msgstr "GitHub 团队 OAuth2 团队映射" -#: awx/sso/conf.py:853 +#: awx/sso/conf.py:854 msgid "Azure AD OAuth2 Callback URL" msgstr "Azure AD OAuth2 回调 URL" -#: awx/sso/conf.py:854 +#: awx/sso/conf.py:855 msgid "" "Provide this URL as the callback URL for your application as part of your " "registration process. Refer to the Ansible Tower documentation for more " "detail. " msgstr "在您的注册过程中,提供此 URL 作为应用的回调 URL。请参阅 Ansible Tower 文档了解更多详情。" -#: awx/sso/conf.py:857 awx/sso/conf.py:869 awx/sso/conf.py:880 -#: awx/sso/conf.py:892 awx/sso/conf.py:904 +#: awx/sso/conf.py:858 awx/sso/conf.py:870 awx/sso/conf.py:881 +#: awx/sso/conf.py:893 awx/sso/conf.py:905 msgid "Azure AD OAuth2" msgstr "Azure AD OAuth2" -#: awx/sso/conf.py:867 +#: awx/sso/conf.py:868 msgid "Azure AD OAuth2 Key" msgstr "Azure AD OAuth2 密钥" -#: awx/sso/conf.py:868 +#: awx/sso/conf.py:869 msgid "The OAuth2 key (Client ID) from your Azure AD application." msgstr "您的 Azure AD 应用的 OAuth2 密钥(客户端 ID)。" -#: awx/sso/conf.py:878 +#: awx/sso/conf.py:879 msgid "Azure AD OAuth2 Secret" msgstr "Azure AD OAuth2 机密" -#: awx/sso/conf.py:879 +#: awx/sso/conf.py:880 msgid "The OAuth2 secret (Client Secret) from your Azure AD application." msgstr "您的 Azure AD 应用的 OAuth2 机密(客户端机密)。" -#: awx/sso/conf.py:890 +#: awx/sso/conf.py:891 msgid "Azure AD OAuth2 Organization Map" msgstr "Azure AD OAuth2 机构映射" -#: awx/sso/conf.py:902 +#: awx/sso/conf.py:903 msgid "Azure AD OAuth2 Team Map" msgstr "Azure AD OAuth2 团队映射" #: awx/sso/conf.py:927 +msgid "Automatically Create Organizations and Teams on SAML Login" +msgstr "在 SAML 登录中自动创建机构和团队" + +#: awx/sso/conf.py:928 +msgid "" +"When enabled (the default), mapped Organizations and Teams will be created " +"automatically on successful SAML login." +msgstr "启用后(默认),映射的机构和团队将在成功的 SAML 登录中自动创建。" + +#: awx/sso/conf.py:930 awx/sso/conf.py:943 awx/sso/conf.py:956 +#: awx/sso/conf.py:969 awx/sso/conf.py:983 awx/sso/conf.py:996 +#: awx/sso/conf.py:1008 awx/sso/conf.py:1028 awx/sso/conf.py:1045 +#: awx/sso/conf.py:1063 awx/sso/conf.py:1098 awx/sso/conf.py:1129 +#: awx/sso/conf.py:1142 awx/sso/conf.py:1158 awx/sso/conf.py:1170 +#: awx/sso/conf.py:1182 awx/sso/conf.py:1201 awx/sso/models.py:16 +msgid "SAML" +msgstr "SAML" + +#: awx/sso/conf.py:939 msgid "SAML Assertion Consumer Service (ACS) URL" msgstr "SAML 断言使用者服务 (ACS) URL" -#: awx/sso/conf.py:928 +#: awx/sso/conf.py:940 msgid "" "Register Tower as a service provider (SP) with each identity provider (IdP) " "you have configured. Provide your SP Entity ID and this ACS URL for your " "application." msgstr "针对您配置的每个身份提供商 (IdP) 将 Tower 注册为服务供应商 (SP)。为您的应用提供您的 SP 实体 ID 和此 ACS URL。" -#: awx/sso/conf.py:931 awx/sso/conf.py:944 awx/sso/conf.py:957 -#: awx/sso/conf.py:971 awx/sso/conf.py:984 awx/sso/conf.py:996 -#: awx/sso/conf.py:1016 awx/sso/conf.py:1033 awx/sso/conf.py:1051 -#: awx/sso/conf.py:1086 awx/sso/conf.py:1117 awx/sso/conf.py:1130 -#: awx/sso/conf.py:1146 awx/sso/conf.py:1158 awx/sso/conf.py:1170 -#: awx/sso/conf.py:1189 awx/sso/models.py:16 -msgid "SAML" -msgstr "SAML" - -#: awx/sso/conf.py:941 +#: awx/sso/conf.py:953 msgid "SAML Service Provider Metadata URL" msgstr "SAML 服务提供商元数据 URL" -#: awx/sso/conf.py:942 +#: awx/sso/conf.py:954 msgid "" "If your identity provider (IdP) allows uploading an XML metadata file, you " "can download one from this URL." msgstr "如果身份提供商 (IdP) 允许上传 XML 元数据文件,您可以从此 URL 下载一个。" -#: awx/sso/conf.py:953 +#: awx/sso/conf.py:965 msgid "SAML Service Provider Entity ID" msgstr "SAML 服务提供商实体 ID" -#: awx/sso/conf.py:954 +#: awx/sso/conf.py:966 msgid "" "The application-defined unique identifier used as the audience of the SAML " "service provider (SP) configuration. This is usually the URL for Tower." msgstr "应用定义的唯一标识符,用作 SAML 服务提供商 (SP) 配置的读者。这通常是 Tower 的 URL。" -#: awx/sso/conf.py:968 +#: awx/sso/conf.py:980 msgid "SAML Service Provider Public Certificate" msgstr "SAML 服务提供商公共证书" -#: awx/sso/conf.py:969 +#: awx/sso/conf.py:981 msgid "" "Create a keypair for Tower to use as a service provider (SP) and include the " "certificate content here." msgstr "为 Tower 创建一个密钥对,以用作服务提供商 (SP),并在此包含证书内容。" -#: awx/sso/conf.py:981 +#: awx/sso/conf.py:993 msgid "SAML Service Provider Private Key" msgstr "SAML 服务提供商私钥" -#: awx/sso/conf.py:982 +#: awx/sso/conf.py:994 msgid "" "Create a keypair for Tower to use as a service provider (SP) and include the " "private key content here." msgstr "为 Tower 创建一个密钥对,以用作服务提供商 (SP),并在此包含私钥内容。" -#: awx/sso/conf.py:993 +#: awx/sso/conf.py:1005 msgid "SAML Service Provider Organization Info" msgstr "SAML 服务提供商机构信息" -#: awx/sso/conf.py:994 +#: awx/sso/conf.py:1006 msgid "" "Provide the URL, display name, and the name of your app. Refer to the " "Ansible Tower documentation for example syntax." msgstr "提供 URL、显示名称和应用名称。示例语法请参阅 Ansible Tower 文档。" -#: awx/sso/conf.py:1012 +#: awx/sso/conf.py:1024 msgid "SAML Service Provider Technical Contact" msgstr "SAML 服务提供商技术联系人" -#: awx/sso/conf.py:1013 +#: awx/sso/conf.py:1025 msgid "" "Provide the name and email address of the technical contact for your service " "provider. Refer to the Ansible Tower documentation for example syntax." msgstr "为您的服务提供商提供技术联系人的姓名和电子邮件地址。示例语法请参阅 Ansible Tower 文档。" -#: awx/sso/conf.py:1029 +#: awx/sso/conf.py:1041 msgid "SAML Service Provider Support Contact" msgstr "SAML 服务提供商支持联系人" -#: awx/sso/conf.py:1030 +#: awx/sso/conf.py:1042 msgid "" "Provide the name and email address of the support contact for your service " "provider. Refer to the Ansible Tower documentation for example syntax." msgstr "为您的服务提供商提供支持联系人的姓名和电子邮件地址。示例语法请参阅 Ansible Tower 文档。" -#: awx/sso/conf.py:1045 +#: awx/sso/conf.py:1057 msgid "SAML Enabled Identity Providers" msgstr "SAML 启用的身份提供商" -#: awx/sso/conf.py:1046 +#: awx/sso/conf.py:1058 msgid "" "Configure the Entity ID, SSO URL and certificate for each identity provider " "(IdP) in use. Multiple SAML IdPs are supported. Some IdPs may provide user " @@ -5887,57 +5738,57 @@ msgid "" "additional details and syntax." msgstr "为使用中的每个身份提供商 (IdP) 配置实体 ID 、SSO URL 和证书。支持多个 SAML IdP。某些 IdP 可使用与默认 OID 不同的属性名称提供用户数据。每个 IdP 的属性名称可能会被覆写。如需了解更多详情和语法,请参阅 Ansible 文档。" -#: awx/sso/conf.py:1082 +#: awx/sso/conf.py:1094 msgid "SAML Security Config" msgstr "SAML 安全配置" -#: awx/sso/conf.py:1083 +#: awx/sso/conf.py:1095 msgid "" "A dict of key value pairs that are passed to the underlying python-saml " "security setting https://github.com/onelogin/python-saml#settings" msgstr "传递给底层 python-saml 安全设置的键值对字典 https://github.com/onelogin/python-saml#settings" -#: awx/sso/conf.py:1114 +#: awx/sso/conf.py:1126 msgid "SAML Service Provider extra configuration data" msgstr "SAML 服务提供商额外配置数据" -#: awx/sso/conf.py:1115 +#: awx/sso/conf.py:1127 msgid "" "A dict of key value pairs to be passed to the underlying python-saml Service " "Provider configuration setting." msgstr "传递给底层 python-saml 服务提供商配置设置的键值对字典。" -#: awx/sso/conf.py:1127 +#: awx/sso/conf.py:1139 msgid "SAML IDP to extra_data attribute mapping" msgstr "SAML IDP 到 extra_data 属性映射" -#: awx/sso/conf.py:1128 +#: awx/sso/conf.py:1140 msgid "" "A list of tuples that maps IDP attributes to extra_attributes. Each " "attribute will be a list of values, even if only 1 value." msgstr "将 IDP 属性映射到 extra_attributes 的元祖列表。每个属性将是一个值列表,即使只有 1 个值。" -#: awx/sso/conf.py:1144 +#: awx/sso/conf.py:1156 msgid "SAML Organization Map" msgstr "SAML 机构映射" -#: awx/sso/conf.py:1156 +#: awx/sso/conf.py:1168 msgid "SAML Team Map" msgstr "SAML 团队映射" -#: awx/sso/conf.py:1168 +#: awx/sso/conf.py:1180 msgid "SAML Organization Attribute Mapping" msgstr "SAML 机构属性映射" -#: awx/sso/conf.py:1169 +#: awx/sso/conf.py:1181 msgid "Used to translate user organization membership into Tower." msgstr "用于将用户机构成员资格转换为 Tower。" -#: awx/sso/conf.py:1187 +#: awx/sso/conf.py:1199 msgid "SAML Team Attribute Mapping" msgstr "SAML 团队属性映射" -#: awx/sso/conf.py:1188 +#: awx/sso/conf.py:1200 msgid "Used to translate user team membership into Tower." msgstr "用于将用户团队成员资格转换为 Tower。" @@ -5989,27 +5840,32 @@ msgstr "无效的用户属性:{invalid_attrs}。" msgid "Expected an instance of LDAPGroupType but got {input_type} instead." msgstr "预期为 LDAPGroupType 实例,但实际为 {input_type}。" -#: awx/sso/fields.py:487 +#: awx/sso/fields.py:448 +#, python-brace-format +msgid "Missing required parameters in {dependency}." +msgstr "{dependency} 中缺少所需参数 。" + +#: awx/sso/fields.py:491 #, python-brace-format msgid "Invalid key(s): {invalid_keys}." msgstr "无效的密钥:{invalid_keys}。" -#: awx/sso/fields.py:513 +#: awx/sso/fields.py:517 #, python-brace-format msgid "Invalid user flag: \"{invalid_flag}\"." msgstr "无效的用户标记:\"{invalid_flag}\"。" -#: awx/sso/fields.py:667 +#: awx/sso/fields.py:671 #, python-brace-format msgid "Invalid language code(s) for org info: {invalid_lang_codes}." msgstr "用于机构信息的语言代码无效:{invalid_lang_codes}。" -#: awx/sso/pipeline.py:27 +#: awx/sso/pipeline.py:28 #, python-brace-format msgid "An account cannot be found for {0}" msgstr "无法为 {0} 找到帐户" -#: awx/sso/pipeline.py:33 +#: awx/sso/pipeline.py:34 msgid "Your account is inactive" msgstr "您的帐户不活跃" @@ -6081,8 +5937,8 @@ msgstr "自定义登录信息" msgid "" "If needed, you can add specific information (such as a legal notice or a " "disclaimer) to a text box in the login modal using this setting. Any content " -"added must be in plain text, as custom HTML or other markup languages are " -"not supported." +"added must be in plain text or an HTML fragment, as other markup languages " +"are not supported." msgstr "如果需要,您可以使用此设置在登录模态的文本框中添加特定信息(如法律声明或免责声明)。添加的任何内容都必须使用明文,因为不支持自定义 HTML 或其他标记语言。" #: awx/ui/conf.py:45 diff --git a/awx/ui/po/zh.po b/awx/ui/po/zh.po index 957b5132f1..0c7c398251 100644 --- a/awx/ui/po/zh.po +++ b/awx/ui/po/zh.po @@ -31,7 +31,7 @@ msgstr "(限制为前 10)" msgid "(defaults to %s)" msgstr "(默认为 %s)" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:396 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:488 msgid "(seconds)" msgstr "(秒)" @@ -47,15 +47,15 @@ msgstr "20" msgid "50" msgstr "50" -#: client/src/license/license.partial.html:193 +#: client/src/license/license.partial.html:208 msgid "Automation analytics: This data is used to enhance future releases of the Tower Software and to provide Automation Analytics to Tower subscribers." msgstr "自动化分析:这些数据用于增强将来的 Tower 软件发行版本,并为 Tower 订阅者提供 自动化分析。" -#: client/src/license/license.partial.html:171 +#: client/src/license/license.partial.html:186 msgid "I agree to the End User License Agreement" msgstr "我同意最终用户许可证协议" -#: client/src/license/license.partial.html:187 +#: client/src/license/license.partial.html:202 msgid "User analytics: This data is used to enhance future releases of the Tower Software and help streamline customer experience and success." msgstr "用户分析:这些数据用于增强未来的 Tower 软件发行版本,并帮助简化客户体验和成功。" @@ -219,16 +219,11 @@ msgstr "所有活动" msgid "ALL GROUPS" msgstr "所有组" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:254 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:267 -msgid "ANY" -msgstr "任何" - #: client/src/credentials/credentials.form.js:198 msgid "API Key" msgstr "API 密钥" -#: client/src/notifications/notificationTemplates.form.js:263 +#: client/src/notifications/notificationTemplates.form.js:247 msgid "API Service/Integration Key" msgstr "API 服务/集成密钥" @@ -236,10 +231,6 @@ msgstr "API 服务/集成密钥" msgid "API Token" msgstr "API 令牌" -#: client/src/notifications/notificationTemplates.form.js:348 -msgid "API URL" -msgstr "API URL" - #: client/features/users/tokens/tokens.strings.js:40 msgid "APPLICATION" msgstr "应用" @@ -296,11 +287,11 @@ msgstr "访问密钥" msgid "Access Token Expiration" msgstr "访问令牌过期" -#: client/src/notifications/notificationTemplates.form.js:241 +#: client/src/notifications/notificationTemplates.form.js:225 msgid "Account SID" msgstr "帐户 SID" -#: client/src/notifications/notificationTemplates.form.js:200 +#: client/src/notifications/notificationTemplates.form.js:184 msgid "Account Token" msgstr "帐户令牌" @@ -329,8 +320,8 @@ msgstr "活动流" #: client/src/credentials/credentials.form.js:446 #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js:113 #: client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js:110 -#: client/src/organizations/organizations.form.js:108 -#: client/src/organizations/organizations.form.js:150 +#: client/src/organizations/organizations.form.js:117 +#: client/src/organizations/organizations.form.js:159 #: client/src/projects/projects.form.js:285 #: client/src/teams/teams.form.js:169 #: client/src/teams/teams.form.js:85 @@ -383,7 +374,7 @@ msgstr "添加用户" msgid "Add Users" msgstr "添加用户" -#: client/src/organizations/organizations.form.js:109 +#: client/src/organizations/organizations.form.js:118 msgid "Add Users to this organization." msgstr "将用户添加到此机构。" @@ -427,7 +418,7 @@ msgstr "添加新令牌" #: client/src/credentials/credentials.form.js:447 #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js:115 #: client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js:112 -#: client/src/organizations/organizations.form.js:151 +#: client/src/organizations/organizations.form.js:160 #: client/src/projects/projects.form.js:286 #: client/src/templates/job_templates/job-template.form.js:541 #: client/src/templates/workflows.form.js:296 @@ -454,17 +445,20 @@ msgstr "管理" msgid "Admins" msgstr "管理员" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:386 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:478 msgid "After every project update where the SCM revision changes, refresh the inventory from the selected source before executing job tasks. This is intended for static content, like the Ansible inventory .ini file format." msgstr "因 SCM 修订版本变更进行每次项目更新后,请在执行作业任务前从所选源刷新清单。这是面向静态内容,如 Ansible 清单 .ini 文件格式。" +#: client/src/license/license.partial.html:173 +msgid "Agree to the End User License Agreement, and click submit." +msgstr "同意最终用户许可证协议,点提交。" + #: client/features/templates/templates.strings.js:160 #: client/lib/components/components.strings.js:105 #: client/src/home/dashboard/graphs/dashboard-graphs.partial.html:41 #: client/src/home/dashboard/graphs/dashboard-graphs.partial.html:49 #: client/src/home/dashboard/graphs/dashboard-graphs.partial.html:72 #: client/src/home/dashboard/graphs/dashboard-graphs.partial.html:80 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:138 msgid "All" msgstr "所有" @@ -681,11 +675,6 @@ msgstr "授权" msgid "Authorize Password" msgstr "授权密码" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:241 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:253 -msgid "Availability Zone:" -msgstr "可用性区域:" - #: client/src/configuration/forms/auth-form/configuration-auth.controller.js:91 msgid "Azure AD" msgstr "Azure AD" @@ -723,11 +712,11 @@ msgstr "要签出的分支。除了分支外,您可以输入标签、提交散 msgid "Branch to use in job run. Project default used if blank." msgstr "要在作业运行中使用的分支。如果为空,则使用项目默认值。" -#: client/src/license/license.partial.html:113 +#: client/src/license/license.partial.html:120 msgid "Browse" msgstr "浏览" -#: client/src/license/license.partial.html:180 +#: client/src/license/license.partial.html:195 msgid "By default, Tower collects and transmits analytics data on Tower usage to Red Hat. There are two categories of data collected by Tower. For more information, see this Tower documentation page. Uncheck the following boxes to disable this feature." msgstr "默认情况下,Tower 会收集关于 Tower 使用情况的分析数据并将其传送到红帽。Tower 收集的数据分为两类。如需更多信息,请参阅这个 Tower 文档页面。请取消选择以下复选框以禁用此功能。" @@ -742,13 +731,14 @@ msgstr "默认情况下,Tower 会收集关于 Tower 使用情况的分析数 #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory-host-filter/host-filter-modal/host-filter-modal.partial.html:16 #: client/src/inventories-hosts/shared/associate-groups/associate-groups.partial.html:16 #: client/src/inventories-hosts/shared/associate-hosts/associate-hosts.partial.html:16 -#: client/src/license/license.partial.html:259 +#: client/src/license/license.partial.html:274 +#: client/src/organizations/galaxy-credentials-multiselect/galaxy-credentials-modal/galaxy-credentials-modal.partial.html:17 #: client/src/partials/survey-maker-modal.html:17 #: client/src/partials/survey-maker-modal.html:82 #: client/src/shared/instance-groups-multiselect/instance-groups-modal/instance-groups-modal.partial.html:17 #: client/src/templates/job_templates/add-job-template/job-template-add.controller.js:131 #: client/src/templates/job_templates/edit-job-template/job-template-edit.controller.js:180 -#: client/src/templates/job_templates/multi-credential/multi-credential-modal.partial.html:68 +#: client/src/templates/job_templates/multi-credential/multi-credential-modal.partial.html:69 #: client/src/templates/workflows/add-workflow/workflow-add.controller.js:149 #: client/src/templates/workflows/edit-workflow/workflow-edit.controller.js:188 msgid "CANCEL" @@ -887,7 +877,7 @@ msgstr "凭证" msgid "CREDENTIAL TYPE" msgstr "凭证类型" -#: client/src/templates/job_templates/multi-credential/multi-credential-modal.partial.html:60 +#: client/src/templates/job_templates/multi-credential/multi-credential-modal.partial.html:61 msgid "CREDENTIAL TYPE:" msgstr "凭证类型:" @@ -909,8 +899,8 @@ msgstr "凭证" msgid "CREDENTIALS PERMISSIONS" msgstr "凭证权限" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:396 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:408 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:488 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:500 #: client/src/projects/projects.form.js:231 msgid "Cache Timeout" msgstr "缓存超时" @@ -1020,7 +1010,7 @@ msgstr "当部署 {{BRAND_NAME}} 到这个位置时修改 %s。" msgid "Changes" msgstr "更改" -#: client/src/notifications/notificationTemplates.form.js:460 +#: client/src/notifications/notificationTemplates.form.js:432 msgid "Channel" msgstr "频道" @@ -1061,7 +1051,7 @@ msgstr "选择回答类型" msgid "Choose an answer type or format you want as the prompt for the user. Refer to the Ansible Tower Documentation for more additional information about each option." msgstr "选择您想要作为用户提示的回答类型或格式。请参阅 Ansible Tower 文档来了解每个选项的更多其他信息。" -#: client/src/notifications/notificationTemplates.form.js:560 +#: client/src/notifications/notificationTemplates.form.js:532 msgid "Choose an email option" msgstr "选择电子邮件选项" @@ -1073,10 +1063,6 @@ msgstr "选择清单文件" msgid "Choose file" msgstr "选择文件" -#: client/src/license/license.partial.html:104 -msgid "Choose your license file, agree to the End User License Agreement, and click submit." -msgstr "选择您的许可证文件,同意最终用户许可证协议,并点击“提交”。" - #: client/src/projects/projects.form.js:176 msgid "Clean" msgstr "清理" @@ -1114,10 +1100,6 @@ msgstr "点击一行来选择它,然后在完成时点击“完成”。点击 msgid "Click on a row to select it, and click Finished when done. Use the %s button to create a new job template." msgstr "点击一行来选择它,然后在完成时点击“完成”。点击 %s 按钮创建新作业模板。" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:137 -msgid "Click on the regions field to see a list of regions for your cloud provider. You can select multiple regions, or choose" -msgstr "点击区域字段查看云提供商的区域列表。您可以选择多个区域,或者选择" - #: client/src/organizations/linkout/controllers/organizations-projects.controller.js:277 msgid "Click the" msgstr "点击" @@ -1138,7 +1120,7 @@ msgstr "点击以查看链接" msgid "Client ID" msgstr "客户端 ID" -#: client/src/notifications/notificationTemplates.form.js:274 +#: client/src/notifications/notificationTemplates.form.js:258 msgid "Client Identifier" msgstr "客户端标识符" @@ -1150,6 +1132,7 @@ msgstr "客户端机密" #: client/src/inventories-hosts/inventories/insights/insights.partial.html:92 #: client/src/management-jobs/scheduler/schedulerForm.partial.html:618 #: client/src/management-jobs/scheduler/schedulerForm.partial.html:7 +#: client/src/organizations/galaxy-credentials-multiselect/galaxy-credentials-modal/galaxy-credentials-modal.partial.html:8 #: client/src/organizations/linkout/addUsers/addUsers.partial.html:11 #: client/src/partials/survey-maker-modal.html:28 #: client/src/partials/survey-maker-modal.html:7 @@ -1207,6 +1190,10 @@ msgstr "紧凑" msgid "Completed Jobs" msgstr "完成的作业" +#: client/src/license/license.partial.html:10 +msgid "Compliant" +msgstr "合规" + #: client/src/management-jobs/card/card.partial.html:34 #: client/src/management-jobs/card/card.partial.html:37 msgid "Configure Notifications" @@ -1228,6 +1215,10 @@ msgstr "确认工厂重置" msgid "Confirm the removal of the" msgstr "确认删除" +#: client/src/license/license.partial.html:75 +msgid "Contact Us" +msgstr "联系我们" + #: client/src/teams/teams.form.js:24 #: client/src/users/users.form.js:25 msgid "Contact your System Administrator to grant you the appropriate permissions to add and edit Users and Teams." @@ -1242,6 +1233,10 @@ msgstr "容器组" msgid "Container Groups Help" msgstr "容器组帮助" +#: client/src/login/authenticationServices/timer.factory.js:136 +msgid "Continue" +msgstr "继续" + #: client/lib/components/components.strings.js:130 msgid "Continue workflow job?" msgstr "是否继续工作流作业?" @@ -1251,7 +1246,7 @@ msgstr "是否继续工作流作业?" msgid "Control the level of output ansible will produce as the playbook executes." msgstr "控制 ansible 在 playbook 执行时生成的输出级别。" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:336 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:398 msgid "Control the level of output ansible will produce for inventory source update jobs." msgstr "控制 ansible 为清单源更新作业生成的输出级别。" @@ -1306,9 +1301,9 @@ msgstr "复制 {{resourceType}}" #: client/src/about/about.partial.html:31 msgid "" -"Copyright © 2019 Red Hat, Inc.
\n" +"Copyright © {{ currentYear }} Red Hat, Inc.
\n" " Visit Ansible.com for more information.
" -msgstr "Copyright © 2019 Red Hat, Inc.
\n" +msgstr "Copyright © {{ currentYear }} Red Hat, Inc.
\n" " Visit Ansible.com for more information.
" #: client/lib/components/components.strings.js:90 @@ -1408,11 +1403,13 @@ msgstr "已创建(待定)" #: client/src/projects/add/projects-add.controller.js:140 #: client/src/projects/add/projects-add.controller.js:153 #: client/src/projects/add/projects-add.controller.js:162 -#: client/src/projects/add/projects-add.controller.js:181 +#: client/src/projects/add/projects-add.controller.js:174 +#: client/src/projects/add/projects-add.controller.js:189 #: client/src/projects/edit/projects-edit.controller.js:263 #: client/src/projects/edit/projects-edit.controller.js:274 #: client/src/projects/edit/projects-edit.controller.js:283 -#: client/src/projects/edit/projects-edit.controller.js:302 +#: client/src/projects/edit/projects-edit.controller.js:295 +#: client/src/projects/edit/projects-edit.controller.js:310 msgid "Credential" msgstr "凭证" @@ -1462,7 +1459,7 @@ msgstr "当前镜像:" msgid "Currently following output as it arrives. Click to unfollow" msgstr "当前在输出到达时跟随输出。点击以取消跟随" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:170 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:130 msgid "Custom Inventory Script" msgstr "自定义清单脚本" @@ -1479,7 +1476,7 @@ msgstr "自定义脚本" msgid "Customize Pod Spec" msgstr "自定义 Pod 规格" -#: client/src/notifications/notificationTemplates.form.js:577 +#: client/src/notifications/notificationTemplates.form.js:549 msgid "Customize messages…" msgstr "自定义消息…" @@ -1498,7 +1495,7 @@ msgstr "仪表板" #: client/src/inventories-hosts/inventories/related/sources/list/sources-list.partial.html:24 #: client/src/inventory-scripts/list/list.controller.js:130 #: client/src/notifications/notification-templates-list/list.controller.js:235 -#: client/src/organizations/edit/organizations-edit.controller.js:164 +#: client/src/organizations/edit/organizations-edit.controller.js:180 #: client/src/organizations/linkout/controllers/organizations-admins.controller.js:69 #: client/src/organizations/linkout/controllers/organizations-users.controller.js:68 #: client/src/organizations/list/organizations-list.controller.js:202 @@ -1593,7 +1590,7 @@ msgstr "定义系统级的特性和功能" #: client/src/inventory-scripts/list/list.controller.js:126 #: client/src/notifications/notification-templates-list/list.controller.js:231 #: client/src/notifications/notificationTemplates.list.js:105 -#: client/src/organizations/edit/organizations-edit.controller.js:161 +#: client/src/organizations/edit/organizations-edit.controller.js:177 #: client/src/organizations/linkout/controllers/organizations-admins.controller.js:66 #: client/src/organizations/linkout/controllers/organizations-users.controller.js:65 #: client/src/organizations/list/organizations-list.controller.js:198 @@ -1733,11 +1730,6 @@ msgstr "删除此 {{ resourceType }} 会使以下资源不可用。" msgid "Depending on the size of the repository this may significantly increase the amount of time required to complete an update." msgstr "根据存储库的大小,这可能会显著增加完成更新所需的时间。" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:261 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:274 -msgid "Describe Instances documentation" -msgstr "描述实例文档" - #: client/features/applications/add-applications.controller.js:36 #: client/features/templates/templates.strings.js:17 #: client/features/users/tokens/users-tokens-add.controller.js:26 @@ -1769,18 +1761,16 @@ msgstr "描述" #: client/src/notifications/notificationTemplates.form.js:156 #: client/src/notifications/notificationTemplates.form.js:160 -#: client/src/notifications/notificationTemplates.form.js:172 -#: client/src/notifications/notificationTemplates.form.js:176 msgid "Destination Channels" msgstr "目标频道" -#: client/src/notifications/notificationTemplates.form.js:535 -#: client/src/notifications/notificationTemplates.form.js:539 +#: client/src/notifications/notificationTemplates.form.js:507 +#: client/src/notifications/notificationTemplates.form.js:511 msgid "Destination Channels or Users" msgstr "目标频道或用户" -#: client/src/notifications/notificationTemplates.form.js:225 -#: client/src/notifications/notificationTemplates.form.js:226 +#: client/src/notifications/notificationTemplates.form.js:209 +#: client/src/notifications/notificationTemplates.form.js:210 msgid "Destination SMS Number" msgstr "目标 SMS 号码" @@ -1793,10 +1783,10 @@ msgstr "目标 SMS 号码" msgid "Details" msgstr "详情" -#: client/src/notifications/notificationTemplates.form.js:341 -#: client/src/notifications/notificationTemplates.form.js:403 -#: client/src/notifications/notificationTemplates.form.js:474 -#: client/src/notifications/notificationTemplates.form.js:506 +#: client/src/notifications/notificationTemplates.form.js:325 +#: client/src/notifications/notificationTemplates.form.js:375 +#: client/src/notifications/notificationTemplates.form.js:446 +#: client/src/notifications/notificationTemplates.form.js:478 msgid "Disable SSL Verification" msgstr "禁用 SSL 验证" @@ -1937,7 +1927,7 @@ msgstr "过期" msgid "EXTRA VARIABLES" msgstr "额外变量" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:375 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:467 msgid "Each time a job runs using this inventory, refresh the inventory from the selected source before executing job tasks." msgstr "每次使用此清单运行作业时,请在执行作业前从所选源中刷新清单。" @@ -2072,8 +2062,8 @@ msgstr "已经过" msgid "Email" msgstr "电子邮件" -#: client/src/notifications/notificationTemplates.form.js:558 -#: client/src/notifications/notificationTemplates.form.js:559 +#: client/src/notifications/notificationTemplates.form.js:530 +#: client/src/notifications/notificationTemplates.form.js:531 msgid "Email Options" msgstr "电子邮件选项" @@ -2127,6 +2117,16 @@ msgstr "为此作业模板启用 Webhook。" msgid "Enable webhook for this workflow job template." msgstr "为此工作流作业模板启用 Webhook。" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:426 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:428 +msgid "Enabled Value" +msgstr "已启用的值" + +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:416 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:418 +msgid "Enabled Variable" +msgstr "已启用的变量" + #: client/src/templates/job_templates/job-template.form.js:335 msgid "Enables creation of a provisioning callback URL. Using the URL a host can contact {{BRAND_NAME}} and request a configuration update using this job template." msgstr "允许创建部署回调 URL。使用此 URL,主机可访问 {{BRAND_NAME}} 并使用此作业模板请求配置更新。" @@ -2149,7 +2149,7 @@ msgstr "结束日期" msgid "End Time" msgstr "结束时间" -#: client/src/license/license.partial.html:163 +#: client/src/license/license.partial.html:178 msgid "End User License Agreement" msgstr "最终用户许可证协议" @@ -2160,19 +2160,16 @@ msgstr "最终用户许可证协议" msgid "Enter inventory variables using either JSON or YAML syntax. Use the radio button to toggle between the two." msgstr "使用 JSON 或 YAML 语法输入清单变量。使用单选按钮在两者之间切换。" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:257 #: client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js:74 msgid "Enter inventory variables using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax." msgstr "使用 JSON 或 YAML 语法输入清单变量。使用单选按钮在两者之间切换。示例语法请参阅 Ansible Tower 文档。" -#: client/src/notifications/notificationTemplates.form.js:335 +#: client/src/notifications/notificationTemplates.form.js:319 msgid "Enter one Annotation Tag per line, without commas." msgstr "每行输入一个注解标签,不带逗号。" -#: client/src/notifications/notificationTemplates.form.js:175 -msgid "Enter one HipChat channel per line. The pound symbol (#) is not required." -msgstr "每行输入一个 HipChat 频道。不需要输入 # 号。" - -#: client/src/notifications/notificationTemplates.form.js:538 +#: client/src/notifications/notificationTemplates.form.js:510 msgid "Enter one IRC channel or username per line. The pound symbol (#) for channels, and the at (@) symbol for users, are not required." msgstr "每行输入一个 IRC 频道或用户名。频道不需要输入 # 号,用户不需要输入 @ 符号。" @@ -2184,7 +2181,7 @@ msgstr "每行输入一个 Slack 频道。频道不需要输入 # 号。" msgid "Enter one email address per line to create a recipient list for this type of notification." msgstr "每行输入一封电子邮件地址,为这类通知创建一个接收者列表。" -#: client/src/notifications/notificationTemplates.form.js:229 +#: client/src/notifications/notificationTemplates.form.js:213 msgid "Enter one phone number per line to specify where to route SMS messages." msgstr "每行输入一个电话号码来指定 SMS 消息的传送目标。" @@ -2203,14 +2200,30 @@ msgstr "输入与您的 Red Hat Satellite 6 服务器 %s 对应的 URL。%s 例 msgid "Enter the hostname or IP address which corresponds to your VMware vCenter." msgstr "输入与 VMware vCenter 对应的主机名或 IP 地址。" -#: client/src/notifications/notificationTemplates.form.js:215 +#: client/src/notifications/notificationTemplates.form.js:199 msgid "Enter the number associated with the \"Messaging Service\" in Twilio in the format +18005550199." msgstr "在 Twilio 中输入与“信息服务”关联的号码,格式为 +18005550199。" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:196 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:220 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:244 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:319 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:177 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:203 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:229 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:272 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:298 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:324 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:350 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:376 +msgid "Enter variables to configure the inventory source. For a detailed description of how to configure this plugin, see" +msgstr "输入变量来配置清单源。有关如何配置此插件的详细描述,请参阅" + +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:156 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:182 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:208 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:234 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:277 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:303 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:329 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:355 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:381 msgid "Enter variables using either JSON or YAML syntax. Use the radio button to toggle between the two." msgstr "使用 JSON 或 YAML 语法输入变量。使用单选按钮在两者之间切换。" @@ -2218,12 +2231,12 @@ msgstr "使用 JSON 或 YAML 语法输入变量。使用单选按钮在两者之 msgid "Environment" msgstr "环境" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:186 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:193 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:146 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:153 msgid "Environment Variables" msgstr "环境变量" -#: client/src/license/license.controller.js:232 +#: client/src/license/license.controller.js:228 msgid "Error Applying License" msgstr "应用许可证时出错" @@ -2231,15 +2244,15 @@ msgstr "应用许可证时出错" msgid "Error Details" msgstr "错误详情" -#: client/src/license/license.controller.js:166 +#: client/src/license/license.controller.js:161 msgid "Error Fetching Licenses" msgstr "获取许可证时出错" -#: client/src/notifications/notificationTemplates.form.js:643 +#: client/src/notifications/notificationTemplates.form.js:615 msgid "Error Message" msgstr "错误消息" -#: client/src/notifications/notificationTemplates.form.js:654 +#: client/src/notifications/notificationTemplates.form.js:626 msgid "Error Message Body" msgstr "错误消息正文" @@ -2267,13 +2280,13 @@ msgstr "错误消息正文" #: client/src/inventories-hosts/inventories/related/sources/list/sources-list.controller.js:153 #: client/src/job-submission/job-submission-factories/launchjob.factory.js:203 #: client/src/job-submission/job-submission-factories/launchjob.factory.js:222 -#: client/src/login/loginModal/loginModal.controller.js:143 +#: client/src/login/loginModal/loginModal.controller.js:144 #: client/src/management-jobs/card/card.controller.js:122 #: client/src/management-jobs/card/card.controller.js:28 #: client/src/management-jobs/card/card.controller.js:58 -#: client/src/organizations/main.js:111 -#: client/src/organizations/main.js:124 -#: client/src/organizations/main.js:139 +#: client/src/organizations/main.js:155 +#: client/src/organizations/main.js:168 +#: client/src/organizations/main.js:183 #: client/src/projects/add/projects-add.controller.js:120 #: client/src/projects/edit/projects-edit.controller.js:154 #: client/src/projects/edit/projects-edit.controller.js:220 @@ -2336,6 +2349,11 @@ msgstr "GIT SCM 的 URL 示例包括:" msgid "Example URLs for Mercurial SCM include:" msgstr "Mercurial SCM 的 URL 示例包括:" +#: client/src/projects/add/projects-add.controller.js:175 +#: client/src/projects/edit/projects-edit.controller.js:296 +msgid "Example URLs for Remote Archive SCM include:" +msgstr "远程归档 SCM 的 URL 示例包括:" + #: client/src/projects/add/projects-add.controller.js:154 #: client/src/projects/edit/projects-edit.controller.js:275 msgid "Example URLs for Subversion SCM include:" @@ -2371,7 +2389,7 @@ msgstr "展开输出" msgid "Expanded" msgstr "已展开" -#: client/src/license/license.partial.html:246 +#: client/src/license/license.partial.html:261 msgid "Expires" msgstr "过期" @@ -2383,7 +2401,7 @@ msgstr "过期(升序)" msgid "Expires (Descending)" msgstr "过期(降序)" -#: client/src/license/license.partial.html:39 +#: client/src/license/license.partial.html:33 msgid "Expires On" msgstr "过期日" @@ -2526,7 +2544,7 @@ msgstr "为仪表板获取新作业失败:" msgid "Failed to get new templates for dashboard:" msgstr "为仪表板获取新模板失败:" -#: client/src/organizations/main.js:140 +#: client/src/organizations/main.js:184 msgid "Failed to get organizations for which this user is a notification admin. GET returned" msgstr "获取此用户作为通知管理员的机构失败。GET 返回" @@ -2566,7 +2584,7 @@ msgid "Failed to get workflow job template. GET returned status:" msgstr "获取工作流作业模板失败。GET 返回的状态:" #: client/src/app.js:229 -#: client/src/login/loginModal/loginModal.controller.js:144 +#: client/src/login/loginModal/loginModal.controller.js:145 msgid "Failed to get workflow jobs pending approval. GET returned status:" msgstr "获取等待批准的工作流作业失败。GET 返回的状态:" @@ -2608,11 +2626,11 @@ msgstr "更新搜索结果失败。" msgid "Failed updating job %s with variables. POST returned: %d" msgstr "通过变量更新作业 %s 失败。POST 返回:%d" -#: client/src/organizations/main.js:112 +#: client/src/organizations/main.js:156 msgid "Failed while checking to see if user is a notification administrator of this organization. GET returned" msgstr "在检查用户是否为该机构的通知管理员时失败。GET 返回" -#: client/src/organizations/main.js:125 +#: client/src/organizations/main.js:169 msgid "Failed while checking to see if user is an administrator of this organization. GET returned" msgstr "在检查用户是否为该机构的管理员时失败。 GET 返回" @@ -2656,7 +2674,7 @@ msgstr "名字" msgid "First Run" msgstr "首次运行" -#: client/src/organizations/organizations.form.js:124 +#: client/src/organizations/organizations.form.js:133 msgid "First name" msgstr "名字" @@ -2719,9 +2737,9 @@ msgstr "频率详情" msgid "Fri" msgstr "周五" -#: client/src/license/license.partial.html:150 -msgid "GET LICENSES" -msgstr "获取许可证" +#: client/src/license/license.partial.html:157 +msgid "GET SUBSCRIPTIONS" +msgstr "获取订阅" #: client/src/notifications/notification-templates-list/add-notifications-action.partial.html:2 msgid "GO TO NOTIFICATIONS TO" @@ -2731,6 +2749,11 @@ msgstr "Go TO NOTIFICATIONS msgid "GROUPS" msgstr "组" +#: client/src/organizations/organizations.form.js:59 +#: client/src/organizations/organizations.form.js:62 +msgid "Galaxy Credentials" +msgstr "Galaxy 凭证" + #: client/src/shared/form-generator.js:801 msgid "Generate field" msgstr "生成字段" @@ -2805,11 +2828,11 @@ msgstr "进入列表的上一个页" msgid "Google OAuth2" msgstr "Google OAuth2" -#: client/src/notifications/notificationTemplates.form.js:300 +#: client/src/notifications/notificationTemplates.form.js:284 msgid "Grafana API Key" msgstr "Grafana API 密钥" -#: client/src/notifications/notificationTemplates.form.js:285 +#: client/src/notifications/notificationTemplates.form.js:269 msgid "Grafana URL" msgstr "Grafana URL" @@ -2868,13 +2891,13 @@ msgstr "提示:在以下字段上拖放专用文件。" msgid "HOSTS" msgstr "主机" -#: client/src/notifications/notificationTemplates.form.js:410 -#: client/src/notifications/notificationTemplates.form.js:411 +#: client/src/notifications/notificationTemplates.form.js:382 +#: client/src/notifications/notificationTemplates.form.js:383 msgid "HTTP Headers" msgstr "HTTP 标头" -#: client/src/notifications/notificationTemplates.form.js:427 -#: client/src/notifications/notificationTemplates.form.js:428 +#: client/src/notifications/notificationTemplates.form.js:399 +#: client/src/notifications/notificationTemplates.form.js:400 msgid "HTTP Method" msgstr "HTTP 方法" @@ -2915,6 +2938,11 @@ msgstr "主机配置密钥" msgid "Host Enabled" msgstr "主机已启用" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:406 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:408 +msgid "Host Filter" +msgstr "主机过滤器" + #: client/features/output/output.strings.js:66 msgid "Host Limit Error" msgstr "主机限制错误" @@ -2963,33 +2991,29 @@ msgstr "此作业的主机状态信息不可用。" msgid "Hosts" msgstr "主机" +#: client/src/license/license.partial.html:46 #: client/src/license/license.partial.html:52 -#: client/src/license/license.partial.html:58 msgid "Hosts Available" msgstr "主机可用" +#: client/src/license/license.partial.html:62 #: client/src/license/license.partial.html:68 msgid "Hosts Remaining" msgstr "剩余主机" -#: client/src/license/license.partial.html:62 +#: client/src/license/license.partial.html:56 msgid "Hosts Used" msgstr "已使用的主机" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:254 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:267 -msgid "Hosts are imported to" -msgstr "主机已导入到" - #: client/features/output/output.strings.js:129 msgid "ID" msgstr "ID" -#: client/src/notifications/notificationTemplates.form.js:313 +#: client/src/notifications/notificationTemplates.form.js:297 msgid "ID of the Dashboard (optional)" msgstr "仪表板 ID(可选)" -#: client/src/notifications/notificationTemplates.form.js:321 +#: client/src/notifications/notificationTemplates.form.js:305 msgid "ID of the Panel (optional)" msgstr "面板 ID(可选)" @@ -3038,11 +3062,11 @@ msgstr "清单脚本" msgid "INVENTORY SCRIPTS" msgstr "清单脚本" -#: client/src/notifications/notificationTemplates.form.js:524 +#: client/src/notifications/notificationTemplates.form.js:496 msgid "IRC Nick" msgstr "IRC Nick" -#: client/src/notifications/notificationTemplates.form.js:513 +#: client/src/notifications/notificationTemplates.form.js:485 msgid "IRC Server Address" msgstr "IRC 服务器地址" @@ -3066,8 +3090,8 @@ msgstr "问题: {{report.rule.description}}" msgid "ITEMS" msgstr "项" -#: client/src/notifications/notificationTemplates.form.js:467 -#: client/src/notifications/notificationTemplates.form.js:499 +#: client/src/notifications/notificationTemplates.form.js:439 +#: client/src/notifications/notificationTemplates.form.js:471 msgid "Icon URL" msgstr "图标 URL" @@ -3075,16 +3099,11 @@ msgstr "图标 URL" msgid "Idle Session" msgstr "闲置会话" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:251 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:263 -msgid "If blank, all groups above are created except" -msgstr "如果为空,会创建以上所有组,除了" - -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:364 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:456 msgid "If checked, all variables for child groups and hosts will be removed and replaced by those found on the external source." msgstr "如果选中,子组和主机的所有变量都将被删除,并替换为外部源上的变量。" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:353 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:445 msgid "If checked, any hosts and groups that were previously present on the external source but are now removed will be removed from the Tower inventory. Hosts and groups that were not managed by the inventory source will be promoted to the next manually created group or if there is no manually created group to promote them into, they will be left in the \"all\" default group for the inventory." msgstr "如果选中,以前存在于外部源上的但现已被删除的任何主机和组都将从 Tower 清单中删除。不由清单源管理的主机和组将提升到下一个手动创建的组,如果没有手动创建组来提升它们,则它们将保留在清单的“all”默认组中。" @@ -3118,13 +3137,12 @@ msgid "If no organization is given, the credential can only be used by the user msgstr "如果没有提供机构,则凭证只能供创建凭证的用户使用。机构管理员和系统管理员可以分配一个机构,这样就可将凭证的角色分配给该机构中的用户和团队。" #: client/src/license/license.partial.html:74 -msgid "If you are ready to upgrade, please contact us by clicking the button below" -msgstr "如果您准备升级,请点击下面的按钮联系我们。" +msgid "If you are ready to upgrade or renew, please contact us by clicking the button below." +msgstr "如果您准备进行升级或续订,请点击下面的按钮联系我们。" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:242 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:254 -msgid "Image ID:" -msgstr "镜像 ID:" +#: client/src/license/license.partial.html:88 +msgid "If you do not have a subscription, you can visit Red Hat to obtain a trial subscription." +msgstr "如果您还没有订阅,请联系红帽来获得一个试用订阅。" #: client/src/inventories-hosts/hosts/host.form.js:34 #: client/src/inventories-hosts/hosts/host.list.js:35 @@ -3160,11 +3178,6 @@ msgstr "Insights" msgid "Insights Credential" msgstr "Insights 凭证" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:144 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:147 -msgid "Instance Filters" -msgstr "实例过滤器" - #: client/features/output/output.strings.js:67 #: client/src/instance-groups/instance-groups.strings.js:43 msgid "Instance Group" @@ -3190,21 +3203,6 @@ msgstr "实例组" msgid "Instance Groups Help" msgstr "实例组帮助" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:251 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:263 -msgid "Instance ID" -msgstr "实例 ID" - -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:243 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:255 -msgid "Instance ID:" -msgstr "实例 ID:" - -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:244 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:256 -msgid "Instance Type:" -msgstr "实例类型:" - #: client/lib/components/components.strings.js:85 #: client/src/instance-groups/instance-groups.strings.js:20 msgid "Instances" @@ -3218,14 +3216,9 @@ msgstr "权限不足" msgid "Integer" msgstr "整数" -#: client/src/license/license.partial.html:11 -msgid "Invalid License" -msgstr "无效许可证" - -#: client/src/license/license.controller.js:109 -#: client/src/license/license.controller.js:117 -msgid "Invalid file format. Please upload valid JSON." -msgstr "无效的文件格式。请上传有效的 JSON。" +#: client/src/license/license.controller.js:112 +msgid "Invalid file format. Please upload a valid Red Hat Subscription Manifest." +msgstr "无效的文件格式。请上传有效的红帽订阅清单。" #: client/lib/components/components.strings.js:16 msgid "Invalid input for this type." @@ -3287,6 +3280,17 @@ msgstr "清单文件" msgid "Inventory Limit" msgstr "清单限制" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:179 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:205 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:231 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:274 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:300 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:326 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:352 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:378 +msgid "Inventory Plugins" +msgstr "清单插件" + #: client/lib/components/components.strings.js:82 #: client/lib/models/models.strings.js:20 #: client/src/activity-stream/streamDropdownNav/stream-dropdown-nav.directive.js:29 @@ -3361,10 +3365,15 @@ msgstr "作业" msgid "JSON" msgstr "JSON" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:197 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:221 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:245 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:320 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:157 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:183 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:209 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:235 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:278 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:304 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:330 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:356 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:382 msgid "JSON:" msgstr "JSON:" @@ -3443,11 +3452,6 @@ msgstr "密钥" msgid "Key" msgstr "密钥" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:245 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:257 -msgid "Key Name:" -msgstr "密钥名称:" - #: client/src/credential-types/credential-types.list.js:31 #: client/src/credentials/credentials.list.js:33 msgid "Kind" @@ -3496,10 +3500,6 @@ msgstr "LDAP 5(可选)" msgid "LDAP Server" msgstr "LDAP 服务器" -#: client/src/license/license.route.js:18 -msgid "LICENSE" -msgstr "许可证" - #: client/features/output/output.strings.js:76 #: client/src/templates/job_templates/job-template.form.js:240 #: client/src/templates/job_templates/job-template.form.js:244 @@ -3553,7 +3553,7 @@ msgstr "最后使用(降序)" msgid "Last logged in:" msgstr "最后登录:" -#: client/src/organizations/organizations.form.js:128 +#: client/src/organizations/organizations.form.js:137 msgid "Last name" msgstr "姓氏" @@ -3599,9 +3599,6 @@ msgstr "旧状态配置不存在" #: client/lib/components/components.strings.js:98 #: client/src/configuration/settings.partial.html:14 -#: client/src/license/license.controller.js:47 -#: client/src/license/license.partial.html:109 -#: client/src/license/license.partial.html:8 msgid "License" msgstr "许可证" @@ -3609,18 +3606,6 @@ msgstr "许可证" msgid "License Error" msgstr "许可证错误" -#: client/src/license/license.partial.html:33 -msgid "License Key" -msgstr "许可证密钥" - -#: client/src/license/license.controller.js:49 -msgid "License Management" -msgstr "许可证管理" - -#: client/src/license/license.partial.html:21 -msgid "License Type" -msgstr "许可证类型" - #: client/features/output/output.strings.js:79 #: client/features/templates/templates.strings.js:56 #: client/src/inventories-hosts/inventories/adhoc/adhoc.form.js:45 @@ -3632,21 +3617,6 @@ msgstr "许可证类型" msgid "Limit" msgstr "限制" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:255 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:268 -msgid "Limit to hosts having a tag:" -msgstr "限制为具有标签的主机:" - -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:257 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:270 -msgid "Limit to hosts using either key pair:" -msgstr "限制为使用任意密钥对主机:" - -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:259 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:272 -msgid "Limit to hosts where the Name tag begins with" -msgstr "限制为特定的主机,其 Name 标签开头为" - #: client/src/scheduler/scheduler.strings.js:51 msgid "Limited to first 10" msgstr "限制为前 10" @@ -3743,7 +3713,7 @@ msgstr "机器" msgid "Machine Credential" msgstr "机器凭证" -#: client/src/license/license.partial.html:240 +#: client/src/license/license.partial.html:255 msgid "Managed Nodes" msgstr "受管的节点" @@ -3762,8 +3732,8 @@ msgstr "手动项目不需要 SCM 更新" msgid "Max 512 characters per label." msgstr "每个标签最多 512 个字符。" -#: client/src/organizations/organizations.form.js:59 -#: client/src/organizations/organizations.form.js:66 +#: client/src/organizations/organizations.form.js:68 +#: client/src/organizations/organizations.form.js:75 msgid "Max Hosts" msgstr "最大主机数" @@ -3949,7 +3919,7 @@ msgstr "无选定项" msgid "NOTE: This field assumes the remote name is \"origin\"." msgstr "注意:该字段假设远程名称为“origin”。" -#: client/src/login/loginModal/loginModal.partial.html:101 +#: client/src/login/loginModal/loginModal.partial.html:102 msgid "NOTICE" msgstr "通知" @@ -3964,7 +3934,7 @@ msgstr "通知模板" #: client/lib/components/components.strings.js:131 #: client/src/inventories-hosts/inventories/related/sources/edit/sources-notifications.route.js:9 -#: client/src/management-jobs/notifications/notification.route.js:46 +#: client/src/management-jobs/notifications/notification.route.js:59 #: client/src/notifications/main.js:44 #: client/src/notifications/main.js:95 #: client/src/notifications/notification-templates-list/add-notifications-action.partial.html:2 @@ -4071,7 +4041,7 @@ msgstr "尚未创建与此类型匹配的凭证" msgid "No JSON data returned by the module" msgstr "没有此模块返回的 JSON 数据" -#: client/src/license/license.controller.js:158 +#: client/src/license/license.controller.js:153 msgid "No Licenses Found" msgstr "未找到许可证" @@ -4241,10 +4211,10 @@ msgstr "没有为清单同步配置。" msgid "Note that only hosts directly in this group can be disassociated. Hosts in sub-groups must be disassociated directly from the sub-group level that they belong." msgstr "请注意,只有直接属于此组的主机才能解除关联。子组中的主机必须与其所属的子组级别直接解除关联。" -#: client/src/notifications/notificationTemplates.form.js:371 -#: client/src/notifications/notificationTemplates.form.js:372 -#: client/src/notifications/notificationTemplates.form.js:568 -#: client/src/notifications/notificationTemplates.form.js:569 +#: client/src/notifications/notificationTemplates.form.js:343 +#: client/src/notifications/notificationTemplates.form.js:344 +#: client/src/notifications/notificationTemplates.form.js:540 +#: client/src/notifications/notificationTemplates.form.js:541 msgid "Notification Color" msgstr "通知颜色" @@ -4252,7 +4222,7 @@ msgstr "通知颜色" msgid "Notification Failed." msgstr "通知失败。" -#: client/src/notifications/notificationTemplates.form.js:360 +#: client/src/notifications/notificationTemplates.form.js:332 msgid "Notification Label" msgstr "通知标签" @@ -4270,7 +4240,7 @@ msgstr "通知超时。" msgid "Notifications" msgstr "通知" -#: client/src/notifications/notificationTemplates.form.js:385 +#: client/src/notifications/notificationTemplates.form.js:357 msgid "Notify Channel" msgstr "通知频道" @@ -4292,7 +4262,7 @@ msgstr "开" msgid "OPTIONS" msgstr "选项" -#: client/src/license/license.partial.html:121 +#: client/src/license/license.partial.html:128 msgid "OR" msgstr "或者" @@ -4306,7 +4276,7 @@ msgstr "机构" #: client/src/activity-stream/get-target-title.factory.js:29 #: client/src/organizations/list/organizations-list.partial.html:6 -#: client/src/organizations/main.js:51 +#: client/src/organizations/main.js:55 msgid "ORGANIZATIONS" msgstr "机构" @@ -4333,10 +4303,9 @@ msgstr "失败时" msgid "On Success" msgstr "成功时" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:156 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:161 -msgid "Only Group By" -msgstr "唯一分组标准" +#: client/src/organizations/galaxy-credentials-multiselect/galaxy-credentials.partial.html:3 +msgid "Open Galaxy credentials" +msgstr "打开 Galaxy 凭证" #: client/src/templates/job_templates/multi-credential/multi-credential.partial.html:4 msgid "Open credential lookup" @@ -4422,52 +4391,22 @@ msgstr "其他提示" msgid "Others (Cloud Providers)" msgstr "其他(云提供商)" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:316 -msgid "Override variables found in azure_rm.ini and used by the inventory update script. For a detailed description of these variables" -msgstr "覆盖 azure_rm.ini 中由清单更新脚本使用的变量。有关这些变量的详细描述" +#: client/src/license/license.partial.html:11 +msgid "Out of Compliance" +msgstr "不合规" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:282 -msgid "" -"Override variables found in cloudforms.ini and used by the inventory update script. For an example variable configuration\n" -" \n" -" view cloudforms.ini in the Ansible Collections github repo. Enter inventory variables using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax." -msgstr "覆盖 cloudforms.ini 中由清单更新脚本使用的变量。一个变量配置示例包括在\n" -" \n" -" Ansible github repo 的 cloudforms.ini 中。 使用 JSON 或 YAML 格式输入清单变量。通过单选按钮可以切换这两个格式。详情请参阅 Ansible Tower 的相关文档。" - -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:217 -msgid "Override variables found in ec2.ini and used by the inventory update script. For a detailed description of these variables" -msgstr "覆写 ec2.ini 中由清单更新脚本使用的变量。有关这些变量的详细描述" - -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:299 -msgid "" -"Override variables found in foreman.ini and used by the inventory update script. For an example variable configuration\n" -" \n" -" view foreman.ini in the Ansible Collections github repo. Enter inventory variables using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax." -msgstr "覆盖 foreman.ini 中由清单脚本使用的变量。一个变量配置示例包括在\n" -" \n" -" Ansible github repo 的 foreman.ini 中。 使用 JSON 或 YAML 格式输入清单变量。通过单选按旧可以切换这两个格式。详情请参阅 Ansible Tower 的相关文档。" - -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:265 -msgid "" -"Override variables found in openstack.yml and used by the inventory update script. For an example variable configuration\n" -" \n" -" view openstack.yml in the Openstack github repo. Enter inventory variables using either JSON or YAML syntax. Use the radio button to toggle between the two. Refer to the Ansible Tower documentation for example syntax." -msgstr "覆盖 openstack.yml 中由清单脚本使用的变量。一个变量配置示例包括在 \n" -" Openstack github repo 的 openstack.yml 中。 使用 JSON 或 YAML 格式输入清单变量。通过单选按旧可以切换这两个格式。详情请参阅 Ansible Tower 的相关文档。" - -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:241 -msgid "Override variables found in vmware.ini and used by the inventory update script. For a detailed description of these variables" -msgstr "覆写 vmware.ini 中由清单更新脚本使用的变量。有关这些变量的详细描述" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:255 +msgid "Override variables found in cloudforms.ini and used by the inventory update script. For an example variable configuration" +msgstr "覆盖在 cloudforms.ini 中的由清单更新脚本使用的变量。一个变量配置示例" #: client/features/output/output.strings.js:83 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:350 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:355 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:442 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:447 msgid "Overwrite" msgstr "覆盖" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:361 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:366 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:453 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:458 msgid "Overwrite Variables" msgstr "覆盖变量" @@ -4479,7 +4418,7 @@ msgstr "覆盖变量" msgid "Owners" msgstr "所有者" -#: client/src/license/license.partial.html:136 +#: client/src/license/license.partial.html:143 #: client/src/login/loginModal/loginModal.partial.html:80 msgid "PASSWORD" msgstr "密码" @@ -4548,7 +4487,7 @@ msgstr "PUT" msgid "Page" msgstr "页面" -#: client/src/notifications/notificationTemplates.form.js:252 +#: client/src/notifications/notificationTemplates.form.js:236 msgid "Pagerduty subdomain" msgstr "Pagerduty 子域" @@ -4643,7 +4582,7 @@ msgstr "权限错误" #: client/src/credentials/credentials.form.js:438 #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js:104 #: client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js:101 -#: client/src/organizations/organizations.form.js:143 +#: client/src/organizations/organizations.form.js:152 #: client/src/projects/projects.form.js:278 #: client/src/teams/teams.form.js:128 #: client/src/templates/job_templates/job-template.form.js:532 @@ -4700,10 +4639,6 @@ msgstr "请检查服务器并确保目录存在,并正确设置文件权限。 msgid "Please click on an available node to form a new link." msgstr "请点击可用节点以形成新链接。" -#: client/src/license/license.partial.html:91 -msgid "Please click the button below to visit Ansible's website to get a Tower license key." -msgstr "请点击下面的按钮访问 Ansible 的网站以获取 Tower 许可证密钥。" - #: client/src/inventories-hosts/inventory-hosts.strings.js:40 msgid "Please click the icon to edit the host filter." msgstr "请点击图标编辑主机过滤器。" @@ -4889,14 +4824,14 @@ msgstr "请在向此工作流添加问卷调查前保存。" msgid "Please save before adding notifications." msgstr "请在添加通知前保存。" -#: client/src/organizations/organizations.form.js:95 +#: client/src/organizations/organizations.form.js:104 #: client/src/teams/teams.form.js:72 msgid "Please save before adding users." msgstr "请在添加用户前保存。" #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js:100 #: client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js:97 -#: client/src/organizations/organizations.form.js:135 +#: client/src/organizations/organizations.form.js:144 #: client/src/projects/projects.form.js:270 #: client/src/teams/teams.form.js:124 #: client/src/templates/job_templates/job-template.form.js:525 @@ -5144,16 +5079,6 @@ msgstr "提示" msgid "Prompt on launch" msgstr "启动时提示" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:253 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:266 -msgid "Provide a comma-separated list of filter expressions." -msgstr "提供以逗号分隔的过滤器表达式列表。" - -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:269 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:284 -msgid "Provide a comma-separated list of filter expressions. Hosts are imported when all of the filters match. Refer to Ansible Tower documentation for more detail." -msgstr "提供以逗号分隔的过滤器表达式列表。所有过滤器匹配时,会导入主机。请参阅 Ansible Tower 文档了解更多详情。" - #: client/src/inventories-hosts/hosts/host.form.js:49 #: client/src/inventories-hosts/inventories/related/groups/related/nested-hosts/group-nested-hosts.form.js:48 #: client/src/inventories-hosts/inventories/related/hosts/related-host.form.js:50 @@ -5173,18 +5098,13 @@ msgstr "提供主机模式以进一步限制受工作流管理或影响的主机 msgid "Provide account information using Google Compute Engine JSON credentials file." msgstr "使用 Google Compute Engine JSON 凭证文件提供帐户信息。" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:195 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:155 msgid "Provide environment variables to pass to the custom inventory script." msgstr "提供要传递给自定义清单脚本的环境变量。" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:272 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:287 -msgid "Provide the named URL encoded name or id of the remote Tower inventory to be imported." -msgstr "提供要导入的远程 Tower 清单的命名 URL 编码名称或 ID。" - -#: client/src/license/license.partial.html:128 -msgid "Provide your Red Hat customer credentials and you can choose from a list of your available licenses. The credentials you use will be stored for future use in retrieving renewal or expanded licenses. You can update or remove them in SETTINGS > SYSTEM." -msgstr "提供您的红帽客户凭证,您可以从可用许可证列表中进行选择。您使用的凭证将存储以供将来用于检索续订或扩展许可证。您可以在“设置”>“系统”中更新或删除它们。" +#: client/src/license/license.partial.html:135 +msgid "Provide your Red Hat or Red Hat Satellite credentials below and you can choose from a list of your available subscriptions. The credentials you use will be stored for future use in retrieving renewal or expanded subscriptions." +msgstr "提供您的 Red Hat 或 Red Hat Satellite 凭证,可从可用许可证列表中进行选择。您使用的凭证会被保存,以供将来用于续订或扩展订阅。" #: client/src/templates/job_templates/job-template.form.js:374 #: client/src/templates/job_templates/job-template.form.js:382 @@ -5271,7 +5191,7 @@ msgid "RESULTS" msgstr "结果" #: client/features/templates/templates.strings.js:39 -#: client/src/templates/job_templates/multi-credential/multi-credential-modal.partial.html:50 +#: client/src/templates/job_templates/multi-credential/multi-credential-modal.partial.html:51 msgid "REVERT" msgstr "恢复" @@ -5353,6 +5273,10 @@ msgstr "接收者列表" msgid "Red" msgstr "红色" +#: client/src/license/license.partial.html:114 +msgid "Red Hat Subscription Manifest" +msgstr "Red Hat Subscription Manifest" + #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js:47 msgid "Refer to the Ansible Tower documentation for further syntax and examples." msgstr "更多的语法和示例请参阅 Ansible Tower 文档。" @@ -5392,14 +5316,9 @@ msgstr "刷新页面" msgid "Refspec" msgstr "Refspec" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:246 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:258 -msgid "Region:" -msgstr "区域:" - -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:130 -msgid "Regions" -msgstr "区域" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:410 +msgid "Regular expression where only matching host names will be imported. The filter is applied as a post-processing step after any inventory plugin filters are applied." +msgstr "仅导入主机名与这个正则表达式匹配的主机。该过滤器在应用任何清单插件过滤器后作为后步骤使用。" #: client/src/inventories-hosts/inventories/related/hosts/related-host.list.js:81 msgid "Related Groups" @@ -5462,9 +5381,9 @@ msgstr "替换密码" msgid "Replace secret" msgstr "替换 secret" -#: client/src/license/license.partial.html:96 -msgid "Request License" -msgstr "请求许可证" +#: client/src/license/license.partial.html:92 +msgid "Request Subscription" +msgstr "请求订阅" #: client/src/templates/survey-maker/shared/question-definition.form.js:291 msgid "Required" @@ -5483,6 +5402,10 @@ msgstr "资源" msgid "Resources are missing from this template." msgstr "此模板中缺少资源。" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:420 +msgid "Retrieve the enabled state from the given dict of host variables. The enabled variable may be specified using dot notation, e.g: 'foo.bar'" +msgstr "从给定的主机变量字典中检索启用的状态。启用的变量可以使用点符号来指定,如 'foo.bar'" + #: client/lib/services/base-string.service.js:111 msgid "Return" msgstr "返回" @@ -5510,7 +5433,7 @@ msgstr "恢复" #: client/src/configuration/forms/auth-form/sub-forms/auth-radius.form.js:34 #: client/src/configuration/forms/auth-form/sub-forms/auth-saml.form.js:121 #: client/src/configuration/forms/auth-form/sub-forms/auth-tacacs.form.js:47 -#: client/src/configuration/forms/jobs-form/configuration-jobs.form.js:129 +#: client/src/configuration/forms/jobs-form/configuration-jobs.form.js:110 #: client/src/configuration/forms/system-form/sub-forms/system-activity-stream.form.js:26 #: client/src/configuration/forms/system-form/sub-forms/system-logging.form.js:74 #: client/src/configuration/forms/system-form/sub-forms/system-misc.form.js:95 @@ -5532,7 +5455,7 @@ msgstr "修订编号" #: client/src/credentials/credentials.form.js:461 #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js:130 #: client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js:127 -#: client/src/organizations/organizations.form.js:165 +#: client/src/organizations/organizations.form.js:174 #: client/src/projects/projects.form.js:301 #: client/src/teams/teams.form.js:109 #: client/src/teams/teams.form.js:148 @@ -5566,6 +5489,7 @@ msgstr "SAML" #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory-host-filter/host-filter-modal/host-filter-modal.partial.html:17 #: client/src/inventories-hosts/shared/associate-groups/associate-groups.partial.html:17 #: client/src/inventories-hosts/shared/associate-hosts/associate-hosts.partial.html:17 +#: client/src/organizations/galaxy-credentials-multiselect/galaxy-credentials-modal/galaxy-credentials-modal.partial.html:18 #: client/src/partials/survey-maker-modal.html:84 #: client/src/shared/instance-groups-multiselect/instance-groups-modal/instance-groups-modal.partial.html:18 msgid "SAVE" @@ -5671,10 +5595,10 @@ msgstr "搜索" #: client/features/templates/templates.strings.js:132 #: client/lib/services/base-string.service.js:64 -#: client/src/license/license.partial.html:260 +#: client/src/license/license.partial.html:275 #: client/src/templates/job_templates/add-job-template/job-template-add.controller.js:137 #: client/src/templates/job_templates/edit-job-template/job-template-edit.controller.js:186 -#: client/src/templates/job_templates/multi-credential/multi-credential-modal.partial.html:74 +#: client/src/templates/job_templates/multi-credential/multi-credential-modal.partial.html:75 #: client/src/templates/workflows/add-workflow/workflow-add.controller.js:155 #: client/src/templates/workflows/edit-workflow/workflow-edit.controller.js:194 msgid "SELECT" @@ -5734,7 +5658,7 @@ msgstr "设置" msgid "SHOW" msgstr "显示" -#: client/src/login/loginModal/loginModal.partial.html:109 +#: client/src/login/loginModal/loginModal.partial.html:114 msgid "SIGN IN" msgstr "登录" @@ -5772,7 +5696,7 @@ msgstr "SSH 密码" msgid "SSH key description" msgstr "SSH 密钥描述" -#: client/src/notifications/notificationTemplates.form.js:551 +#: client/src/notifications/notificationTemplates.form.js:523 msgid "SSL Connection" msgstr "SSL 连接" @@ -5789,6 +5713,10 @@ msgstr "状态" msgid "STS Token" msgstr "STS 令牌" +#: client/src/license/license.route.js:18 +msgid "SUBSCRIPTION" +msgstr "订阅" + #: client/features/output/output.strings.js:140 #: client/src/home/dashboard/graphs/job-status/job-status-graph.directive.js:56 msgid "SUCCESSFUL" @@ -5836,7 +5764,7 @@ msgstr "在测试日志聚合器前保存并启用日志聚合。" msgid "Save changes" msgstr "保存更改" -#: client/src/license/license.partial.html:200 +#: client/src/license/license.partial.html:215 msgid "Save successful!" msgstr "保存成功!" @@ -5876,7 +5804,7 @@ msgstr "计划名称" #: client/lib/components/components.strings.js:72 #: client/src/activity-stream/streamDropdownNav/stream-dropdown-nav.directive.js:35 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:434 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:526 #: client/src/projects/projects.form.js:321 #: client/src/templates/job_templates/job-template.form.js:578 #: client/src/templates/workflows.form.js:333 @@ -5896,11 +5824,6 @@ msgstr "搜索" msgid "Secret Key" msgstr "机密密钥" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:247 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:259 -msgid "Security Group:" -msgstr "安全组:" - #: client/src/credentials/credentials.form.js:124 msgid "Security Token Service (STS) is a web service that enables you to request temporary, limited-privilege credentials for AWS Identity and Access Management (IAM) users." msgstr "安全令牌服务 (STS) 是一个 Web 服务,让您可以为 AWS 身份和访问管理 (IAM) 用户请求临时的有限权限凭证。" @@ -5911,6 +5834,14 @@ msgstr "安全令牌服务 (STS) 是一个 Web 服务,让您可以为 AWS 身 msgid "Select" msgstr "选择" +#: client/src/organizations/galaxy-credentials-multiselect/galaxy-credentials-modal/galaxy-credentials-modal.partial.html:5 +msgid "Select Galaxy Credentials" +msgstr "选择 Galaxy 凭证" + +#: client/src/organizations/organizations.form.js:61 +msgid "Select Galaxy credentials. The selection order sets the order in which Tower will download roles/collections using `ansible-galaxy`." +msgstr "选择 Galaxy 凭证。选择顺序设定 Tower 使用 'ansible-galaxy' 下载角色/集合的顺序。" + #: client/src/shared/instance-groups-multiselect/instance-groups-modal/instance-groups-modal.partial.html:5 msgid "Select Instance Groups" msgstr "选择实例组" @@ -5934,7 +5865,7 @@ msgstr "选择凭证" msgid "Select a frequency for snapshot retention" msgstr "选择快照保留频率" -#: client/src/license/license.partial.html:214 +#: client/src/license/license.partial.html:229 msgid "Select a license" msgstr "选择许可证" @@ -6056,12 +5987,11 @@ msgstr "选择包含此作业要执行的 playbook 的项目。" msgid "Select types" msgstr "选择类型" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:239 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:251 -msgid "Select which groups to create automatically." -msgstr "选择要自动创建的组。" +#: client/src/license/license.partial.html:100 +msgid "Select your Ansible Automation Platform subscription to use." +msgstr "选择要使用的 Ansible Automation Platform 订阅。" -#: client/src/license/license.partial.html:153 +#: client/src/license/license.partial.html:160 msgid "Selected" msgstr "已选择" @@ -6129,6 +6059,7 @@ msgstr "显示更多" #: client/src/inventories-hosts/inventories/related/groups/related/nested-hosts/group-nested-hosts-disassociate.partial.html:8 #: client/src/inventories-hosts/inventories/related/hosts/related/nested-groups/host-nested-groups-disassociate.partial.html:8 #: client/src/inventories-hosts/inventories/related/sources/list/sources-list.partial.html:8 +#: client/src/license/license.partial.html:115 #: client/src/templates/prompt/steps/other-prompts/prompt-other-prompts.partial.html:104 #: client/src/templates/prompt/steps/other-prompts/prompt-other-prompts.partial.html:125 #: client/src/templates/prompt/steps/other-prompts/prompt-other-prompts.partial.html:136 @@ -6228,8 +6159,8 @@ msgstr "源凭证" msgid "Source Details" msgstr "源详情" -#: client/src/notifications/notificationTemplates.form.js:212 -#: client/src/notifications/notificationTemplates.form.js:213 +#: client/src/notifications/notificationTemplates.form.js:196 +#: client/src/notifications/notificationTemplates.form.js:197 msgid "Source Phone Number" msgstr "源电话号码" @@ -6237,22 +6168,24 @@ msgstr "源电话号码" msgid "Source Project" msgstr "源项目" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:135 -msgid "Source Regions" -msgstr "源区域" - -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:208 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:215 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:232 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:239 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:256 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:168 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:175 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:194 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:201 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:220 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:227 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:246 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:253 #: client/src/inventories-hosts/inventories/related/sources/sources.form.js:263 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:273 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:280 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:290 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:297 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:307 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:314 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:270 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:289 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:296 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:315 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:322 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:341 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:348 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:367 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:374 msgid "Source Variables" msgstr "源变量" @@ -6270,7 +6203,7 @@ msgstr "源工作流" msgid "Sources" msgstr "源" -#: client/src/notifications/notificationTemplates.form.js:420 +#: client/src/notifications/notificationTemplates.form.js:392 msgid "Specify HTTP Headers in JSON format. Refer to the Ansible Tower documentation for example syntax." msgstr "以 JSON 格式指定 HTTP 标头。示例语法请参阅 Ansible Tower 文档。" @@ -6278,11 +6211,11 @@ msgstr "以 JSON 格式指定 HTTP 标头。示例语法请参阅 Ansible Tower msgid "Specify a method for %s operations. This is equivalent to specifying the %s parameter, where %s could be %s" msgstr "指定 %s 操作的方法。这等同于指定 %s 参数,其中 %s 可能为 %s" -#: client/src/notifications/notificationTemplates.form.js:574 +#: client/src/notifications/notificationTemplates.form.js:546 msgid "Specify a notification color. Acceptable colors are hex color code (example: #3af or #789abc) ." msgstr "指定通知颜色。可接受的颜色为十六进制颜色代码(示例:#3af 或者 #789abc)。" -#: client/src/notifications/notificationTemplates.form.js:375 +#: client/src/notifications/notificationTemplates.form.js:347 msgid "Specify a notification color. Acceptable colors are: yellow, green, red purple, gray or random." msgstr "指定通知颜色。可接受的颜色为:黄色、绿色、红色、紫色、灰色或随机色。" @@ -6290,15 +6223,10 @@ msgstr "指定通知颜色。可接受的颜色为:黄色、绿色、红色、 msgid "Specify a scope for the token's access" msgstr "指定令牌访问的范围" -#: client/src/notifications/notificationTemplates.form.js:432 +#: client/src/notifications/notificationTemplates.form.js:404 msgid "Specify an HTTP method for the webhook. Acceptable choices are: POST or PUT" msgstr "为 Webhook 指定 HTTP 方法。可接受的选择为:POST 或 PUT。" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:268 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:283 -msgid "Specify which groups to create automatically. Group names will be created similar to the options selected. If blank, all groups above are created. Refer to Ansible Tower documentation for more detail." -msgstr "指定要自动创建的组。组名称将以类似于所选选项的方式创建。如果为空,会创建以上所有组。请参阅 Ansible Tower 文档了解更多详情。" - #: client/features/output/output.strings.js:135 msgid "Standard Error" msgstr "标准错误" @@ -6317,11 +6245,11 @@ msgstr "开始" msgid "Start Date" msgstr "开始日期" -#: client/src/notifications/notificationTemplates.form.js:597 +#: client/src/notifications/notificationTemplates.form.js:569 msgid "Start Message" msgstr "开始消息" -#: client/src/notifications/notificationTemplates.form.js:608 +#: client/src/notifications/notificationTemplates.form.js:580 msgid "Start Message Body" msgstr "开始消息正文" @@ -6362,7 +6290,7 @@ msgstr "已开始" msgid "Status" msgstr "状态" -#: client/src/license/license.partial.html:203 +#: client/src/license/license.partial.html:218 msgid "Submit" msgstr "提交" @@ -6370,7 +6298,9 @@ msgstr "提交" msgid "Submit search" msgstr "提交搜索" +#: client/src/license/license.controller.js:47 #: client/src/license/license.partial.html:27 +#: client/src/license/license.partial.html:8 msgid "Subscription" msgstr "订阅" @@ -6383,15 +6313,23 @@ msgstr "订阅 ID" msgid "Subscription ID is an Azure construct, which is mapped to a username." msgstr "订阅 ID 是一个 Azure 构造函数,它映射到一个用户名。" +#: client/src/license/license.controller.js:49 +msgid "Subscription Management" +msgstr "Subscription Management" + +#: client/src/license/license.partial.html:21 +msgid "Subscription Type" +msgstr "订阅类型" + #: client/src/notifications/notifications.list.js:65 msgid "Success" msgstr "成功" -#: client/src/notifications/notificationTemplates.form.js:620 +#: client/src/notifications/notificationTemplates.form.js:592 msgid "Success Message" msgstr "成功信息" -#: client/src/notifications/notificationTemplates.form.js:631 +#: client/src/notifications/notificationTemplates.form.js:603 msgid "Success Message Body" msgstr "成功消息正文" @@ -6533,32 +6471,22 @@ msgstr "令牌" msgid "TOTAL NODES" msgstr "节点总数" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:250 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:262 -msgid "Tag None:" -msgstr "标签 None:" - #: client/features/templates/templates.strings.js:55 #: client/src/templates/job_templates/job-template.form.js:212 msgid "Tags are useful when you have a large playbook, and you want to run a specific part of a play or task. Use commas to separate multiple tags. Refer to Ansible Tower documentation for details on the usage of tags." msgstr "如果有大型一个 playbook,而您想要运行某个 play 或任务的特定部分,则标签很有用。使用逗号分隔多个标签。请参阅 Ansible Tower 文档了解使用标签的详情。" -#: client/src/notifications/notificationTemplates.form.js:330 +#: client/src/notifications/notificationTemplates.form.js:314 msgid "Tags for the Annotation" msgstr "注解的标签" -#: client/src/notifications/notificationTemplates.form.js:329 +#: client/src/notifications/notificationTemplates.form.js:313 msgid "Tags for the Annotation (optional)" msgstr "注解的标签(可选)" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:248 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:260 -msgid "Tags:" -msgstr "标签:" - -#: client/src/notifications/notificationTemplates.form.js:392 -#: client/src/notifications/notificationTemplates.form.js:442 -#: client/src/notifications/notificationTemplates.form.js:481 +#: client/src/notifications/notificationTemplates.form.js:364 +#: client/src/notifications/notificationTemplates.form.js:414 +#: client/src/notifications/notificationTemplates.form.js:453 msgid "Target URL" msgstr "目标 URL" @@ -6570,7 +6498,7 @@ msgstr "任务" #: client/src/credentials/credentials.form.js:467 #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js:136 #: client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js:133 -#: client/src/organizations/organizations.form.js:171 +#: client/src/organizations/organizations.form.js:180 #: client/src/projects/projects.form.js:307 #: client/src/templates/workflows.form.js:317 msgid "Team Roles" @@ -6660,7 +6588,7 @@ msgstr "项目 ID 是 GCE 分配的标识。它由两个单词构成,后跟三 msgid "The Project selected has a status of" msgstr "所选项目的状态为" -#: client/src/projects/edit/projects-edit.controller.js:331 +#: client/src/projects/edit/projects-edit.controller.js:339 msgid "The SCM update process is running." msgstr "SCM 更新进程正在运行。" @@ -6688,7 +6616,7 @@ msgstr "回答超过最大长度。请缩短回答。" msgid "The answer is shorter than the minimium length. Please make the answer longer." msgstr "回答不足最小长度。请增长回答。" -#: client/src/notifications/notificationTemplates.form.js:287 +#: client/src/notifications/notificationTemplates.form.js:271 msgid "The base URL of the Grafana server - the /api/annotations endpoint will be added automatically to the base Grafana URL." msgstr "Grafana 服务器的基本 URL - /api/annotations 端点将自动添加到基本 Grafana URL。" @@ -6767,7 +6695,7 @@ msgstr "最大长度太小。请输入一个大于您设置的最小长度的数 msgid "The maximum length you entered is not a valid number. Please enter a whole number." msgstr "您输入的最大长度不是有效数字。请输入一个整数。" -#: client/src/organizations/organizations.form.js:69 +#: client/src/organizations/organizations.form.js:78 msgid "The maximum number of hosts allowed to be managed by this organization. Value defaults to 0 which means no limit. Refer to the Ansible documentation for more details." msgstr "允许由此机构管理的最大主机数。默认值为 0,表示无限制。请参阅 Ansible 文档以了解更多详情。" @@ -6902,6 +6830,10 @@ msgstr "一个或多个凭证目前正在使用此凭证类型。必须先删除 msgid "This feature is currently in tech preview and is subject to change in a future release. Click here for documentation." msgstr "这个功能当前为技术预览功能,并可能会在以后的版本中有所变化。点击这里查看文档。" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:430 +msgid "This field is ignored unless an Enabled Variable is set. If the enabled variable matches this value, the host will be enabled on import." +msgstr "除非设置了启用的变量,否则此字段会被忽略。如果启用的变量与这个值匹配,则会在导入时启用主机。" + #: client/src/inventories-hosts/inventories/related/groups/list/groups-list.partial.html:25 msgid "This group contains at least one group or host" msgstr "这个组包含至少一个组或主机" @@ -6980,7 +6912,7 @@ msgstr "周四" msgid "Time" msgstr "时间" -#: client/src/license/license.partial.html:45 +#: client/src/license/license.partial.html:39 msgid "Time Remaining" msgstr "剩余时间" @@ -6988,7 +6920,7 @@ msgstr "剩余时间" msgid "Time in seconds to consider a project to be current. During job runs and callbacks the task system will evaluate the timestamp of the latest project update. If it is older than Cache Timeout, it is not considered current, and a new project update will be performed." msgstr "将项目视为最新的时间(以秒为单位)。在作业运行和回调期间,任务系统将评估最新项目更新的时间戳。如果它比缓存超时旧,则不被视为最新,并且会执行新的项目更新。" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:405 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:497 msgid "Time in seconds to consider an inventory sync to be current. During job runs and callbacks the task system will evaluate the timestamp of the latest sync. If it is older than Cache Timeout, it is not considered current, and a new inventory sync will be performed." msgstr "将清单同步视为最新的时间(以秒为单位)。在作业运行和回调期间,任务系统将评估最新同步的时间戳。如果它比缓存超时旧,则不被视为最新,并且会执行新的清单同步。" @@ -7040,11 +6972,11 @@ msgstr "节点总数" msgid "Traceback" msgstr "追溯" -#: client/src/license/license.partial.html:176 +#: client/src/license/license.partial.html:191 msgid "Tracking and Analytics" msgstr "跟踪和分析" -#: client/src/license/license.partial.html:233 +#: client/src/license/license.partial.html:248 msgid "Trial" msgstr "试用" @@ -7078,12 +7010,12 @@ msgstr "类型详情" msgid "UNLINK" msgstr "取消链接" -#: client/src/projects/add/projects-add.controller.js:182 -#: client/src/projects/edit/projects-edit.controller.js:303 +#: client/src/projects/add/projects-add.controller.js:190 +#: client/src/projects/edit/projects-edit.controller.js:311 msgid "URL popover text" msgstr "URL 弹出文本" -#: client/src/license/license.partial.html:132 +#: client/src/license/license.partial.html:139 #: client/src/login/loginModal/loginModal.partial.html:61 msgid "USERNAME" msgstr "用户名" @@ -7181,7 +7113,7 @@ msgstr "意外错误" msgid "Unexpected server error. View the console for more information" msgstr "意外服务器错误。查看控制台以了解更多信息" -#: client/src/license/license.partial.html:59 +#: client/src/license/license.partial.html:53 msgid "Unlimited" msgstr "无限" @@ -7198,7 +7130,7 @@ msgstr "不支持的输入类型" msgid "Update Not Found" msgstr "未找到更新" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:344 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:436 msgid "Update Options" msgstr "更新选项" @@ -7216,7 +7148,7 @@ msgstr "更新已取消。点击了解详情" msgid "Update failed. Click for details" msgstr "更新失败。点击了解详情" -#: client/src/projects/edit/projects-edit.controller.js:331 +#: client/src/projects/edit/projects-edit.controller.js:339 msgid "Update in Progress" msgstr "更新正在进行" @@ -7225,13 +7157,13 @@ msgstr "更新正在进行" msgid "Update missing. Click for details" msgstr "更新缺失。点击了解详情" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:372 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:377 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:464 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:469 msgid "Update on Launch" msgstr "启动时更新" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:383 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:389 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:475 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:481 msgid "Update on Project Update" msgstr "更新项目更新" @@ -7254,13 +7186,9 @@ msgstr "更新 Tower 中与作业相关的设置" msgid "Update succeeded. Click for details" msgstr "更新成功。点击了解详情" -#: client/src/license/license.partial.html:75 -msgid "Upgrade" -msgstr "升级" - -#: client/src/license/license.partial.html:111 -msgid "Upload a license file" -msgstr "上传许可证文件" +#: client/src/license/license.partial.html:109 +msgid "Upload a Red Hat Subscription Manifest containing your subscription. To generate your subscription manifest, go to subscription allocations on the Red Hat Customer Portal." +msgstr "上传包含您的订阅的红帽订阅清单(Red Hat Subscription Manifest)。要生成订阅清单,请访问红帽客户门户网站 subscription allocations。" #: client/src/inventories-hosts/inventories/related/sources/sources.form.js:62 #: client/src/organizations/organizations.form.js:48 @@ -7279,7 +7207,7 @@ msgstr "使用 SSL" msgid "Use TLS" msgstr "使用 TLS" -#: client/src/notifications/notificationTemplates.form.js:586 +#: client/src/notifications/notificationTemplates.form.js:558 msgid "Use custom messages to change the content of notifications sent when a job starts, succeeds, or fails. Use curly braces to access information about the job: {{ job_friendly_name }}, {{ url }}, or attributes of the job such as {{ job.status }}. You may apply a number of possible variables in the message. Refer to the Ansible Tower documentation for more details." msgstr "使用自定义信息来更改作业启动、成功或失败时发送的通知内容。使用大括号可以访问有关作业的信息: {{ job_friendly_name }}, {{ url }}, 或作业属性如 {{ job.status }}。您可以在信息中使用变量。详情请参阅 Ansible Tower 文档。" @@ -7296,8 +7224,8 @@ msgstr "用于从远程源控制管理系统(如 Git、Subversion (svn) 或 Me #: client/src/credentials/credentials.form.js:456 #: client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js:125 #: client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js:122 -#: client/src/organizations/organizations.form.js:119 -#: client/src/organizations/organizations.form.js:160 +#: client/src/organizations/organizations.form.js:128 +#: client/src/organizations/organizations.form.js:169 #: client/src/projects/projects.form.js:296 #: client/src/teams/teams.form.js:96 #: client/src/templates/workflows.form.js:306 @@ -7320,8 +7248,8 @@ msgstr "用户类型" #: client/src/credentials/factories/kind-change.factory.js:40 #: client/src/credentials/factories/kind-change.factory.js:73 #: client/src/credentials/factories/kind-change.factory.js:94 -#: client/src/notifications/notificationTemplates.form.js:453 -#: client/src/notifications/notificationTemplates.form.js:492 +#: client/src/notifications/notificationTemplates.form.js:425 +#: client/src/notifications/notificationTemplates.form.js:464 #: client/src/notifications/notificationTemplates.form.js:64 #: client/src/users/users.form.js:59 #: client/src/users/users.list.js:29 @@ -7343,7 +7271,7 @@ msgstr "用于向指定云或基础架构提供商进行身份验证的用户名 #: client/lib/components/components.strings.js:80 #: client/src/access/add-rbac-resource/rbac-resource.partial.html:35 #: client/src/activity-stream/streamDropdownNav/stream-dropdown-nav.directive.js:38 -#: client/src/organizations/organizations.form.js:101 +#: client/src/organizations/organizations.form.js:110 #: client/src/teams/teams.form.js:78 msgid "Users" msgstr "用户" @@ -7381,15 +7309,6 @@ msgstr "查看更多" msgid "VIEW PER PAGE" msgstr "按页面查看" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:249 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:261 -msgid "VPC ID:" -msgstr "VPC ID:" - -#: client/src/license/license.partial.html:10 -msgid "Valid License" -msgstr "有效许可证" - #: client/src/inventories-hosts/hosts/host.form.js:67 #: client/src/inventories-hosts/inventories/related/groups/groups.form.js:46 #: client/src/inventories-hosts/inventories/related/groups/related/nested-groups/group-nested-groups.form.js:47 @@ -7414,8 +7333,8 @@ msgstr "Vault 密码" #: client/features/templates/templates.strings.js:60 #: client/src/inventories-hosts/inventories/adhoc/adhoc.form.js:82 #: client/src/inventories-hosts/inventories/adhoc/adhoc.form.js:91 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:330 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:337 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:392 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:399 #: client/src/templates/job_templates/job-template.form.js:189 #: client/src/templates/job_templates/job-template.form.js:196 msgid "Verbosity" @@ -7456,10 +7375,15 @@ msgstr "查看 Insights" msgid "View Insights Data" msgstr "查看 Insights 数据" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:201 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:225 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:249 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:324 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:161 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:187 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:213 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:239 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:282 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:308 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:334 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:360 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:386 msgid "View JSON examples at" msgstr "要查看 JSON 示例,请访问" @@ -7493,10 +7417,15 @@ msgstr "查看项目签出结果" msgid "View Survey" msgstr "查看问卷调查" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:202 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:226 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:250 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:325 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:162 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:188 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:214 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:240 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:283 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:309 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:335 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:361 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:387 msgid "View YAML examples at" msgstr "要查看 YAML 示例,请访问" @@ -7572,11 +7501,6 @@ msgstr "查看团队" msgid "View template" msgstr "查看模板" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:261 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:274 -msgid "View the" -msgstr "查看" - #: client/features/output/output.strings.js:22 #: client/lib/components/components.strings.js:63 msgid "View the Credential" @@ -7662,7 +7586,7 @@ msgstr "警告" msgid "Warning: Unsaved Changes" msgstr "警告:未保存的更改" -#: client/src/license/license.controller.js:159 +#: client/src/license/license.controller.js:154 msgid "We were unable to locate licenses associated with this account" msgstr "我们无法找到与这个帐户关联的许可证" @@ -7716,19 +7640,19 @@ msgstr "Webhook 服务可以将此用作共享机密。" msgid "Wed" msgstr "周三" -#: client/src/license/license.partial.html:82 -msgid "Welcome to Ansible Tower! Please complete the steps below to acquire a license." -msgstr "欢迎使用 Ansible Tower!请完成以下步骤以获取许可证。" - #: client/src/login/loginModal/loginModal.partial.html:23 msgid "Welcome to Ansible {{BRAND_NAME}}!  Please sign in." msgstr "欢迎使用 {{BRAND_NAME}}!  请登陆。" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:365 +#: client/src/license/license.partial.html:82 +msgid "Welcome to Red Hat Ansible Automation Platform! Please complete the steps below to activate your subscription." +msgstr "欢迎使用 Red Hat Ansible Automation Platform!请完成以下步骤以激活订阅。" + +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:457 msgid "When not checked, a merge will be performed, combining local variables with those found on the external source." msgstr "如果没有选中,就会执行合并,将本地变量与外部源上的变量合并。" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:354 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:446 msgid "When not checked, local child hosts and groups not found on the external source will remain untouched by the inventory update process." msgstr "如果没有选中,外部源上没有的本地子主机和组将在清单更新过程中保持不变。" @@ -7745,19 +7669,19 @@ msgstr "当作业模板使用此项目时,不能更改机构。" msgid "Workflow" msgstr "工作流" -#: client/src/notifications/notificationTemplates.form.js:666 +#: client/src/notifications/notificationTemplates.form.js:638 msgid "Workflow Approved Message" msgstr "工作流已批准消息" -#: client/src/notifications/notificationTemplates.form.js:677 +#: client/src/notifications/notificationTemplates.form.js:649 msgid "Workflow Approved Message Body" msgstr "工作流已批准消息正文" -#: client/src/notifications/notificationTemplates.form.js:689 +#: client/src/notifications/notificationTemplates.form.js:661 msgid "Workflow Denied Message" msgstr "工作流已拒绝消息" -#: client/src/notifications/notificationTemplates.form.js:700 +#: client/src/notifications/notificationTemplates.form.js:672 msgid "Workflow Denied Message Body" msgstr "工作流已拒绝消息正文" @@ -7773,11 +7697,11 @@ msgstr "工作流作业模板节点" msgid "Workflow Job Templates" msgstr "工作流作业模板" -#: client/src/notifications/notificationTemplates.form.js:712 +#: client/src/notifications/notificationTemplates.form.js:684 msgid "Workflow Pending Approval Message" msgstr "工作流待处理批准消息" -#: client/src/notifications/notificationTemplates.form.js:723 +#: client/src/notifications/notificationTemplates.form.js:695 msgid "Workflow Pending Approval Message Body" msgstr "工作流待处理批准信息的内容" @@ -7792,11 +7716,11 @@ msgstr "工作流模板" msgid "Workflow Templates" msgstr "工作流模板" -#: client/src/notifications/notificationTemplates.form.js:735 +#: client/src/notifications/notificationTemplates.form.js:707 msgid "Workflow Timed Out Message" msgstr "工作流超时消息" -#: client/src/notifications/notificationTemplates.form.js:746 +#: client/src/notifications/notificationTemplates.form.js:718 msgid "Workflow Timed Out Message Body" msgstr "工作流超时消息正文" @@ -7814,10 +7738,15 @@ msgstr "写入" msgid "YAML" msgstr "YAML" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:199 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:223 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:247 -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:322 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:159 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:185 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:211 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:237 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:280 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:306 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:332 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:358 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:384 msgid "YAML:" msgstr "YAML:" @@ -7948,11 +7877,6 @@ msgstr "错误" msgid "failed" msgstr "失败" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:262 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:275 -msgid "for a complete list of supported filters." -msgstr "获取受支持过滤器的完整列表。" - #: client/src/inventories-hosts/inventories/related/hosts/related-groups-labels/relatedGroupsLabelsList.directive.js:82 msgid "from the" msgstr "从" @@ -7979,6 +7903,17 @@ msgstr[1] "主机" msgid "hosts with failures. Click for details." msgstr "失败的主机。点击了解详情。" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:179 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:205 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:231 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:274 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:300 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:326 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:352 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:378 +msgid "in the documentation and the" +msgstr "文档和" + #: client/src/templates/workflows/workflow-maker/forms/workflow-node-form.partial.html:146 msgid "min" msgstr "分钟" @@ -8004,11 +7939,6 @@ msgstr "新" msgid "of" msgstr "的" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:254 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:267 -msgid "of the filters match." -msgstr "过滤器匹配。" - #: client/src/scheduler/scheduler.strings.js:34 msgid "on" msgstr "日期" @@ -8037,6 +7967,17 @@ msgstr "待处理" msgid "playbook" msgstr "playbook" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:181 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:207 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:233 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:276 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:302 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:328 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:354 +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:380 +msgid "plugin configuration guide." +msgstr "插件配置指南。" + #: client/features/jobs/jobs.strings.js:25 msgid "running" msgstr "运行中" @@ -8068,11 +8009,6 @@ msgstr "同步失败的源。点击了解详情" msgid "successful" msgstr "成功" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:259 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:272 -msgid "test" -msgstr "测试" - #: client/src/activity-stream/factories/build-description.factory.js:136 msgid "timed out" msgstr "超时" @@ -8083,10 +8019,6 @@ msgstr "超时" msgid "to" msgstr "至" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:138 -msgid "to include all regions. Only Hosts associated with the selected regions will be updated." -msgstr "以包括所有区域。只有与所选区域关联的主机才会更新。" - #: client/src/inventories-hosts/inventories/related/sources/factories/get-sync-status-msg.factory.js:17 msgid "to start it now." msgstr "以立即启动它。" @@ -8111,32 +8043,14 @@ msgstr "v3 默认 %s - 设为 'default'" msgid "v3 multi-domain%s - your domain name" msgstr "v3 多域 %s - 您的域名" -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:318 -msgid "view azure_rm.ini in the Ansible community.general github repo." -msgstr "查看 Ansible community.general github repo 中的 azure_rm.ini。" - -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:219 -msgid "view ec2.ini in the community.aws repo." -msgstr "查看 community.aws repo 中的 ec2.ini。" - -#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:243 -msgid "view vmware_inventory.ini in the vmware community repo." -msgstr "查看 vmware 社区 repo 中的 vmware_inventory.ini。" +#: client/src/inventories-hosts/inventories/related/sources/sources.form.js:257 +msgid "view cloudforms.ini in the Ansible Collections github repo." +msgstr "查看 Ansible Collections 仓库中的 cloudforms.ini。" #: client/features/jobs/jobs.strings.js:24 msgid "waiting" msgstr "等待" -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:254 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:267 -msgid "when" -msgstr "何时" - -#: client/src/inventories-hosts/inventories/related/sources/add/sources-add.controller.js:240 -#: client/src/inventories-hosts/inventories/related/sources/edit/sources-edit.controller.js:252 -msgid "will create group names similar to the following examples based on the options selected:" -msgstr "将根据选择的选项创建类似以下示例的组名称:" - #: client/index.template.ejs:158 msgid "working..." msgstr "工作..."