<commit_before><commit_msg>Duplicating messages file.<commit_after>#
# Copyright 2018 Rundeck, Inc. (http://rundeck.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

default.doesnt.match.message=Property [{0}] of class [{1}] with value [{2}] does not match the required pattern [{3}]
default.invalid.url.message=Property [{0}] of class [{1}] with value [{2}] is not a valid URL
default.invalid.creditCard.message=Property [{0}] of class [{1}] with value [{2}] is not a valid credit card number
default.invalid.email.message=Property [{0}] of class [{1}] with value [{2}] is not a valid e-mail address.
default.invalid.message=Property [{0}] of class [{1}] is not a valid [{2}].
default.invalid.range.message=Property [{0}] of class [{1}] with value [{2}] does not fall within the valid range from [{3}] to [{4}]
default.invalid.size.message=Property [{0}] of class [{1}] with value [{2}] does not fall within the valid size range from [{3}] to [{4}]
default.invalid.length.message=Property [{0}] of class [{1}] with value [{2}] does not fall within the valid length range from [{3}] to [{4}]
default.invalid.min.message=Property [{0}] of class [{1}] with value [{2}] is less than minimum value [{3}]
default.invalid.max.message=Property [{0}] of class [{1}] with value [{2}] exceeds maxim value [{3}]
default.invalid.max.length.message=Property [{0}] of class [{1}] with value [{2}] exceeds the maxim length of [{3}]
default.invalid.min.length.message=Property [{0}] of class [{1}] with value [{2}] is less than the minimum length of [{3}]
default.invalid.max.size.message=Property [{0}] of class [{1}] with value [{2}] exceeds the maxim size of [{3}]
default.invalid.min.size.message=Property [{0}] of class [{1}] with value [{2}] is less than the minimum size of [{3}]
default.not.inlist.message=Property [{0}] of class [{1}] with value [{2}] is not contained within the list [{3}]
default.blank.message=Property [{0}] of class [{1}] cannot be blank
default.not.equal.message=Property [{0}] of class [{1}] with value [{2}] cannot equal [{3}]
default.null.message=Property [{0}] of class [{1}] cannot be null
default.not.unique.message=Property [{0}] of class [{1}] with value [{2}] must be unique
default.not.editable.message=Property [{0}] of class [{1}] with value [{2}] cannot be changed from [{3}]
main.app.id=rundeckapp
main.app.default.name=Rundeck
main.app.logo=rundeck2-icon-16.png
main.app.logo.hires=rundeck2-icon-32.png
main.app.logo.width=16px
main.app.logo.height=16px
default.paginate.prev=-
default.paginate.next=+
default.paginate.rew=«
default.paginate.ff=»

# main menu item names
gui.menu.Dashboard=Dashboard
gui.menu.Workflows=Jobs
gui.menu.Events=Activity
gui.menu.Nodes=Nodes
gui.menu.Adhoc=Commands
gui.menu.Admin=Configure
gui.menu.ProjectSettings=Project Settings
gui.menu.Projects=Projects
gui.menu.PasswordUtility=Password Utility
gui.menu.Users=User Summary

# login form text
gui.login.welcome=

domain.ScheduledExecution.title=Job

BaseNodeFilters.title.project=Project
BaseNodeFilters.title.nodeInclude=Hostname
BaseNodeFilters.title.nodeIncludeName=Name
BaseNodeFilters.title.nodeIncludeType=Type
BaseNodeFilters.title.nodeIncludeTags=Tags
BaseNodeFilters.title.nodeIncludeOsName=OS Name
BaseNodeFilters.title.nodeIncludeOsFamily=OS Family
BaseNodeFilters.title.nodeIncludeOsArch=OS Architecture
BaseNodeFilters.title.nodeIncludeOsVersion=OS Version

BaseNodeFilters.title.nodeExclude= Hostname
BaseNodeFilters.title.nodeExcludeName= Name
BaseNodeFilters.title.nodeExcludeType= Type
BaseNodeFilters.title.nodeExcludeTags= Tags
BaseNodeFilters.title.nodeExcludeOsName= OS Name
BaseNodeFilters.title.nodeExcludeOsFamily= OS Family
BaseNodeFilters.title.nodeExcludeOsArch= OS Architecture
BaseNodeFilters.title.nodeExcludeOsVersion= OS Version
BaseNodeFilters.title.hostname=Hostname
BaseNodeFilters.title.name=Name
BaseNodeFilters.title.tags=Tags
BaseNodeFilters.title.osName=OS Name
BaseNodeFilters.title.os-name=OS Name
BaseNodeFilters.title.osFamily=OS Family
BaseNodeFilters.title.os-family=OS Family
BaseNodeFilters.title.osArch=OS Architecture
BaseNodeFilters.title.os-arch=OS Architecture
BaseNodeFilters.title.osVersion=OS Version
BaseNodeFilters.title.os-version=OS Version

# job query field labels
jobquery.title.jobFilter=Job Name
jobquery.title.idlist=Job ID
jobquery.title.jobIdFilter=Job ID
jobquery.title.descFilter=Job Description
jobquery.title.objFilter=Resource
jobquery.title.scheduledFilter=Scheduled
jobquery.title.serverNodeUUIDFilter=Server Node UUID
jobquery.title.typeFilter=Type
jobquery.title.cmdFilter=Command
jobquery.title.userFilter=User
jobquery.title.projFilter=Project
jobquery.title.statFilter=Result
jobquery.title.startFilter=Start Time
jobquery.title.startbeforeFilter=Start Before
jobquery.title.startafterFilter=Start After
jobquery.title.endbeforeFilter=End Before
jobquery.title.endafterFilter=End After
jobquery.title.endFilter=Time
jobquery.title.durationFilter=Duration
jobquery.title.outFilter=Output
jobquery.title.objinfFilter=Resource Info
jobquery.title.cmdinfFilter=Command Info
jobquery.title.groupPath=Group
jobquery.title.summary=Summary
jobquery.title.duration=Duration
jobquery.title.loglevelFilter=Loglevel
jobquery.title.loglevelFilter.label.DEBUG=Debug
jobquery.title.loglevelFilter.label.VERBOSE=Verbose
jobquery.title.loglevelFilter.label.INFO=Information
jobquery.title.loglevelFilter.label.WARN=Warning
jobquery.title.loglevelFilter.label.ERR=Error
jobquery.title.adhocExecutionFilter=Job Type
jobquery.title.adhocExecutionFilter.label.true=Command
jobquery.title.adhocExecutionFilter.label.false=Defined Command
jobquery.title.adhocLocalStringFilter=Script Content
jobquery.title.adhocRemoteStringFilter=Shell Command
jobquery.title.adhocFilepathFilter=Script File Path
jobquery.title.argStringFilter=Script File Arguments
scheduledExecution.argString.datestamp.invalid=The date format string is invalid: {0}
ScheduledExecution.project.blank=Project must be specified
ScheduledExecution.jobName.blank=Job Name was not entered
ScheduledExecution.jobName.matches.invalid=Job Name cannot have a "/" character
ScheduledExecution.jobName.unauthorized=Not authorized: {0} Job with name: {1}
ScheduledExecution.groupPath.unauthorized=Not authorized: {0} Job with group: {1}
rundeck.ScheduledExecution.uuid.matches.invalid=UUID cannot have spaces
scheduledExecution.project.invalid.message=Project does not exist: {0}
scheduledExecution.name.blank.message=Resource must be specified
scheduledExecution.type.blank.message=Resource must be specified
scheduledExecution.command.blank.message=Command must be specified
commandExec.adhocExecution.command.blank.message=Command must be specified
commandExec.adhocExecution.type.blank.message=Type name must be specified
scheduledExecution.command.notfound.message=Error retrieving command from the context: {0}
scheduledExecution.nodeIncludeExclude.blank.message=Included or Excluded node pattern is required to do Node Dispatch
scheduledExecution.filter.blank.message=A filter is required to do Node Dispatch
scheduledExecution.adhocRemoteString.blank.message=Script execution must be specified
scheduledExecution.adhocLocalString.blank.message=Script cannot be empty
scheduledExecution.adhocString.blank.message=A Remote command, inline script, or script file must be specified
commandExec.adhocExecution.adhocString.blank.message=A Remote command, inline script, or script file must be specified
commandExec.adhocExecution.adhocFilepath.blank.message=A Script file path must be specified
commandExec.adhocExecution.adhocRemoteString.blank.message=A Command string must be specified
commandExec.adhocExecution.adhocLocalString.blank.message=Script must be specified
commandExec.jobName.blank.message=Job Name must be specified
commandExec.jobName.wrong.name.message=Job Name does not correspond to the UUID
Workflow.Step.jobreference.import.options.help
Workflow.stepErrorHandler.nodeStep.invalid=The Error Handler for Step {0} is of the wrong type. Error Handlers for Node Steps must also be Node Steps when the Workflow is Node-oriented.
WorkflowStep.errorHandler.nodeStep.invalid=The Error Handler must be a Node Step.
scheduledExecution.adhocString.duplicate.message=Please specify only one of Local script or Remote command or Script file
scheduledExecution.options.invalid.message=Invalid Option definition: {0}
scheduledExecution.notifications.invalid.message=Invalid Notification definition: {0}
scheduledExecution.notifications.email.blank.message=Email address cannot be blank
scheduledExecution.notifications.email.attached.blank.message=You need to select one of the option the attached options for Include Log Output
scheduledExecution.notifications.invalidemail.message=Invalid Email address: {0}
scheduledExecution.notifications.url.blank.message=Webhook URL cannot be blank
scheduledExecution.workflow.empty.message=Workflow must have at least one step
scheduledExecution.workflow.invalid.message=Workflow has one or more invalid steps
scheduledExecution.workflow.invalidstepslist.message=Workflow has one or more invalid steps: {0}
scheduledExecution.crontabString.invalid.message=Crontab string format was invalid: {0}
scheduledExecution.crontabString.noschedule.message=The Cron expression will never be triggered in the future: {0}
option.defaultValue.notallowed.message=Default Value was not in the allowed values list, and values are enforced
option.defaultValue.multivalued.notallowed.message=Default Value contains a string that was not in the allowed values list, and values are enforced: "{0}". Note: whitespace is significant.
option.defaultValue.required.message=Specify a Default Value for Required options when the Job is scheduled.
option.file.required.message=File option type cannot be Required when the Job is scheduled.
option.file.config.invalid.message=File option type config is not valid: {0}
option.regex.invalid.message=Invalid Regular Expression: {0}
option.values.regexmismatch.message=Allowed value "{0}" does not match the regex: {1}
option.enforced.emptyvalues.message=Allowed values (list or remote URL) must be specified if values are enforced
option.defaultValue.regexmismatch.message=Default value "{0}" does not match the regex: {1}
option.delimiter.blank.message=You must specify a delimiter for multivalued options
option.enforced.secure-conflict.message=Secure input cannot be used with enforced values
option.multivalued.secure-conflict.message=Secure input cannot be used with multi-valued input
option.name.duplicate.message=Option with name "{0}" already exists
disabled.execution.run=Executions are disabled.
disabled.job.run=Executions are disabled.
disabled.schedule.run=Executions are disabled.
unauthorized.job.run=You are not authorized to run this Job.
unauthorized.job.run.user=User {0} is not authorized to run this Job.
unauthorized.job.run.script=User {0} is not authorized to execute scripts in project: {1}
unauthorized.job.run.context=User {0} is not authorized to execute the command in the context: {1}
unauthorized.job.adhoc.create=Note: you will be unauthorized to run adhoc script Jobs created in this context.
unauthorized.command=You are not authorized to execute this command.
unauthorized.hidden.message=unauthorized jobs are not shown.
unauthorized.job.kill=You are not authorized to kill Jobs.
unauthorized.job.delete=You are not authorized to delete this job
unauthorized.project.create=You are not authorized to create a project. Ask your Rundeck admin to create one.
ScheduledExecutionController.save.failed=Error saving Job
ScheduledExecutionController.bulkDelete.empty=Select at least one Job to delete
scheduledExecution.nodeset.empty.warning=Warning: The Node filters specified for this Job do not match any nodes, execution may fail.
Workflow.strategy.label.node-first=Node-oriented
Workflow.strategy.label.step-first=Step-oriented
Workflow.strategy.description.node-first=Execute all steps on a node before proceeding to the next node.
Workflow.strategy.description.step-first=Execute a step on all nodes before proceeding to the next step.
Workflow.strategy.label.parallel=Parallel
Workflow.label=Workflow
Workflow.step.label=step
Workflow.step.label.add=Add a Step
Workflow.step.label.choose.the.type=Click on a Step type to add.
Workflow.step.action.delete.label=Delete this step
Workflow.step.action.confirmDelete.label=Really delete step {0}?
Workflow.stepErrorHandler.label=error handler
Workflow.stepErrorHandler.label.add=Add an Error Handler
Workflow.stepErrorHandler.action.delete.label=Delete this error handler
Workflow.stepErrorHandler.label.action.confirmDelete=Really delete error handler for step {0}?
Workflow.stepErrorHandler.description=The error handler will execute if the step fails.
Workflow.stepErrorHandler.title=Error Handler
Workflow.stepErrorHandler.keepgoingOnSuccess.label=Keep going on success.
Workflow.stepErrorHandler.keepgoingOnSuccess.description=If the Workflow keepgoing is false, this allows the Workflow to continue when the Error Handler is successful
Workflow.stepErrorHandler.label.on.error=on error\:
Workflow.stepErrorHandler.label.keep.going.on.success=keep going on success
Workflow.stepErrorHandler.label.choose.the.type=Click on a Step type to add an Error Handler
rundeck.Execution.project.job.project.mismatch.error=The Execution’s project did not match the Job’s project
rundeck.Execution.project.matches.invalid=The project name must match: {3}
rundeck.ScheduledExecution.project.matches.invalid=The project name must match: {3}
rundeck.ScheduledExecution.retry.validator.error=The retry value must be a valid integer, or contain an option reference: "{2}"
rundeck.ScheduledExecution.nodeThreadcount.validator.error=Thread Count must be an integer greater than 0
com.dtolabs.rundeck.app.support.ExtNodeFilters.project.matches.invalid=The project name must match: {3}
com.dtolabs.rundeck.app.support.ExtNodeFilters.filterName.matches.invalid=The filter name must match: {3}
com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.id.matches.invalid=The ID must match: {3}
com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.idlist.matches.invalid=The idlist must be a comma-separated list of valid IDs, matching: {3}
com.dtolabs.rundeck.app.api.ApiBulkJobDeleteRequest.ids.validator.error=The ids must be a list of valid IDs, matching: [-_a-zA-Z0-9+][-\\._a-zA-Z0-9+]*
com.dtolabs.rundeck.app.support.StorageParams.resourcePath.matches.invalid=The Storage path components must be / separated, not start with a space, and contain only [a-zA-Z0-9+,._-]
com.dtolabs.rundeck.app.support.StorageParams.relativePath.matches.invalid=The Storage path components must be / separated, not start with a space, and contain only [a-zA-Z0-9+,._-]
com.dtolabs.rundeck.app.support.StorageParams.fileName.matches.invalid=The file name must not start with a space, and can contain only [a-zA-Z0-9+,._-]: "{2}"
################################
#transplanted from Reportcenter...
################################

