#
# Custom and domain constraint messages.
#
address.owner.not.found=An owner (Person, Site, Manufacturer or Supplier) must be supplied to create an address.
contact.owner.not.found=An owner (Person, Site, Manufacturer or Supplier) must be supplied to create contact details.
asset.tree.import.success=Asset tree imported.
asset.tree.import.failure=Could not create asset tree from supplied file, failed on line {0}, see {1}.
inventory.import.success=Inventory imported.
inventory.import.failure=Could not create inventory from supplied file, failed on line {0}, see {1}.
inventoryItemPictures.import.success=Inventory item pictures imported, see {0}.
inventoryItemPictures.import.failure.no.directory=Import directory on server not found.
inventoryItemPictures.import.failure.to.unzip=Failed to unzip supplied file.
inventoryItemPictures.import=Picture Import
inventoryItemPictures.import.help=A zip file of pictures (max 100MB) or singles pictures may be imported. Pictures \
must have the same file names as existing inventory items.
inventoryItemPurchase.import.success=Inventory item purchases imported.
inventoryItemPurchase.import.failure=Could not create inventory item purchases from supplied file, failed on line {0}, see {1}.
person.import.success=Person list imported.
person.import.failure=Could not create persons from supplied file, failed on line {0}, see {1}.
asset.copy.subItem.create.failure=Could not complete operation, as sub item failed to save.
asset.copy.subItem.too.many.failure=Could not complete operation, as there appears to be too many sub items.
asset.copy.method.required=Please select a copy method for sub items.
asset.copy.method=Copy Method
asset.copy.method.help=Link creates a new asset and links it to EXISTING sub items. \
While copy creates a new asset and new sub items by appending '(id:#)' to create unique sub item names.
asset.copy.asset.required=Please select an asset to copy.
maintenanceActions.still.associated=Could not complete operation as maintenance actions are still associated \
with this item.
maintenanceActions.still.associated.subItem=Could not complete operation as maintenance actions are still associated \
with a sub item.
inventoryStores.still.associated=Could not complete operation as inventory stores are still associated with this item.
site.section.delete.failure=Could not complete operation as sections failed to delete.
section.asset.delete.failure=Could not complete operation as assets failed to delete.
asset.subItems.delete.failure=Could not complete operation as orphan sub items failed to delete.
assetSubItem.asset.not.found=Could not complete operation as an asset was supplied but not found.
assetSubItem.assets.associated=Could not complete operation as assets are still associated with this sub item.
sub.task.create.confirm=Immediately create and save a new sub task?
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
costCode.name.not.unique.for.purchasing.group=CostCode name must be unique for purchasingGroup.
#
# Help Balloon and property definitions.
#
# Report help balloon messages.
report.stock.take.overview=Stock Take (Overview)
report.stock.take.overview.help=Use this report to manage inventory stock take. Use in conjunction with the Stock Take (By Location) report.
report.stock.take.by.location=Stock Take (Location)
report.stock.take.by.location.help=Enter a comma separated list of inventory locations. \
Use the Stock Take (Overview) report to get the list of locations. A % symbol may be used as a wild card, e.g: X1, X2, Y%, Z%7
# Person properties.
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. \
Groups provide no application authorisations.
person.purchasingGroups=Purchasing Groups
person.purchasingGroups.help=Purchasing groups determine the available cost codes that a person may purchase against.
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=Give this person authority to do things in the application. \
The user must logout for changes to take effect.
# InventoryItemPurchase properties.
inventoryItemPurchase.purchaseOrderNumber=Purchase Order #
inventoryItemPurchase.purchaseOrderNumber.help=This number must be exact in case and spacing. \
All purchase received and invoice approval requires this number to track correctly. \
The number may only appear once for each inventory item. \
To enter multiple line items for a purchase order # 'M123' use 'M123.1' and 'M123.2' for example.
inventoryItemPurchase.order.placed.date=Date
inventoryItemPurchase.order.placed.date.help=The date that the order was placed. \
May be adjusted at the end of financial years. Also see the 'date created' and 'last updated' properties.
inventoryItemPurchase.cost.code=Cost Code
inventoryItemPurchase.cost.code.help=Cost codes assign cost to the correct asset and accouting ledger number/account. \
Ideally cost codes should be asset based and reflect the asset tree.
inventoryItemPurchase.task.budget.status=Budget Status
inventoryItemPurchase.task.budget.status.help=Was this purchase planned for in the budget or is it an unplanned spend.
inventoryItemPurchase.supplier=Supplier
inventoryItemPurchase.supplier.help=The supplier to make the purchase out to.
inventoryItemPurchase.quantity=Quantity
inventoryItemPurchase.quantity.help=The number of inventory item units purchased.
inventoryItemPurchase.receive.quantity=Receive Quantity
inventoryItemPurchase.receive.quantity.help=The number of inventory item units received.
inventoryItemPurchase.approve.quantity=Approve Quantity
inventoryItemPurchase.approve.quantity.help=The number of inventory item units to approve payment for.
inventoryItemPurchase.order.value=Order Value
inventoryItemPurchase.order.value.help=The total value of this line item.
inventoryItemPurchase.receive.value=Receive Value
inventoryItemPurchase.receive.value.help=The value of items received.
inventoryItemPurchase.approve.value=Approve Value
inventoryItemPurchase.approve.value.help=The value to approve payment for.
inventoryItemPurchase.invoice.number=Invoice Number
inventoryItemPurchase.invoice.number.help=The invoice number that this line item approves payment for.
entry.duration=Duration
entry.duration.help=The time (hh:mm) booked against this entry for date done.
entry.duration.fault=Down Time.
entry.duration.fault.help=The production down time (hh:mm) directly attributable to this fault.
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=Techinical description of the fault and what is happening, NOT what needs doing!
entry.comment.cause=Cause
entry.comment.cause.help=The root cause of the fault. Professional opinion on any faults. \
Include condition and contributing factors.
entry.comment.work.done=Work Done
entry.comment.work.done.help=Describe the work that was done.
entry.productionReference.fault=Production Reference
entry.productionReference.fault.help=The production during which the fault occurred.
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.delete.failure.production=Tasks may not be deleted in production mode, \
set the trash flag instead.
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.operationNotPermittedOnRecurringTaskWithoutAuth=This operation is not permitted on a recurring task without authorisation.
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.
task.targetCompletionDate.before.targetStartDate=The target completion date must be equal to or greater than \
the target start date.
entry.create.no.params=Please select a task, then add an entry.
taskRecurringSchedule.notFound=Could not complete operation, recurring schedule not found.
personGroup.not.found=Person Group not found, it may have been deleted.
person.not.found=Person record not found, it may have been deleted.
# Task Properties.
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.description.immediateCallout=Immediate Callout Description.
task.description.immediateCallout.help=Short description of the callout from an operations perspective.
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.targetStartDate.immediateCallout=Callout Date
task.targetStartDate.immediateCallout.help=The date the callout occured.
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.
task.safetyRequirement=Safety Requirment
task.safetyRequirement.help=Completion of this task is a safety requirement. \
This task must be completed and is not allowed to be missed.
task.mandatoryRegulatory=Mandatory/Regulatory
task.mandatoryRegulatory.help=Completion of this task is a mandatory or regulatory requirement. \
This task must be completed and is not allowed to be missed.
task.positiveFault=Positive Fault
task.positiveFault.help=Set false if unsure. Used to calculate preventative efficiency or P.E.
# Task Actions
task.status.resolved=Resolved.
task.status.resolved.help=Indicate that root cause is known and has been completely resolved.
task.status.unresolved=Unresolved.
task.status.unresolved.help=Indicate that this task requires further attention, root cause is either unknown or unresolved.
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.maxSubTasks=Max Sub Tasks
taskRecurringSchedule.maxSubTasks.help=Maximum number of sub tasks to generate. Set to 0 \
for no limit.
taskRecurringSchedule.useTargetCompletionDate=Target Completion
taskRecurringSchedule.useTargetCompletionDate.help=On to use the parent task's target completion date. \
Off to continue generation past the parent task's target completion date.
taskRecurringSchedule.enabled=Enabled
taskRecurringSchedule.enabled.help=On to enable automatic sub task generation. \
Off to stop automatic sub task generation.
\
The system will turn this off if there are no further sub tasks to be generated.
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 Messages.
inventory.item.is.obsolete=This item has been flagged as obsolete.
inventory.item.not.active=This item has been flagged as not active.
inventory.item.reorder.not.allowed=Reorder not allowed.
inventory.item.reorder.listing.disabled=This item has reorder listing disabled and will not appear on reorder lists.
inventory.item.already.has.picture=Inventory item already has a picture, please delete the old picture first.
inventory.item.picture.file.unrecognised=Image file [{0}]: type not recognised.
inventory.item.picture.source.not.supported=Image source type not supported.
inventoryMovement.quantity.insufficientItemsInStock=Could not complete operation, insufficient items in stock.
inventoryMovement.inventoryItem.notFound=Inventory Item not found.
inventoryMovement.still.associated=Could not complete operation as inventory movements are still associated with this item.
inventoryItemPurchase.purchaseOrderNumber.not.unique.for.inventory.item.order=Purchase Order Number must be unique for this inventory item order.
inventoryItemPurchase.invoiceNumber.required=An invoice number must be supplied to approve payment.
inventoryItemPurchase.delete.failure.received.exists=Could not delete, items have been received.
inventoryItemPurchase.delete.failure.payment.approved=Could not delete, payment has been approved.
inventoryItemPurchase.operation.not.permitted.on.inactive.or.obsolete.item=This operation is not permitted on an inactive or obsolete inventory item.
inventoryItemPurchase.costCodes.not.found=No cost codes found, a person needs to be assigned to a purchasing group that has cost codes.
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 messages.
#
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} could not be created.
default.optimistic.locking.failure=Another user has updated this item while you were editing, please check the updated values.
default.file.over.max.size=Supplied file is greater than max size of {0} {1}.
default.file.not.supplied=No file supplied.
default.file.no.header=The supplied file does not have the correct header lines, please see the template file.
default.not.development.environment.failure=Could not complete operation, dev environment not detected.
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.prev.abbrev=Prev
default.paginate.next=Next
default.close.text=Close
default.options.text=Options
default.none.text=None
default.all.text=All
default.please.select.text=--Please-Select--
default.none.select.text=--None--
default.all.select.text=--All--
#
# 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
fp.property.text.estimatedUnitPriceAmount=Estimated Unit Price
fp.property.text.inventoryItemPurchaseType.name=Type
#
# TaskSearch Service.
#
task.search.text.all.tasks.message=All tasks for {0}.
task.search.text.all.tasks.none.found=No tasks found for {0}.
task.search.text.all.tasks.between.message=All tasks between {0} and {1}.
task.search.text.all.tasks.between.none.found=No tasks found between {0} and {1}.
task.search.text.persons.tasks.message=Tasks for {0} on {1}.
task.search.text.persons.tasks.none.found=No tasks found for {0} on {1}.
task.search.text.persons.tasks.between.message=Tasks for {0} between {1} and {2}.
task.search.text.persons.tasks.between.none.found=No tasks found for {0} between {1} and {2}.
task.search.text.my.todays=Today
task.search.text.my.todays.description=My tasks and approved tasks that I am assigned to.
task.search.text.my.yesterdays=Yesterday
task.search.text.my.tomorrows=Tomorrow
task.search.text.my.past.week=Past Week
task.search.text.todays=Today
task.search.text.todays.description=All tasks that are not in the trash bin.
task.search.text.yesterdays=Yesterday
task.search.text.tomorrows=Tomorrow
task.search.text.past.week=Past Week
task.search.text.budget.unplanned=Unplanned Tasks
task.search.text.budget.unplanned.message=Tasks with budget status of 'Unplanned' between {0} and {1}.
task.search.text.budget.unplanned.none.found=No tasks found with budget status of 'Unplanned' between {0} and {1}.
task.search.text.budget.planned=Planned Tasks
task.search.text.budget.planned.description=Task with budget status of Planned, in the past week.
task.search.text.budget.planned.message=Tasks with budget status of 'Planned' between {0} and {1}.
task.search.text.budget.planned.none.found=No tasks found with budget status of 'Planned' between {0} and {1}.
task.search.text.planners.range=Planners Range
task.search.text.planners.range.description=Tasks in the past week and two weeks ahead.
task.search.calendar.text.too.many.results=Too many results, only {0} are shown.
task.search.text.work.done=Work Done
task.search.text.work.done.description=Work done by person and date.
task.search.text.work.done.message=Work done by {0} on {1}.
task.search.text.work.done.none.found=No entries found for {0} on {1}.
#
# InventoryItemSearch
#
inventoryItem.search.searchText=Search
inventoryItem.search.searchText.help=By default all words are matched and results are sorted by relevance. \
A * symbol may be used as a wild card, e.g: '2305*' would find 2305RS and 2305-RS. A + symbol may be used to require a word \
e.g: 'sensor +print' would require results to have 'print' in the searched categories.
inventoryItem.search.text.found=Results for: {0}
inventoryItem.search.text.none.found=No results for: {0}
inventoryItem.search.text.below.reorder=Below Reorder
inventoryItem.search.text.below.reorder.description=Inventory items at or below reorder point.
inventoryItem.search.text.below.reorder.all=Below Reorder (all)
inventoryItem.search.text.below.reorder.all.description=Inventory items at or below reorder point, including reorder listing disabled.
inventoryItem.search.text.below.reorder.none.found=No inventory items found at or below reorder point.
inventoryItem.search.text.all.description=All inventory items.
inventoryItem.search.text.all.none.found=No inventory items found.
inventoryItem.search.text.recently.used=Recently Used
inventoryItem.search.text.recently.used.description=Items used in the last {0} days.
inventoryItem.search.text.recently.used.none.found=No items used in the last {0} days.
#
# Report error messages.
#
report.error.too.many.results=Error: over {0} results, please run report again.
report.error.no.locations.found=Error: no locations found, please run report again.
report.error.too.many.locations=Error: over {0} locations, please run report again.
report.error.no.inventory.items.found=Error: no inventory items found, please run report again.
report.error.too.many.inventory.items=Error: over {0} inventory items, please run report again.
#
# AppCore messages.
#
appCore.rebuild.text.search.index=The text search index is being rebuilt in the background, see log file for details.