# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.

#fields
field.title.employees.id=Employee ID
field.title.employees.salutation=Salutation
field.title.employees.firstName=Firstname
field.title.employees.lastName=Lastname
field.title.employees.fullname=Name (full)
field.title.employees.dateOfBirth=Date of Birth
field.title.employees.departmentId=Department
field.title.employees.gender=Gender
field.title.employees.phoneNumber=Phone
field.title.employees.email=E-Mail
field.title.employees.retired=Retired
field.title.employees.updateTimestamp=Last change

field.title.departments.id=Department ID
field.title.departments.name=Department
field.title.departments.head=Head of Dept.

#options
option.employee.gender.male=Male
option.employee.gender.female=Female

#options
option.employee.active=-
option.employee.retired=Yes

#application
application_title = Employee Management Application
application_todo = To do...
application_logout = Logout


global_list_result_empty=No employee(s) found


#pages
login_title = Login
login_login = login
login_field_name = User name
login_field_password = Password
login_hint=Hint: enter any non null username and password.

employeeSearch_title=Search employee
employeeSearch_search=Search
employeeSearch_field_employeeId=Employee ID
employeeSearch_field_firstName=First name
employeeSearch_field_lastName=Last name
employeeSearch_field_departmentId=Department

employeeList_title = Employee List
employeeList_create = Create employee
employeeList_field_employeeId = ID
employeeList_field_name = Name
employeeList_field_gender = Gender
employeeList_field_dateOfBirth = Date of Birth
employeeList_field_department = Department
employeeList_search = Search
employeeList_resetSearch=Search reset

employeeDetail_title = Employee Detail
employeeDetail_tab_basic = Basic data
employeeDetail_tab_extended = Other data
employeeDetail_msg_extended = Please display additional information here
employeeDetail_save = Save
employeeDetail_back = Back
employeeDetail_delete = Delete

# Old stuff

#labels
application.title=Employee Management Application
label.employees=List of employees
label.employees.beanList=Employees (Bean-List)
label.employees.reader=Employees (DBReader)
label.delete=Delete
label.edit=Edit
label.employee.edit=Employee details
label.employee.add=Add employee
label.department=Department
label.user.Name=Name
label.user.Pwd=Password

page.label.login=Login
page.label.loginHint=Hint: enter any non null username and password.
page.label.logininfo=You are logged in as:
page.label.search=Search employee
page.label.list=Select employee
page.label.update=Edit employee details
page.label.add=Add new employee

#button labels
button.label.login=Login
button.label.search=Search
button.label.save=Save
button.label.cancel=Cancel
button.label.delete=Delete

#link labels
link.label.addemployee=Add new employee
link.label.edit=Edit
link.label.delete=Delete
link.label.logout=Logout
link.label.search=Search

##-- errors
errors.prefix=<span style="color:red;font-weight:bold;">
errors.suffix=</span>

error.invalidpassword=The username is invalid (At least one character is required!)
error.web.recordsDontMatch=The form submitted is invalid for the current context.
error.web.columnNotFound=The column {0} has not been found!
error.web.fieldError=Field {0}: {1}
error.web.input.integerFormat=Invalid Integer format
error.web.input.numberFormat=Invalid number format
error.web.input.dateFormat=Invalid date format
error.web.input.date.notime=No time specified.
error.web.input.required=This field is required 
error.web.input.outOfRange=The value must be in the range of {0} and {1}.
error.web.input.textTooShort=The value must contain at least {0} characters. 
