###############################################################################
# Copyright (c) 2001, 2004 IBM 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:
#     IBM Corporation - initial API and implementation
#     Jens Lukowski/Innoopract - initial renaming/restructuring
#     
###############################################################################
## The following line is a sample XML document.  Please translate only the following parts:  
## begin color definitions
## Normal text content.
Sample_XML_doc=<?xml version=\"1.0\"?>\n<?customProcessingInstruction\n\tXML processor specific\n\tcontent ?>\n<!DOCTYPE colors\n\tPUBLIC \"//IBM/XML/COLORS/\" \"colors.dtd\">\n<colors>\n\t<!-- begin color definitions -->\n\t<color name=\"plaintext\" foreground=\"#000000\"\n\t\tbackground=\"#D4D0C8\" />\n\t<color name=\"bold\" foreground=\"#000000\"\n\t\tbackground=\"#B3ACA0\" />\n\t<![CDATA[<123456789>]]>\n\tNormal text content.\n\t<color name=\"inverse\" foreground=\"#F0F0F0\"\n\t\tbackground=\"#D4D0C8\" />\n\n</colors>\n
Comment_Delimiters_UI_=Comment Delimiters
Comment_Content_UI_=Comment Content
Tag_Delimiters_UI_=Tag Delimiters
Tag_Names_UI_=Tag Names
Attribute_Names_UI_=Attribute Names
Attribute_Values_UI_=Attribute Values
Declaration_Delimiters_UI_=Declaration Delimiters
Content_UI_=Content
## on the following 2 lines, do not translate CDATA
CDATA_Delimiters_UI_=CDATA Delimiters
CDATA_Content_UI_=CDATA Content
Processing_Instruction_Del_UI_=Processing Instruction Delimiters
Processing_Instruction_Con_UI__UI_=Processing Instruction Content
## on the following line solely translate:  Name
DOCTYPE_Name_UI_=DOCTYPE Name
## on the following line solely translate:  Keyword
DOCTYPE_SYSTEM/PUBLIC_Keyw_UI_=DOCTYPE SYSTEM/PUBLIC Keyword
## on the following line solely translate:  Public Reference
DOCTYPE_Public_Reference_UI_=DOCTYPE Public Reference
## on the following line solely translate:  System Reference
DOCTYPE_System_Reference_UI_=DOCTYPE System Reference
# XML Common UI 
# Constants for strings

NEW=New
DELETE=Remove
ADD_TEXT=Add Text
ADD_CDATA_SECTION=Add CDATA Section
ADD_COMMENT=Add Commen&t
ADD_PROCESSING_INSTRUCTION=Add Processing Instruction

_UI_MENU_ADD_AFTER=Add &After
_UI_MENU_ADD_ATTRIBUTE=Add A&ttribute
_UI_MENU_ADD_BEFORE=Add &Before
_UI_MENU_ADD_CHILD=Add &Child
_UI_MENU_REMOVE=Re&move
_UI_MENU_REPLACE_WITH=Re&place With
_UI_MENU_ADD_DOCTYPE=Add DOCTYPE...
_UI_MENU_EDIT_DOCTYPE=Edit DOCTYPE...
_UI_MENU_ADD_GRAMMAR_INFORMATION=Add Grammar Information
_UI_MENU_VALIDATE_XML=Validate XML File
_UI_LABEL_UNDO_ADD_DESCRIPTION=Add
_UI_LABEL_UNDO_REPLACE_DESCRIPTION=Replace
_UI_LABEL_EDIT_DOCTYPE=Edit DOCTYPE
_UI_INFO_EXPAND_ALL=Expand All
_UI_INFO_COLLAPSE_ALL=Collapse All

_UI_MENU_ADD_DTD_INFORMATION=Add DTD Information...
_UI_MENU_ADD_SCHEMA_INFORMATION=Add Schema Information...
_UI_MENU_EDIT_SCHEMA_INFORMATION=Edit &Schema Information...
_UI_MENU_EDIT_PROCESSING_INSTRUCTION=Edit Process&ing Instruction...
_UI_MENU_EDIT_NAMESPACES=Edit &Namespaces...

_UI_MENU_ADD_DTD_INFORMATION_TITLE=Add DTD Information
_UI_MENU_EDIT_PROCESSING_INSTRUCTION_TITLE=Edit Processing Instruction
_UI_MENU_EDIT_SCHEMA_INFORMATION_TITLE=Edit Schema Information

