###############################################################################
# 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
#     
###############################################################################
! Properties file for component: XMDTD - XML Tools DTD Editor
! Packaged for translation in:  xml.zip

!plugin.xml
providerName=Eclipse.org
pluginName=SSE DTD Source Editor
nlFeatureName=SSE DTD Source Editor NL Support
DTD_Source_Page_Editor.name=DTD Source Page Editor
_UI_WIZARD_NEW_DTD=DTD File
_UI_CREATE_NEW_DTD_FILE=Create a new DTD file
_UI_XML_TOOLS_PREFERENCE_PAGE=XML
_UI_DTD_EDITOR_PREFERENCE=DTD

! GenerateDTDActionDelegate - XML validation check
_UI_DIALOG_TITLE_XML_ERROR=Invalid XML
_UI_DIALOG_INFO_XML_INVALID=The XML file contains errors. Open it in the XML editor and validate it for details.

!
! Preference Page
!
_UI_SEPARATE_DESIGN_AND_SOURCE_VIEW=Separate design and source view
_UI_COMBINED_DESIGN_AND_SOURCE_VIEW=Combined design and source view
_UI_LABEL_EDITOR_LAYOUT=Editor Layout
_UI_LABEL_DTD_FILES=DTD Files
_UI_LABEL_DTD_STYLES=DTD Styles

!AddAttributeAction
_UI_DEFAULT_NEW_ATTRIBUTE=Attribute
_UI_ACTION_DTD_ADD_ATTRIBUTE=Add Attribute
_UI_ACTION_DTD_ADD_ELEMENT=Add Element

!actions/AddGroupToContentModelAction.java
_UI_ACTION_ADD_GROUP=Add &Group

!AddEntityAction
_UI_ACTION_ADD_ENTITY=Add &Entity


! Flat Page Header Text
_UI_PAGE_HEADING_ELEMENT=Element
_UI_PAGE_HEADING_ATTRIBUTE=Attribute
_UI_PAGE_HEADING_NOTATION=Notation
_UI_PAGE_HEADING_PARAM_ENTITY_REF=External Parameter Entity Reference
_UI_PAGE_HEADING_ENTITY=Entity
_UI_PAGE_HEADING_COMMENT=Comment
_UI_PAGE_HEADING_ATTLIST=Attribute List
_UI_PAGE_HEADING_CONTENT_MODEL=Content Model
_UI_PAGE_HEADING_CONTENT_MODEL_GROUP=Content Model Group

!BlankWindow
_UI_LABEL_VIEW_NOT_AVAILABLE=View is not available for selected object.

!AttributeWindow
_UI_ACTION_NOTATION_INFO=Attribute Information
_UI_LABEL_ATTRIBUTE_NAME=Name:
_UI_LABEL_ATTRIBUTE_TYPE=Type:
_UI_RADIO_DEFAULT=Default
_UI_GROUP_ENUMERATED_DEFAULTS=Enumerated defaults
_UI_BUTTON_ADD=Add  >>
_UI_BUTTON_REMOVE=<< Remove
_UI_CHKBOX_DEFAULT=Default
_UI_GROUP_ELEMENT_COMMENT=Comment
_UI_CHKBOX_ENUMERATED_DEFAULT=Default
_UI_CHKBOX_NOTATION_COMBO=Default
_UI_GROUP_ATTRIBUTE=Attribute default value

!ContentWindow  & ElementWindow
_UI_LABEL_DTD_NAME=Name
_UI_GROUP_OCCURRENCE=Occurrence

!the following four symbols are also used in dtdeditor/presentation/GroupContentWindow.java
!! NOTE TO TRANSLATOR: Please keep the characters in parentheses in translated text i.e. (1)
_UI_RADIO_JUST_ONCE=Just once (1)
_UI_RADIO_ONE_OR_MORE=One or more (+)
_UI_RADIO_OPTIONAL=Optional (?)
_UI_RADIO_ZERO_OR_MORE=Zero or more (*)

!context menu for .dtd files
_UI_MENU_GENERATE=&Generate
_UI_MENU_JAVA=&Java Beans...
_UI_MENU_XML_SCHEMA=XML &Schema...
_UI_MENU_HTML_FORM=&HTML Form...

!presentation/DTDContextContributor.java
_UI_MENU_GENERATE_JAVA=Generate &Java Beans...
_UI_MENU_GENERATE_XML_SCHEMA=Generate &XML Schema...
_UI_MENU_GENERATE_HTML_FORM=Generate &HTML Form...
_UI_MENU_GENERATE_SAMPLE_XML=Generate XM&L...
_UI_MENU_VALIDATE_DTD=&Validate DTD
_UI_TOOLTIP_VALIDATE_DTD=Validate the current state of the DTD
_UI_TOOLTIP_GENERATE_HTML=Generate an HTML form for the DTD
_UI_TOOLTIP_GENERATE_SAMPLE_XML=Generate an XML from the DTD
_UI_TOOLTIP_GENERATE_XML_SCHEMA=Generate an XML Schema from the DTD
_UI_TOOLTIP_GENERATE_JAVA=Generate Java Beans for the DTD

