person.pass.minSize.notmet=Password is less than the minimum size of [{3}]
person.pass.blank=Password cannot be blank
person.pass.doesNotMatch=Passwords must match

person.personGroups=Person Groups
person.personGroups.help=Groups may be assigned to tasks and \
may also provide a record of persons qualified or trained in a specific area. \
Use Ctrl or Shift to select multiple groups. \
Groups provide no application authorisations.
person.loginName=Login Name
person.loginName.help=This is the id or name that the person will use to login to the application.
person.firstName=First Name
person.firstName.help=The person's real first name.
person.lastName=Last Name
person.lastName.help=The person's real last name.
person.password=Password
person.password.help=The password that the person will use to login to the application (should be changed by them later).
person.isActive=Active
person.isActive.help=Disable this to prevent a person logging in to the application.

person.authorities=Authorities
person.authorities.help=To allow login at least the 'ROLE_AppUser' authority must be given. The 'ROLE_AppAdmin' authority is NOT required for daily use and provides full (read as DANGEROUS) access.

entry.duration=Duration
entry.duration.help=The time (hh:mm) booked against this entry for date done.
entry.date.done=Date Done
entry.date.done.help=The date on which the event actually occurred.
entry.comment.fault=Fault
entry.comment.fault.help=Describe the fault and what is happening, NOT what needs doing! \
<br /><br />From an operation perspective, NOT a technical perspective.
entry.comment.work.done=Work Done
entry.comment.work.done.help=Describe the work that was done. \
Include the root cause if known or professional opinion on any faults. \
Include condition and contributing factors.

assignedGroup.estimatedDuration=Estimated Duration
assignedGroup.estimatedDuration.help=The estimated amount of time (hh:mm) that you would \
like to assign this group to the task.

assignedPerson.estimatedDuration=Estimated Duration
assignedPerson.estimatedDuration.help=The estimated amount of time (hh:mm) that you would \
like to assign this person to the task.

task.notFound=Could not complete operation, task not found.
task.operationNotPermittedOnCompleteTask=This operation is not permitted on a complete task.
task.operationNotPermittedOnTaskInTrash=This operation is not permitted on a task that is in the trash.
task.failedToSave=Could not complete operation, task failed to save.
task.modifications.failedToSave=Could not complete operation, as task modification record failed to save.
task.assignedGroups.failedToSave=Could not complete operation, as assignedGroup record failed to save.
task.assignedPersons.failedToSave=Could not complete operation, as assignedPerson record failed to save.
tast.taskRecurringSchedule.alreadyExists=This task already has a recurring schedule.

taskRecurringSchedule.notFound=Could not complete operation, recurring schedule not found.

task.assignedGroups=Assigned Groups
task.assignedGroups.help=The person groups assigned to work on this task during planning along with estimated time.
task.assignedPersons=Assigned Persons
task.assignedPersons.help=The persons assigned to work on this task during planning along with estimated time.
task.description=Task Description
task.description.help=Short basic description of the task.
task.comment=Task Comment
task.comment.help=Long text for additional info, only shown in detail views.
task.targetStartDate=Target Start Date
task.targetStartDate.help=The date we would like the task to start, set during scheduling.
task.targetCompletionDate=Target Completion Date
task.targetCompletionDate.help=The date we would like the task to be completed by, set during scheduling.
task.leadPerson=Lead Person
task.leadPerson.help=The primay contact person.