# Data binding errors. Use "typeMismatch.$className.$propertyName to customize (eg typeMismatch.Book.author)
typeMismatch.java.net.URL=Property {0} must be a valid URL
typeMismatch.java.net.URI=Property {0} must be a valid URI
typeMismatch.java.util.Date=Property {0} must be a valid Date
typeMismatch.java.lang.Double=Property {0} must be a valid number
typeMismatch.java.lang.Integer=Property {0} must be a valid number
typeMismatch.java.lang.Long=Property {0} must be a valid number
typeMismatch.java.lang.Short=Property {0} must be a valid number
typeMismatch.java.math.BigDecimal=Property {0} must be a valid number
typeMismatch.java.math.BigInteger=Property {0} must be a valid number

jobquery.title.titleFilter=Adhoc Command
jobquery.title.contextFilter=Context
jobquery.title.actionFilter=Action
jobquery.title.maprefUriFilter=Resource URI
jobquery.title.reportIdFilter=Name
jobquery.title.tagsFilter=Tags
jobquery.title.nodeFilter=Node
jobquery.title.nodeFilter.plural=Nodes
jobquery.title.messageFilter=Message
jobquery.title.reportKindFilter=Report Type
jobquery.title.recentFilter=Within
jobquery.title.actionTypeFilter=Action
jobquery.title.itemTypeFilter=Item Type
jobquery.title.filter=Filter

events.history.title.Name=Name
events.history.title.Summary=Summary
events.history.title.Completed=Completed
events.history.title.PercentCompleted=Percent Completed
events.history.title.PercentFailed=Percent Failed
events.history.jobname.adhoc=command
events.history.title.Success=Success
events.history.title.Failed=Failed
events.history.title.NodeFailureCount=Node Failure Count
events.history.title.Nodes=Nodes

status.label.scheduled=Scheduled
status.label.running=Started
status.label.succeed=Succeeded
status.label.succeeded=Succeeded
status.label.fail=Failed
status.label.failed=Failed
status.label.failed-with-retry=Failed, will retry
status.label.cancel=Killed
status.label.aborted=Killed
status.label.short.OK=OK
status.label.short.FAIL=FAIL

# date format used in content of All Events list items
jobslist.date.format=M/d/yy h:mm a
jobslist.date.format.ko=M/DD/YY h:mm a
jobslist.running.format.ko=h:mm a

time.unit.minute=Minute
time.unit.minute.plural=Minutes
time.unit.hour=Hour
time.unit.hour.plural=Hours
time.unit.day=Day
time.unit.day.plural=Days
time.unit.week=Week
time.unit.week.plural=Weeks
time.unit.month=Month
time.unit.month.plural=Months
time.unit.year=Year
time.unit.year.plural=Years

#API query error messages
blank="{0}" parameter cannot be blank
nullable="{0}" parameter is required
not.inList=the value "{2}" for parameter "{0}" was invalid. It must be in the list: {3}
min.notmet.int=the value "{2}" for parameter "{0}" was larger than the minimum value: {3}
max.notmet.int=the value "{2}" for parameter "{0}" was less than the maximum value: {3}

ReportFilter.name.unique=A filter with {0} "{2}" already exists. Please choose a unique name, or select the existing filter to overwrite.

#node metadata labels
node.metadata.hostname=Hostname
node.metadata.osFamily=OS Family
node.metadata.osName=OS Name
node.metadata.osArch=OS Architecture
node.metadata.osVersion=OS Version
node.metadata.type=Type
node.metadata.username=Username
node.metadata.tags=Tags

node.metadata.OsFamily.defaults=unix,windows,cygwin
node.metadata.OsName.defaults=FreeBSD,Linux,Mac OS X,SunOS,Windows XP,Windows 2003
node.metadata.OsArch.defaults=i386,i686,ppc,sparc,x86,x86_64

#Notification event type labels
notification.event.onfailure=On Failure
notification.event.onsuccess=On Success
notification.event.onstart=On Start
notification.event.onavgduration=Average Duration Exceeded
notification.event.onretryablefailure=On Retryable Failure

#metadata for resources
resource.metadata.entity.deployment-install-root=Install Root
resource.metadata.entity.deployment-basedir=Basedir
resource.metadata.entity.deployment-startup-rank=Startup Rank
resource.metadata.entity.tags=Tags

user.authorizations.title=Authorizations
user.profile.language.label=Language:

button.action.Create=Create
#execution show pages
execution.show.mode.Tail.desc=View the output file
execution.show.mode.Annotated.desc=View all output in grouped contexts sequentially
execution.show.mode.Compact.desc=View all output collated by node
execution.show.mode.Compact.title=By Node
execution.show.mode.Log.title=Log Output
execution.show.mode.Tail.title=Tail Output

execution.log.storage.state.PENDING_REMOTE=Waiting for log output to become available...
execution.log.storage.state.PENDING_LOCAL=Retrieving log output from storage...
execution.log.storage.state.WAITING=Waiting for output to start...
execution.log.storage.state.NOT_FOUND=The Execution Log could not be found.
execution.log.storage.state.ERROR=Log file availability could not be determined: {1} (via plugin "{0}")
execution.log.storage.retrieval.ERROR=Log file could not be retrieved: {1} (via plugin "{0}")

execution.state.storage.state.PENDING_REMOTE=Waiting for Execution Summary and Report detail to become available...
execution.state.storage.state.PENDING_LOCAL=Retrieving Execution Summary and Report detail from storage...
execution.state.storage.state.WAITING=Waiting for execution to start...
execution.state.storage.state.NOT_FOUND=Execution Summary and Report detail is not available.
execution.state.storage.state.ERROR=Execution Summary and Report detail availability could not be determined: {1} (via plugin "{0}")
execution.state.storage.state.UNKNOWN=Execution Summary and Report detail availability could not be determined: {0}
execution.state.storage.retrieval.ERROR=Execution Summary and Report detail could not be retrieved: {1} (via plugin "{0}")

#form text
form.option.multivalued.description=Allow multiple input values to be chosen.
form.option.multivalued.secure-conflict.message=Secure Input options do not allow multiple values
form.option.usage.secureAuth.message=Secure authentication option values are not available to scripts or commands
form.option.delimiter.description=Delimiter will be used to join all input values. Can be any string: ' ' (space), ',' (comma), etc. Note: do not include quotes.
form.option.secureInput.description=Secure input values are not stored by Rundeck after use. If the exposed value is used in a script or command then the output log may contain the value.
form.option.inputType.label=Input Type
form.option.secureInput.false.label=Plain text
form.option.date.label=Date
form.option.date.description=The date will pass to your job as a string formatted this way: mm/dd/yy HH:MM
form.option.secureInput.false.description=Plain text input.
form.option.secureExposed.true.label=Secure
form.option.secureExposed.false.label=Secure Remote Authentication
form.option.secureExposed.true.description=Password input, value exposed in scripts and commands.
form.option.secureExposed.false.description=Password input, value not exposed in scripts or commands, used only by Node Executors for authentication.

# API Messages
api.error.api-version.required=API Version not specified
api.error.api-version.unsupported=Unsupported API Version "{0}". API Request: {1}. Reason: {2}
api.error.user-unauthorized={0} is not authorized for: {1}
api.error.unknown=An unknown error occurred
api.error.invalid.request=Invalid API Request: {0}
api.error.endpoint.moved=API Request Endpoint {0} has moved to: {1}
api.error.parameter.required=parameter "{0}" is required
api.error.parameter.invalid=The value "{0}" for parameter "{1}" is not valid: {2}
api.error.parameter.not.inList=the value "{0}" for parameter "{1}" was invalid. It must be in the list: {2}
api.error.job-upload.option.unexpected=One or more job options do not support file upload: {0}
api.error.job-upload.invalid=Job {0} does not have file options
api.error.job-upload.error=There was an error processing an uploaded file: {0}
api.error.job-upload.filesize=Uploaded file size ({0}) for option "{1}" is larger than configured maximum file size: {2}
api.error.parameter.error=Some parameters were invalid: {0}
api.error.item.doesnotexist={0} does not exist: {1}
api.error.item.alreadyexists={0} already exists: {1}
api.error.item.unauthorized=Not authorized for action "{0}" for {1} {2}
api.error.item.unsupported-format=The format is not valid: {0}
api.error.resources-import.unsupported-format=Unsupported format: No provider available to parse MIME type: {0}
api.error.resource.write.failure=Failed writing the resource data: {0}
api.error.jobs.import.wrong-contenttype=The input was not the expected content type
api.error.jobs.import.missing-file=No file was uploaded
api.error.jobs.import.format.unsupported=The specified format is not supported: {0}
api.error.jobs.import.empty=Jobs Document did not define any jobs, or was invalid
api.error.jobs.import.invalid=Jobs Document was invalid for format {0}: {1}
api.error.jobs.update.incorrect-document-content=Jobs Document should contain a single job definition
api.error.jobs.create.exists=A job with the specified ID already exists: {0}
api.error.run-script.upload.is-empty=Input script file was empty
api.error.run-script.upload.missing=Expected a script file for parameter named "{0}"
api.error.upload.missing=Expected a file for parameter named "{0}"
api.error.history.date-format=The parameter "{0}" did not have a valid time or dateTime format: {1}
api.error.history.date-relative-format=The parameter "{0}" did not have a valid relative date format\: {1}, expected "\#" followed by "d/h/m/w/y"
api.success.job.delete.message=Job was successfully deleted: {0}
api.success.job.create.message=Job was successfully created: {0}
api.error.job.delete.failed=Job could not be deleted: {0}
api.error.exec.delete.failed=Execution {0} could not be deleted: {1}
api.error.resource.format.unsupported=The format specified is unsupported: {0}
api.error.resource.format.generator=Error generating the document: {0}
api.project.updateResources.succeeded=Resources were successfully updated for project {0}
api.project.updateResources.noproviderUrl.failed=Resources were not updated because no resource model provider URL is configured for project {0}
api.project.updateResources.failed=Failed to update resources for project {0}
api.executions.jobfilter.adhoc.conflict=Cannot use job filters and specify that adhoc is true
api.error.job.options-invalid=Job options were not valid: {0}
api.error.execution.invalid=Execution was not valid: {0}
api.error.execution.failed=Execution failed: {0}
api.error.execution.conflict=Execution had a conflict: {0}

