###############################################################################
# Copyright (c) 2001, 2007 Oracle Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#     Oracle Corporation - initial API and implementation
###############################################################################
# <f:convertDateTime>
JSFCoreConvertDateTimeSection.ChangeAttribute=Change Attribute

# <f:convertNumber>
JSFCoreConvertNumberSection.CommandLabel.ChangeAttribute=Change Attribute

# <h:commandButton>
JSFHtmlCommandButtonSection.Listeners=Listeners
JSFHtmlCommandButtonSection.Add=&Add
JSFHtmlCommandButtonSection.Remove=&Remove
JSFHtmlCommandButtonSection.CommandLabel.AddSubTag=Add Sub Tag
JSFHtmlCommandButtonSection.CommandLabel.RemoveSubTag=Remove Sub Tag

# <h:dataTable>
JSFHtmlDataTableSection.Columns=Columns
JSFHtmlDataTableSection.Add=&Add
JSFHtmlDataTableSection.Remove=&Remove
JSFHtmlDataTableSection.MoveUp=Move &up
JSFHtmlDataTableSection.MoveDown=Move &down
JSFHtmlDataTableSection.CommandLabel.AddSubTag=Add Sub Tag
JSFHtmlDataTableSection.CommandLabel.RemoveSubTag=Remove Sub Tag
JSFHtmlDataTableSection.CommandLabel.InsertSubTag=Insert Sub Tag

# <h:inputHidden>
JSFHtmlInputHiddenSection.Type=Type:
JSFHtmlInputHiddenSection.Type0=Hidden
JSFHtmlInputHiddenSection.Type1=Secret
JSFHtmlInputHiddenSection.Type2=Text
JSFHtmlInputHiddenSection.Type3=Textarea

JSFHtmlInputHidden.CommandLabel.ChangeType=Change Type

# <h:inputText>
JSFHtmlInputTextSection.Validators=Validators
JSFHtmlInputTextSection.Listeners=Listeners
JSFHtmlInputTextSection.Minimum=Minimum
JSFHtmlInputTextSection.Maximum=Maximum
JSFHtmlInputTextSection.Add=&Add
JSFHtmlInputTextSection.Remove=&Remove
JSFHtmlInputTextSection.Converter=Converter
JSFHtmlInputTextSection.CommandLabel.ChangeAttribute=Change Attribute
JSFHtmlInputTextSection.CommandLabel.AddSubTag=Add Sub Tag
JSFHtmlInputTextSection.CommandLabel.RemoveSubTag=Remove Sub Tag

# <h:outputFormat>
JSFHtmlOutputFormatSection.Parameters=Parameters:
JSFHtmlOutputFormatSection.ColName=Name
JSFHtmlOutputFormatSection.ColValue=Value
JSFHtmlOutputFormatSection.CommandLabel.ChangeAttribute=Change Attribute
JSFHtmlOutputFormatSection.CommandLabel.AddSubTag=Add Sub Tag
JSFHtmlOutputFormatSection.CommandLabel.RemoveSubTag=Remove Sub Tag

# <h:outputText>
JSFHtmlOutputTextSection.Converter=Converter
JSFHtmlOutputTextSection.Add=&Add
JSFHtmlOutputTextSection.Remove=&Remove
JSFHtmlOutputTextSection.CommandLabel.AddSubTag=Add Sub Tag
JSFHtmlOutputTextSection.CommandLabel.RemoveSubTag=Remove Sub Tag

# <h:selectManyCheckbox>
JSFHtmlSelectManyCheckboxSection.Choices=Choices
JSFHtmlSelectManyCheckboxSection.Add=&Add
JSFHtmlSelectManyCheckboxSection.Remove=&Remove
JSFHtmlSelectManyCheckboxSection.MoveUp=Move &up
JSFHtmlSelectManyCheckboxSection.MoveDown=Move &down
JSFHtmlSelectManyCheckboxSection.CommandLabel.AddSubTag=Add Sub Tag
JSFHtmlSelectManyCheckboxSection.CommandLabel.RemoveSubTag=Remove Sub Tag
JSFHtmlSelectManyCheckboxSection.CommandLabel.InsertSubTag=Insert Sub Tag