taskRecurringSchedule.nextTargetStartDate.mayNotBePast=Please select a start date that is not in the past.
taskRecurringSchedule.nextTargetStartDate=Next Target Start Date
taskRecurringSchedule.nextTargetStartDate.help=The target start date for the next auto generated sub task.
taskRecurringSchedule.recurEvery=Recur Every
taskRecurringSchedule.recurEvery.help=How often this task should recur. Determines the period between sub task target start dates.
taskRecurringSchedule.taskDuration=Task Duration
taskRecurringSchedule.taskDuration.help=How long to allow for the task. Determines the target completion date of the sub tasks.
taskRecurringSchedule.generateAhead=Generate Ahead
taskRecurringSchedule.generateAhead.help=How far ahead of the next target start date to generate sub tasks. \
This allows work packs to be built and work load to be seen and planned. \
Only generate ahead as far as short term planning is done, since all generated sub task values will be set and therefore \
time consuming to change.
taskRecurringSchedule.enabled=Enabled
taskRecurringSchedule.enabled.help=On to enable automatic sub task generation. Off to stop automatic sub task generation.

task.primaryAsset=Primary Asset
task.primaryAsset.help=This is the asset that costs will be assigned to.
task.associatedAssets=Associated Assets
task.associatedAssets.help=These assets are to be associated with this task, but costs will not be assigned.


inventoryItem.notFound=Could not complete operation, inventory item not found.

inventoryMovement.quantity.insufficientItemsInStock=Could not complete operation, insufficient items in stock.
inventoryMovement.inventoryItem.notFound=Inventory Item not found.

assignedGroup.task.not.found=Please select a task and then ''Add Assigned Group''.
assignedPerson.task.not.found=Please select a task and then ''Add Assigned Person''.

default.list.failure=Could not generate list for class {0}.
default.not.found={0} {1} not found, it may have been deleted.
default.delete.success={0} {1} deleted.
default.delete.failure={0} {1} could not be deleted.
default.update.success={0} {1} updated.
default.update.failure={0} {1} could not be updated.
default.create.success={0} {1} created.
default.create.failure={0} {1} could not be created.
default.optimistic.locking.failure=Another user has updated this item while you were editing, please check the updated values.

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.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.max.message=Property [{0}] of class [{1}] with value [{2}] exceeds maximum value [{3}]
default.invalid.min.message=Property [{0}] of class [{1}] with value [{2}] is less than minimum value [{3}]
default.invalid.max.size.message=Property [{0}] of class [{1}] with value [{2}] exceeds the maximum 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.invalid.validator.message=Property [{0}] of class [{1}] with value [{2}] does not pass custom validation
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.paginate.prev=Previous
default.paginate.next=Next

# Rich UI plugin - Calendar
default.time=Time
default.week=Week
default.monday=Mon
default.tuesday=Tues
default.wednesday=Wed
default.thursday=Thu
default.friday=Fri
default.saturday=Sat
default.sunday=Sun

# 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

# Navigation plugin, see conf/Config.groovy for menu's.
# Subitems are not currently resolving with this plugin.
navigation.nav.home=Home
navigation.nav.home.start=Start
navigation.nav.home.appAdmin=Admin
navigation.nav.home.manager=Manager
navigation.nav.home.changeSessionTimeout=Timeout
navigation.nav.home.changePassword=Password

navigation.nav.tasks=Tasks
navigation.nav.tasks.create=Create
navigation.nav.tasks.search=Search
navigation.nav.tasks.show=Show

navigation.nav.inventory=Inventory
navigation.nav.assets=Assets

# FilterPane plugin, properties.
fp.property.text.associatedAssets.name=Associated Asset
fp.property.text.primaryAsset.name=Primary Asset
fp.property.text.trash=Trash
fp.property.text.scheduled=Scheduled
fp.property.text.approved=Approved
fp.property.text.isObsolete=Obsolete
fp.property.text.taskGroup.name=Group
fp.property.text.taskPriority.name=Priority
fp.property.text.taskStatus.name=Status
fp.property.text.description=Description
fp.property.text.comment=Comment
fp.property.text.leadPerson.lastName=Lead Person (Last Name)
fp.property.text.leadPerson.firstName=Lead Person (First Name)
fp.property.text.taskType.name=Type
fp.property.text.inventoryLocation.name=Location
fp.property.text.spareFor.name=Spare For
fp.property.text.supplier.name=Supplier
fp.property.text.manufacturer.name=Manufacturer