domain.Project.field.resourcesUrl.description=URL for a remote resource model document. (optional)
domain.Project.field.sshKeyPath.description=Path to a private SSH Key file, for use with SSH and SCP. Can be overridden by node attribute "ssh-keypath".
framework.service.ResourceModelSource.label=Resource Model Source
framework.service.ResourceModelSource.label.plural=Resource Model Sources
framework.service.ResourceModelSource.description=Provides a Resource Model (nodes) for a project.
framework.service.ResourceModelSource.add.title=Add a new Resource Model Source
domain.Project.edit.ResourceModelSource.explanation=You can add additional custom sources, and their results will be used with the ordering shown.         Later sources will override earlier sources. (You can use <code>${project.name}</code> inside configuration values to substitute the project name.)
framework.service.NodeExecutor.label=Node Executor
framework.service.NodeExecutor.label.plural=Node Executors
framework.service.NodeExecutor.description=Executes Commands and Script steps on a remote node.
framework.service.FileCopier.label=File Copier
framework.service.FileCopier.label.plural=File Copiers
framework.service.FileCopier.description=Copies scripts and files to a remote node.
framework.service.WorkflowNodeStep.label=Workflow Node Step
framework.service.WorkflowNodeStep.label.plural=Workflow Node Steps
framework.service.WorkflowNodeStep.description=Runs once for each node in the workflow.
framework.service.WorkflowStep.label=Workflow Step
framework.service.WorkflowStep.label.plural=Workflow Steps
framework.service.WorkflowStep.description=Runs only once in a workflow.
framework.service.ResourceFormatParser.label=Resource Format Parser
framework.service.ResourceFormatParser.label.plural=Resource Format Parsers
framework.service.ResourceFormatParser.description=Parses a Resource Model document format.
framework.service.ResourceFormatGenerator.label=Resource Format Generator
framework.service.ResourceFormatGenerator.label.plural=Resource Format Generators
framework.service.ResourceFormatGenerator.description=Generates a formatted document from a Resource Model.
framework.service.Notification.label=Notification Plugin
framework.service.Notification.label.plural=Notification Plugins
framework.service.Notification.description=Triggered when a Job starts, succeeds, or fails.
framework.service.StreamingLogReader.label=Streaming Log Reader Plugin
framework.service.StreamingLogReader.label.plural=Streaming Log Reader Plugins
framework.service.StreamingLogReader.description=Reads execution log output from a source
framework.service.StreamingLogWriter.label=Streaming Log Writer Plugin
framework.service.StreamingLogWriter.label.plural=Streaming Log Writer Plugins
framework.service.StreamingLogWriter.description=Writes execution log output to another destination
framework.service.LogFileStorage.label=Log File Storage Plugin
framework.service.LogFileStorage.label.plural=Log File Storage Plugins
framework.service.LogFileStorage.description=Stores and Retrieves execution Log files
framework.service.ExecutionFileStorage.label=Execution File Storage Plugin
framework.service.ExecutionFileStorage.label.plural=Execution File Storage Plugins
framework.service.ExecutionFileStorage.description=Remote Execution Log and State File Storage
framework.service.Storage.label=Storage Plugin
framework.service.Storage.label.plural=Storage Plugins
framework.service.Storage.description=Stores Passwords and Public and Private Keys
framework.service.StorageConverter.label=Storage Converter Plugin
framework.service.StorageConverter.label.plural=Storage Converter Plugins
framework.service.StorageConverter.description=Converts or Encrypts Storage data
framework.service.TourLoader.label=Tour Loader Plugin
framework.service.TourLoader.label.plural=Tour Loader Plugins
framework.service.TourLoader.description=Create tours that guide users through the user interface.
domain.Project.edit.NodeExecutor.explanation=The Node Executor is responsible for executing commands and scripts on remote nodes.
domain.Project.edit.FileCopier.explanation=The File Copier is responsible for copying scripts as files to remote nodes before they are executed.
framework.service.error.missing-provider=Provider not found: {0}
message.none.set=None set
domain.Project.field.resourcesUrl=Resource Model Source URL
scheduledExecution.property.nodeRankAttribute.label=Rank Attribute
scheduledExecution.property.nodeRankAttribute.description=Node attribute to order by. Default is node name.
scheduledExecution.property.nodeKeepgoing.true.description=Continue running on any remaining nodes before failing the step.
scheduledExecution.property.nodeKeepgoing.false.description=Fail the step without running on any remaining nodes.
scheduledExecution.property.successOnEmptyNodeFilter.true.description=Continue execution.
scheduledExecution.property.successOnEmptyNodeFilter.false.description=Fail the job.
scheduledExecution.property.nodeRankOrder.label=Rank Order
scheduledExecution.property.nodeRankOrder.ascending.label=Ascending
scheduledExecution.property.nodeRankOrder.descending.label=Descending
scheduledExecution.property.nodeIntersect.label=Intersection of nodes
scheduledExecution.property.nodeIntersect.true=Yes, create node intersection with current job nodes
scheduledExecution.property.nodeIntersect.false=No, use referenced job defined or overridden node filter
scheduledExecution.property.multipleExecutions.description=Allow this Job to be executed more than one time simultaneously?
scheduledExecution.property.multipleExecutions.label=Multiple Executions?
scheduledExecution.property.maxMultipleExecutions.description=Max number of multiple executions. Use blank or 0 to indicate no limit.
scheduledExecution.property.maxMultipleExecutions.label=Limit Multiple Executions?
scheduledExecution.property.scheduleEnabled.description=Allow this Job to be scheduled?
scheduledExecution.property.scheduleEnabled.label=Enable Scheduling?
scheduledExecution.property.executionEnabled.description=Allow this Job to be executed?
scheduledExecution.property.executionEnabled.label=Enable Execution?
scheduledExecution.property.nodeThreadcount.description=Maximum number of parallel threads to use. (Default: 1)
scheduledExecution.property.nodeThreadcount.label=Thread Count
scheduledExecution.property.doNodedispatch.description=Choose whether the Job will run on filtered nodes or only on \
  the local node.
scheduledExecution.property.nodesSelectedByDefault.label=Node selection
scheduledExecution.property.nodesSelectedByDefault.true.description=Target nodes are selected by default
scheduledExecution.property.nodesSelectedByDefault.false.description=The user has to explicitly select target nodes
no=No
yes=Yes
true=True
in.of=in
by.you=by you
you=you
up.to=Up to
scheduledExecution.property.orchestrator.label=Orchestrator
scheduledExecution.property.orchestrator.description=This can be used to control the order and timing in which nodes are processed

# reference links
documentation.reference.cron.url=http://www.quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/tutorial-lesson-06.html
Workflow.Step.adhocFilepath.label=File Path/URL

Workflow.Step.adhocFilepath.description=Enter the path to a script file on the server or a URL
Workflow.Step.scriptInterpreter.label=Invocation String
Workflow.Step.scriptInterpreter.help=<p>Specify how to invoke the script file. \
  By default the temporary script file path will be appended to this string, followed by any arguments. \
  Include <code>${scriptfile}</code> anywhere to change the file path argument location:</p>\
  <p><em>Examples</em>:</p> \
  <ul>\
  <li><code>sudo ${scriptfile}</code></li> \
  <li><code>time ${scriptfile}</code></li> \
  <li><code>python -u ${scriptfile}</code></li>\
  <li><code>mytool -f ${scriptfile} -action execute -args</code></li>\
  </ul>
Workflow.Step.scriptInterpreter.prompt=Leave blank to run script directly
Workflow.Step.interpreterArgsQuoted.help=<p>If arguments are quoted, \
  then the arguments passed to the invocation string will be quoted as one string:</p> \
  <ul>\
  <li>Unquoted invocation: <pre>$ [invocation string] args ...</pre></li>\
  <li>Quoted invocation: <pre>$ [invocation string] 'args ...'</pre></li>\
  </ul>\
  <p>\
  Note: the scriptfile can be included in the quoted arguments by not specifying <code>${scriptfile}</code> within the Invocation String.
Workflow.Step.interpreterArgsQuoted.label=Quote arguments to script invocation string?
Workflow.Step.adhocRemoteString.label=Command
Workflow.Step.adhocRemoteString.description=Enter the shell command, e.g.\: echo this is a test
Workflow.Step.argString.label=Arguments
Workflow.Step.argString.description=Enter the commandline arguments for the script
Workflow.Step.uuid.label=UUID
Workflow.Step.adhocLocalString.description=Enter the entire script to execute
Workflow.Step.jobExec.nodeFilter.prompt=Leave blank to use the Job's node filter.
Workflow.Step.jobExec.nodeKeepgoing.prompt=Leave blank to use the Job's node keepgoing.
remote.options.warning.cyclicDependencies=Note\: Some remote option values have cyclic dependencies, please click the option name to reload the values when a dependency has changed.
Execution.option.enforced.values.could.not.be.loaded=Enforced values could not be loaded.
bulk.delete=Bulk Delete
select.none=Select None
select.all=Select All
cancel=Cancel
delete.selected.jobs=Delete Selected Jobs
really.delete.these.jobs=Really delete the selected Jobs?
select.jobs.to.delete=Select Jobs to delete.
project.name.can.only.contain.these.characters=Project name can only contain these characters\: [a-zA-Z0-9_-+.] and cannot start with a '.'.
Option.required.label=Required
Option.required.description=Require this option to have a non-blank value when running the Job
execution=Execution
plural.format={1}
plural.count.format={0} {1}
plural.count.verb.format={0} {1} {2}
plural.verb.format={1} {2}
is=is
is.plural=are
node.step.plugin=Node Step Plugin
node.step.plugin.plural=Node Step Plugins
workflow.step.plugin=Workflow Step Plugin
installed=Installed
Workflow.property.keepgoing.false.description=Stop at the failed step.
Workflow.property.keepgoing.true.description=Run remaining steps before failing.
scheduledExecution.property.nodeKeepgoing.prompt=If a node fails
scheduledExecution.property.successOnEmptyNodeFilter.prompt=If node set empty
Workflow.property.keepgoing.prompt=If a step fails\:
job.previous.execution=Previous
job.next.execution=Next
adhoc.previous.execution=Previous
adhoc.next.execution=Next
no.more.executions=At last
no.previous.executions=At first
job.run.execOptionsPage.subtitle=Run Job\: Enter Execution Options
enable.verbose.logging=Enable verbose logging
project.archive.import.jobUuidOption.preserve.description=Preserve the imported Job UUIDs. Note\: If a job with the same UUID exists in another project, the new job will not be imported.
project.archive.import.jobUuidOption.preserve.label=Preserve UUIDs
project.archive.import.jobUuidOption.remove.label=Remove UUIDs
project.archive.import.jobUuidOption.remove.description=Strip UUIDs from imported jobs.
scheduledExecution.uuid.unique=Cannot create a Job with UUID {2}: a Job already exists with this UUID. Change the UUID or delete the other Job.
option.value.required=required
option.remote.dependency.emptyresult=No values to choose from.
execution.action.runAgain=Run Again
execution.action.saveAsJob=Save as a Job
execution.job.action.runAgain=Run this Job Again with the same options
retry.failed.nodes=Retry Failed Nodes
retry.failed.nodes.description=Retry on the failed nodes
retry.job.failed.nodes=Run Job on the failed nodes
run.job.now=Run Job Now
run.job.later=Run Job Later
schedule.job=Schedule Job
page.section.Activity=Activity
job.run.watch.output=Follow execution
job.schedule.will.never.fire=Job schedule will never fire
never=Never
scheduled.to.run.on.server.0=Scheduled to run on server {0}
JobExec.nodeStep.true.label=Node Step
JobExec.nodeStep.false.label=Workflow Step
JobExec.nodeStep.title=Run as a
JobExec.nodeStep.true.description=Executes for each Node and allows use of node context variables as arguments to the job.
JobExec.nodeStep.false.description=Executes only once and has no node context information.
no.input.options.for.this.job=None for this Job.
input.options=Input Options
execution.identity=\#{0}
scheduledExecution.identity=\#{1}
notification.email.description=comma-separated email addresses. You can substitute these variables\: ${job.user\
  .name}, ${job.user.email}