_UI_ACTION_DELETE=Delete
_UI_ACTION_CONTEXT_ADD_NOTATION=Add &Notation
_UI_TOOLTIP_ADD_NOTATION=Add a notation to the DTD.
_UI_ACTION_CONTEXT_ADD_ENTITY=Add &Entity
_UI_TOOLTIP_ADD_ENTITY=Add an entity to the DTD.
_UI_ACTION_CONTEXT_ADD_ELEMENT=Add Ele&ment
_UI_TOOLTIP_ADD_ELEMENT=Add an element to the DTD.
_UI_ACTION_CONTEXT_ADD_ATTRIBUTE=Add Attribute
_UI_TOOLTIP_ADD_ATTRIBUTE_SELECTED=Add an attribute to the selected element.
_UI_ACTION_ADD_ATTRIBUTELIST=Add Attribute &List
_UI_TOOLTIP_ADD_ATTRIBUTELIST_SELECTED=Add an attribute list to the selected element.
_UI_ACTION_ADD_GROUP_CONTENT=Add Group To Con&tent Model
_UI_TOOLTIP_ADD_GROUP=Add a group to the content model of the selected group or element.
_UI_ACTION_ADD_ELEMENT_CONTENT=Add Element To C&ontent Model
_UI_TOOLTIP_ADD_ELEMENT_CONTENT=Add an element to the content model.
_UI_MENU_DTD_EDITOR=&DTD
_UI_TOOLTIP_ADD_COMMENT=Add a comment to the DTD.

!presentation/DTDEditor.java
_UI_WORKBOOKPAGE_SOURCE=Source
_UI_WORKBOOKPAGE_DESIGN=Design

!the following is used: _UI_MENU_UNDO_1 + _UI_MENU_UNDO_2
_UI_MENU_UNDO_1=&Undo
!! NOTE TO TRANSLATOR: Do not translate following line - shortcut key
_UI_MENU_UNDO_2=@Ctrl+Z

!the following is used: _UI_MENU_UNDO_DESC + a description of the command to be undone
_UI_MENU_UNDO_DESC=Undo:

!the following is used: _UI_MENU_REDO_1 + _UI_MENU_REDO_2
_UI_MENU_REDO_1=&Redo
!! NOTE TO TRANSLATOR: Do not translate following line - shortcut key
_UI_MENU_REDO_2=@Ctrl+Y

!the following is used: _UI_MENU_REDO_DESC + a description of the command to be done again
_UI_MENU_REDO_DESC=Redo:

!presentation/ElementWindow
_UI_ELEMENT_NAME=Name
_UI_ELEMENT_COMMENT=Comment

!DTDOutliner
_UI_ACTION_ADD_DTD_NOTATION=Add &Notation
_UI_ACTION_ADD_DTD_ENTITY=Add &Entity
_UI_ACTION_ADD_DTD_ELEMENT=Add Ele&ment
_UI_ACTION_ADD_DTD_COMMENT=Add &Comment
_UI_ACTION_DTD_DELETE=&Delete
_UI_ACTION_ADD_ATTRIBUTE=Add &Attribute
_UI_ACTION_GROUP_ADD_GROUP=Add Group to Con&tent Model
_UI_ACTION_ADD_ELEMENT=Add Element to C&ontent Model

!DTDContentOutlinePage
_UI_BUTTON_GROUP_ITEMS_LOGICALLY=Group items logically.
_UI_BUTTON_UNGROUP_ITEMS_LOGICALLY=Do not group items logically.
_UI_BUTTON_SORT_ITEMS=Sort items alphabetically.
_UI_BUTTON_UNSORT_ITEMS=Do not sort items alphabetically.

!provider/EntityItemProvider.java
_UI_COLUMN_PARAMETER=Parameter
_UI_COLUMN_GENERAL=General

!provider/FolderItemProvider.java
_UI_LABEL_ELEMENTS_FOLDER=Elements
_UI_LABEL_NOTATIONS_FOLDER=Notations
_UI_LABEL_ENITIES_FOLDER=Entities

!Wizards/InputSelectionPage.java
_UI_BUTTON_SELECT_ALL=&Select All
_UI_BUTTON_UNSELECT_ALL=&Clear All

!Wizards/HTMLFormWizard.java
_UI_HTML_WIZARD_NEW_FILE_TITLE=Generate HTML Form
_UI_HTML_WIZARD_NEW_FILE_DESC=Generate an HTML form from the selected DTD file.