_UI_MENU_NEW_ATTRIBUTE=&New Attribute...
_UI_MENU_NEW_ATTRIBUTE_TITLE=New Attribute
_UI_MENU_EDIT_ATTRIBUTE=Edit Attribute...
_UI_MENU_EDIT_ATTRIBUTE_TITLE=Edit Attribute
_UI_MENU_NEW_ELEMENT=New &Element...
_UI_MENU_NEW_ELEMENT_TITLE=New Element
_UI_MENU_RENAME=R&ename
_UI_MENU_RENAME_TITLE=Rename
_UI_LABEL_ELEMENT_NAME=Element name:
_UI_LABEL_LOADING_GRAMMAR=Loading grammar:

_UI_MENU_ADD_COMMENT=Add Comment
_UI_MENU_ADD_PROCESSING_INSTRUCTION=Add Processing Instruction
_UI_MENU_ADD_CDATA_SECTION=Add CDATA Section
_UI_MENU_ADD_PCDATA=Add #PCDATA;

_UI_MENU_COMMENT=C&omment
_UI_MENU_PROCESSING_INSTRUCTION=P&rocessing Instruction
_UI_MENU_CDATA_SECTION=CDATA Section
_UI_MENU_PCDATA=#PC&DATA;

_UI_MENU_ADD=Add

_UI_COMMENT_VALUE=comment
_UI_PI_TARGET_VALUE=target
_UI_PI_DATA_VALUE=data
_UI_LABEL_ROOT_ELEMENT_VALUE=RootElement

_UI_LABEL_TARGET_COLON=Target:
_UI_LABEL_DATA_COLON=Data:
_UI_LABEL_ROOT_ELEMENT_NAME_COLON=Root element name:
_UI_LABEL_PUBLIC_ID_COLON=Public ID:
_UI_LABEL_SYSTEM_ID_COLON=System ID:
_UI_LABEL_BROWSE=Browse...
_UI_LABEL_SELECT_XML_CATALOG_ENTRY=Select XML Catalog Entry
_UI_LABEL_SPECIFY_SYSTEM_ID=Specify System ID
_UI_LABEL_SELECT_FILE=Select File

_UI_LABEL_KEY=Key
_UI_LABEL_URI=URI:
_UI_LABEL_XML_CATALOG_COLON=XML Catalog
_UI_LABEL_NAMESPACE_NAME=Namespace Name
_UI_LABEL_LOCATION_HINT=Location Hint
_UI_LABEL_PREFIX=Prefix
_UI_LABEL_NAMESPACE_NAME_COLON=Namespace Name:
_UI_LABEL_LOCATION_HINT_COLON=Location Hint:
_UI_LABEL_PREFIX_COLON=Prefix:
_UI_NO_NAMESPACE_NAME=<no namespace name>
_UI_NO_PREFIX=<no prefix>

_UI_LABEL_XML_SCHEMA_INFORMATION=XML Schema Information
_UI_LABEL_NAMESPACE_INFORMATION=Namespace Information

_UI_LABEL_NAME_COLON=Name:
_UI_LABEL_VALUE_COLON=Value:

_UI_BUTTON_DELETE=Delete
_UI_BUTTON_NEW=New...
_UI_BUTTON_EDIT=Edit...

_UI_LABEL_NEW_NAMESPACE_INFORMATION=New Namespace Information
_UI_LABEL_EDIT_NAMESPACE_INFORMATION=Edit Namespace Information

#
# Assign links to an XML file
#
_UI_WORK_BENCH=Workbench Files...
_UI_FILE_SYSTEM=Import Files...
_UI_ASSIGN_XSL=Assign An XSL Stylesheet To The XML File
_UI_ASSIGN_DTD=Assign A DTD file To The XML File
_UI_ASSIGN_XSD=Assign An XML schema To The XML File
_UI_SELECT_XSL_TITLE=Select an XSL File
_UI_SELECT_XSL_DESC=Select an XSL file from the workbench.

_UI_ASSIGN=Assign
_UI_XSD=XML Schema...
_UI_DTD=DTD...
_UI_XSL=XSL Stylesheet...

# XMLValidator.java
_UI_XML_VALIDATOR=XML Validator
# SelectFileOrXMLCatalogIdPanel.java

_UI_RADIO_BUTTON_SELECT_FROM_WORKSPACE=Select file from workbench
_UI_RADIO_BUTTON_SELECT_FROM_CATALOG=Select XML Catalog entry