notification.email.subject.description=Template for the email subject. Can contain property references: ${group.key}
notification.email.subject.helpLink=https://rundeck.org/docs/administration/configuration/configuration-file-reference.html#custom-email-templates
delete=Delete
run.job=Run Job
scroll.to.top=Scroll to Top
scroll.to.bottom=Scroll to Bottom
scheduledExecution.nodeset.variable.warning=The Node filters will be applied when the job is run.
scheduledExecution.groupPath.description=Group is a / separated path
licenses=Licenses
Project=Project
Project.plural=Projects
user=user
user.plural=users
Job=Job
Job.plural=Jobs
Execution=Execution
Execution.plural=Executions
Node=Node
Node.plural=Nodes
steps=Steps
strategy=Strategy
execute.on.the.server.node=Execute on the server node\:
include.nodes.matching=Include nodes matching\:
execute.up.to=Execute on up to
at.a.time=at a time.
if.a.node.fails=If a node fails
sort.nodes.by=Sort nodes by
ascending=ascending
descending=descending
page.SystemConfiguration.description=This page displays key configuration settings. Modify the associated config file to change a configuration setting.
page.SecurityConfiguration.description=System security is managed through configuration files. This page describes the current settings the files to change them.
gui.menu.SystemInfo=System Report
gui.menu.Security=Security
gui.menu.SystemConfig=System Configuration
gui.menu.UserProfiles=User Profiles
gui.menu.InstalledPlugins=Installed Plugins
gui.menu.ListPlugins=List Plugins
gui.menu.ProjectConfiguration=Project Configuration: {0}
executed.as=executed as
script=script
scriptfile=scriptfile
dollar.scriptfile=${scriptfile}
placeholder.for.the.script.file=Placeholder for the script file
no.output=No output
loading=Loading\u2026
node.metadata.os=Operating System
node.metadata.username-at-hostname=User & Host
workflowState.summary.nodes.complete.description=Number of Nodes which have run all steps
workflowState.summary.nodes.failed.description=Number of Nodes with failed steps
workflowState.summary.nodes.incomplete.description=Number of Nodes with some steps that were not started
workflowState.summary.nodes.notstarted.description=Number of Nodes with all steps that were not started
workflowState.summary.nodes.running.description=Number of Nodes currently running a step
workflowState.summary.nodes.waiting.description=Number of Nodes waiting to run a step
waiting.for.state.info=Waiting for state info\u2026
scheduledExecution.show.run.tab.name=Prepare and Run
definition=Definition
notification.email.label=Send Email
notification.webhook.label=Webhook
notification.email.display=mail to\: {0}
plugin.not.found.0=Plugin not found\: {0}
notification.webhook.field.title=URL(s)\:
notification.webhook.field.description=Enter comma-separated URLs
scheduledExecution.action.edit.button.label=Edit this Job&hellip;
scheduledExecution.action.duplicate.button.label=Duplicate this Job&hellip;
scheduledExecution.action.download.button.label=Download Definition
scheduledExecution.action.downloadformat.button.label=Download Job definition in {0}
page.section.Activity.for.jobs=Activity for Jobs
page.section.Activity.for.adhoc.commands=Activity for commands
page.section.Activity.for.this.job=Activity for this Job
no.authorized.access.to.projects.contact.your.administrator.user.roles.0=Contact your administrator. (User roles\: {0})
no.authorized.access.to.projects=You have no authorized access to projects.
set.filter=Set Filter
node.access.not-runnable.message=You do not have access to execute commands on this node.
execution.type.adhoc.title=Command
request.error.title=Error
request.error.notfound.title=Not Found
request.error.notfound.message={0} "{1}" was not found
request.error.unauthorized.title=Unauthorized
request.error.unauthorized.message=Not authorized to {0} {1} {2}
request.error.invalidtoken.message=The request did not include a valid token, or the token has expired. Please try your request again.
request.error.invalidtoken.title=Invalid Request Token
request.error.invalidrequest.message=The request was not allowed: [{0}]
page.notfound.message=The page you requested could not be found.
delete.project=Delete Project
you.are.now.logged.out=You are now logged out.
login.again=Log In Again
elapsed.time=Elapsed Time\:
edit.job=Edit Job
monitor=Monitor
report=Report
now.running=Now Running
execution.at.time.by.user=Execution at {0} by {1}
loading.matched.nodes=Loading matched nodes...
notification.email.attach.description=Attach output logs to the email
to=To
subject=Subject
default=Default
attach.output.log=Include log output
attach.output.log.inline=Inline to email
attach.output.log.asFile=Attached as file to email
notification.email.attachLog.description=Default means attach the log file as set in the system configuration.
always=Always
cancel.bulk.delete=Cancel Bulk Delete
delete.selected.executions=Delete Selected Executions
toggle.all=Toggle all
scheduledExecution.property.timeout.description=The maximum time for an execution to run. Time in seconds, \
  or specify time units: "120m", "2h", "3d".  Use blank or 0 to indicate no timeout. Can include option value \
  references like "${option.timeout}".
scheduledExecution.property.timeout.label=Timeout
scheduledExecution.property.notifyAvgDurationThreshold.description=Add or set a threshold value to the avg duration in order to trigger this notification. Options: \
  - percentage => eg: 20% \
  - time delta => eg: +20s, +20  \
  - absolute time => 30s, 5m \
  Time in seconds if you don't specify time units \
  Can include option value references like ${option.avgDurationThreshold}.
scheduledExecution.property.notifyAvgDurationThreshold.label=Threshold
scheduledExecution.property.retry.label=Retry
scheduledExecution.property.retry.description=Maximum number of times to retry execution when this job is directly invoked.  Retry will occur if the job fails or times out, but not if it is manually killed. Can use an option value reference like "${option.retry}".
execution.retry.attempt.x.of.max.ko=(attempt <span data-bind\="{0}"></span> of maximum <span data-bind\="{1}"></span>)
retried=Retried
as.execution=as execution
domain.Execution.title=Execution
rundeck.User.email.email.invalid=Email address is not valid
com.dtolabs.rundeck.app.support.StoreFilterCommand.newFilterName.matches.invalid=The filter name contains invalid characters: {2}, do not use these characters: < > & '' \" /
gui.menu.KeyStorage=Key Storage
page.keyStorage.description=Key Storage provides a global directory-like structure to save Public and Private Keys and Passwords, for use with Node Execution authentication.
storage.delete.selected.key=Delete Selected Key
storage.delete.selected.key.confirm=Really delete the selected key at this path?
storage.add.or.upload.a.key=Add or Upload a Key
storage.overwrite.a.key=Overwrite a Key
storage.key.type.prompt=Key Type\:
storage.private.key=Private Key
storage.public.key=Public Key
storage.password=Password
storage.keyType.help.text=Private Keys and Passwords are not available to download once they are stored. Public keys can be downloaded.
enter.text=Enter text
upload.file=Upload File
storage.path.prompt=Storage path\:
name.prompt=Name\:
storage.upload.file.name.description=If not set, the name of the uploaded file is used.
storage.upload.dontOverwrite.label=Do not overwrite a file with the same name.
storage.upload.fullpath.label=You can reference this stored Key using the storage path\:
button.Action=Action
button.delete.selected.item=Delete Selected Item
button.download.contents=Download Contents
storage.overwrite.key=Overwrite Key
loading.text=Loading...
storage.no.keys=No keys
storage.keys.plural=keys
storage.private.key.description=This path contains a private key that can be used for remote node execution.
storage.password.description=This path contains a password that can be used for remote node execution.
storage.nothing.found.at.this.path=Nothing found at this path.
storage.nothing.found.prompt=Select "Add or Upload a Key" if you would like to create a new key.
created.prompt=Created\:
by.prompt=by\:
modified.prompt=Modified\:
button.view.public.key.contents=View Public Key Contents
bytes=bytes
storage.select.a.file=Select a Storage File
storage.choose.selected.key=Choose Selected Key
project.configuration=Project Configuration
Workflow.Step.fileExtension.label=File Extension
Workflow.Step.fileExtension.prompt=Leave blank to use the default for the target node.
Workflow.Step.fileExtension.help=The file extension is used by the script file when it is copied to the node. Leave blank to use the default for the target node.<br>\
  The <code>.</code> is optional.<br>\
  E.g.\: <code>.ps1</code>, or <code>abc</code>.
