From 832011aa99f3b93ab3793001291e01cc97451fb4 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Tue, 6 Dec 2016 11:40:21 -0500 Subject: [PATCH 1/4] Mark additional strings for translation. --- awx/ui/client/src/controllers/Projects.js | 16 ++++----- awx/ui/client/src/controllers/Users.js | 28 +++++++-------- .../dashboard/hosts/dashboard-hosts.list.js | 12 +++---- awx/ui/client/src/forms/JobTemplates.js | 12 +++---- awx/ui/client/src/forms/Projects.js | 6 ++-- awx/ui/client/src/forms/Teams.js | 2 +- awx/ui/client/src/forms/Users.js | 10 +++--- awx/ui/client/src/forms/Workflows.js | 4 +-- awx/ui/client/src/helpers/Credentials.js | 10 +++--- .../client/src/license/license.controller.js | 4 +-- awx/ui/client/src/lists/CompletedJobs.js | 4 +-- awx/ui/client/src/lists/Inventories.js | 3 +- awx/ui/client/src/lists/Teams.js | 3 +- awx/ui/client/src/lists/Templates.js | 7 ++-- awx/ui/client/src/lists/Users.js | 2 +- .../thirdPartySignOn.service.js | 4 +-- .../src/notifications/notifications.list.js | 4 +-- awx/ui/client/src/shared/form-generator.js | 34 +++++++++++-------- 18 files changed, 82 insertions(+), 83 deletions(-) diff --git a/awx/ui/client/src/controllers/Projects.js b/awx/ui/client/src/controllers/Projects.js index 429338cd5f..17076a2a73 100644 --- a/awx/ui/client/src/controllers/Projects.js +++ b/awx/ui/client/src/controllers/Projects.js @@ -281,7 +281,7 @@ export function ProjectsAdd($scope, $rootScope, $compile, $location, $log, .success(function(data) { if (!data.actions.POST) { $state.go("^"); - Alert('Permission Error', 'You do not have permission to add a project.', 'alert-info'); + Alert(i18n._('Permission Error'), i18n._('You do not have permission to add a project.'), 'alert-info'); } }); @@ -465,7 +465,7 @@ export function ProjectsEdit($scope, $rootScope, $compile, $location, $log, }); $scope.project_local_paths = opts; $scope.local_path = $scope.project_local_paths[0]; - $scope.base_dir = 'You do not have access to view this property'; + $scope.base_dir = i18n._('You do not have access to view this property'); $scope.$emit('pathsReady'); } @@ -555,7 +555,7 @@ export function ProjectsEdit($scope, $rootScope, $compile, $location, $log, }) .error(function (data, status) { ProcessErrors($scope, data, status, form, { hdr: i18n._('Error!'), - msg: i18n._('Failed to retrieve project: ') + id + i18n._('. GET status: ') + status + msg: i18n.sprintf(i18n._('Failed to retrieve project: %s. GET status: '), id) + status }); }); }); @@ -620,7 +620,7 @@ export function ProjectsEdit($scope, $rootScope, $compile, $location, $log, $state.go($state.current, {}, { reload: true }); }) .error(function(data, status) { - ProcessErrors($scope, data, status, form, { hdr: 'Error!', msg: 'Failed to update project: ' + id + '. PUT status: ' + status }); + ProcessErrors($scope, data, status, form, { hdr: i18n._('Error!'), msg: i18n.sprintf(i18n._('Failed to update project: %s. PUT status: '), id) + status }); }); }; @@ -638,7 +638,7 @@ export function ProjectsEdit($scope, $rootScope, $compile, $location, $log, }) .error(function(data, status) { $('#prompt-modal').modal('hide'); - ProcessErrors($scope, data, status, null, { hdr: 'Error!', msg: 'Call to ' + url + ' failed. POST returned status: ' + status }); + ProcessErrors($scope, data, status, null, { hdr: i18n._('Error!'), msg: i18n.sprintf(i18n._('Call to %s failed. POST returned status: '), url) + status }); }); }; @@ -646,7 +646,7 @@ export function ProjectsEdit($scope, $rootScope, $compile, $location, $log, hdr: i18n._('Delete'), body: '
' + i18n.sprintf(i18n._('Are you sure you want to remove the %s below from %s?'), title, $scope.name) + '
' + '
' + name + '
', action: action, - actionText: 'DELETE' + actionText: i18n._('DELETE') }); }; @@ -654,7 +654,7 @@ export function ProjectsEdit($scope, $rootScope, $compile, $location, $log, if ($scope.scm_type) { $scope.pathRequired = ($scope.scm_type.value === 'manual') ? true : false; $scope.scmRequired = ($scope.scm_type.value !== 'manual') ? true : false; - $scope.scmBranchLabel = ($scope.scm_type.value === 'svn') ? 'Revision #' : 'SCM Branch'; + $scope.scmBranchLabel = ($scope.scm_type.value === 'svn') ? i18n._('Revision #') : i18n._('SCM Branch'); } // Dynamically update popover values @@ -690,7 +690,7 @@ export function ProjectsEdit($scope, $rootScope, $compile, $location, $log, if ($scope.project_obj.scm_type === "Manual" || Empty($scope.project_obj.scm_type)) { // ignore } else if ($scope.project_obj.status === 'updating' || $scope.project_obj.status === 'running' || $scope.project_obj.status === 'pending') { - Alert('Update in Progress', i18n._('The SCM update process is running.'), 'alert-info'); + Alert(i18n._('Update in Progress'), i18n._('The SCM update process is running.'), 'alert-info'); } else { ProjectUpdate({ scope: $scope, project_id: $scope.project_obj.id }); } diff --git a/awx/ui/client/src/controllers/Users.js b/awx/ui/client/src/controllers/Users.js index 61ffb69d2e..e53f214e0f 100644 --- a/awx/ui/client/src/controllers/Users.js +++ b/awx/ui/client/src/controllers/Users.js @@ -91,17 +91,17 @@ export function UsersList($scope, $rootScope, $stateParams, }) .error(function(data, status) { ProcessErrors($scope, data, status, null, { - hdr: 'Error!', - msg: 'Call to ' + url + ' failed. DELETE returned status: ' + status + hdr: i18n._('Error!'), + msg: i18n.sprintf(i18n._('Call to %s failed. DELETE returned status: '), url) + status }); }); }; Prompt({ - hdr: 'Delete', - body: '
Are you sure you want to delete the user below?
' + $filter('sanitize')(name) + '
', + hdr: i18n._('Delete'), + body: '
' + i18n._('Are you sure you want to delete the user below?') + '
' + $filter('sanitize')(name) + '
', action: action, - actionText: 'DELETE' + actionText: i18n._('DELETE') }); }; } @@ -138,7 +138,7 @@ export function UsersAdd($scope, $rootScope, $stateParams, UserForm, .success(function(data) { if (!data.actions.POST) { $state.go("^"); - Alert('Permission Error', 'You do not have permission to add a user.', 'alert-info'); + Alert(i18n._('Permission Error'), i18n._('You do not have permission to add a user.'), 'alert-info'); } }); @@ -171,7 +171,7 @@ export function UsersAdd($scope, $rootScope, $stateParams, UserForm, .success(function(data) { var base = $location.path().replace(/^\//, '').split('/')[0]; if (base === 'users') { - $rootScope.flashMessage = 'New user successfully created!'; + $rootScope.flashMessage = i18n._('New user successfully created!'); $rootScope.$broadcast("EditIndicatorChange", "users", data.id); $state.go('users.edit', { user_id: data.id }, { reload: true }); } else { @@ -179,10 +179,10 @@ export function UsersAdd($scope, $rootScope, $stateParams, UserForm, } }) .error(function(data, status) { - ProcessErrors($scope, data, status, form, { hdr: 'Error!', msg: 'Failed to add new user. POST returned status: ' + status }); + ProcessErrors($scope, data, status, form, { hdr: i18n._('Error!'), msg: i18n._('Failed to add new user. POST returned status: ') + status }); }); } else { - $scope.organization_name_api_error = 'A value is required'; + $scope.organization_name_api_error = i18n._('A value is required'); } } }; @@ -264,9 +264,8 @@ export function UsersEdit($scope, $rootScope, $location, }) .error(function(data, status) { ProcessErrors($scope, data, status, null, { - hdr: 'Error!', - msg: 'Failed to retrieve user: ' + - $stateParams.id + '. GET status: ' + status + hdr: i18n._('Error!'), + msg: i18n.sprintf(i18n._('Failed to retrieve user: %s. GET status: '), $stateParams.id) + status }); }); } @@ -319,9 +318,8 @@ export function UsersEdit($scope, $rootScope, $location, }) .error(function(data, status) { ProcessErrors($scope, data, status, null, { - hdr: 'Error!', - msg: 'Failed to retrieve user: ' + - $stateParams.id + '. GET status: ' + status + hdr: i18n._('Error!'), + msg: i18n.sprintf(i18n._('Failed to retrieve user: %s. GET status: '), $stateParams.id) + status }); }); } diff --git a/awx/ui/client/src/dashboard/hosts/dashboard-hosts.list.js b/awx/ui/client/src/dashboard/hosts/dashboard-hosts.list.js index 0c3c0adb9d..f439c0c859 100644 --- a/awx/ui/client/src/dashboard/hosts/dashboard-hosts.list.js +++ b/awx/ui/client/src/dashboard/hosts/dashboard-hosts.list.js @@ -38,7 +38,7 @@ export default [ 'i18n', function(i18n){ ngClick: 'editHost(host.id)' }, inventory_name: { - label: 'Inventory', + label: i18n._('Inventory'), sourceModel: 'inventory', sourceField: 'name', columnClass: 'col-lg-5 col-md-4 col-sm-4 hidden-xs elllipsis', @@ -46,13 +46,13 @@ export default [ 'i18n', function(i18n){ searchable: false }, enabled: { - label: 'Status', + label: i18n._('Status'), columnClass: 'List-staticColumn--toggle', type: 'toggle', ngClick: 'toggleHostEnabled(host)', nosort: true, - awToolTip: "

Indicates if a host is available and should be included in running jobs.

For hosts that are part of an external inventory, this flag cannot be changed. It will be set by the inventory sync process.

", - dataTitle: 'Host Enabled', + awToolTip: "

" + i18n._("Indicates if a host is available and should be included in running jobs.") + "

" + i18n._("For hosts that are part of an external inventory, this flag cannot be changed. It will be set by the inventory sync process.") + "

", + dataTitle: i18n._('Host Enabled'), } }, @@ -60,10 +60,10 @@ export default [ 'i18n', function(i18n){ columnClass: 'col-lg-2 col-md-3 col-sm-3 col-xs-4', edit: { - label: 'Edit', + label: i18n._('Edit'), ngClick: 'editHost(host.id)', icon: 'icon-edit', - awToolTip: 'Edit host', + awToolTip: i18n._('Edit host'), dataPlacement: 'top' } }, diff --git a/awx/ui/client/src/forms/JobTemplates.js b/awx/ui/client/src/forms/JobTemplates.js index 9fe64f0469..23be861723 100644 --- a/awx/ui/client/src/forms/JobTemplates.js +++ b/awx/ui/client/src/forms/JobTemplates.js @@ -20,7 +20,7 @@ export default addTitle: i18n._('New Job Template'), editTitle: '{{ name }}', name: 'job_template', - breadcrumbName: 'JOB TEMPLATE', + breadcrumbName: i18n._('JOB TEMPLATE'), basePath: 'job_templates', // the top-most node of generated state tree stateTree: 'templates', @@ -80,7 +80,7 @@ export default reqExpression: '!ask_inventory_on_launch', alwaysShowAsterisk: true }, - requiredErrorMsg: "Please select an Inventory or check the Prompt on launch option.", + requiredErrorMsg: i18n._("Please select an Inventory or check the Prompt on launch option."), column: 1, awPopOver: "

" + i18n._("Select the inventory containing the hosts you want this job to manage.") + "

", dataTitle: i18n._('Inventory'), @@ -96,7 +96,7 @@ export default project: { label: i18n._('Project'), labelAction: { - label: 'RESET', + label: i18n._('RESET'), ngClick: 'resetProjectToDefault()', 'class': "{{!(job_type.value === 'scan' && project_name !== 'Default') ? 'hidden' : ''}}", }, @@ -147,7 +147,7 @@ export default reqExpression: '!ask_credential_on_launch', alwaysShowAsterisk: true }, - requiredErrorMsg: "Please select a Machine Credential or check the Prompt on launch option.", + requiredErrorMsg: i18n._("Please select a Machine Credential or check the Prompt on launch option."), column: 1, awPopOver: "

" + i18n._("Select the credential you want the job to use when accessing the remote hosts. Choose the credential containing " + " the username and SSH key or password that Ansible will need to log into the remote hosts.") + "

", @@ -409,9 +409,9 @@ export default add: { ngClick: "$state.go('.add')", label: 'Add', - awToolTip: 'Add a permission', + awToolTip: i18n._('Add a permission'), actionClass: 'btn List-buttonSubmit', - buttonContent: '+ ADD', + buttonContent: '+ ' + i18n._('ADD'), ngShow: '(job_template_obj.summary_fields.user_capabilities.edit || canAddJobTemplate)' } }, diff --git a/awx/ui/client/src/forms/Projects.js b/awx/ui/client/src/forms/Projects.js index a1d65a82d5..7fef97a9ad 100644 --- a/awx/ui/client/src/forms/Projects.js +++ b/awx/ui/client/src/forms/Projects.js @@ -242,18 +242,18 @@ angular.module('ProjectFormDefinition', ['SchedulesListDefinition']) fields: { username: { - label: 'User', + label: i18n._('User'), uiSref: 'users({user_id: field.id})', class: 'col-lg-3 col-md-3 col-sm-3 col-xs-4' }, role: { - label: 'Role', + label: i18n._('Role'), type: 'role', noSort: true, class: 'col-lg-4 col-md-4 col-sm-4 col-xs-4', }, team_roles: { - label: 'Team Roles', + label: i18n._('Team Roles'), type: 'team_roles', noSort: true, class: 'col-lg-5 col-md-5 col-sm-5 col-xs-4', diff --git a/awx/ui/client/src/forms/Teams.js b/awx/ui/client/src/forms/Teams.js index a7f03a490b..c2550f5543 100644 --- a/awx/ui/client/src/forms/Teams.js +++ b/awx/ui/client/src/forms/Teams.js @@ -80,7 +80,7 @@ export default add: { // @issue https://github.com/ansible/ansible-tower/issues/3487 //ngClick: "addPermissionWithoutTeamTab", - label: 'Add', + label: i18n._('Add'), awToolTip: i18n._('Add user to team'), actionClass: 'btn List-buttonSubmit', buttonContent: '+ ' + i18n._('ADD'), diff --git a/awx/ui/client/src/forms/Users.js b/awx/ui/client/src/forms/Users.js index 5e95b6166f..20f8126a83 100644 --- a/awx/ui/client/src/forms/Users.js +++ b/awx/ui/client/src/forms/Users.js @@ -136,10 +136,10 @@ export default fields: { name: { key: true, - label: 'Name' + label: i18n._('Name') }, description: { - label: 'Description' + label: i18n._('Description') } }, //hideOnSuperuser: true // RBAC defunct @@ -157,14 +157,14 @@ export default open: false, index: false, actions: {}, - emptyListText: 'This user is not a member of any teams', + emptyListText: i18n._('This user is not a member of any teams'), fields: { name: { key: true, - label: 'Name' + label: i18n._('Name') }, description: { - label: 'Description' + label: i18n._('Description') } }, //hideOnSuperuser: true // RBAC defunct diff --git a/awx/ui/client/src/forms/Workflows.js b/awx/ui/client/src/forms/Workflows.js index d281ae0e0b..136d0692a9 100644 --- a/awx/ui/client/src/forms/Workflows.js +++ b/awx/ui/client/src/forms/Workflows.js @@ -120,10 +120,10 @@ export default actions: { add: { ngClick: "$state.go('.add')", - label: 'Add', + label: i18n._('Add'), awToolTip: 'Add a permission', actionClass: 'btn List-buttonSubmit', - buttonContent: '+ ADD', + buttonContent: '+ '+ i18n._('ADD'), ngShow: '(workflow_job_template_obj.summary_fields.user_capabilities.edit || canAddWorkflowJobTemplate)' } }, diff --git a/awx/ui/client/src/helpers/Credentials.js b/awx/ui/client/src/helpers/Credentials.js index 375a556be0..fb7477d61f 100644 --- a/awx/ui/client/src/helpers/Credentials.js +++ b/awx/ui/client/src/helpers/Credentials.js @@ -305,12 +305,12 @@ angular.module('CredentialsHelper', ['Utilities']) // the error there. The ssh_key_unlock field is not shown when the kind of credential is gce/azure and as a result the // error is never shown. In the future, the API will hopefully either behave or respond differently. if(status && status === 400 && data && data.ssh_key_unlock && (scope.kind.value === 'gce' || scope.kind.value === 'azure')) { - scope.ssh_key_data_api_error = "Encrypted credentials are not supported."; + scope.ssh_key_data_api_error = i18n._("Encrypted credentials are not supported."); } else { ProcessErrors(scope, data, status, form, { - hdr: 'Error!', - msg: 'Failed to create new Credential. POST status: ' + status + hdr: i18n._('Error!'), + msg: i18n._('Failed to create new Credential. POST status: ') + status }); } }); @@ -325,8 +325,8 @@ angular.module('CredentialsHelper', ['Utilities']) .error(function (data, status) { Wait('stop'); ProcessErrors(scope, data, status, form, { - hdr: 'Error!', - msg: 'Failed to update Credential. PUT status: ' + status + hdr: i18n._('Error!'), + msg: i18n._('Failed to update Credential. PUT status: ') + status }); }); } diff --git a/awx/ui/client/src/license/license.controller.js b/awx/ui/client/src/license/license.controller.js index 682f1cfb01..195178dd28 100644 --- a/awx/ui/client/src/license/license.controller.js +++ b/awx/ui/client/src/license/license.controller.js @@ -66,14 +66,14 @@ export default $scope.newLicense.file = JSON.parse(raw.result); } catch(err) { - ProcessErrors($rootScope, null, null, null, {msg: 'Invalid file format. Please upload valid JSON.'}); + ProcessErrors($rootScope, null, null, null, {msg: i18n._('Invalid file format. Please upload valid JSON.')}); } }; try { raw.readAsText(event.target.files[0]); } catch(err) { - ProcessErrors($rootScope, null, null, null, {msg: 'Invalid file format. Please upload valid JSON.'}); + ProcessErrors($rootScope, null, null, null, {msg: i18n._('Invalid file format. Please upload valid JSON.')}); } }; // HTML5 spec doesn't provide a way to customize file input css diff --git a/awx/ui/client/src/lists/CompletedJobs.js b/awx/ui/client/src/lists/CompletedJobs.js index dc219d629b..1c0436240c 100644 --- a/awx/ui/client/src/lists/CompletedJobs.js +++ b/awx/ui/client/src/lists/CompletedJobs.js @@ -72,14 +72,14 @@ export default icon: 'icon-rocket', mode: 'all', ngClick: 'relaunchJob($event, completed_job.id)', - awToolTip: 'Relaunch using the same parameters', + awToolTip: i18n._('Relaunch using the same parameters'), dataPlacement: 'top', ngShow: "!completed_job.type == 'system_job' || completed_job.summary_fields.user_capabilities.start" }, "delete": { mode: 'all', ngClick: 'deleteJob(completed_job.id)', - awToolTip: 'Delete the job', + awToolTip: i18n._('Delete the job'), dataPlacement: 'top', ngShow: 'completed_job.summary_fields.user_capabilities.delete' } diff --git a/awx/ui/client/src/lists/Inventories.js b/awx/ui/client/src/lists/Inventories.js index d3d68223cf..4ae755cfb6 100644 --- a/awx/ui/client/src/lists/Inventories.js +++ b/awx/ui/client/src/lists/Inventories.js @@ -15,8 +15,7 @@ export default selectTitle: i18n._('Add Inventories'), editTitle: i18n._('Inventories'), listTitle: i18n._('Inventories'), - selectInstructions: "Click on a row to select it, and click Finished when done. Click the " + - "button to create a new inventory.", + selectInstructions: i18n.sprintf(i18n._("Click on a row to select it, and click Finished when done. Click the %s button to create a new inventory."), " "), index: false, hover: true, basePath: 'inventory', diff --git a/awx/ui/client/src/lists/Teams.js b/awx/ui/client/src/lists/Teams.js index b9bb151a1a..0048be52d0 100644 --- a/awx/ui/client/src/lists/Teams.js +++ b/awx/ui/client/src/lists/Teams.js @@ -15,8 +15,7 @@ export default selectTitle: i18n._('Add Team'), editTitle: i18n._('Teams'), listTitle: i18n._('Teams'), - selectInstructions: "Click on a row to select it, and click Finished when done. Click the " + - "button to create a new team.", + selectInstructions: i18n.sprintf(i18n._("Click on a row to select it, and click Finished when done. Click the %s button to create a new team."), " "), index: false, hover: true, diff --git a/awx/ui/client/src/lists/Templates.js b/awx/ui/client/src/lists/Templates.js index 10a195f795..7db934ffd3 100644 --- a/awx/ui/client/src/lists/Templates.js +++ b/awx/ui/client/src/lists/Templates.js @@ -16,8 +16,7 @@ export default selectTitle: i18n._('Template'), editTitle: i18n._('Templates'), listTitle: i18n._('Templates'), - selectInstructions: "Click on a row to select it, and click Finished when done. Use the " + - "button to create a new job template.", + selectInstructions: i18n.sprintf(i18n._("Click on a row to select it, and click Finished when done. Use the %s button to create a new job template."), " "), index: false, hover: true, @@ -62,12 +61,12 @@ export default buttonContent: i18n._('ADD'), options: [ { - optionContent: 'Job Template', + optionContent: i18n._('Job Template'), optionSref: 'templates.addJobTemplate', ngShow: 'canAddJobTemplate' }, { - optionContent: 'Workflow Job Template', + optionContent: i18n._('Workflow Job Template'), optionSref: 'templates.addWorkflowJobTemplate', ngShow: 'canAddWorkflowJobTemplate' } diff --git a/awx/ui/client/src/lists/Users.js b/awx/ui/client/src/lists/Users.js index 3efb0f7ce3..bfff119616 100644 --- a/awx/ui/client/src/lists/Users.js +++ b/awx/ui/client/src/lists/Users.js @@ -49,7 +49,7 @@ export default actions: { add: { - label: 'Create New', + label: i18n._('Create New'), mode: 'all', // One of: edit, select, all ngClick: 'addUser()', basePaths: ['organizations', 'users'], // base path must be in list, or action not available diff --git a/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js index 7ab1980495..ab35628d12 100644 --- a/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js +++ b/awx/ui/client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js @@ -116,8 +116,8 @@ return {"options": options, "error": error}; }) .catch(function (data) { - ProcessErrors(scope, data.data, data.status, null, { hdr: 'Error!', - msg: 'Failed to get third-party login types. Returned status: ' + data.status }); + ProcessErrors(scope, data.data, data.status, null, { hdr: i18n._('Error!'), + msg: i18n._('Failed to get third-party login types. Returned status: ') + data.status }); }); }; }]; diff --git a/awx/ui/client/src/notifications/notifications.list.js b/awx/ui/client/src/notifications/notifications.list.js index 5509dfebfe..7a7a345c96 100644 --- a/awx/ui/client/src/notifications/notifications.list.js +++ b/awx/ui/client/src/notifications/notifications.list.js @@ -18,7 +18,7 @@ export default ['i18n', function(i18n){ iterator: 'notification', index: false, hover: false, - emptyListText: "This list is populated by notification templates added from the Notifications section", + emptyListText: i18n.sprintf(i18n._("This list is populated by notification templates added from the %sNotifications%s section"), " ", " "), basePath: 'notification_templates', fields: { name: { @@ -60,7 +60,7 @@ export default ['i18n', function(i18n){ }, actions: { add: { - label: 'Add Notification', + label: i18n._('Add Notification'), mode: 'all', // One of: edit, select, all ngClick: 'addNotificationTemplate()', awToolTip: i18n._('Create a new notification template'), diff --git a/awx/ui/client/src/shared/form-generator.js b/awx/ui/client/src/shared/form-generator.js index 5866a464ba..3c931b64d2 100644 --- a/awx/ui/client/src/shared/form-generator.js +++ b/awx/ui/client/src/shared/form-generator.js @@ -542,9 +542,9 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat html += (field.flag) ? field.flag : "enabled"; html += "\}' aw-tool-tip='" + field.awToolTip + "' data-placement='" + field.dataPlacement + "' data-tip-watch='" + field.dataTipWatch + "'>
ON
" + i18n._("ON") + "
OFF
"; + html += "' class='ScheduleToggle-switch' ng-click='" + field.ngClick + "'>" + i18n._("OFF") + ""; } return html; }, @@ -1041,7 +1041,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat // Add error messages if (field.required) { html += "
" + (field.requiredErrorMsg ? field.requiredErrorMsg : "Please enter a value.") + "
\n"; + this.form.name + '_form.' + fld + ".$error.required\">" + (field.requiredErrorMsg ? field.requiredErrorMsg : i18n._("Please enter a value.")) + "\n"; } html += "
\n"; html += "\n"; @@ -1108,7 +1108,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat // Add error messages if (field.required || field.awRequiredWhen) { html += "
" + (field.requiredErrorMsg ? field.requiredErrorMsg : "Please select a value."); + this.form.name + '_form.' + fld + ".$error.required\">" + (field.requiredErrorMsg ? field.requiredErrorMsg : i18n._("Please select a value.")); if (field.includePlaybookNotFoundError) { html += " Playbook {{ job_template_obj.playbook }} not found for project.\n"; } @@ -1177,15 +1177,19 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat // Add error messages if (field.required) { html += "
" + (field.requiredErrorMsg ? field.requiredErrorMsg : "Please select a value.") + "
\n"; + this.form.name + '_form.' + fld + ".$error.required\">" + (field.requiredErrorMsg ? field.requiredErrorMsg : i18n._("Please select a value.")) + "
\n"; } if (field.integer) { - html += "
Please enter a number.
\n"; + html += "
" + i18n._("Please enter a number.") + "
\n"; } if (field.min !== undefined || field.max !== undefined) { html += "
Please enter a number greater than " + field.min; - html += (field.max !== undefined) ? " and less than " + field.max + "." : "."; + this.form.name + '_form.' + fld + ".$error.max\">"; + if (field.max !== undefined) { + html += i18n.sprintf(i18n._("Please enter a number greater than %d and less than %d."), field.min, field.max) + } else { + html += i18n.sprintf(i18n._("Please enter a number greater than %d.", field.min) + } html += "
\n"; } html += "
\n"; @@ -1210,14 +1214,14 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat // Add error messages if (field.required) { html += "
" + (field.requiredErrorMsg ? field.requiredErrorMsg : "Please select at least one value.") + "
\n"; + this.form.name + '_form.' + fld + ".$error.required\">" + (field.requiredErrorMsg ? field.requiredErrorMsg : i18n._("Please select at least one value.")) + "\n"; } if (field.integer) { - html += "
Please select a number.
\n"; + html += "
" + i18n._("Please select a number.") + "
\n"; } if (field.min || field.max) { html += "
Please select a number between " + field.min + " and " + + this.form.name + '_form.' + fld + ".$error.max\">" + i18n._("Please select a number between ") + field.min + i18n._(" and ") + field.max + "
\n"; } html += "
\n"; @@ -1291,7 +1295,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat if (field.required || field.awRequiredWhen) { html += "
Please select a value.
\n"; + this.form.name + '_form.' + fld + ".$error.required\">" + i18n._("Please select a value.)" + "\n"; } html += "
\n"; @@ -1396,13 +1400,13 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat this.form.name + '_form.' + field.sourceModel + '_' + field.sourceField + ".$dirty && " + this.form.name + '_form.' + field.sourceModel + '_' + field.sourceField + - ".$error.required\">" + (field.requiredErrorMsg ? field.requiredErrorMsg : "Please select a value.") + "\n"; + ".$error.required\">" + (field.requiredErrorMsg ? field.requiredErrorMsg : i18n._("Please select a value.")) + "\n"; } html += "
That value was not found. Please enter or select a valid value.
\n"; + ".$error.awlookup\">" + i18n._("That value was not found. Please enter or select a valid value.") + "\n"; html += "
\n"; html += "\n"; @@ -1858,7 +1862,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat `; // Show the "no items" box when loading is done and the user isn't actively searching and there are no results - var emptyListText = (collection.emptyListText) ? collection.emptyListText : "PLEASE ADD ITEMS TO THIS LIST"; + var emptyListText = (collection.emptyListText) ? collection.emptyListText : i18n._("PLEASE ADD ITEMS TO THIS LIST"); html += `
`; html += `
${emptyListText}
`; html += '
'; From f4bf4e59710fbc4c7cc8025aa757f489b039a743 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Tue, 6 Dec 2016 12:08:48 -0500 Subject: [PATCH 2/4] Update --- awx/ui/po/ansible-tower-ui.pot | 606 +++++++++++++++++++-------------- 1 file changed, 357 insertions(+), 249 deletions(-) diff --git a/awx/ui/po/ansible-tower-ui.pot b/awx/ui/po/ansible-tower-ui.pot index 5a0b8f2bd6..62433d3bc7 100644 --- a/awx/ui/po/ansible-tower-ui.pot +++ b/awx/ui/po/ansible-tower-ui.pot @@ -9,12 +9,12 @@ msgid "%s or %s" msgstr "" #: client/src/controllers/Projects.js:397 -#: client/src/controllers/Projects.js:678 +#: client/src/controllers/Projects.js:679 msgid "%sNote:%s Mercurial does not support password authentication for SSH. Do not put the username and key in the URL. If using Bitbucket and SSH, do not supply your Bitbucket username." msgstr "" #: client/src/controllers/Projects.js:384 -#: client/src/controllers/Projects.js:665 +#: client/src/controllers/Projects.js:666 msgid "%sNote:%s When using SSH protocol for GitHub or Bitbucket, enter an SSH key only, do not enter a username (other than git). Additionally, GitHub and Bitbucket do not support password authentication when using SSH. GIT read only protocol (git://) does not use username or password information." msgstr "" @@ -26,21 +26,23 @@ msgstr "" msgid "+ ADD" msgstr "" -#: client/src/controllers/Projects.js:557 -msgid ". GET status:" +#: client/src/controllers/Users.js:185 +msgid "A value is required" msgstr "" #: client/src/forms/Credentials.js:442 #: client/src/forms/Inventories.js:153 +#: client/src/forms/JobTemplates.js:414 #: client/src/forms/Organizations.js:75 #: client/src/forms/Projects.js:238 #: client/src/forms/Teams.js:86 +#: client/src/forms/Workflows.js:126 #: client/src/inventory-scripts/inventory-scripts.list.js:45 #: client/src/lists/Credentials.js:59 -#: client/src/lists/Inventories.js:69 -#: client/src/lists/Projects.js:61 -#: client/src/lists/Teams.js:51 -#: client/src/lists/Templates.js:63 +#: client/src/lists/Inventories.js:68 +#: client/src/lists/Projects.js:67 +#: client/src/lists/Teams.js:50 +#: client/src/lists/Templates.js:61 #: client/src/lists/Users.js:58 #: client/src/notifications/notificationTemplates.list.js:52 msgid "ADD" @@ -84,13 +86,15 @@ msgid "Actions" msgstr "" #: client/src/dashboard/lists/job-templates/job-templates-list.partial.html:17 -#: client/src/lists/Templates.js:42 +#: client/src/lists/Templates.js:40 msgid "Activity" msgstr "" #: client/src/forms/Inventories.js:104 #: client/src/forms/Inventories.js:150 #: client/src/forms/Organizations.js:72 +#: client/src/forms/Teams.js:83 +#: client/src/forms/Workflows.js:123 msgid "Add" msgstr "" @@ -106,12 +110,16 @@ msgstr "" msgid "Add Inventories" msgstr "" +#: client/src/notifications/notifications.list.js:63 +msgid "Add Notification" +msgstr "" + #: client/src/lists/Projects.js:15 msgid "Add Project" msgstr "" -#: client/src/forms/Workflows.js:161 -#: client/src/shared/form-generator.js:1715 +#: client/src/forms/JobTemplates.js:459 +#: client/src/forms/Workflows.js:171 msgid "Add Survey" msgstr "" @@ -125,6 +133,7 @@ msgstr "" #: client/src/forms/Credentials.js:440 #: client/src/forms/Inventories.js:151 +#: client/src/forms/JobTemplates.js:412 #: client/src/forms/Organizations.js:73 #: client/src/forms/Projects.js:236 msgid "Add a permission" @@ -138,10 +147,6 @@ msgstr "" msgid "Add user to team" msgstr "" -#: client/src/shared/form-generator.js:1462 -msgid "Admin" -msgstr "" - #: client/src/dashboard/graphs/dashboard-graphs.partial.html:37 #: client/src/dashboard/graphs/dashboard-graphs.partial.html:43 #: client/src/dashboard/graphs/dashboard-graphs.partial.html:65 @@ -153,8 +158,8 @@ msgstr "" msgid "All Jobs" msgstr "" -#: client/src/forms/JobTemplates.js:298 -#: client/src/forms/JobTemplates.js:305 +#: client/src/forms/JobTemplates.js:299 +#: client/src/forms/JobTemplates.js:306 msgid "Allow Provisioning Callbacks" msgstr "" @@ -174,7 +179,11 @@ msgstr "" msgid "Are you sure you want to delete the project below?" msgstr "" -#: client/src/controllers/Projects.js:646 +#: client/src/controllers/Users.js:102 +msgid "Are you sure you want to delete the user below?" +msgstr "" + +#: client/src/controllers/Projects.js:647 msgid "Are you sure you want to remove the %s below from %s?" msgstr "" @@ -185,10 +194,6 @@ msgstr "" msgid "Ask at runtime?" msgstr "" -#: client/src/shared/form-generator.js:1464 -msgid "Auditor" -msgstr "" - #: client/src/forms/Credentials.js:73 msgid "Authentication for network device access. This can include SSH keys, usernames, passwords, and authorize information. Network credentials are used when submitting jobs to run playbooks against network devices." msgstr "" @@ -209,7 +214,7 @@ msgstr "" msgid "Base path used for locating playbooks. Directories found inside this path will be listed in the playbook directory drop-down. Together the base path and selected playbook directory provide the full path used to locate playbooks." msgstr "" -#: client/src/forms/JobTemplates.js:292 +#: client/src/forms/JobTemplates.js:293 msgid "Become Privilege Escalation" msgstr "" @@ -217,7 +222,7 @@ msgstr "" msgid "Browse" msgstr "" -#: client/src/app.js:315 +#: client/src/app.js:317 msgid "CREDENTIALS" msgstr "" @@ -230,6 +235,7 @@ msgid "Cache Timeout%s (seconds)%s" msgstr "" #: client/src/controllers/Projects.js:156 +#: client/src/controllers/Users.js:95 msgid "Call to %s failed. DELETE returned status:" msgstr "" @@ -238,6 +244,10 @@ msgstr "" msgid "Call to %s failed. GET status:" msgstr "" +#: client/src/controllers/Projects.js:641 +msgid "Call to %s failed. POST returned status:" +msgstr "" + #: client/src/controllers/Projects.js:180 msgid "Call to %s failed. POST status:" msgstr "" @@ -246,15 +256,11 @@ msgstr "" msgid "Call to get project failed. GET status:" msgstr "" -#: client/src/shared/form-generator.js:1703 -msgid "Cancel" -msgstr "" - #: client/src/controllers/Projects.js:196 msgid "Cancel Not Allowed" msgstr "" -#: client/src/lists/Projects.js:115 +#: client/src/lists/Projects.js:121 msgid "Cancel the SCM update" msgstr "" @@ -262,10 +268,6 @@ msgstr "" msgid "Canceled. Click for details" msgstr "" -#: client/src/shared/form-generator.js:1100 -msgid "Choose a %s" -msgstr "" - #: client/src/license/license.partial.html:97 msgid "Choose your license file, agree to the End User License Agreement, and click submit." msgstr "" @@ -274,6 +276,18 @@ msgstr "" msgid "Clean" msgstr "" +#: client/src/lists/Inventories.js:18 +msgid "Click on a row to select it, and click Finished when done. Click the %s button to create a new inventory." +msgstr "" + +#: client/src/lists/Teams.js:18 +msgid "Click on a row to select it, and click Finished when done. Click the %s button to create a new team." +msgstr "" + +#: client/src/lists/Templates.js:19 +msgid "Click on a row to select it, and click Finished when done. Use the %s button to create a new job template." +msgstr "" + #: client/src/forms/Credentials.js:319 msgid "Client ID" msgstr "" @@ -286,12 +300,8 @@ msgstr "" msgid "Client Secret" msgstr "" -#: client/src/shared/form-generator.js:1707 -msgid "Close" -msgstr "" - -#: client/src/forms/JobTemplates.js:163 -#: client/src/forms/JobTemplates.js:175 +#: client/src/forms/JobTemplates.js:164 +#: client/src/forms/JobTemplates.js:176 msgid "Cloud Credential" msgstr "" @@ -315,22 +325,22 @@ msgstr "" msgid "Confirm Password" msgstr "" -#: client/src/forms/JobTemplates.js:254 -#: client/src/forms/JobTemplates.js:272 +#: client/src/forms/JobTemplates.js:255 +#: client/src/forms/JobTemplates.js:273 #: client/src/forms/WorkflowMaker.js:141 #: client/src/forms/WorkflowMaker.js:156 msgid "Consult the Ansible documentation for further details on the usage of tags." msgstr "" -#: client/src/forms/JobTemplates.js:240 +#: client/src/forms/JobTemplates.js:241 msgid "Control the level of output ansible will produce as the playbook executes." msgstr "" -#: client/src/lists/Templates.js:101 +#: client/src/lists/Templates.js:99 msgid "Copy" msgstr "" -#: client/src/lists/Templates.js:104 +#: client/src/lists/Templates.js:102 msgid "Copy template" msgstr "" @@ -338,6 +348,10 @@ msgstr "" msgid "Create Credential" msgstr "" +#: client/src/lists/Users.js:52 +msgid "Create New" +msgstr "" + #: client/src/lists/Credentials.js:57 msgid "Create a new credential" msgstr "" @@ -347,7 +361,7 @@ msgstr "" msgid "Create a new custom inventory" msgstr "" -#: client/src/lists/Inventories.js:67 +#: client/src/lists/Inventories.js:66 msgid "Create a new inventory" msgstr "" @@ -359,15 +373,15 @@ msgstr "" msgid "Create a new organization" msgstr "" -#: client/src/lists/Projects.js:59 +#: client/src/lists/Projects.js:65 msgid "Create a new project" msgstr "" -#: client/src/lists/Teams.js:49 +#: client/src/lists/Teams.js:48 msgid "Create a new team" msgstr "" -#: client/src/lists/Templates.js:61 +#: client/src/lists/Templates.js:59 msgid "Create a new template" msgstr "" @@ -383,7 +397,7 @@ msgstr "" msgid "Create templates for sending notifications with Email, HipChat, Slack, and SMS." msgstr "" -#: client/src/forms/JobTemplates.js:153 +#: client/src/forms/JobTemplates.js:154 #: client/src/forms/WorkflowMaker.js:60 #: client/src/forms/WorkflowMaker.js:69 msgid "Credential" @@ -400,17 +414,23 @@ msgstr "" msgid "Custom Script" msgstr "" -#: client/src/app.js:403 +#: client/src/app.js:405 msgid "DASHBOARD" msgstr "" +#: client/src/controllers/Projects.js:649 +#: client/src/controllers/Users.js:104 +msgid "DELETE" +msgstr "" + #: client/src/controllers/Projects.js:161 -#: client/src/controllers/Projects.js:645 +#: client/src/controllers/Projects.js:646 +#: client/src/controllers/Users.js:101 #: client/src/inventory-scripts/inventory-scripts.list.js:74 #: client/src/lists/Credentials.js:90 -#: client/src/lists/Inventories.js:93 -#: client/src/lists/Teams.js:78 -#: client/src/lists/Templates.js:125 +#: client/src/lists/Inventories.js:92 +#: client/src/lists/Teams.js:77 +#: client/src/lists/Templates.js:123 #: client/src/lists/Users.js:87 #: client/src/notifications/notificationTemplates.list.js:89 msgid "Delete" @@ -420,7 +440,7 @@ msgstr "" msgid "Delete credential" msgstr "" -#: client/src/lists/Inventories.js:95 +#: client/src/lists/Inventories.js:94 msgid "Delete inventory" msgstr "" @@ -436,19 +456,23 @@ msgstr "" msgid "Delete on Update" msgstr "" -#: client/src/lists/Teams.js:82 +#: client/src/lists/Teams.js:81 msgid "Delete team" msgstr "" -#: client/src/lists/Templates.js:128 +#: client/src/lists/Templates.js:126 msgid "Delete template" msgstr "" +#: client/src/lists/CompletedJobs.js:82 +msgid "Delete the job" +msgstr "" + #: client/src/forms/Projects.js:164 msgid "Delete the local repository in its entirety prior to performing an update." msgstr "" -#: client/src/lists/Projects.js:109 +#: client/src/lists/Projects.js:115 msgid "Delete the project" msgstr "" @@ -466,17 +490,19 @@ msgstr "" #: client/src/forms/Credentials.js:41 #: client/src/forms/Inventories.js:37 -#: client/src/forms/JobTemplates.js:41 +#: client/src/forms/JobTemplates.js:42 #: client/src/forms/Organizations.js:33 #: client/src/forms/Projects.js:38 #: client/src/forms/Teams.js:34 -#: client/src/forms/Workflows.js:38 +#: client/src/forms/Users.js:142 +#: client/src/forms/Users.js:167 +#: client/src/forms/Workflows.js:40 #: client/src/inventory-scripts/inventory-scripts.form.js:32 #: client/src/inventory-scripts/inventory-scripts.list.js:25 #: client/src/lists/Credentials.js:34 #: client/src/lists/PortalJobTemplates.js:29 -#: client/src/lists/Teams.js:31 -#: client/src/lists/Templates.js:38 +#: client/src/lists/Teams.js:30 +#: client/src/lists/Templates.js:36 #: client/src/notifications/notificationTemplates.form.js:36 msgid "Description" msgstr "" @@ -499,7 +525,6 @@ msgid "Destination SMS Number" msgstr "" #: client/src/license/license.partial.html:5 -#: client/src/shared/form-generator.js:1493 msgid "Details" msgstr "" @@ -524,19 +549,20 @@ msgstr "" msgid "Each time a job runs using this project, perform an update to the local repository prior to starting the job." msgstr "" +#: client/src/dashboard/hosts/dashboard-hosts.list.js:63 #: client/src/inventory-scripts/inventory-scripts.list.js:57 #: client/src/lists/Credentials.js:71 -#: client/src/lists/Inventories.js:79 -#: client/src/lists/Teams.js:61 -#: client/src/lists/Templates.js:109 +#: client/src/lists/Inventories.js:78 +#: client/src/lists/Teams.js:60 +#: client/src/lists/Templates.js:107 #: client/src/lists/Users.js:68 #: client/src/notifications/notificationTemplates.list.js:63 #: client/src/notifications/notificationTemplates.list.js:72 msgid "Edit" msgstr "" -#: client/src/forms/Workflows.js:168 -#: client/src/shared/form-generator.js:1719 +#: client/src/forms/JobTemplates.js:466 +#: client/src/forms/Workflows.js:178 msgid "Edit Survey" msgstr "" @@ -544,7 +570,11 @@ msgstr "" msgid "Edit credential" msgstr "" -#: client/src/lists/Inventories.js:81 +#: client/src/dashboard/hosts/dashboard-hosts.list.js:66 +msgid "Edit host" +msgstr "" + +#: client/src/lists/Inventories.js:80 msgid "Edit inventory" msgstr "" @@ -556,15 +586,15 @@ msgstr "" msgid "Edit notification" msgstr "" -#: client/src/lists/Teams.js:65 +#: client/src/lists/Teams.js:64 msgid "Edit team" msgstr "" -#: client/src/lists/Templates.js:111 +#: client/src/lists/Templates.js:109 msgid "Edit template" msgstr "" -#: client/src/lists/Projects.js:96 +#: client/src/lists/Projects.js:102 msgid "Edit the project" msgstr "" @@ -585,14 +615,18 @@ msgstr "" msgid "Email" msgstr "" -#: client/src/forms/JobTemplates.js:287 +#: client/src/forms/JobTemplates.js:288 msgid "Enable Privilege Escalation" msgstr "" -#: client/src/forms/JobTemplates.js:302 +#: client/src/forms/JobTemplates.js:303 msgid "Enables creation of a provisioning callback URL. Using the URL a host can contact Tower and request a configuration update using this job template." msgstr "" +#: client/src/helpers/Credentials.js:308 +msgid "Encrypted credentials are not supported." +msgstr "" + #: client/src/license/license.partial.html:108 msgid "End User License Agreement" msgstr "" @@ -620,22 +654,31 @@ msgstr "" #: client/src/controllers/Projects.js:216 #: client/src/controllers/Projects.js:225 #: client/src/controllers/Projects.js:363 -#: client/src/controllers/Projects.js:556 +#: client/src/controllers/Projects.js:557 +#: client/src/controllers/Projects.js:623 +#: client/src/controllers/Projects.js:641 +#: client/src/controllers/Users.js:182 +#: client/src/controllers/Users.js:267 +#: client/src/controllers/Users.js:321 +#: client/src/controllers/Users.js:94 +#: client/src/helpers/Credentials.js:312 +#: client/src/helpers/Credentials.js:328 +#: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:119 msgid "Error!" msgstr "" #: client/src/controllers/Projects.js:381 -#: client/src/controllers/Projects.js:663 +#: client/src/controllers/Projects.js:664 msgid "Example URLs for GIT SCM include:" msgstr "" #: client/src/controllers/Projects.js:394 -#: client/src/controllers/Projects.js:675 +#: client/src/controllers/Projects.js:676 msgid "Example URLs for Mercurial SCM include:" msgstr "" #: client/src/controllers/Projects.js:389 -#: client/src/controllers/Projects.js:670 +#: client/src/controllers/Projects.js:671 msgid "Example URLs for Subversion SCM include:" msgstr "" @@ -643,10 +686,10 @@ msgstr "" msgid "Expires On" msgstr "" -#: client/src/forms/JobTemplates.js:351 -#: client/src/forms/JobTemplates.js:363 -#: client/src/forms/Workflows.js:69 -#: client/src/forms/Workflows.js:81 +#: client/src/forms/JobTemplates.js:352 +#: client/src/forms/JobTemplates.js:364 +#: client/src/forms/Workflows.js:71 +#: client/src/forms/Workflows.js:83 msgid "Extra Variables" msgstr "" @@ -662,12 +705,37 @@ msgstr "" msgid "Failed Hosts" msgstr "" +#: client/src/controllers/Users.js:182 +msgid "Failed to add new user. POST returned status:" +msgstr "" + +#: client/src/helpers/Credentials.js:313 +msgid "Failed to create new Credential. POST status:" +msgstr "" + #: client/src/controllers/Projects.js:364 msgid "Failed to create new project. POST returned status:" msgstr "" -#: client/src/controllers/Projects.js:557 -msgid "Failed to retrieve project:" +#: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:120 +msgid "Failed to get third-party login types. Returned status:" +msgstr "" + +#: client/src/controllers/Projects.js:558 +msgid "Failed to retrieve project: %s. GET status:" +msgstr "" + +#: client/src/controllers/Users.js:268 +#: client/src/controllers/Users.js:322 +msgid "Failed to retrieve user: %s. GET status:" +msgstr "" + +#: client/src/helpers/Credentials.js:329 +msgid "Failed to update Credential. PUT status:" +msgstr "" + +#: client/src/controllers/Projects.js:623 +msgid "Failed to update project: %s. PUT status:" msgstr "" #: client/src/notifications/notifications.list.js:49 @@ -697,13 +765,17 @@ msgstr "" msgid "For example:" msgstr "" -#: client/src/forms/JobTemplates.js:222 +#: client/src/dashboard/hosts/dashboard-hosts.list.js:54 +msgid "For hosts that are part of an external inventory, this flag cannot be changed. It will be set by the inventory sync process." +msgstr "" + +#: client/src/forms/JobTemplates.js:223 #: client/src/forms/WorkflowMaker.js:125 msgid "For more information and examples see %sthe Patterns topic at docs.ansible.com%s." msgstr "" -#: client/src/forms/JobTemplates.js:198 -#: client/src/forms/JobTemplates.js:211 +#: client/src/forms/JobTemplates.js:199 +#: client/src/forms/JobTemplates.js:212 msgid "Forks" msgstr "" @@ -732,11 +804,15 @@ msgstr "" msgid "Host (Authentication URL)" msgstr "" -#: client/src/forms/JobTemplates.js:325 -#: client/src/forms/JobTemplates.js:334 +#: client/src/forms/JobTemplates.js:326 +#: client/src/forms/JobTemplates.js:335 msgid "Host Config Key" msgstr "" +#: client/src/dashboard/hosts/dashboard-hosts.list.js:55 +msgid "Host Enabled" +msgstr "" + #: client/src/dashboard/counts/dashboard-counts.directive.js:39 msgid "Hosts" msgstr "" @@ -778,7 +854,7 @@ msgstr "" msgid "IRC Server Port" msgstr "" -#: client/src/forms/JobTemplates.js:290 +#: client/src/forms/JobTemplates.js:291 msgid "If enabled, run this playbook as an administrator. This is the equivalent of passing the %s option to the %s command." msgstr "" @@ -790,7 +866,11 @@ msgstr "" msgid "If you are ready to upgrade, please contact us by clicking the button below" msgstr "" -#: client/src/forms/JobTemplates.js:57 +#: client/src/dashboard/hosts/dashboard-hosts.list.js:54 +msgid "Indicates if a host is available and should be included in running jobs." +msgstr "" + +#: client/src/forms/JobTemplates.js:58 msgid "Instead, %s will check playbook syntax, test environment setup and report problems." msgstr "" @@ -798,7 +878,12 @@ msgstr "" msgid "Invalid License" msgstr "" -#: client/src/login/loginModal/loginModal.partial.html:30 +#: client/src/license/license.controller.js:69 +#: client/src/license/license.controller.js:76 +msgid "Invalid file format. Please upload valid JSON." +msgstr "" + +#: client/src/login/loginModal/loginModal.partial.html:34 msgid "Invalid username and/or password. Please try again." msgstr "" @@ -808,8 +893,9 @@ msgstr "" msgid "Inventories" msgstr "" -#: client/src/forms/JobTemplates.js:72 -#: client/src/forms/JobTemplates.js:85 +#: client/src/dashboard/hosts/dashboard-hosts.list.js:41 +#: client/src/forms/JobTemplates.js:73 +#: client/src/forms/JobTemplates.js:86 #: client/src/forms/WorkflowMaker.js:79 #: client/src/forms/WorkflowMaker.js:89 msgid "Inventory" @@ -836,28 +922,36 @@ msgstr "" msgid "JOB STATUS" msgstr "" -#: client/src/app.js:423 +#: client/src/forms/JobTemplates.js:23 +msgid "JOB TEMPLATE" +msgstr "" + +#: client/src/app.js:425 #: client/src/dashboard/graphs/job-status/job-status-graph.directive.js:113 #: client/src/main-menu/main-menu.partial.html:122 #: client/src/main-menu/main-menu.partial.html:43 msgid "JOBS" msgstr "" -#: client/src/forms/JobTemplates.js:247 -#: client/src/forms/JobTemplates.js:255 +#: client/src/forms/JobTemplates.js:248 +#: client/src/forms/JobTemplates.js:256 #: client/src/forms/WorkflowMaker.js:134 #: client/src/forms/WorkflowMaker.js:142 msgid "Job Tags" msgstr "" +#: client/src/lists/Templates.js:64 +msgid "Job Template" +msgstr "" + #: client/src/lists/PortalJobTemplates.js:15 #: client/src/lists/PortalJobTemplates.js:16 msgid "Job Templates" msgstr "" #: client/src/dashboard/graphs/dashboard-graphs.partial.html:32 -#: client/src/forms/JobTemplates.js:47 -#: client/src/forms/JobTemplates.js:61 +#: client/src/forms/JobTemplates.js:48 +#: client/src/forms/JobTemplates.js:62 #: client/src/forms/WorkflowMaker.js:110 #: client/src/forms/WorkflowMaker.js:99 msgid "Job Type" @@ -877,11 +971,11 @@ msgstr "" msgid "Label to be shown with notification" msgstr "" -#: client/src/forms/JobTemplates.js:339 -#: client/src/forms/JobTemplates.js:344 -#: client/src/forms/Workflows.js:57 -#: client/src/forms/Workflows.js:62 -#: client/src/lists/Templates.js:49 +#: client/src/forms/JobTemplates.js:340 +#: client/src/forms/JobTemplates.js:345 +#: client/src/forms/Workflows.js:59 +#: client/src/forms/Workflows.js:64 +#: client/src/lists/Templates.js:47 msgid "Labels" msgstr "" @@ -890,13 +984,12 @@ msgstr "" msgid "Last Name" msgstr "" -#: client/src/lists/Projects.js:47 +#: client/src/lists/Projects.js:53 msgid "Last Updated" msgstr "" #: client/src/lists/PortalJobTemplates.js:39 -#: client/src/lists/Templates.js:85 -#: client/src/shared/form-generator.js:1711 +#: client/src/lists/Templates.js:83 msgid "Launch" msgstr "" @@ -925,29 +1018,25 @@ msgstr "" msgid "License Type" msgstr "" -#: client/src/forms/JobTemplates.js:217 -#: client/src/forms/JobTemplates.js:224 +#: client/src/forms/JobTemplates.js:218 +#: client/src/forms/JobTemplates.js:225 #: client/src/forms/WorkflowMaker.js:120 #: client/src/forms/WorkflowMaker.js:127 msgid "Limit" msgstr "" -#: client/src/shared/socket/socket.service.js:170 +#: client/src/shared/socket/socket.service.js:176 msgid "Live events: attempting to connect to the Tower server." msgstr "" -#: client/src/shared/socket/socket.service.js:174 +#: client/src/shared/socket/socket.service.js:180 msgid "Live events: connected. Pages containing job status information will automatically update in real-time." msgstr "" -#: client/src/shared/socket/socket.service.js:178 +#: client/src/shared/socket/socket.service.js:184 msgid "Live events: error connecting to the Tower server." msgstr "" -#: client/src/shared/form-generator.js:1969 -msgid "Loading..." -msgstr "" - #: client/src/main-menu/main-menu.partial.html:188 msgid "Log Out" msgstr "" @@ -960,7 +1049,7 @@ msgstr "" msgid "Machine" msgstr "" -#: client/src/forms/JobTemplates.js:136 +#: client/src/forms/JobTemplates.js:137 msgid "Machine Credential" msgstr "" @@ -986,7 +1075,7 @@ msgstr "" msgid "Manual projects do not require an SCM update" msgstr "" -#: client/src/login/loginModal/loginModal.partial.html:24 +#: client/src/login/loginModal/loginModal.partial.html:28 msgid "Maximum per-user sessions reached. Please sign in." msgstr "" @@ -1006,24 +1095,26 @@ msgstr "" #: client/src/dashboard/lists/jobs/jobs-list.partial.html:13 #: client/src/forms/Credentials.js:34 #: client/src/forms/Inventories.js:29 -#: client/src/forms/JobTemplates.js:34 +#: client/src/forms/JobTemplates.js:35 #: client/src/forms/Organizations.js:26 #: client/src/forms/Projects.js:31 #: client/src/forms/Teams.js:126 #: client/src/forms/Teams.js:27 +#: client/src/forms/Users.js:139 +#: client/src/forms/Users.js:164 #: client/src/forms/Users.js:190 -#: client/src/forms/Workflows.js:31 +#: client/src/forms/Workflows.js:33 #: client/src/inventory-scripts/inventory-scripts.form.js:25 #: client/src/inventory-scripts/inventory-scripts.list.js:20 #: client/src/lists/CompletedJobs.js:43 #: client/src/lists/Credentials.js:29 -#: client/src/lists/Inventories.js:47 +#: client/src/lists/Inventories.js:46 #: client/src/lists/PortalJobTemplates.js:24 #: client/src/lists/PortalJobs.js:32 #: client/src/lists/Projects.js:37 #: client/src/lists/ScheduledJobs.js:32 -#: client/src/lists/Teams.js:26 -#: client/src/lists/Templates.js:27 +#: client/src/lists/Teams.js:25 +#: client/src/lists/Templates.js:26 #: client/src/notifications/notificationTemplates.form.js:29 #: client/src/notifications/notificationTemplates.list.js:33 #: client/src/notifications/notifications.list.js:26 @@ -1034,12 +1125,12 @@ msgstr "" msgid "Network" msgstr "" -#: client/src/forms/JobTemplates.js:181 -#: client/src/forms/JobTemplates.js:192 +#: client/src/forms/JobTemplates.js:182 +#: client/src/forms/JobTemplates.js:193 msgid "Network Credential" msgstr "" -#: client/src/forms/JobTemplates.js:191 +#: client/src/forms/JobTemplates.js:192 msgid "Network credentials are used by Ansible networking modules to connect to and manage networking devices." msgstr "" @@ -1079,6 +1170,10 @@ msgstr "" msgid "New Workflow" msgstr "" +#: client/src/controllers/Users.js:174 +msgid "New user successfully created!" +msgstr "" + #: client/src/lists/ScheduledJobs.js:50 msgid "Next Run" msgstr "" @@ -1161,12 +1256,12 @@ msgstr "" msgid "OpenStack domains define administrative boundaries. It is only needed for Keystone v3 authentication URLs. Common scenarios include:" msgstr "" -#: client/src/forms/JobTemplates.js:346 -#: client/src/forms/Workflows.js:64 +#: client/src/forms/JobTemplates.js:347 +#: client/src/forms/Workflows.js:66 msgid "Optional labels that describe this job template, such as 'dev' or 'test'. Labels can be used to group and filter job templates and completed jobs in the Tower display." msgstr "" -#: client/src/forms/JobTemplates.js:283 +#: client/src/forms/JobTemplates.js:284 #: client/src/notifications/notificationTemplates.form.js:391 msgid "Options" msgstr "" @@ -1178,12 +1273,12 @@ msgstr "" #: client/src/forms/Projects.js:49 #: client/src/forms/Teams.js:39 #: client/src/forms/Users.js:59 -#: client/src/forms/Workflows.js:44 -#: client/src/forms/Workflows.js:50 +#: client/src/forms/Workflows.js:46 +#: client/src/forms/Workflows.js:52 #: client/src/inventory-scripts/inventory-scripts.form.js:37 #: client/src/inventory-scripts/inventory-scripts.list.js:30 -#: client/src/lists/Inventories.js:53 -#: client/src/lists/Teams.js:36 +#: client/src/lists/Inventories.js:52 +#: client/src/lists/Teams.js:35 #: client/src/notifications/notificationTemplates.form.js:41 msgid "Organization" msgstr "" @@ -1201,7 +1296,7 @@ msgstr "" msgid "Owners" msgstr "" -#: client/src/login/loginModal/loginModal.partial.html:64 +#: client/src/login/loginModal/loginModal.partial.html:68 msgid "PASSWORD" msgstr "" @@ -1223,8 +1318,8 @@ msgstr "" msgid "Pagerduty subdomain" msgstr "" -#: client/src/forms/JobTemplates.js:357 -#: client/src/forms/Workflows.js:75 +#: client/src/forms/JobTemplates.js:358 +#: client/src/forms/Workflows.js:77 msgid "Pass extra command line variables to the playbook. This is the %s or %s command line parameter for %s. Provide key/value pairs using either YAML or JSON." msgstr "" @@ -1278,17 +1373,22 @@ msgstr "" msgid "Period" msgstr "" +#: client/src/controllers/Projects.js:284 +#: client/src/controllers/Users.js:141 +msgid "Permission Error" +msgstr "" + #: client/src/forms/Credentials.js:432 #: client/src/forms/Inventories.js:142 -#: client/src/forms/JobTemplates.js:419 +#: client/src/forms/JobTemplates.js:403 #: client/src/forms/Organizations.js:64 #: client/src/forms/Projects.js:228 -#: client/src/forms/Workflows.js:113 +#: client/src/forms/Workflows.js:115 msgid "Permissions" msgstr "" -#: client/src/forms/JobTemplates.js:119 -#: client/src/forms/JobTemplates.js:130 +#: client/src/forms/JobTemplates.js:120 +#: client/src/forms/JobTemplates.js:131 msgid "Playbook" msgstr "" @@ -1304,37 +1404,18 @@ msgstr "" msgid "Please click the button below to visit Ansible's website to get a Tower license key." msgstr "" -#: client/src/shared/form-generator.js:844 -#: client/src/shared/form-generator.js:969 -msgid "Please enter a URL that begins with ssh, http or https. The URL may not contain the '@' character." -msgstr "" - -#: client/src/login/loginModal/loginModal.partial.html:74 +#: client/src/login/loginModal/loginModal.partial.html:78 msgid "Please enter a password." msgstr "" -#: client/src/login/loginModal/loginModal.partial.html:54 +#: client/src/login/loginModal/loginModal.partial.html:58 msgid "Please enter a username." msgstr "" -#: client/src/shared/form-generator.js:834 -#: client/src/shared/form-generator.js:959 -msgid "Please enter a valid email address." -msgstr "" - -#: client/src/shared/form-generator.js:829 -#: client/src/shared/form-generator.js:954 -msgid "Please enter a value." -msgstr "" - #: client/src/lists/CompletedJobs.js:13 msgid "Please save and run a job to view" msgstr "" -#: client/src/forms/Workflows.js:159 -msgid "Please save before adding a survey" -msgstr "" - #: client/src/notifications/notifications.list.js:15 msgid "Please save before adding notifications" msgstr "" @@ -1345,11 +1426,11 @@ msgstr "" #: client/src/forms/Inventories.js:138 #: client/src/forms/Inventories.js:91 -#: client/src/forms/JobTemplates.js:412 +#: client/src/forms/JobTemplates.js:396 #: client/src/forms/Organizations.js:57 #: client/src/forms/Projects.js:220 #: client/src/forms/Teams.js:110 -#: client/src/forms/Workflows.js:106 +#: client/src/forms/Workflows.js:108 msgid "Please save before assigning permissions" msgstr "" @@ -1362,7 +1443,7 @@ msgstr "" msgid "Please save before assigning to teams" msgstr "" -#: client/src/forms/Workflows.js:173 +#: client/src/forms/Workflows.js:184 msgid "Please save before defining the workflow graph" msgstr "" @@ -1370,6 +1451,14 @@ msgstr "" msgid "Please select a Credential." msgstr "" +#: client/src/forms/JobTemplates.js:150 +msgid "Please select a Machine Credential or check the Prompt on launch option." +msgstr "" + +#: client/src/forms/JobTemplates.js:83 +msgid "Please select an Inventory or check the Prompt on launch option." +msgstr "" + #: client/src/forms/WorkflowMaker.js:86 msgid "Please select an Inventory." msgstr "" @@ -1401,8 +1490,8 @@ msgstr "" msgid "Privilege Escalation Username" msgstr "" -#: client/src/forms/JobTemplates.js:113 -#: client/src/forms/JobTemplates.js:96 +#: client/src/forms/JobTemplates.js:114 +#: client/src/forms/JobTemplates.js:97 #: client/src/helpers/Credentials.js:103 msgid "Project" msgstr "" @@ -1438,30 +1527,30 @@ msgstr "" msgid "Projects" msgstr "" -#: client/src/forms/JobTemplates.js:158 -#: client/src/forms/JobTemplates.js:229 -#: client/src/forms/JobTemplates.js:260 -#: client/src/forms/JobTemplates.js:278 -#: client/src/forms/JobTemplates.js:368 -#: client/src/forms/JobTemplates.js:67 -#: client/src/forms/JobTemplates.js:91 +#: client/src/forms/JobTemplates.js:159 +#: client/src/forms/JobTemplates.js:230 +#: client/src/forms/JobTemplates.js:261 +#: client/src/forms/JobTemplates.js:279 +#: client/src/forms/JobTemplates.js:369 +#: client/src/forms/JobTemplates.js:68 +#: client/src/forms/JobTemplates.js:92 msgid "Prompt on launch" msgstr "" -#: client/src/forms/JobTemplates.js:252 -#: client/src/forms/JobTemplates.js:270 +#: client/src/forms/JobTemplates.js:253 +#: client/src/forms/JobTemplates.js:271 #: client/src/forms/WorkflowMaker.js:139 #: client/src/forms/WorkflowMaker.js:154 msgid "Provide a comma separated list of tags." msgstr "" -#: client/src/forms/JobTemplates.js:220 +#: client/src/forms/JobTemplates.js:221 #: client/src/forms/WorkflowMaker.js:123 msgid "Provide a host pattern to further constrain the list of hosts that will be managed or affected by the playbook. Multiple patterns can be separated by %s %s or %s" msgstr "" -#: client/src/forms/JobTemplates.js:312 -#: client/src/forms/JobTemplates.js:320 +#: client/src/forms/JobTemplates.js:313 +#: client/src/forms/JobTemplates.js:321 msgid "Provisioning Callback URL" msgstr "" @@ -1478,12 +1567,16 @@ msgstr "" msgid "RECENTLY USED JOB TEMPLATES" msgstr "" -#: client/src/lists/Projects.js:70 +#: client/src/lists/Projects.js:76 #: client/src/partials/jobs.html:15 #: client/src/portal-mode/portal-mode-jobs.partial.html:12 msgid "REFRESH" msgstr "" +#: client/src/forms/JobTemplates.js:99 +msgid "RESET" +msgstr "" + #: client/src/helpers/Credentials.js:98 msgid "RSA Private Key" msgstr "" @@ -1494,10 +1587,14 @@ msgid "Recipient List" msgstr "" #: client/src/bread-crumb/bread-crumb.partial.html:6 -#: client/src/lists/Projects.js:66 +#: client/src/lists/Projects.js:72 msgid "Refresh the page" msgstr "" +#: client/src/lists/CompletedJobs.js:75 +msgid "Relaunch using the same parameters" +msgstr "" + #: client/src/forms/Teams.js:144 #: client/src/forms/Users.js:214 msgid "Remove" @@ -1511,16 +1608,29 @@ msgstr "" msgid "Request License" msgstr "" +#: client/src/lists/Projects.js:42 +msgid "Revision" +msgstr "" + +#: client/src/controllers/Projects.js:657 +msgid "Revision #" +msgstr "" + #: client/src/forms/Credentials.js:454 #: client/src/forms/Inventories.js:120 #: client/src/forms/Inventories.js:166 #: client/src/forms/Organizations.js:88 +#: client/src/forms/Projects.js:250 #: client/src/forms/Teams.js:137 #: client/src/forms/Teams.js:99 #: client/src/forms/Users.js:201 msgid "Role" msgstr "" +#: client/src/controllers/Projects.js:657 +msgid "SCM Branch" +msgstr "" + #: client/src/forms/Projects.js:155 msgid "SCM Clean" msgstr "" @@ -1563,7 +1673,7 @@ msgstr "" msgid "SETTINGS" msgstr "" -#: client/src/login/loginModal/loginModal.partial.html:93 +#: client/src/login/loginModal/loginModal.partial.html:97 msgid "SIGN IN" msgstr "" @@ -1571,7 +1681,7 @@ msgstr "" msgid "SIGN IN WITH" msgstr "" -#: client/src/app.js:503 +#: client/src/app.js:509 msgid "SOCKETS" msgstr "" @@ -1600,15 +1710,11 @@ msgstr "" msgid "Satellite 6 Host" msgstr "" -#: client/src/shared/form-generator.js:1699 -msgid "Save" -msgstr "" - #: client/src/license/license.partial.html:122 msgid "Save successful!" msgstr "" -#: client/src/lists/Templates.js:93 +#: client/src/lists/Templates.js:91 msgid "Schedule" msgstr "" @@ -1620,7 +1726,7 @@ msgstr "" msgid "Schedule future SCM updates" msgstr "" -#: client/src/lists/Templates.js:96 +#: client/src/lists/Templates.js:94 msgid "Schedule future job template runs" msgstr "" @@ -1648,25 +1754,25 @@ msgstr "" msgid "Select from the list of directories found in the base path.Together the base path and the playbook directory provide the full path used to locate playbooks." msgstr "" -#: client/src/forms/JobTemplates.js:151 +#: client/src/forms/JobTemplates.js:152 #: client/src/forms/WorkflowMaker.js:67 msgid "Select the credential you want the job to use when accessing the remote hosts. Choose the credential containing the username and SSH key or password that Ansible will need to log into the remote hosts." msgstr "" -#: client/src/forms/JobTemplates.js:84 +#: client/src/forms/JobTemplates.js:85 #: client/src/forms/WorkflowMaker.js:88 msgid "Select the inventory containing the hosts you want this job to manage." msgstr "" -#: client/src/forms/JobTemplates.js:129 +#: client/src/forms/JobTemplates.js:130 msgid "Select the playbook to be executed by this job." msgstr "" -#: client/src/forms/JobTemplates.js:112 +#: client/src/forms/JobTemplates.js:113 msgid "Select the project containing the playbook you want this job to execute." msgstr "" -#: client/src/forms/JobTemplates.js:173 +#: client/src/forms/JobTemplates.js:174 msgid "Selecting an optional cloud credential in the job template will pass along the access credentials to the running playbook, allowing provisioning into the cloud without manually passing parameters to the included modules." msgstr "" @@ -1678,12 +1784,12 @@ msgstr "" msgid "Service Account Email Address" msgstr "" -#: client/src/forms/JobTemplates.js:59 +#: client/src/forms/JobTemplates.js:60 #: client/src/forms/WorkflowMaker.js:108 msgid "Setting the type to %s will execute the playbook and store any scanned facts for use with Tower's System Tracking feature." msgstr "" -#: client/src/forms/JobTemplates.js:56 +#: client/src/forms/JobTemplates.js:57 msgid "Setting the type to %s will not execute the playbook." msgstr "" @@ -1695,32 +1801,29 @@ msgstr "" msgid "Settings" msgstr "" -#: client/src/shared/form-generator.js:859 -msgid "Show" -msgstr "" - #: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:34 #: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:45 -#: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:66 +#: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:56 +#: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:77 msgid "Sign in with %s" msgstr "" -#: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:53 +#: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:64 msgid "Sign in with %s Organizations" msgstr "" -#: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:51 +#: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:62 msgid "Sign in with %s Teams" msgstr "" -#: client/src/forms/JobTemplates.js:265 -#: client/src/forms/JobTemplates.js:273 +#: client/src/forms/JobTemplates.js:266 +#: client/src/forms/JobTemplates.js:274 #: client/src/forms/WorkflowMaker.js:149 #: client/src/forms/WorkflowMaker.js:157 msgid "Skip Tags" msgstr "" -#: client/src/forms/JobTemplates.js:271 +#: client/src/forms/JobTemplates.js:272 #: client/src/forms/WorkflowMaker.js:155 msgid "Skip tags are useful when you have a large playbook, and you want to skip specific parts of a play or task." msgstr "" @@ -1750,7 +1853,7 @@ msgid "Split up your organization to associate content and control permissions f msgstr "" #: client/src/lists/PortalJobTemplates.js:42 -#: client/src/lists/Templates.js:88 +#: client/src/lists/Templates.js:86 msgid "Start a job using this template" msgstr "" @@ -1759,6 +1862,10 @@ msgstr "" msgid "Start an SCM update" msgstr "" +#: client/src/dashboard/hosts/dashboard-hosts.list.js:49 +msgid "Status" +msgstr "" + #: client/src/license/license.partial.html:121 msgid "Submit" msgstr "" @@ -1792,7 +1899,7 @@ msgstr "" msgid "System Auditor" msgstr "" -#: client/src/app.js:339 +#: client/src/app.js:341 msgid "TEAMS" msgstr "" @@ -1805,7 +1912,7 @@ msgstr "" msgid "TIME" msgstr "" -#: client/src/forms/JobTemplates.js:253 +#: client/src/forms/JobTemplates.js:254 #: client/src/forms/WorkflowMaker.js:140 msgid "Tags are useful when you have a large playbook, and you want to run a specific part of a play or task." msgstr "" @@ -1818,6 +1925,7 @@ msgstr "" #: client/src/forms/Inventories.js:126 #: client/src/forms/Inventories.js:173 #: client/src/forms/Organizations.js:95 +#: client/src/forms/Projects.js:256 msgid "Team Roles" msgstr "" @@ -1849,7 +1957,7 @@ msgstr "" msgid "The Project ID is the GCE assigned identification. It is constructed as two words followed by a three digit number. Such as:" msgstr "" -#: client/src/controllers/Projects.js:692 +#: client/src/controllers/Projects.js:693 msgid "The SCM update process is running." msgstr "" @@ -1865,7 +1973,7 @@ msgstr "" msgid "The host value" msgstr "" -#: client/src/forms/JobTemplates.js:207 +#: client/src/forms/JobTemplates.js:208 msgid "The number of parallel or simultaneous processes to use while executing the playbook. 0 signifies the default value from the %sansible configuration file%s." msgstr "" @@ -1893,13 +2001,16 @@ msgstr "" msgid "This is the tenant name. This value is usually the same as the username." msgstr "" +#: client/src/notifications/notifications.list.js:21 +msgid "This list is populated by notification templates added from the %sNotifications%s section" +msgstr "" + #: client/src/notifications/notificationTemplates.form.js:199 msgid "This must be of the form %s." msgstr "" -#: client/src/shared/form-generator.js:839 -#: client/src/shared/form-generator.js:964 -msgid "This value does not match the password you entered previously. Please confirm that password." +#: client/src/forms/Users.js:160 +msgid "This user is not a member of any teams" msgstr "" #: client/src/dashboard/lists/jobs/jobs-list.partial.html:14 @@ -1918,10 +2029,6 @@ msgstr "" msgid "To learn more about the IAM STS Token, refer to the %sAmazon documentation%s." msgstr "" -#: client/src/shared/form-generator.js:864 -msgid "Toggle the display of plaintext." -msgstr "" - #: client/src/notifications/shared/type-change.service.js:34 #: client/src/notifications/shared/type-change.service.js:40 msgid "Token" @@ -1934,9 +2041,9 @@ msgstr "" #: client/src/forms/WorkflowMaker.js:34 #: client/src/lists/CompletedJobs.js:50 #: client/src/lists/Credentials.js:39 -#: client/src/lists/Projects.js:42 +#: client/src/lists/Projects.js:48 #: client/src/lists/ScheduledJobs.js:42 -#: client/src/lists/Templates.js:32 +#: client/src/lists/Templates.js:31 #: client/src/notifications/notificationTemplates.form.js:54 #: client/src/notifications/notificationTemplates.list.js:38 #: client/src/notifications/notifications.list.js:31 @@ -1960,15 +2067,15 @@ msgid "Type an option on each line. The pound symbol (#) is not required." msgstr "" #: client/src/controllers/Projects.js:402 -#: client/src/controllers/Projects.js:683 +#: client/src/controllers/Projects.js:684 msgid "URL popover text" msgstr "" -#: client/src/login/loginModal/loginModal.partial.html:45 +#: client/src/login/loginModal/loginModal.partial.html:49 msgid "USERNAME" msgstr "" -#: client/src/app.js:363 +#: client/src/app.js:365 msgid "USERS" msgstr "" @@ -1976,6 +2083,10 @@ msgstr "" msgid "Update Not Found" msgstr "" +#: client/src/controllers/Projects.js:693 +msgid "Update in Progress" +msgstr "" + #: client/src/forms/Projects.js:173 msgid "Update on Launch" msgstr "" @@ -2005,6 +2116,7 @@ msgstr "" #: client/src/forms/Inventories.js:115 #: client/src/forms/Inventories.js:161 #: client/src/forms/Organizations.js:83 +#: client/src/forms/Projects.js:245 #: client/src/forms/Teams.js:94 msgid "User" msgstr "" @@ -2059,8 +2171,8 @@ msgstr "" msgid "Vault Password" msgstr "" -#: client/src/forms/JobTemplates.js:234 -#: client/src/forms/JobTemplates.js:241 +#: client/src/forms/JobTemplates.js:235 +#: client/src/forms/JobTemplates.js:242 msgid "Verbosity" msgstr "" @@ -2072,9 +2184,9 @@ msgstr "" #: client/src/dashboard/graphs/dashboard-graphs.partial.html:58 #: client/src/inventory-scripts/inventory-scripts.list.js:65 #: client/src/lists/Credentials.js:80 -#: client/src/lists/Inventories.js:86 -#: client/src/lists/Teams.js:70 -#: client/src/lists/Templates.js:117 +#: client/src/lists/Inventories.js:85 +#: client/src/lists/Teams.js:69 +#: client/src/lists/Templates.js:115 #: client/src/lists/Users.js:78 #: client/src/notifications/notificationTemplates.list.js:80 msgid "View" @@ -2088,7 +2200,8 @@ msgstr "" msgid "View JSON examples at %s" msgstr "" -#: client/src/shared/form-generator.js:1723 +#: client/src/forms/JobTemplates.js:450 +#: client/src/forms/Workflows.js:162 msgid "View Survey" msgstr "" @@ -2112,7 +2225,7 @@ msgstr "" msgid "View information about this version of Ansible Tower." msgstr "" -#: client/src/lists/Inventories.js:88 +#: client/src/lists/Inventories.js:87 msgid "View inventory" msgstr "" @@ -2124,15 +2237,15 @@ msgstr "" msgid "View notification" msgstr "" -#: client/src/lists/Teams.js:73 +#: client/src/lists/Teams.js:72 msgid "View team" msgstr "" -#: client/src/lists/Templates.js:119 +#: client/src/lists/Templates.js:117 msgid "View template" msgstr "" -#: client/src/lists/Projects.js:102 +#: client/src/lists/Projects.js:108 msgid "View the project" msgstr "" @@ -2144,7 +2257,7 @@ msgstr "" msgid "View user" msgstr "" -#: client/src/login/loginModal/loginModal.partial.html:13 +#: client/src/login/loginModal/loginModal.partial.html:17 msgid "Welcome to Ansible Tower!  Please sign in." msgstr "" @@ -2152,41 +2265,36 @@ msgstr "" msgid "Welcome to Ansible Tower! Please complete the steps below to acquire a license." msgstr "" -#: client/src/forms/JobTemplates.js:54 +#: client/src/forms/JobTemplates.js:55 #: client/src/forms/WorkflowMaker.js:104 msgid "When this template is submitted as a job, setting the type to %s will execute the playbook, running tasks on the selected hosts." msgstr "" -#: client/src/forms/Workflows.js:175 -#: client/src/shared/form-generator.js:1727 +#: client/src/forms/Workflows.js:186 msgid "Workflow Editor" msgstr "" -#: client/src/shared/form-generator.js:976 -msgid "Your password must be %d characters long." +#: client/src/lists/Templates.js:69 +msgid "Workflow Job Template" msgstr "" -#: client/src/shared/form-generator.js:981 -msgid "Your password must contain a lowercase letter." +#: client/src/controllers/Projects.js:468 +msgid "You do not have access to view this property" msgstr "" -#: client/src/shared/form-generator.js:991 -msgid "Your password must contain a number." +#: client/src/controllers/Projects.js:284 +msgid "You do not have permission to add a project." msgstr "" -#: client/src/shared/form-generator.js:986 -msgid "Your password must contain an uppercase letter." -msgstr "" - -#: client/src/shared/form-generator.js:996 -msgid "Your password must contain one of the following characters: %s" +#: client/src/controllers/Users.js:141 +msgid "You do not have permission to add a user." msgstr "" #: client/src/controllers/Projects.js:176 msgid "Your request to cancel the update was submitted to the task manager." msgstr "" -#: client/src/login/loginModal/loginModal.partial.html:18 +#: client/src/login/loginModal/loginModal.partial.html:22 msgid "Your session timed out due to inactivity. Please sign in." msgstr "" From 7bd8b8d051fe57e35c8f1ce62dcf5a31bf76de1b Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Tue, 6 Dec 2016 12:26:26 -0500 Subject: [PATCH 3/4] Fix syntax, regenerate pot file. Thanks jshint! --- awx/ui/client/src/controllers/Users.js | 2 +- awx/ui/client/src/helpers/Credentials.js | 4 +- awx/ui/client/src/shared/form-generator.js | 6 +- awx/ui/po/ansible-tower-ui.pot | 131 +++++++++++++++++++++ 4 files changed, 137 insertions(+), 6 deletions(-) diff --git a/awx/ui/client/src/controllers/Users.js b/awx/ui/client/src/controllers/Users.js index e53f214e0f..cf7f63b9a1 100644 --- a/awx/ui/client/src/controllers/Users.js +++ b/awx/ui/client/src/controllers/Users.js @@ -114,7 +114,7 @@ UsersList.$inject = ['$scope', '$rootScope', '$stateParams', export function UsersAdd($scope, $rootScope, $stateParams, UserForm, GenerateForm, Rest, Alert, ProcessErrors, ReturnToCaller, ClearScope, - GetBasePath, ResetForm, Wait, CreateSelect2, $state, $location) { + GetBasePath, ResetForm, Wait, CreateSelect2, $state, $location, i18n) { ClearScope(); diff --git a/awx/ui/client/src/helpers/Credentials.js b/awx/ui/client/src/helpers/Credentials.js index fb7477d61f..a58c37bce8 100644 --- a/awx/ui/client/src/helpers/Credentials.js +++ b/awx/ui/client/src/helpers/Credentials.js @@ -223,8 +223,8 @@ angular.module('CredentialsHelper', ['Utilities']) } ]) -.factory('FormSave', ['$rootScope', '$location', 'Alert', 'Rest', 'ProcessErrors', 'Empty', 'GetBasePath', 'CredentialForm', 'ReturnToCaller', 'Wait', '$state', - function ($rootScope, $location, Alert, Rest, ProcessErrors, Empty, GetBasePath, CredentialForm, ReturnToCaller, Wait, $state) { +.factory('FormSave', ['$rootScope', '$location', 'Alert', 'Rest', 'ProcessErrors', 'Empty', 'GetBasePath', 'CredentialForm', 'ReturnToCaller', 'Wait', '$state', 'i18n', + function ($rootScope, $location, Alert, Rest, ProcessErrors, Empty, GetBasePath, CredentialForm, ReturnToCaller, Wait, $state, i18n) { return function (params) { var scope = params.scope, mode = params.mode, diff --git a/awx/ui/client/src/shared/form-generator.js b/awx/ui/client/src/shared/form-generator.js index 3c931b64d2..7771db2922 100644 --- a/awx/ui/client/src/shared/form-generator.js +++ b/awx/ui/client/src/shared/form-generator.js @@ -1186,9 +1186,9 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat html += "
"; if (field.max !== undefined) { - html += i18n.sprintf(i18n._("Please enter a number greater than %d and less than %d."), field.min, field.max) + html += i18n.sprintf(i18n._("Please enter a number greater than %d and less than %d."), field.min, field.max); } else { - html += i18n.sprintf(i18n._("Please enter a number greater than %d.", field.min) + html += i18n.sprintf(i18n._("Please enter a number greater than %d."), field.min); } html += "
\n"; } @@ -1295,7 +1295,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat if (field.required || field.awRequiredWhen) { html += "
" + i18n._("Please select a value.)" + "
\n"; + this.form.name + '_form.' + fld + ".$error.required\">" + i18n._("Please select a value.") + "\n"; } html += "
\n"; diff --git a/awx/ui/po/ansible-tower-ui.pot b/awx/ui/po/ansible-tower-ui.pot index 62433d3bc7..e3226dc3f4 100644 --- a/awx/ui/po/ansible-tower-ui.pot +++ b/awx/ui/po/ansible-tower-ui.pot @@ -120,6 +120,7 @@ msgstr "" #: client/src/forms/JobTemplates.js:459 #: client/src/forms/Workflows.js:171 +#: client/src/shared/form-generator.js:1703 msgid "Add Survey" msgstr "" @@ -147,6 +148,10 @@ msgstr "" msgid "Add user to team" msgstr "" +#: client/src/shared/form-generator.js:1450 +msgid "Admin" +msgstr "" + #: client/src/dashboard/graphs/dashboard-graphs.partial.html:37 #: client/src/dashboard/graphs/dashboard-graphs.partial.html:43 #: client/src/dashboard/graphs/dashboard-graphs.partial.html:65 @@ -194,6 +199,10 @@ msgstr "" msgid "Ask at runtime?" msgstr "" +#: client/src/shared/form-generator.js:1452 +msgid "Auditor" +msgstr "" + #: client/src/forms/Credentials.js:73 msgid "Authentication for network device access. This can include SSH keys, usernames, passwords, and authorize information. Network credentials are used when submitting jobs to run playbooks against network devices." msgstr "" @@ -256,6 +265,10 @@ msgstr "" msgid "Call to get project failed. GET status:" msgstr "" +#: client/src/shared/form-generator.js:1691 +msgid "Cancel" +msgstr "" + #: client/src/controllers/Projects.js:196 msgid "Cancel Not Allowed" msgstr "" @@ -268,6 +281,10 @@ msgstr "" msgid "Canceled. Click for details" msgstr "" +#: client/src/shared/form-generator.js:1084 +msgid "Choose a %s" +msgstr "" + #: client/src/license/license.partial.html:97 msgid "Choose your license file, agree to the End User License Agreement, and click submit." msgstr "" @@ -300,6 +317,10 @@ msgstr "" msgid "Client Secret" msgstr "" +#: client/src/shared/form-generator.js:1695 +msgid "Close" +msgstr "" + #: client/src/forms/JobTemplates.js:164 #: client/src/forms/JobTemplates.js:176 msgid "Cloud Credential" @@ -525,6 +546,7 @@ msgid "Destination SMS Number" msgstr "" #: client/src/license/license.partial.html:5 +#: client/src/shared/form-generator.js:1481 msgid "Details" msgstr "" @@ -563,6 +585,7 @@ msgstr "" #: client/src/forms/JobTemplates.js:466 #: client/src/forms/Workflows.js:178 +#: client/src/shared/form-generator.js:1707 msgid "Edit Survey" msgstr "" @@ -990,6 +1013,7 @@ msgstr "" #: client/src/lists/PortalJobTemplates.js:39 #: client/src/lists/Templates.js:83 +#: client/src/shared/form-generator.js:1699 msgid "Launch" msgstr "" @@ -1037,6 +1061,10 @@ msgstr "" msgid "Live events: error connecting to the Tower server." msgstr "" +#: client/src/shared/form-generator.js:1962 +msgid "Loading..." +msgstr "" + #: client/src/main-menu/main-menu.partial.html:188 msgid "Log Out" msgstr "" @@ -1240,6 +1268,14 @@ msgstr "" msgid "Number associated with the \"Messaging Service\" in Twilio." msgstr "" +#: client/src/shared/form-generator.js:547 +msgid "OFF" +msgstr "" + +#: client/src/shared/form-generator.js:545 +msgid "ON" +msgstr "" + #: client/src/organizations/list/organizations-list.partial.html:6 msgid "ORGANIZATIONS" msgstr "" @@ -1301,6 +1337,7 @@ msgid "PASSWORD" msgstr "" #: client/src/organizations/list/organizations-list.partial.html:44 +#: client/src/shared/form-generator.js:1865 #: client/src/shared/list-generator/list-generator.factory.js:245 msgid "PLEASE ADD ITEMS TO THIS LIST" msgstr "" @@ -1404,6 +1441,23 @@ msgstr "" msgid "Please click the button below to visit Ansible's website to get a Tower license key." msgstr "" +#: client/src/shared/form-generator.js:828 +#: client/src/shared/form-generator.js:953 +msgid "Please enter a URL that begins with ssh, http or https. The URL may not contain the '@' character." +msgstr "" + +#: client/src/shared/form-generator.js:1189 +msgid "Please enter a number greater than %d and less than %d." +msgstr "" + +#: client/src/shared/form-generator.js:1191 +msgid "Please enter a number greater than %d." +msgstr "" + +#: client/src/shared/form-generator.js:1183 +msgid "Please enter a number." +msgstr "" + #: client/src/login/loginModal/loginModal.partial.html:78 msgid "Please enter a password." msgstr "" @@ -1412,6 +1466,17 @@ msgstr "" msgid "Please enter a username." msgstr "" +#: client/src/shared/form-generator.js:818 +#: client/src/shared/form-generator.js:943 +msgid "Please enter a valid email address." +msgstr "" + +#: client/src/shared/form-generator.js:1044 +#: client/src/shared/form-generator.js:813 +#: client/src/shared/form-generator.js:938 +msgid "Please enter a value." +msgstr "" + #: client/src/lists/CompletedJobs.js:13 msgid "Please save and run a job to view" msgstr "" @@ -1455,6 +1520,21 @@ msgstr "" msgid "Please select a Machine Credential or check the Prompt on launch option." msgstr "" +#: client/src/shared/form-generator.js:1224 +msgid "Please select a number between" +msgstr "" + +#: client/src/shared/form-generator.js:1220 +msgid "Please select a number." +msgstr "" + +#: client/src/shared/form-generator.js:1111 +#: client/src/shared/form-generator.js:1180 +#: client/src/shared/form-generator.js:1298 +#: client/src/shared/form-generator.js:1403 +msgid "Please select a value." +msgstr "" + #: client/src/forms/JobTemplates.js:83 msgid "Please select an Inventory or check the Prompt on launch option." msgstr "" @@ -1463,6 +1543,10 @@ msgstr "" msgid "Please select an Inventory." msgstr "" +#: client/src/shared/form-generator.js:1217 +msgid "Please select at least one value." +msgstr "" + #: client/src/notifications/shared/type-change.service.js:27 msgid "Port" msgstr "" @@ -1710,6 +1794,10 @@ msgstr "" msgid "Satellite 6 Host" msgstr "" +#: client/src/shared/form-generator.js:1687 +msgid "Save" +msgstr "" + #: client/src/license/license.partial.html:122 msgid "Save successful!" msgstr "" @@ -1801,6 +1889,10 @@ msgstr "" msgid "Settings" msgstr "" +#: client/src/shared/form-generator.js:843 +msgid "Show" +msgstr "" + #: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:34 #: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:45 #: client/src/login/loginModal/thirdPartySignOn/thirdPartySignOn.service.js:56 @@ -1953,6 +2045,10 @@ msgstr "" msgid "Test notification" msgstr "" +#: client/src/shared/form-generator.js:1409 +msgid "That value was not found. Please enter or select a valid value." +msgstr "" + #: client/src/helpers/Credentials.js:105 msgid "The Project ID is the GCE assigned identification. It is constructed as two words followed by a three digit number. Such as:" msgstr "" @@ -2013,6 +2109,11 @@ msgstr "" msgid "This user is not a member of any teams" msgstr "" +#: client/src/shared/form-generator.js:823 +#: client/src/shared/form-generator.js:948 +msgid "This value does not match the password you entered previously. Please confirm that password." +msgstr "" + #: client/src/dashboard/lists/jobs/jobs-list.partial.html:14 msgid "Time" msgstr "" @@ -2029,6 +2130,10 @@ msgstr "" msgid "To learn more about the IAM STS Token, refer to the %sAmazon documentation%s." msgstr "" +#: client/src/shared/form-generator.js:848 +msgid "Toggle the display of plaintext." +msgstr "" + #: client/src/notifications/shared/type-change.service.js:34 #: client/src/notifications/shared/type-change.service.js:40 msgid "Token" @@ -2202,6 +2307,7 @@ msgstr "" #: client/src/forms/JobTemplates.js:450 #: client/src/forms/Workflows.js:162 +#: client/src/shared/form-generator.js:1711 msgid "View Survey" msgstr "" @@ -2271,6 +2377,7 @@ msgid "When this template is submitted as a job, setting the type to %s will exe msgstr "" #: client/src/forms/Workflows.js:186 +#: client/src/shared/form-generator.js:1715 msgid "Workflow Editor" msgstr "" @@ -2290,6 +2397,26 @@ msgstr "" msgid "You do not have permission to add a user." msgstr "" +#: client/src/shared/form-generator.js:960 +msgid "Your password must be %d characters long." +msgstr "" + +#: client/src/shared/form-generator.js:965 +msgid "Your password must contain a lowercase letter." +msgstr "" + +#: client/src/shared/form-generator.js:975 +msgid "Your password must contain a number." +msgstr "" + +#: client/src/shared/form-generator.js:970 +msgid "Your password must contain an uppercase letter." +msgstr "" + +#: client/src/shared/form-generator.js:980 +msgid "Your password must contain one of the following characters: %s" +msgstr "" + #: client/src/controllers/Projects.js:176 msgid "Your request to cancel the update was submitted to the task manager." msgstr "" @@ -2298,6 +2425,10 @@ msgstr "" msgid "Your session timed out due to inactivity. Please sign in." msgstr "" +#: client/src/shared/form-generator.js:1224 +msgid "and" +msgstr "" + #: client/src/forms/Credentials.js:139 #: client/src/forms/Credentials.js:362 msgid "set in helpers/credentials" From 933cc83b90bffba0f065539b284e44caee48bbe0 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Mon, 12 Dec 2016 11:35:41 -0500 Subject: [PATCH 4/4] Mark up UsersAdd properly. --- awx/ui/client/src/controllers/Users.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awx/ui/client/src/controllers/Users.js b/awx/ui/client/src/controllers/Users.js index cf7f63b9a1..9aade4fbf8 100644 --- a/awx/ui/client/src/controllers/Users.js +++ b/awx/ui/client/src/controllers/Users.js @@ -201,7 +201,7 @@ export function UsersAdd($scope, $rootScope, $stateParams, UserForm, UsersAdd.$inject = ['$scope', '$rootScope', '$stateParams', 'UserForm', 'GenerateForm', 'Rest', 'Alert', 'ProcessErrors', 'ReturnToCaller', 'ClearScope', 'GetBasePath', - 'ResetForm', 'Wait', 'CreateSelect2', '$state', '$location' + 'ResetForm', 'Wait', 'CreateSelect2', '$state', '$location', 'i18n' ]; export function UsersEdit($scope, $rootScope, $location,