!Wizards/NewDTDWizard.java
_UI_WIZARD_NEW_DTD_TITLE=Create DTD
_UI_WIZARD_CREATE_DTD_HEADING=Create DTD File
_UI_WIZARD_CREATE_DTD_EXPL=Select how you would like to create your DTD file.
_UI_RADIO_CREATE_DTD=Create DTD file from scratch
_UI_RADIO_CREATE_DTD_FROM_XML=Create DTD file from an XML file

_UI_WIZARD_NEW_DTD_HEADING=New DTD
_UI_WIZARD_NEW_DTD_EXPL=Create a new DTD file. Specify the folder and name for the file.
_ERROR_FILENAME_MUST_END_DTD = The file name must end in .dtd

_UI_WIZARD_NEW_XSD_HEADING=New XML Schema
_UI_WIZARD_NEW_XSD_EXPL=Create a new XML Schema file from the XML file.

_UI_WIZARD_XML_FILE_HEADING=XML Files
_UI_WIZARD_XML_FILE_EXPL=Select the XML files to create the DTD file from.
_UI_LABEL_XML_FILES=XML Files:

_UI_STATUS_XML_CONTAINS_ERRORS=XML files specified contained errors.
_UI_BUTTON_ADD_XML=Add...
_UI_BUTTON_REMOVE_XML=Remove

!wizards/ServletNamePage
_UI_WIZARD_SERVLET_NAME_HEADING=Servlet Name
_UI_LABEL_SERVLET_NAME=&Enter the servlet name:
_UI_LABEL_MISSING_SERVLET_NAME=Provide a servlet name
_UI_LABEL_DEFAULT_SERVLET_NAME=http://localhost/servlet/testServlet

!wizards/GenerateXMLSchemaHelper.java & DTD2XSDWizard.java
_UI_WIZARD_DTD2XSD_TITLE=Generate
_UI_GENERATE_XSD_TITLE=Generate XML Schema
_UI_GENERATE_XSD_DESCRIPTION=Generate an XML schema from the selected DTD file.
_UI_PAGE_GEN_OPTIONS_TITLE=XML Schema Generation Options
_UI_PAGE_GEN_OPTIONS_DESC=Select how you want your XML schema generated
_UI_GENERATE_XSD_LONG_DESC=You can create one XML schema file that includes the selected DTD and any of the DTDs it references.  Alternatively, you can create individual schema files that correspond to the selected DTD and any of the DTDs it references.


_UI_GROUP_OPTIONS=Options
_UI_BUTTON_GEN_ONE_SCHEMA=&Create one XML schema that includes all the DTD files
_UI_BUTTON_GEN_MULTI_SCHEMAS=Create an &XML schema for each DTD file

!EntityWindow
_UI_GROUP_ENTITY_INFORMATION=Entity information
_UI_LABEL_NAME=Name:
_UI_LABLE_TYPE=Type:
_UI_RADIO_GENERAL=General
_UI_RADIO_PARAMETER=Parameter
_UI_CHKBOX_EXTERNAL=External
_UI_GROUP_INTERNAL=Internal Entity
_UI_DIALOG_SELECT_DTD=Select System ID File
_UI_DIALOG_SELECT_DTD_DESC=Please select a resource to be used for the System ID.
_UI_GROUP_INTERNAL_ENTITY=Internal entity
_UI_LABEL_VALUE_INTERNAL=Value:
_UI_GROUP_EXTERNAL_ENTITY=External entity
_UI_LABEL_VALUE=Value
_UI_GROUP_COMMENT=Comment
_UI_LABEL_SYSTEM_ID=System ID:
_UI_BUTTON_SELECT=Select...
_UI_LABEL_PUBLIC_ID=Public ID:
_UI_LABEL_NOTATION_NAME=Notation name
_UI_LABEL_UNPARSE_ENTITY=(Unparsed entity)
_UI_TOOLTIP_GENERAL=Use entity in XML documents.
_UI_TOOLTIP_PARAMETER=Use entity in a DTD.
_UI_TOOLTIP_EXTERNAL=Refer to an external DTD.
_UI_LABEL_BROWSE=Browse...

!presentation/NotationsTable.java
_UI_COLUMN_NOTATION_NAME=Notation Name
_UI_COLUMN_DECLARATION=Declaration

!GroupContentWindow
_UI_GROUP_MODEL_GROUP=Model group
_UI_GROUP_CONNECTOR=Connector
_UI_GROUP_MODEL_GROUP_OCCURRENCE=Occurrence
_UI_RADIO_SEQUENCE=Sequence (,)
_UI_RADIO_CHOICE=Choice (|)
_UI_LABEL_CONTENT_MODEL_TYPE=Content model type:

!EntitiesTable
_UI_COLUMN_ENTITY_NAME=Entity Name
_UI_COLUMN_TYPE=Type
_UI_COLUMN_DECLARATION=Declaration