_UI_WARNING_TITLE_ROOT_ELEMENT_REQUIRED=Root Element Required
_UI_WARNING_DOCUMENT_REQUIRES_ROOT=The document requires a root element in order to add schema information.
_UI_WARNING_MORE_THAN_ONE_NS_WITH_NAME=More than one namespace has been specified with the namespace name :
_UI_WARNING_MORE_THAN_ONE_NS_WITHOUT_NAME=More than one schema has been specified without a namespace name
_UI_WARNING_MORE_THAN_ONE_NS_WITHOUT_PREFIX=More than one namespace has been specificed without a prefix
_UI_WARNING_MORE_THAN_ONE_NS_WITH_PREFIX=More than one namespace has been specified with the prefix :
_UI_WARNING_SCHEMA_CAN_NOT_BE_LOCATED=The specified schema can not be located :
_UI_WARNING_LOCATION_HINT_NOT_SPECIFIED=A location hint has not been specified for the namespace with name
_UI_WARNING_NAMESPACE_NAME_NOT_SPECIFIED=A name must be specified for the namespace with prefix :
_UI_WARNING_PREFIX_NOT_SPECIFIED=A prefix must be specified for the namespace named :
_UI_WARNING_ROOT_ELEMENT_MUST_BE_SPECIFIED=A root element name must be specified.
_UI_WARNING_SYSTEM_ID_MUST_BE_SPECIFIED=A system ID must be specified.

_UI_INVALID_NAME=Invalid name

# String used for editing namespaces (org.eclipse.wst.xml.ui.nsedit)
_UI_ENTER_REQ_PREFIX_AND_NAMESPACE=Enter the required prefix and namespace URI for the namespace declaration.
_UI_SELECT_REGISTERED_NAMESPACES=Select From Registered Namespaces
_UI_SPECIFY_NEW_NAMESPACE=Specify New Namespace
_UI_SELECT_NAMESPACE_TO_ADD=Select the namespace declarations to add.
_UI_ADD_NAMESPACE_DECLARATIONS=Add Namespace Declarations
_UI_NAMESPACE_DECLARATIONS=Namespace Declarations
_UI_TARGET_NAMESPACE=Target Namespace

_ERROR_XML_ATTRIBUTE_ALREADY_EXISTS=The element already has an attribute with this name.

#
error_message_goes_here=error message goes here
SurroundWithNewElementQuickAssistProposal.0=Surround with new element
SurroundWithNewElementQuickAssistProposal.1=Surround with new element
RenameInFileQuickAssistProposal.0=Link all references for a rename in file (does not change references in other files)
RenameInFileQuickAssistProposal.1=Rename in file
InsertRequiredAttrsQuickAssistProposal.0=Insert required attributes
InsertRequiredAttrsQuickAssistProposal.1=Insert required attributes
EncodingSettings.0=IANA:
EncodingSettings.1=Encoding:
TemplateContextTypeXMLTag.0=XML Tags
TemplateContextTypeXMLAttributeValue.0=XML Attribute Values
TemplateContextTypeXMLAttribute.0=XML Attributes
TemplateContextTypeXML.0=All XML
DragNodeCommand.0=Move
CommonEditNamespacesDialog.0=Add...
JFaceNodeAdapter.1=Refresh Property Sheet
QuickFixProcessorXML.0=Remove empty tag
QuickFixProcessorXML.1=Change to empty-element tag
QuickFixProcessorXML.2=Remove this tag
QuickFixProcessorXML.3=Insert end tag before first child element
QuickFixProcessorXML.4=Insert end tag at end of element
QuickFixProcessorXML.5=Remove attributes in end tag
QuickFixProcessorXML.6=Insert default attribute value
QuickFixProcessorXML.7=Remove this attribute
QuickFixProcessorXML.8=Remove spaces before tag name
QuickFixProcessorXML.9=Remove spaces before processing instruction
QuickFixProcessorXML.10=Remove namespace in processing instruction
QuickFixProcessorXML.11=Remove this element
QuickFixProcessorXML.12=Remove this attribute value
QuickFixProcessorXML.13=Insert required attribute
QuickFixProcessorXML.14=Quote attribute value
QuickFixProcessorXML.15=Insert closing bracket
QuickFixProcessorXML.16=Remove this attribute and its value
XMLPropertySourceAdapter.0=Attributes

WorkbenchDefaultEncodingSettings.0=Use workbench encoding