JobExec.property.nodeFilter.null.description=The nodes used will be those defined for the triggered Job.
JobExec.property.nodeKeepgoing.null.description=Maintain the behavior defined for the triggered Job
JobExec.property.nodeThreadcount.null.description=If blank, use the Thread Count defined for the triggered Job.
node.filter=Node Filter
node.filter.prompt=Node Filter
step.plugins.filter.prompt=Search step
matched.nodes.prompt=Matched Nodes
refresh=refresh
nodes.matched=Nodes Matched
enter.a.node.filter=Enter a node filter, or .* for all nodes
enter.a.node.filter.override=Enter a filter string. Leave blank to use the filter defined for the triggered job.
enter.a.step.filter.override=Enter a step filter string.
JobExec.property.nodeFilter.help.description=Enter a node filter to override the triggered Job's target nodes. If you enter                 a new filter string, you can also change the Thread Count, and behavior if the Job                 fails for a node.
JobExec.property.nodeRankOrder.null.description=Maintain the ordering defined in the triggered Job
html=HTML
markdown=Markdown
text=Text
add.new.option=Add New Option
form.option.name.label=Option Name
form.option.label.label=Option Label
form.option.type.label=Option Type
form.option.description.label=Description
form.option.defaultValue.label=Default Value
form.option.values.label=Allowed Values
form.label.valuesType.list.label=List
form.option.valuesType.url.label=Remote URL
form.option.valuesUrl.description=A URL to a Remote JSON service.
rundeck.user.guide.option.model.provider=Rundeck User Guide - Option model provider
form.option.enforcedType.label=Restrictions
none=None
form.option.enforcedType.none.label=Any values can be used
form.option.enforced.label=Enforced from Allowed Values
form.option.regex.label=Match Regular Expression
form.option.multivalued.label=Multi-valued
form.option.delimiter.label=Delimiter
usage=Usage
the.option.values.will.be.available.to.scripts.in.these.forms=The option values will be available to scripts in these forms\:
form.option.usage.file.preview.description=The local file path will be available to scripts in these forms\:
form.option.usage.file.fileName.preview.description=The original file name\:
form.option.usage.file.sha.preview.description=The file content SHA-256 value\:
bash.prompt=Bash:
commandline.arguments.prompt=Commandline Arguments:
script.content.prompt=Script Content\:
scheduledExecution.option.unsaved.warning=Discard or save changes to this option before completing changes to the job
save=Save
form.option.cancel.title=Cancel adding new option
form.option.create.title=Save the new option
discard=Discard
form.option.discard.title=Discard changes to the option
form.option.save.title=Save changes to the option
ScheduledExecution.property.description.description=The first line of the description will be shown in plain text, the rest will be rendered with Markdown.\n\n\
  See [Markdown](http://en.wikipedia.org/wiki/Markdown).\n\n\
  Within the extended description you can link to the job using `{{job.permalink}}` as the URL to the job, e.g. `[run job]({{job.permalink}}#runjob)`\n\n\
  You can add a Runbook by using a HR separater `---` by itself on a line, \
  and everything following that will be rendered in a separate tab using [Markdeep](https://casual-effects.com/markdeep).
ScheduledExecution.property.description.plain.description=The description will be shown in plain text
Option.property.description.description=The description will be rendered with Markdown.
delete.this.job=Delete this Job
delete.all.executions.of.this.job=Delete all executions of this Job
Delete=Delete
really.delete.this.job=Really delete this Job?
scheduledExecution.jobName.label=Job Name
delete.action.label=Delete
choose.action.label=Choose
scheduledExecution.property.description.label=Description
options.prompt=Options\:
workflow.prompt=Workflow\:
dispatch.to.nodes=Dispatch to Nodes
execute.locally=Execute locally
included=Included
excluded=Excluded
click.to.refresh=click to refresh
precedence.to.prompt=Precedence to\:
schedule.to.run.repeatedly=Schedule to run repeatedly?
scheduledExecution.property.loglevel.label=Log level
loglevel.normal=Normal
loglevel.debug=Debug
scheduledExecution.property.loglevel.help=Debug level produces more output
uuid=UUID
uuid.for.this.job=UUID for this Job
scheduledExecution.action.delete.button.label=Delete this Job
upload.definition.button.label=Upload Definition
new.job.button.label=New Job
ScheduledExecution.page.edit.title=Edit Job
ScheduledExecution.page.create.title=Create New Job
creating.job.loading.text=Creating Job&hellip;
button.action.Save=Save
button.action.Delete=Delete
really.delete.this.execution=Really delete this Execution?
delete.execution.title=Delete Execution
button.action.delete.this.execution=Delete this Execution
button.action.kill.job=Kill Job
button.action.incomplete.job=Mark as Incomplete
execution.page.show.tab.Summary.title=Summary
elapsed.time.prompt=Elapsed Time\:
button.action.view.log.output=View Log Output &raquo;
node.summary=Node Summary
waiting=Waiting
running=Running
done=Done
complete=Complete
incomplete=Incomplete
not.started=Not Started
started=started
scheduled=scheduled
at=at
by=by
after=after
for=for
action.prepareAndRun.tooltip=Choose options and Run Job...
scheduledExecution.action.edit.button.tooltip=Edit this Job
scheduledExecution.action.duplicate.button.tooltip=Duplicate Job
click.for.job.actions=Click for Job Actions
statistics=Statistics
success.rate=Success rate
average.duration=Average duration
plugin.storage.provider.special.description=Configure this plugin within the rundeck-config.properties file.  Declare the provider with `rundeck.storage.provider.[index].type\=${pluginName}`, and declare the path you want this plugin to apply to with `rundeck.storage.provider.[index].path\=<storagepath>`
plugin.storage.converter.special.description=Configure this plugin within the rundeck-config.properties file.  Declare the provider with `rundeck.storage.converter.[index].type\=${pluginName}`, and declare the path you want this plugin to apply to with `rundeck.storage.converter.[index].path\=<storagepath>`
plugin.resourceModelSource.special.description=Configure this plugin in a Project's configuration.  Declare each source with `resources.source.[index].type\=${pluginName}`.
plugin.executionFileStorage.special.description=Configure this plugin within the `rundeck-config.properties` file.  Declare the provider with `rundeck.execution.logs.fileStoragePlugin\=${pluginName}`
framework.service.ExecutionFileStorage.extended.description=Configuration values within the `rundeck-config.properties` file that can be used to tune the behavior of the plugins: \n\
  \n\
  * `rundeck.execution.logs.fileStorage.storageRetryCount`\n    \
  * The number of `store` attempts to try before giving up for a single log file\n    \
  * default value: `1` \n\
  * `rundeck.execution.logs.fileStorage.storageRetryDelay`\n    \
  * Time to wait between retry attempts\n    \
  * default value: `60` (seconds)\n\
  * `rundeck.execution.logs.fileStorage.retrievalRetryCount`\n    \
  * The number of `retrieve` attempts to try before giving up for a single log file\n    \
  * default value: `3` \n\
  * `rundeck.execution.logs.fileStorage.retrievalRetryDelay`\n    \
  * Time to wait between retry attempts\n    \
  * default value: `60` (seconds)\n\
  * `rundeck.execution.logs.fileStorage.remotePendingDelay`\n    \
  * Grace time to allow after an execution finishes. Clients will see a "pending" message within this period after an execution finishes, even if the storage plugin is unable to find the log file. After this time period, they will see a "not found" message if the plugin is unable to find the log file.\n    \
  * default value: `120` (seconds)
archive.request.download.title=Download an archive of project <strong>{0}</strong>
archive.request.will.expire=This archive will expire after a short time after the initial download.
return.to.configuration=&larr; Return
archive.request.token.not.found=The token <code>{0}</code> was not found.  It may have expired.
archive.request.error=There was an error exporting the Project Archive
archive.request.exporting.title=Exporting an archive of project <strong>{0}</strong>&hellip;
archive.request.please.wait=Please wait, your request is being processed.
refresh.this.page=Refresh this page
refresh.every.5.seconds=Refresh every 5 seconds
archive.request.please.wait.pagetitle.wait=[WAIT] Export archive
archive.request.please.wait.pagetitle.ready=[READY] Export archive
upload.job.page.title=Upload Job Definition
ScheduledExecution.page.delete.title=Delete Job
project.config.editor.help.markdown=Password values are obscured. You can enter a new value or you can leave the entire line with `key\=*****` to preserve the original value when saving.  **Note**\: If you modify the *key name* of an obscured property, the value *will not be preserved*, and you must enter a new value.
button.action.Cancel=Cancel
page.unsaved.changes=You have unsaved changes
configuration=Configuration
export.archive=Export Archive
import.archive=Import Archive
project.named.prompt=Project\: {0}
page.admin.EditProjectSimple.button=Simple Configuration
page.admin.EditProjectConfigFile.button=Edit Configuration File
page.admin.EditProjectConfigFile.title=Advanced\: Edit config file directly
invalid.resource.model.source.configuration.provider.not.found=Invalid Resource Model Source configuration\: Provider not found\: {0}
framework.service.NodeExecutor.default.label=Default Node Executor
framework.service.FileCopier.default.label=Default File Copier
configuration.not.available=Configuration not available.
download.an.archive.of.project.named.prompt=Download an archive of project <strong>{0}</strong>
export.project.jar.button=Export {0}.rdproject.jar &hellip;
delete.this.project.button=Delete this Project&hellip;
really.delete.this.project=Really delete this Project?
project.prompt=Project\:
delete.project.now.button=Delete Project Now
choose.a.rundeck.archive=Choose a Rundeck archive
archive.import.help=Existing Jobs in this project that match imported Jobs (group and name match, or UUID matches) will be updated.
imported.jobs=Imported Jobs
archive.import.importExecutions.true.title=Import All
archive.import.importExecutions.true.help=Creates new Executions and History reports from the archive
archive.import.importExecutions.false.title=Do Not Import
archive.import.importExecutions.false.help=Does not import any Executions or History
uploading.file=Uploading File&hellip;
project.file.readme.md.help.markdown=Edit the Readme for the project. This will be displayed on the home page. \
  You can use \
  <a href="http://en.wikipedia.org/wiki/Markdown" target="_blank">\
  Markdown\
  </a>.
project.file.motd.md.help.markdown=Edit the "Message of the Day" for the project. This will be displayed on the home page. \
  You can use \
  <a href="http://en.wikipedia.org/wiki/Markdown" target="_blank">\
  Markdown\
  </a>.
some.files.in.the.archive.could.not.be.imported=Some files in the archive could not be imported\:
archive.successfully.imported=Archive successfully imported
failed.to.import.some.jobs=Failed to import some jobs
no.file.was.uploaded=No file was uploaded.
archive.jobs.imported.some.executions.could.not.be.imported=Archive Jobs imported, some Executions could not be imported.
provider.name=Provider Name
disabled=Disabled
passive.mode=Passive mode
system.executionMode.status.active=ACTIVE
system.executionMode.status.passive=PASSIVE
system.executionMode.description.active=Jobs and Commands can be run.
system.executionMode.description.passive=No new Jobs or Commands can be run.
action.executionMode.set.passive.label=Set Passive Mode
action.executionMode.set.active.label=Set Active Mode
action.executionMode.set.passive.help=Set Passive mode to disable all new manual and scheduled Job runs, and adhoc Commands.  Already running job will still continue until end.
action.executionMode.set.active.help=Set Active mode to enable Jobs and commands.
action.executionMode.changed.active.text=Execution mode changed to: ACTIVE
action.executionMode.changed.passive.text=Execution mode changed to: PASSIVE
action.executionMode.notchanged.active.text=Execution mode is ACTIVE (not changed)
action.executionMode.notchanged.passive.text=Execution mode is PASSIVE (not changed)
executionMode.label=Execution Mode
change.execution.mode=Change Execution Mode
change.execution.mode.prompt=Change Execution Mode…
more=More…
acl.validation.error.sourceIdentity.help=This identifies the location of the error, such as the file path and an index "[1]" of the policy definition in that file.
aclpolicy.format.validation.succeeded=ACLPolicy format Validation succeeded
aclpolicy.format.validation.failed=ACLPolicy format Validation failed
access.control=Access Control
the.currently.used.login.module=The currently used login module\:
to.modify.access.control.rules.create.or.edit.a.aclpolicy.file.in.the.rundeck.etc.directory=To modify Access Control rules, create or edit a .aclpolicy file in the Rundeck etc directory.
list.of.acl.policy.files.in.directory=ACL Policies on local filesystem
authentication.is.performed.using.jaas.the.configuration.file.is.defined.using.a.system.property=Authentication is performed using JAAS.  The configuration file is defined using a System property\:
login.module=Login Module
enable.schedule.this.job=Enable Schedule
disable.schedule.this.job=Disable Schedule
scheduledExecution.action.enable.schedule.button.label=Enable Schedule
scheduledExecution.action.disable.schedule.button.label=Disable Schedule
scheduleExecution.schedule.disabled=Job schedule is disabled
enable.execution.this.job=Enable Execution
disable.execution.this.job=Disable Execution
scheduledExecution.action.enable.execution.button.label=Enable Execution
scheduledExecution.action.disable.execution.button.label=Disable Execution
scheduleExecution.execution.disabled=Job execution is disabled
archive.import.importConfig.true.title=Import Project Configuration
archive.import.importConfig.true.help=Overwrites the project configuration with the properties stored in the archive.
archive.import.importConfig.false.help=Does not import the project configuration.
archive.import.importACL.true.title=Import Project ACL Policies
archive.import.importACL.true.help=Imports any Project ACL Policies, overwriting policies with the same name.
archive.import.importACL.false.help=Does not import ACL Policies.
archive.import.importACL.unauthorized.help=Not authorized to create ACL Policies.
archive.import.importScm.true.title=Import Project SCM Configuration
archive.import.importScm.true.help=Import Project SCM Configuration unless the project has SCM configuration.
archive.import.importScm.false.help=Does not import SCM Configuration.
archive.import.importScm.unauthorized.help=Not authorized to configure SCM.
recent=Recent
node.dispatch.settings=Node Dispatch Settings
thread.count=Thread count
on.node.failure=On node failure\:
continue=Continue
stop=Stop
nodes=Nodes
no.nodes.selected.match.nodes.by.selecting.or.entering.a.filter=No nodes selected. Match nodes by selecting or entering a filter.
view.in.nodes.page.prompt=View in Nodes Page &raquo;
matched=Matched
run.on=Run on
search=Search
scheduledExecution.property.logOutputThreshold.description=Enter either maximum total line-count (e.g. "100"), maximum per-node line-count ("100/node"), or maximum log file size \
  ("100MB", "100KB", etc.), using "GB","MB","KB","B" as Giga- Mega- Kilo- and bytes.
scheduledExecution.property.logOutputThresholdAction.description=Action to perform if the output limit is reached.
scheduledExecution.property.logOutputThresholdAction.halt.label=Halt with status:
scheduledExecution.property.logOutputThresholdAction.halt.description=Enter a status, such as 'failed', 'aborted' or any custom status.
scheduledExecution.property.logOutputThresholdAction.truncate.label=Truncate and continue
scheduledExecution.property.logOutputThresholdAction.truncate.description=Continue job without logging
scheduledExecution.property.logOutputThresholdAction.label=Log Limit Action
scheduledExecution.property.logOutputThresholdStatus.label=Halt Status
scheduledExecution.property.logOutputThresholdStatus.placeholder='failed','aborted', or any string
scheduledExecution.property.logOutputThreshold.label=Log Output Limit
scheduledExecution.property.logOutputThreshold.placeholder=E.g as '100', '100/node' or '100MB'
scm.export.plugins=SCM Export plugins
scm.import.plugins=SCM Import plugins
scmController.page.index.title=SCM Export\: {0}
gui.menu.Scm=Setup SCM
project.admin.menu.Scm.title=Setup SCM…
scmController.page.index.description=Enable or configure SCM integration.
scm.export.title=SCM Export
scm.import.title=SCM Import
configured.for.project=Configured for Project
button.Disable.title=Disable
choose.a.plugin.to.setup=Choose a plugin to setup
button.Enable.title=Enable
button.Configure.title=Configure
button.Clean.title=Clean
scmController.page.export.diff.title=SCM Changes\: {0}
scmController.page.export.diff.description=SCM Export\: View Changes
scmController.page.import.diff.title=SCM Changes\: {0}
scmController.page.import.diff.description=SCM Import\: View Changes
not.added.to.scm=Not yet added to SCM
no.changes=No Changes
button.Commit.Changes.title=Commit Changes
scmController.page.commit.title=SCM Export Commit\: {0}
scmController.page.commit.description=Export Changes to SCM
select.jobs.to.export=Select changes to export.
button.View.Diff.title=View Diff...
button.Commit.title=Commit
scmController.page.setup.title=Setup SCM Export\: {0}
scmController.page.setup.description=Setup SCM Plugin
button.Setup.title=Setup
badge.Disabled.title=Disabled
badge.Enabled.title=Enabled
scm.export.plugins.help=SCM Export Plugins can export Job definitions to an external SCM Repo
scm.import.plugins.help=SCM Import Plugins can import Job definitions from an external SCM Repo
plugin=Plugin
scmController.action.disable.export.confirm.title=Disable SCM Export Plugin
scmController.action.disable.import.confirm.title=Disable SCM Import Plugin
scmController.action.enable.export.confirm.title=Enable SCM Export Plugin
scmController.action.enable.import.confirm.title=Enable SCM Export Plugin
scmController.action.clean.export.confirm.title=Clean SCM Export Plugin
scmController.action.clean.import.confirm.title=Clean SCM Import Plugin
plugin.disable.confirm.text=Really disable this plugin?
plugin.enable.confirm.text=Really enable this plugin?
some.input.values.were.not.valid=Some input values were not valid.
scmController.action.export.succeed.message=Committed Job {2}, commit ID\: {0}
scmController.action.export.delete.succeed.message=Deleted Job {2}, commit ID\: {0}
scmController.action.export.multi.succeed.message=Committed {1} changes, commit ID\: {0}
api.scm.action.integration.success.message=SCM {0} Action was Successful: {1}
scm.export.plugin=SCM Export Plugin
scm.import.plugin=SCM Import Plugin
scm.action.diff.clean.button.label=View Commit Info
scm.action.diff.button.label=Diff Changes
scm.export.commit.link.title=Click to commit or add changes
scm.export.commit.job.link.title=Click to commit or add this Job
scm.export.status.CLEAN.description=Export Status\: Clean
scm.export.status.EXPORT_NEEDED.description=Export Status\: Modified
scm.export.status.CREATE_NEEDED.description=Export Status\: New Job, Not yet added to SCM
scm.export.status.EXPORT_NEEDED.title.text=Export: Modified
scm.export.status.EXPORT_NEEDED.display.text=Modified
scm.export.status.CREATE_NEEDED.display.text=Created
scm.export.status.REFRESH_NEEDED.display.text=Synch Needed
scm.export.status.REFRESH_NEEDED.title.text=Export: Remote changes need to be synched
scm.export.status.DELETED.display.text=Deleted
scm.export.status.CLEAN.display.text=No Change

scm.import.status.CLEAN.display.text=Up to date
scm.import.status.CLEAN.description=Import Status: Up to date
scm.import.status.UNKNOWN.display.text=Import Status: Not Tracked
scm.import.status.UNKNOWN.description=Not Tracked for SCM Import
scm.import.status.IMPORT_NEEDED.title.text=Import: Incoming changes
scm.import.status.IMPORT_NEEDED.display.text=Import Needed
scm.import.status.IMPORT_NEEDED.description=Import Status: Job changes need to be pulled
scm.import.status.REFRESH_NEEDED.title.text=Import: Synch changes
scm.import.status.REFRESH_NEEDED.display.text=Synch Needed
scm.import.status.REFRESH_NEEDED.description=Import Status: Job changes need to be pulled

scm.import.status.DELETE_NEEDED.title.text=Import: Files deleted
scm.import.status.DELETE_NEEDED.display.text=Source file was deleted
scm.import.status.DELETE_NEEDED.description=Import Status: Source file was deleted
deleted.job.label=(Deleted Job)
domain.User.firstName.label=First Name
domain.User.lastName.label=Last Name
domain.User.email.label=Email
domain.User.label=User
userController.page.edit.title=Edit User Profile
domain.User.login.label=User Login
security.groups.label=Groups
userController.action.edit.description=Edit user Profile for\: {0}
button.Edit.label=Edit
userController.page.profile.heading.apiTokens.label=API Tokens
userController.page.profile.heading.userTokens.label=User API Tokens
userController.page.profile.heading.delete.token.title=Delete Token
userController.page.profile.delete.token.description=All clients using this token will lose authentication, are you sure you want to remove this API Token?
button.GenerateNewToken.label=Generate New Token
security.groups.description=The list of groups/roles names provided by the login system. (Cannot be modified via User Profile.)
userController.page.create.title=Create User Profile
userController.page.profile.description=Email and Name can be used in Job executions, notifications, or by other plugins.
userController.page.profile.title=User Profile
not.set=Not set
scmController.action.saveCommit.userInfoMissing.message=SCM Export could not be performed
scmController.action.saveCommit.userInfoMissing.errorHelp=Please update {{user/profile}} and enter the missing values.
scmController.action.saveCommit.jobIdsMissing.message=No Job Ids or Paths Selected
button.Export.title=Export
scmController.action.enable.error.message=Plugin was not enabled for SCM {0}\: {1}\: An error occurred\: {2}
scmController.action.enable.success.message=Plugin enabled for SCM {0}\: {1}
scmController.action.enable.invalid.message=Plugin was not enabled for SCM {0}\: {1}\: Configuration was not valid.  Please reconfigure and try again.
scmController.action.disable.success.message=Plugin disabled for SCM {0}\: {1}
scmController.action.clean.success.message=Plugin cleaned for SCM {0}\: {1}
scmController.action.setup.success.message=SCM Plugin Setup Complete
scm.export.actions.title=SCM Export Actions
scm.import.actions.title=SCM Import Actions
job.actions=Job Actions
download.diff=Download Diff
commit.new.file=Commit new File
file.has.been.removed.in.scm=File has been removed in SCM
scmController.action.import.success=SCM Import Successful
no.scm.integration.plugin.configured=No {0} plugin configured
integration.plugin.type.not.configured=Plugin type {0} for {1} is not configured
api.scm.failed.to.get.scm.plugin.status=Failed to get SCM {0} status for project {1}\: {2}
api.scm.failed.to.get.scm.plugin.job.status=Failed to get SCM {0} status for Job {1}\: {2}
scm.not.a.valid.action.actionid=Action "{0}" not found for {1} plugin for {2}
invalid.format=Invalid format
form.option.defaultStoragePath.label=Storage Path
select=Select&hellip;
form.option.defaultStoragePath.description=Key Storage path for a default password value
form.option.defaultStoragePath.present.description=A default value will be loaded from Key Storage
more.info=More Info
more.information=More information
jobs.and.ad.hoc.executions.will.be.queued.until.previous.executions.complete=Job and Ad-hoc executions will be queued until previous executions complete.
0.1.threads.in.use={0}/{1} Threads in use.
quartz.scheduler.thread.usage.is.currently.at=Quartz Scheduler thread usage is currently at {0}
healthcheck.json=Healthcheck (json)
invalid.username.and.password=Invalid username and password.
show.all.0.nodes=Show all {0} Nodes
count.nodes.matched={0} {1} Matched
running1=Running…
command.prompt=Command
your.recently.executed.commands=Your recently executed commands
enter.a.command=Enter a command
maximum.number.of.parallel.threads.to.use=Maximum number of parallel threads to use
maximum.threadcount.for.nodes=Maximum threadcount for nodes
continue.to.execute.on.other.nodes=Continue to execute on other nodes
do.not.execute.on.any.other.nodes=Do not execute on any other nodes
run.on.count.nodes=Run on {0} {1}
not.shown=(Not shown.)
count.nodes.shown={0} nodes shown.
results.truncated.count.results.shown=Results truncated. {0} results shown.
view.in.nodes.page=View in Nodes Page
user.at.host=User @ Host
edit.ellipsis=Edit&hellip;
opens.a.link.to.edit.this.node.at.a.remote.site=Opens a link to edit this node at a remote site.
edit.this.node.via.remote.url=Edit this node via remote URL...
jump.to=Jump to\:
per.page=Per page\:
Previous=Previous
Next=Next
node.hostname.unset.label=(unset)
node.hostname.unset.description=SSH command execution will not work without a hostname value for the node.
browse=Browse
result=Result\:
enter.a.filter=Enter a Filter
actions=Actions
filter=Filter\:
save.filter.ellipsis=Save Filter
delete.this.filter.ellipsis=Delete this Filter &hellip;
set.as.default.filter=Set as Default Filter
remove.default.filter=Remove Default Filter
run.a.command.on.count.nodes.ellipsis=Run a command on {0} {1} …
not.authorized=Not authorized
create.a.job.for.count.nodes.ellipsis=Create a job for {0} {1} …
filters=Filters
all.nodes=All Nodes
set.all.nodes.as.default.filter=Set All Nodes as Default Filter
remove.all.nodes.as.default.filter=Remove All Nodes as Default Filter
project.configuration.extra.category.resourceModelSource.title=Project Nodes
project.configuration.extra.category.resourceModelSource.description=Additional configuration for the Nodes for this project
filter.title=Filter
show.all.nodes=Show all nodes
saved.filters=Saved Filters
all.nodes.menu.item=-All Nodes-
framework.service.ScmExport.label.plural=SCM Export Plugins
framework.service.ScmImport.label.plural=SCM Import Plugins
plugin.scmExport.special.description=Configure these plugins in the SCM section of the Configuration page.
framework.service.ScmExport.extended.description=Configure this plugin in the SCM section of the Configuration page.
plugin.scmImport.special.description=Configure these plugins in the SCM section of the Configuration page.
framework.service.ScmImport.extended.description=Configure this plugin in the SCM section of the Configuration page.
job.starting.execution=Starting Execution…
job.execution.starting=Starting in\:
job.scheduling.execution=Scheduling Execution...
scheduledExecution.property.crontab.detail.prompt=Schedule\:
job.detail.next.execution=Next execution
job.detail.time.at=at
scheduledExecution.options.prompt=Options\:
scheduledExecution.property.verbose.logging.prompt=Verbose Logging\:
scheduledExecution.property.nodeRankOrder.ascending.message=in <strong>ascending</strong> order.
scheduledExecution.property.nodeRankOrder.ascending=ascending
scheduledExecution.property.nodeRankOrder.descending.message=in <strong>descending</strong> order.
scheduledExecution.property.nodeRankOrder.descending=descending
job.detail.node.prompt=Node\:
server.node.label=Server Node
scheduledExecution.property.notification.prompt=Notification\:
scheduledExecution.property.orchestrator.prompt=Orchestrator\:
scheduledExecution.property.uuid.prompt=UUID\:
scheduledExecution.property.datecreated.prompt=Created\:
scheduledExecution.property.uuid.description=UUID for this job
display.matching.nodes=Display matching nodes
scheduledExecution.property.timeout.title=Timeout duration
domain.Option.validation.multivalue.notallowed=Option {0} value: {1} does not allow multiple values.
domain.Option.validation.required=Option ''{0}'' is required.
domain.Option.validation.required.storageDefault=Option {0} is required, but storage value from "{1}" could not be read.
domain.Option.validation.required.storageDefault.reason=Option {0} is required, but storage value from "{1}" could not be read: {2}.
domain.Option.validation.regex.values=Option {0} values: {1} did not all match regular expression: {2}
domain.Option.validation.allowed.values=Option {0} values: {1} were not all in the allowed values: {2}
domain.Option.validation.secure.invalid=Option {0} value was not valid
domain.Option.validation.regex.invalid=Option {0} value: {1} doesn''t match regular expression: {2}
domain.Option.validation.allowed.invalid=Option {0} value: {1} was not in the allowed values: {2}
domain.Option.validation.file.notfound=File ref "{0}" is not a valid for job {1}, option {2}
domain.Option.validation.file.invalid=File ref "{0}" is not a valid for job {1}, option {2}
domain.Option.validation.file.inuse=File ref "{0}" cannot be used because it was used for execution {1}
domain.Option.validation.file.state=File ref "{0}" cannot be used because it is in state: {1}
api.success.job.schedule.disabled=Job Schedule was disabled for\: {0}
api.success.job.schedule.enabled=Job Schedule was enabled for\: {0}
api.success.job.execution.disabled=Job Execution was disabled for\: {0}
api.success.job.execution.enabled=Job Execution was enabled for\: {0}
api.error.job.toggleSchedule.notScheduled=Cannot toggle schedule for {0} {1}\: not a scheduled Job
ScheduledExecutionController.bulkUpdate.empty=Select at least one Job to modify
job.execute.action.button=Execute Job
job.filter.create.help=Enter filter parameters below and click "save this filter" to set a name and save it.
job.filter.save.button.title=Click to save this filter with a name
job.filter.save.button=save this filter&hellip;
job.filter.delete.button.title=Click to delete this saved filter
job.filter.delete.button=delete&hellip;
job.bulk.activate.menu.label=Bulk Edit
jobs.matching.filter=Jobs matching filter
choose.a.filter=Choose a Filter
expand.all=Expand All
collapse.all=Collapse All
job.save.completed.message=Saved changes to Job
job.bulk.modify.confirm.panel.title=Confirm Bulk Job Modification
job.bulk.disable.schedule.confirm.message=Disable schedules for all selected Jobs?
job.bulk.enable.schedule.confirm=Enable schedules for all selected Jobs?
job.bulk.disable.execution.confirm=Disable execution for all selected Jobs?
job.bulk.enable.execution.confirm=Enable execution for all selected Jobs?
job.bulk.disable.schedule.button=Disable Schedules
job.bulk.enable.schedule.button=Enable Schedules
job.bulk.delete.button=Delete Jobs
job.bulk.panel.select.title=Select Jobs for Bulk Edit
job.bulk.perform.action.menu.label=Perform Action
job.create.button=Create a new Job
job.upload.button.title=Upload a Job definition
job.filter.apply.button.title=Filter
job.filter.clear.button.title=Clear
job.single.disable.schedule.confirm.message=Disable execution Schedule for this Job?
job.single.enable.schedule.confirm=Enable execution Schedule for this Job?
job.single.disable.schedule.button=Disable Schedule
job.single.enable.schedule.button=Enable Schedule
job.single.disable.schedule.modal.title=Disable Job Schedule
job.single.enable.schedule.modal.title=Enable Job Schedule
job.single.disable.execution.modal.title=Disable Job Execution
job.single.enable.execution.modal.title=Enable Job Execution
job.single.enable.execution.confirm.message=Enable Executions for this Job?
job.single.disable.execution.confirm.message=Disable Executions for this Job?
job.single.disable.execution.button=Disable Execution
job.single.enable.execution.button=Enable Execution
scheduledExecutionQuery.serverNodeUUIDFilter.validator.invalid=Field {0} was not a valid UUID: value {2}
menu.logStorage.stats.progress.description=Percentage of successful log data upload attempts.
menu.logStorage.stats.queueCount.description=Number of queued Log Data uploads for executions.
menu.logStorage.stats.storageResults.description=Attempts Succeeded : Failed
menu.logStorage.stats.incomplete.description=Number of executions with incomplete remote log data storage.
menu.logStorage.stats.missing.description=Number of executions without log data storage.
menu.logStorage.page.title=Log Storage
menu.logStorage.table.title=Log Storage System
menu.logStorage.stats.progress.title=Progress
menu.logStorage.stats.successRatio.title=Success Ratio
menu.logStorage.stats.queueCount.title=Upload Queue
menu.logStorage.stats.storageResults.title=Upload Results
menu.logStorage.stats.incomplete.title=Incomplete
menu.logStorage.stats.missing.title=Missing
menu.logStorage.button.resume.incomplete.log.storage.uploads=Requeue All
menu.logStorage.not.enabled.message=Log Storage is not enabled
menu.logStorage.stats.queueCount.description.extended=Retries will be re-queued after {0} seconds.
menu.logStorage.button.clear.queue.title=Empty the queue of pending log data storage uploads.
menu.logStorage.button.remove.all=Remove All
menu.logStorage.button.remove.all.title=Remove all incomplete uploads that are not queued
menu.logStorage.button.list.incomplete.log.data.storage=List Incomplete Log Data Storage
menu.logStorage.table.title.incomplete.log.data=Incomplete Log Data Storage: Executions with log files that have not all been uploaded successfully
prev.page=Prev Page
next.page=Next Page
menu.logStorage.table.paging.info={0} - {1} of {2}
menu.logStorage.table.incomplete.header.execution.id=Execution ID
menu.logStorage.table.incomplete.header.date.created=Date Created
menu.logStorage.table.incomplete.header.Action=Action
menu.logStorage.incomplete.status.queued.title=Queued for upload
menu.logStorage.incomplete.status.failed.title=Failed
menu.logStorage.incomplete.status.unqueued.title=Unqueued
menu.logStorage.button.requeue=Requeue
menu.logStorage.button.remove=Remove
menu.logStorage.button.clear.queue=Clear
menu.logStorage.localFilesPresent.true.title=All Local log files are present on disk and can be uploaded.
menu.logStorage.localFilesPresent.false.title=One or more local log files are not present on disk, log storage may fail.
scheduledExecution.scheduled.cluster.orphan.title=Orphaned Schedule: This job is not owned by any cluster node, you must reschedule it by changing the owner (e.g. re-save it on this node).
page.home.section.project.title={0} Project
page.home.section.project.title.plural={0} Projects
page.home.duration.in.the.last.day=In the last day
in=in
page.home.new.project.button.label=New Project
page.home.get.started.message=To get started, create a new project.
page.home.welcome.to.app=Welcome to {0}
page.home.loading.projects=Loading Projects
page.home.search.project.title.plural={0} Projects found
page.home.search.project.title={0} Project found
page.home.search.projects.input.placeholder=Project search: name, label or /regex/
create.job.button.label=Create Job

app.firstRun.md=![image](https://media.rundeck.org/images/app-logo-small.png?t=oss&v={{app/ident}})\n\
  \n\
  Get your [free Rundeck stickers](https://www.rundeck.com/free-stuff).\n\
  \n\
  For help see the links below, or click "help" in the top part of the page.\n\
  \n\
  <table class="table table-condensed">\n\
  <tr>\n\
  <td><a href="{{help/docs}}">Documentation &raquo;</a></td>\n\
  <td><a href="http://groups.google.com/group/rundeck-discuss">Mailing List &raquo;</a></td>\n\
  </tr>\n\
  <tr>\n\
  <td><a href="http://webchat.freenode.net/?nick=rundeckuser.&channels=rundeck&prompt=1">IRC Channel &raquo</a></td>\n\
  <td><a href="https://github.com/rundeck/rundeck/issues">Issue Reporting &raquo;</a></td>\n\
  </tr>\n\
  </table>\n

app.firstRun.title=Welcome to {0} {1}
welcome.button.use.rundeck=Use Rundeck &raquo;
page.welcome.title.suffix=\ - Welcome
version.number=version number
you.can.see.this.message.again.by.clicking.the=You can see this message again by clicking the
in.the.page.footer=in the page footer.
options.remote.dependency.missing.required=Cannot load remote values for {0}: these required options are not set: {1}
option.default.button.title=Click to use the default value
option.default.button.text=default: {0}
option.select.choose.text=-choose-
job.option.multivalue.new.value.button.title=New Value
page.home.project.executions.0.failed={0} Failed
page.home.project.executions.0.failed.parenthetical=({0} Failed)
job.editor.preview.runbook=Preview Runbook
drag.to.reorder=Drag to reorder
move.up=Move up
move.down=Move down
edit.this.option=Edit this option
delete.this.option=Delete this option
edit=edit
really.delete.option.0=Really delete option {0}?
execution.log.no.output=Execution has no log output
Workflow.step.property.description.label=Step Label
Workflow.step.property.description.placeholder=Label or description of this step
request.authentication.required=Authentication is required
com.dtolabs.rundeck.app.support.PluginResourceReq.path.matches.invalid.path=Invalid path: {2}
scheduledExecution.property.notified.label.text=Send Notification?
notification.plugin.configuration.noproperties.message=No configuration properties for {0}
gui.menu.AccessControl=Access Control
system.access.control.title=System ACL Policies
project.access.control.title=ACL Policies
project.access.control.description=Project ACLPolicies can be modified via the API
project.access.control.prompt=ACL Policies for project {0}
select.project=Select Project...
project.configuration.prompt=Project Configuration:
activity.jobs.executed.node=On
activity.jobs.executed.local=Locally
scheduledExecution.property.nodefiltereditable.label=Editable filter
job.run.override.node=Override Node Filter
or=Or
workflow.step.description=Step Description
workflow.step.description.placeholder=Description of this step
node.steps.execute.for.each.matched.node=Node Steps execute for each matched Node
step.type.exec.title=Command
step.type.exec.description=Execute a remote command
step.type.script.title=Script
step.type.script.description=Execute an inline script
step.type.scriptfile.title=Script file or URL
step.type.scriptfile.description=Execute a local script file or a script from a URL
step.type.jobreference.title=Job Reference
step.type.jobreference.nodestep.description=Execute another Job for each Node
step.type.jobreference.description=Execute another Job
workflow.steps.execute.once.in.the.workflow=Workflow Steps execute once in the workflow
node.steps=Node Steps
choose.a.job...=Choose A Job&hellip;
select.an.existing.job.to.use=Select an existing Job to use
Workflow.Step.jobreference.argString.placeholder=Enter arguments, e.g. -option1 value -option2 value
Workflow.Step.jobreference.uuid.placeholder=Enter UUID, e.g. 5910b723-2436-4497-96d5-49a08db95d2b
Workflow.Step.jobreference.uuid.help=You can enter a job name or UUID, but if both UUID and job name are specified they must correspond to the same job.
Workflow.Step.jobreference.name-group.label=Job Name/Group
Workflow.Step.jobreference.fail.on.disabled.label=Fail on disabled execution?
Workflow.Step.jobreference.fail.on.disabled.help=If the referenced job has disabled execution, it will be considered a failure.
Workflow.Step.jobreference.import.options.label=Import options?
Workflow.Step.jobreference.import.options.help=Pass as argument the parent job option values that match the options on the referenced job.
scheduledExecution.groupPath.label=Group Path
override.node.filters=Override Node Filters?
Workflow.step.script.execution.preview.label=Execution Preview
Workflow.step.plugin.provider.not.found=Provider not found
Workflow.step.plugin.provider.not.found.description=The step plugin provider "{0}" is not installed, or could not be loaded.
Workflow.step.plugin.configuration.invalid=The step plugin type "{0}" is not valid: {1}
button.action.discard=Discard
Workflow.stepErrorHandler.cancel.title=Cancel adding new error handler
Workflow.stepErrorHandler.savenew.title=Save the new error handler
Workflow.step.cancel.title=Cancel adding new step
Workflow.step.savenew.title=Save the new step
Workflow.step.discard.title=Discard changes to the step
Workflow.stepErrorHandler.discard.title=Discard changes to the error handler
Workflow.step.save.title=Save changes to the step
Workflow.stepErrorHandler.save.title=Save changes to the error handler
page.Plugins.title=Plugins
page.Plugins.description=Installed and Bundled Plugins
page.Plugins.description2.md=Some plugin behavior can be configured by modifying the `project.properties` or `framework.properties`         configuration files.
plugin.source.embed=Source: included file
plugin.source.builtin=Source: built in
plugin.source.file=Source: installed file
plugin.metadata.date=Date: {0}
author=Author
no.configuration=No configuration
plugin.metadata.author=Author: {0}
plugin.metadata.website=Website: {0}
choose.execution.options=Choose Execution Options
change.the.target.nodes=Change the Target Nodes
select.prompt=Select:
all=All
the.time.must.be.in.the.future=The time must be in the future.
runbook=Runbook
form.option.dateFormat.description.md=Enter a date format as described in [momentjs docs](http://momentjs.com/docs/#/displaying/format/)
form.option.dateFormat.title=Date Format
form.option.optionType.text.label=Text
form.option.optionType.file.label=File
roles=Roles
expiration=Expiration Date
expiration.in=Expiration in
expiration.token.help=Set to zero for maximum allowed duration. ({0})
roles.token.help=Comma separated roles/groups. Leave blank for: all current user roles.
show.token=Show Token
token=Token
button.delete.expired.tokens=Delete expired tokens
button.delete.expired.tokens.ellipsis=Delete expired tokens...
title.delete.expired.tokens=Delete Expired Tokens
user.profile.modal.delete.expired.tokens.created.by=Delete expired tokens created by:
me=Me
all.users=All Users
user.profile.generateToken.AuthToken.username.description=Username associated with the token
token.username=Username
framework.service.FileUploadPluginService.label.plural=File Upload Plugins
framework.service.FileUploadPluginService.description=Store and Retrieve Uploaded Files for Job Options
plugin.FileUploadPluginService.special.description=Configure this plugin within the rundeck-config.properties file.  Declare the provider with `rundeck.fileupload.plugin.type=${pluginName}`.
form.option.multivalueAllSelected.label=Select All Values by Default
project.configuration.extra.category.gui.description=Additional configuration for the user interface for this project
project.configuration.extra.category.gui.title=User Interface
api.error.project.archive.failure=Project export request {0} failed: {1}
scheduledExecution.property.timezone.prompt=Time Zone
scheduledExecution.property.timezone.description=A valid Time Zone, either an abbreviation such as "PST", a full name such as "America/Los_Angeles",or a custom ID such as "GMT-8:00".
scheduledExecution.timezone.error.message=Non Valid Time Zone: {0}
execution.show.log.html.button.title=HTML
execution.show.log.text.button.title=Text
execution.show.log.download.button.title=Download
execution.show.log.text.button.description=View text output
execution.show.log.html.button.description=View rendered output
execution.show.log.download.button.description=Download {0} bytes
workflow.step.action.duplicate.title=Duplicate this step
Workflow.step.logFilter.configuration.invalid=The Log Filter at index {0} of type "{1}" is not valid: {2}
undo=Undo
redo=Redo
revert.all.changes=Revert All Changes
really.revert.0=Really revert {0}?
click.to.edit.filter=Click to Edit Filter
remove.filter=Remove Filter
add=add
global.log.filters=Global Log Filters
log.filters=Log Filters:
step.type.jobreference.project.label=Current Project ({0})
commandExec.jobProject.unauth.message=Unauthorized Job Project
scheduledExecution.action.duplicate.other.button.label=Duplicate this Job to other Project&hellip;
project.passive.mode.description=Job execution and schedule configuration at project level.
project.execution.disabled=Project execution is disabled
project.schedule.disabled=Project schedule is disabled
project.configuration.extra.category.executionMode.title=Execution Mode
project.configuration.extra.category.executionMode.description=Job execution and schedule configuration at project level.
no.jobs.in.this.project=No Jobs in this Project
scheduledExecution.property.retry.delay.label=Retry Delay
scheduledExecution.property.retry.delay.description=The time between the failed execution and the retry. Time in seconds, \
  or specify time units: "120m", "2h", "3d".  Use blank or 0 to indicate no delay. Can include option value \
  references like "${option.delay}".
edit.message.of.the.day=Edit Message of the Day…
edit.configuration=Edit Configuration…
help=Help
edit.readme.ellipsis=Edit Readme…
edit.readme=Edit Readme
edit.motd=Edit MOTD
list.acls=List ACLs
export.archive.ellipsis=Export Archive…
import.archive.ellipsis=Import Archive…
delete.project.ellipsis=Delete Project…
project.admin=Project Admin

gui.menu.ExecutionMode=Execution Mode
project.edit.readme.warning.not.displayed.nonadmin.message=Warning: This file will not be shown anywhere, you should ask an admin to update your Project Configuration to enable it.
project.edit.readme.warning.not.displayed.admin.message=Warning: This file will not be shown anywhere, you can enable it in the:
set.execution.mode=Set Execution Mode
current.mode=(Current Mode)
system=System
execution.mode.ellipsis=Execution Mode…
gui.menu.LogStorage=Log Storage
logout=Logout
profile=Profile
edit.project.file=Edit Project File

export.another.instance=Export To Another Instance
export.another.instance.go=Export
export.another.instance.url=Server URL
export.another.instance.url.help=Server URL in format http(s)://address:port
export.another.instance.token=Token
export.another.instance.token.help=Token with import privileges on the target project.
export.another.instance.project=Project
export.another.instance.project.help=Target project on the server.
export.another.instance.success=Archive successfully imported on the new instance
export.another.instance.process=Exporting project <b>{0}</b> to <b>{1}</b>
export.another.instance.errors=There were errors exporting project <b>{0}</b> to <b>{1}</b>
export.another.instance.goto=Go to the other instance
on=on
ago=ago
format.time.sec.abbrev={0}s
format.time.min.abbrev={0}m
format.time.hour.abbrev={0}h
format.time.day.abbrev={0}d
project.node.sources.title=Node Sources
project.resource.model.add.source.button.title=Add Source
project.configure.nodes.title=Configure Nodes
edit.nodes=Edit Nodes…
edit.nodes.file=Edit Nodes File
edit.nodes.content.in.format.0=Edit Nodes Content in format: {0}
edit.nodes.file.0=Edit Nodes File: {0}
file.display.format.label=Format
project.node.file.source.label=Source
project.node.file.source.description.label=Description
project.nodes.edit.save.error.message=Error Saving Content:
project.nodes.edit.empty.message=Nodes Content Empty
project.nodes.edit.empty.description=Note: No content was available.
edit.project.acl.file=Edit Project ACL Policy
edit.file=Edit File
project.label.prompt=Project:
policy.name.label.prompt=Name
policy.name.description=The policy name without file extension, can contain the characters: a-zA-Z0-9,.+_-
error.validation.failed.title=Validation Failed
acl.validation.policy.document.identity.title.0=Policy Document: {0}
stored.acl.policy.files.title=Stored ACL Policies
file.was.saved.flash.message=Saved
edit.system.acl.file=Edit System ACL Policy
system.acl.location.prompt=Location:
system.acl.location.type.fs.label=File System
system.acl.location.type.storage.label=Storage
link.title.acl.policy.format=ACL Policy Format
link.title.access.control.policy=Access Control Policy
navigation.back.title=Back
create.project.acl.file=Create Project ACL Policy
com.dtolabs.rundeck.app.support.SaveProjAclFile.name.matches.invalid=Name has invalid characters
com.dtolabs.rundeck.app.support.SaveSysAclFile.name.matches.invalid=Name has invalid characters
com.dtolabs.rundeck.app.support.SaveSysAclFile.fileText.blank=Policy cannot be blank
com.dtolabs.rundeck.app.support.SaveSysAclFile.fileText.nullable.error=Policy cannot be blank
com.dtolabs.rundeck.app.support.SaveProjAclFile.fileText.blank=Policy cannot be blank
com.dtolabs.rundeck.app.support.SaveProjAclFile.fileText.nullable.error=Policy cannot be blank
access.control.action.create.acl.policy.button.title=Create ACL Policy
page.title.project.access.control.0=Project Access Control: {0}
create.system.acl.policy=Create System ACL Policy
really.delete.this.policy=Really delete this policy?
policy=Policy
delete.acl.policy=Delete ACL Policy
validation.error=Validation Error
clusterMode.acls.localfiles.modify.disabled.warning.message=Cannot modify local ACL Policies in cluster mode
aclpolicy.file.upload.name.label=Name
aclpolicy.file.upload.name.is.required=Name is required
aclpolicy.file.upload.modal.title=Upload ACL Policy
button.action.Upload=Upload
aclpolicy.file.upload.failed.acl.policy.validation.message=Uploaded File failed ACL Policy Validation:
aclpolicy.file.upload.overwrite.label=Overwrite an existing ACL Policy with the same name
aclpolicy.file.upload.exists.warning.message=A Policy already exists with the specified name
title.location.prompt=Location:
execution.log.clusterExec.log.delayed.message=This execution is running on another cluster member, so log output and execution summary data may be delayed.
project.name.invalid=Project Name is not valid

framework.service.ContentConverter.label=Content Converter Plugin
framework.service.ContentConverter.label.plural=Content Converter Plugins
framework.service.ContentConverter.description=Converts Structured Log Data for display in Execution Logs

framework.service.LogFilter.label=Log Filter Plugin
framework.service.LogFilter.label.plural=Log Filter Plugins
framework.service.LogFilter.description=Filters and modifies Execution log output

Execution.plural.ref=Referenced executions
job.toggle.scm.confirm.panel.title=Confirm SCM Modification
job.toggle.scm.confirm.on=Enable all SCM configured plugins?
job.toggle.scm.confirm.off=Disable all SCM configured plugins?
job.toggle.scm.button.label.on=Enable SCM
job.toggle.scm.button.label.off=Disable SCM
job.toggle.scm.menu.off=Toggle SCM OFF
job.toggle.scm.menu.on=Toggle SCM ON
delete.referenced.job=This job is being referenced by another, deleting it could break the parent job.
deleted.referenced.job=This job was referenced by another, deleting it could had break the parent job.

#view : user.login
user.login.username.label=Username
user.login.password.label=Password
user.login.login.button=Log In
scheduledExecution.action.menu.none-available=No actions available

scheduledExecution.property.defaultTab.label=Default Tab
scheduledExecution.property.defaultTab.description=Default tab to display when you follow an execution.

passwordUtility.page.label=Password Encrypter Utility
passwordUtility.output.label=Output
passwordUtility.encoder.label=Encoder:

execution.html.waiting=Waiting for Execution log...
jobreference.wrong=(Job not found)
menu.logStorage.stats.running.label.prompt=Running: 
menu.logStorage.stats.queuedRequestCount.label.prompt=Requests:
menu.logStorage.stats.queuedRetriesCount.label.prompt=Retries:
menu.logStorage.stats.queuedIncompleteCount.label.prompt=Incomplete: 
menu.logStorage.stats.retriesCount.label.prompt=Retried:
options.label=Options

page.users.title=Users
page.users.summary=List of Rundeck users.
page.users.login.label=Login
page.users.created.label=Created
page.users.updated.label=Updated
page.users.lastjob.label=Last Job execution
page.users.tokens.label=N\u00BA Tokens
page.users.tokens.help=You can administrate the tokens in the User Profile page.

development.mode.warning=[Development Mode] Usage of H2 database is recommended only for development and testing
{'fraction_non_alphanumeric': 0.09478868699891221, 'fraction_numerical': 0.005469159179726844, 'mean_word_length': 6.241266136678579, 'pattern_counts': {'":': 0, '<': 107, '<?xml version=': 0, '>': 110, 'https://': 5, 'lorem ipsum': 0, 'www.': 3, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 20, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7583076', 'n_tokens_mistral': 28742, 'n_tokens_neox': 28008, 'n_words': 7763}