!AddNotationAction
_UI_DEFAULT_NOTATION=Notation
_UI_ACTION_ADD_NOTATION=Add &Notation

!ElementsTable
_UI_COLUMN_ELEMENT_NAME=Element Name
_UI_COLUMN_CONTENT_MODEL=Content Model
_UI_COLUMN_ATTRIBUTES=Attributes

!ValidateDTDAction
_UI_MSGBOX_DTD_VALID_TITLE=Validation Successful
_UI_MSGBOX_DTD_VALID_TEXT=The DTD file is valid.

!NotationWindow
_UI_LABEL_NOTATION_INFORMATION=Notation information
_UI_LABEL_NOTATION_NAME=Name:
_UI_LABEL_NOTATION_SYSTEM_ID=System ID:
_UI_LABEL_NOTATION_PUBLIC_ID=Public ID:
_UI_LABEL_NOTATION_COMMENT=Comment

!ParameterEntityReferenceWindow
_UI_GROUP_EXTERNAL_PARM_ENTITY_REF=External parameter entity reference
_UI_LABEL_ENTITY_NAME=Entity name:
_UI_LABEL_REFERENCED_FILE=Referenced file:

!InputSelectionPage (HTMLFormWizard)
_UI_INPUT_SEL_PAGE_TITLE=Form Input Selection
_UI_INPUT_SEL_PAGE_DESC=Select the form input fields to be generated

!HTMLFormWizard (HTMLFormWizard)
_UI_HTML_WIZARD_TITLE=HTML Form Creation Wizard

! ParameterEntityReferenceWindow
_UI_BUTTON_DETAILS=Details...

!DTDContextContributer
_UI_ACTION_ADD_PARAM_ENTITY_REF=Add &Parameter Entity Reference

!DragAttributeCommand
_UI_MOVE_ATTRIBUTE=Move Attribute

!DragContentModelCommand
_UI_MOVE_CONTENT=Move Content

!DragTopLevelNodesCommand
_UI_MOVE_NODE=Move Node
_UI_MOVE_NODES=Move Nodes

!DTDValidator
_UI_DTD_VALIDATOR=DTD Validator

_ERROR_MIN_ONE_XML_FILE=At least one XML File must be added
_ERROR_MIN_ONE_XML_FILE_FOR_OP=At least one XML file is required to perform the operation.
_ERROR_NO_FILENAME=Enter a file name
_ERROR_FILE_DOES_NOT_EXIST=File does not exist
_ERROR_FILENAME_INVALID=Invalid file name
_ERROR_FILENAME_MUST_END_DTD=The file name must end in .dtd
_ERROR_TITLE_GENERATE_DTD_FAILED=Generate DTD failed
_ERROR_MSG_GENERATE_DTD_FAILED=Errors were encountered while generating the DTD.

_ERROR_INVALID_NAME_SPACE=Name field cannot contain a space
_ERROR_VALIDATE_FAILED=Validation failed
_ERROR_DTD_INVALID=The DTD file is invalid.  Please check the Tasks view for more details.
_ERROR_LIMITE_EXCEEDED=The DTD file is not valid.  The message limit for the Tasks view has been exceeded.  Please increase the limit and try again.

_ERROR_TITLE_GENERATE_JAVABEAN_FAILED=Generate Java Beans failed
_ERROR_MSG_GENERATE_JAVABEAN_FAILED=Errors were encountered while generating the Java Beans.
DTDColorPage.0=<\!ELEMENT Main (One,Two+)>\r\n<\!ELEMENT One (Three,Four)>\r\n<\!ATTLIST One\r\n oneone CDATA \#REQUIRED\r\n>\r\n<\!-- You need this -->\r\n<\!ELEMENT Two (moremore*)>\r\n<\!ATTLIST Two\r\n twotwo CDATA \#REQUIRED\r\n twothree (aaa | bbb) "aaa"\r\n>\r\n
DTDColorPage.1=Comments
DTDColorPage.2=Data
DTDColorPage.3=Default
DTDColorPage.4=Keywords
DTDColorPage.5=Strings
DTDColorPage.6=Symbols
DTDColorPage.7=Tag Delimiters
DTDColorPage.8=Tag Names
DTDPropertySourceAdapter.0=Name
DTDPropertySourceAdapter.1=Contents
DTDPropertySourceAdapter.2=Attributes

! org.eclipse.ui.newWizards extension point
_UI_WIZARD_NEW_DTD           = DTD
_UI_CREATE_NEW_DTD_FILE      = Create a new DTD file.
_UI_WIZARD_NEW_DTD_TITLE     = Create DTD
_UI_WIZARD_NEW_DTD_HEADING   = New DTD
_UI_WIZARD_NEW_DTD_EXPL      = Create a new DTD file. Specify the folder and name for the file.
_UI_NEW_DTD_FILENAME         = NewDTD.dtd
