###############################################################################
# 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
#     
###############################################################################

providerName=Eclipse.org
pluginName=Structured Source DTD Core
nlFeatureName=Structured Source DTD Core NL Support

! Strings for DTDBasicTypeImpl type descriptions
_UI_NONE_DESC=None

!! NOTE TO TRANSLATOR: Do not translate following text in parentheses on following 10 lines i.e.(CDATA)
_UI_CHARACTER_DATA_DESC=Character Data (CDATA)
_UI_IDENTIFIER_DESC=Identifier (ID)
_UI_ID_REFERENCE_DESC=ID Reference (IDREF)
_UI_ID_REFERENCES_DESC=ID References (IDREFS)
_UI_ENTITY_NAME_DESC=Entity Name (ENTITY)
_UI_ENTITY_NAMES_DESC=Entity Names (ENTITIES)
_UI_NAME_TOKEN_DESC=Name Token (NMTOKEN)
_UI_NAME_TOKENS_DESC=Name Tokens (NMTOKENS)
_UI_ENUM_NAME_TOKENS_DESC=Enumerated Name Tokens
_UI_ENUM_NOTATION_DESC=Enumerated NOTATION

!dtd/util/CreateListItems.java
_UI_LABEL_NONE=(none)

! Strings from sed/model

! Attribute.java
_UI_LABEL_ATTR_DEFAULT_VAL=Attribute Default Change Value
_UI_LABEL_ATTR_DEFAULT_KIND=Change Attribute Default Value
_UI_LABEL_ATTR_TYPE=Change Attribute Type

! AttributeEnumList
_UI_LABEL_ATTR_ENUM_ITEMS=Change Attribute Enumeration Value

! AttributeList
_UI_LABEL_ATTR_LIST_ADD=Add Attribute

! CMGroupNode
_UI_LABEL_CM_GRP_NODE_CONNECTOR=Change Connector
_UI_LABEL_CM_GRP_NODE_INSERT_ELEMENT=Insert Element
_UI_LABEL_CM_GRP_NODE_ADD_GRP=Add Group
_UI_LABEL_CM_GRP_NODE_ADD_CHILD=Add Child Element

! CMNode
_UI_LABEL_CM_NODE_MIX_CONTENT=Mixed Content
_UI_LABEL_CM_NODE_CHILD_CONTENT=Children Content
_UI_LABEL_CM_NODE_SET_MIX_CONTENT=Set Mixed Content
_UI_LABEL_CM_NODE_SET_CHILD_CONTENT=Set Children Content

!! NOTE TO TRANSLATOR - USAGE: "Set <variable content> Content"
_UI_LABEL_CM_NODE_SET=Set
_UI_LABEL_CM_NODE_CONTENT=Content

!! NOTE TO TRANSLATOR - DO NOT TRANSLATE FOLLOWING 3 LINES
_UI_LABEL_CM_NODE_PCDATA=(#PCDATA)
_UI_LABEL_CM_NODE_ANY=ANY
_UI_LABEL_CM_NODE_EMPTY=EMPTY

! CMRepeatableNode
_UI_LABEL_CM_REP_NODE_CHG_OCCUR=Change Occurrence

! Comment
_UI_LABEL_COMMENT_CHG=Comment Change

! DTDFile
_UI_LABEL_DTD_FILE_ADD_ELEMENT=Add Element
_UI_LABEL_DTD_FILE_ADD_ENTITY=Add Entity
_UI_LABEL_DTD_FILE_ADD_COMMENT=Add Comment
_UI_LABEL_DTD_FILE_ADD_PARM_ENTITY_REF=Add Parameter Entity Reference
_UI_LABEL_DTD_FILE_ADD_NOTATION=Add Notation
_UI_LABEL_DTD_FILE_ADD_ATTR_LIST=Add Attribute List
_UI_LABEL_DTD_FILE_DELETE=Delete

! DTDNode
_UI_LABEL_DTD_NODE_NAME_CHG=Name Change
_UI_LABEL_DTD_NODE_DELETE=Delete

! Element
_UI_LABEL_ELEMENT_ADD_ATTR=Add Attribute
_UI_LABEL_ELEMENT_ADD_GRP=Add Group
_UI_LABEL_ELEMENT_ADD_CHILD=Add Child Element

! Entity
_UI_LABEL_ENTITY_SET_PARM_ENTITY=Set Parameter Entity
_UI_LABEL_ENTITY_SET_GENERAL_ENTITY=Set General Entity
_UI_LABEL_ENTITY_SET_EXT_ENTITY=Set External Entity
_UI_LABEL_ENTITY_SET_INT_ENTITY=Set Internal Entity
_UI_LABEL_ENTITY_VALUE_CHG=Entity Value Change

!! NOTE TO TRANSLATOR - USAGE: "NDATA Change"
_UI_LABEL_ENTITY_NDATA_CHANGE=Change

! ExternalNode
_UI_LABEL_EXT_NODE_PUBLIC_ID_CHG=Public ID Change
_UI_LABEL_EXT_NODE_SYSTEM_ID_CHG=System ID Change

! NodeList
_UI_LABEL_NODE_LIST_ELEMENTS=Elements
_UI_LABEL_NODE_LIST_ENTITIES=Entities
_UI_LABEL_NODE_LIST_NOTATIONS=Notations
_UI_LABEL_NODE_LIST_COMMENTS=Comments
_UI_LABEL_NODE_LIST_OTHER=Other
_UI_LABEL_NODE_LIST_ATTRIBUTES=Attributes

! ParameterEntityReference
_UI_LABEL_PARM_ENTITY_REF_CHG_ENTITY_REF=Change Entity Reference
_UI_LABEL_PARM_ENTITY_REF_COMMENT_CHG=Comment Change

! TopLevelNode
_UI_LABEL_TOP_LEVEL_NODE_DELETE=Delete
#
Structured_DTD_Document_Factory_Extension.name=Structured DTD Document Factory Extension
DTD_Content_Type_Extension_Element.name=DTD Content Type

_UI_PLUGIN_NAME  = DTD Model

_GEN_MENU_LABEL   = &Generate
_GEN_ACTION_LABEL = &XML Schema...

! Strings for DTDBasicTypeImpl type descriptions
_UI_NONE_DESC              = None

!! NOTE TO TRANSLATOR: Do not translate following text in parentheses on following 10 lines i.e.(CDATA)
_UI_CHARACTER_DATA_DESC    = Character Data (CDATA)
_UI_IDENTIFIER_DESC        = Identifier (ID)
_UI_ID_REFERENCE_DESC      = ID Reference (IDREF)
_UI_ID_REFERENCES_DESC     = ID References (IDREFS)
_UI_ENTITY_NAME_DESC       = Entity Name (ENTITY)
_UI_ENTITY_NAMES_DESC      = Entity Names (ENTITIES)
_UI_NAME_TOKEN_DESC        = Name Token (NMTOKEN)
_UI_NAME_TOKENS_DESC       = Name Tokens (NMTOKENS)
_UI_ENUM_NAME_TOKENS_DESC  = Enumerated Name Tokens
_UI_ENUM_NOTATION_DESC     = Enumerated NOTATION

!dtd/util/CreateListItems.java
_UI_LABEL_NONE  = (none)

! Strings from sed/model

! Attribute.java
_UI_LABEL_ATTR_DEFAULT_VAL  = Attribute Default Change Value
_UI_LABEL_ATTR_DEFAULT_KIND = Change Attribute Default Value
_UI_LABEL_ATTR_TYPE         = Change Attribute Type

! AttributeEnumList
_UI_LABEL_ATTR_ENUM_ITEMS    = Change Attribute Enumeration Value

! AttributeList
_UI_LABEL_ATTR_LIST_ADD = Add Attribute

! CMGroupNode
_UI_LABEL_CM_GRP_NODE_CONNECTOR      = Change Connector
_UI_LABEL_CM_GRP_NODE_INSERT_ELEMENT = Insert Element
_UI_LABEL_CM_GRP_NODE_ADD_GRP        = Add Group
_UI_LABEL_CM_GRP_NODE_ADD_CHILD      = Add Child Element

! CMNode
_UI_LABEL_CM_NODE_MIX_CONTENT = Mixed Content
_UI_LABEL_CM_NODE_CHILD_CONTENT = Children Content
_UI_LABEL_CM_NODE_SET_MIX_CONTENT = Set Mixed Content
_UI_LABEL_CM_NODE_SET_CHILD_CONTENT = Set Children Content

!! NOTE TO TRANSLATOR - USAGE: "Set <variable content> Content"
_UI_LABEL_CM_NODE_SET = Set
_UI_LABEL_CM_NODE_CONTENT = Content

!! NOTE TO TRANSLATOR - DO NOT TRANSLATE FOLLOWING 3 LINES
_UI_LABEL_CM_NODE_PCDATA = (#PCDATA)
_UI_LABEL_CM_NODE_ANY    = ANY
_UI_LABEL_CM_NODE_EMPTY    = EMPTY

! CMRepeatableNode
 _UI_LABEL_CM_REP_NODE_CHG_OCCUR = Change Occurrence
 
! Comment
_UI_LABEL_COMMENT_CHG = Comment Change

! DTDFile
_UI_LABEL_DTD_FILE_ADD_ELEMENT = Add Element
_UI_LABEL_DTD_FILE_ADD_ENTITY = Add Entity
_UI_LABEL_DTD_FILE_ADD_COMMENT = Add Comment
_UI_LABEL_DTD_FILE_ADD_PARM_ENTITY_REF = Add Parameter Entity Reference
_UI_LABEL_DTD_FILE_ADD_NOTATION = Add Notation
_UI_LABEL_DTD_FILE_ADD_ATTR_LIST = Add Attribute List
_UI_LABEL_DTD_FILE_DELETE = Delete

! DTDNode
_UI_LABEL_DTD_NODE_NAME_CHG = Name Change
_UI_LABEL_DTD_NODE_DELETE = Delete

! Element
_UI_LABEL_ELEMENT_ADD_ATTR = Add Attribute
_UI_LABEL_ELEMENT_ADD_GRP = Add Group
_UI_LABEL_ELEMENT_ADD_CHILD = Add Child Element

! Entity
_UI_LABEL_ENTITY_SET_PARM_ENTITY = Set Parameter Entity
_UI_LABEL_ENTITY_SET_GENERAL_ENTITY = Set General Entity
_UI_LABEL_ENTITY_SET_EXT_ENTITY = Set External Entity
_UI_LABEL_ENTITY_SET_INT_ENTITY = Set Internal Entity
_UI_LABEL_ENTITY_VALUE_CHG = Entity Value Change

!! NOTE TO TRANSLATOR - USAGE: "NDATA Change"
_UI_LABEL_ENTITY_NDATA_CHANGE = Change

! ExternalNode
_UI_LABEL_EXT_NODE_PUBLIC_ID_CHG = Public ID Change
_UI_LABEL_EXT_NODE_SYSTEM_ID_CHG = System ID Change

! NodeList
_UI_LABEL_NODE_LIST_ELEMENTS = Elements
_UI_LABEL_NODE_LIST_ENTITIES = Entities
_UI_LABEL_NODE_LIST_NOTATIONS = Notations
_UI_LABEL_NODE_LIST_COMMENTS = Comments
_UI_LABEL_NODE_LIST_OTHER = Other

! ParameterEntityReference
_UI_LABEL_PARM_ENTITY_REF_CHG_ENTITY_REF = Change Entity Reference
_UI_LABEL_PARM_ENTITY_REF_COMMENT_CHG = Comment Change

! TopLevelNode
_UI_LABEL_TOP_LEVEL_NODE_DELETE = Delete

! 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

! GenerateXMLSchemaActionDelegate.java
_UI_DIALOG_GENERATION_SUCCESS_TITLE   = XML Schema Generated
_UI_DIALOG_GENERATION_SUCCESS_MESSAGE = The XML Schema file has been successfully generated.
_UI_DIALOG_TITLE_INVALID_GRAMMAR = Invalid Grammar
_UI_DIALOG_MESSAGE_INVALID_GRAMMAR = The grammar file contains errors. If you proceed, an incorrect result file will be generated. Do you want to continue?

_ERROR_INCL_FILE_LOAD_FAILURE       = Failed to load included file

! usage: _ERROR_UNDECLARED_ELEMENT_1  + <elementName> + _PARTERROR_UNDECLARED_ELEMENT_2
_ERROR_UNDECLARED_ELEMENT_1         = Reference to undeclared element '
_UI_ERRORPART_UNDECLARED_ELEMENT_2  =' in content model.

! usage: _ERROR_UNDECLARED_PARAMETER_ENTITY_1  + <elementName> + _PARTERROR_UNDECLARED_PARAMETER_ENTITY_2
_ERROR_UNDECLARED_PARAMETER_ENTITY_1         = Reference to undeclared parameter entity '
_UI_ERRORPART_UNDECLARED_PARAMETER_ENTITY_2  =' in content model.

! usage: _ERROR_DUP_ID_ATTRIBUTE_1  + <attributeName> + _PARTERROR_DUP_ID_ATTRIBUTE_2
_ERROR_DUP_ID_ATTRIBUTE_1         = Duplicate ID attribute '
_UI_ERRORPART_DUP_ID_ATTRIBUTE_2  = '. Only one ID attribute can be specified per ELEMENT type.

! usage: _WARN_UNDECLARED_ATTRIBUTE_NAME1  + <attributeName> + _PARTWARN_UNDECLARED_ATTRIBUTE_NAME2
_WARN_UNDECLARED_ATTRIBUTE_NAME1   = Reference to undeclared element '
_PARTWARN_UNDECLARED_ATTRIBUTE_NAME2 = ' in attribute list name.

! usage:_ERROR_INVALID_DEFAULT_ATTR_VALUE_1 + <typeString> + _PARTERROR_INVALID_DEFAULT_ATTR_VALUE_2 + <attributeName>
_ERROR_INVALID_DEFAULT_ATTR_VALUE_1         = Invalid default
_UI_ERRORPART_INVALID_DEFAULT_ATTR_VALUE_2  =  value for attribute '

_EXC_OPERATION_NOT_SUPPORTED  = Operation not supported

! usage:_ERROR_UNDECLARED_PARAMETER_ENTITY_REF_1 + <typeString> + _PARTERROR_UNDECLARED_PARAMETER_ENTITY_REF_2 + <attributeName>
_ERROR_UNDECLARED_PARAMETER_ENTITY_REF_1         = Reference to undeclared parameter entity '
_UI_ERRORPART_UNDECLARED_PARAMETER_ENTITY_REF_2  = '.

_EXC_OPERATION_NOT_SUPPORTED  = Operation not supported

! Note to translator
! Same string used in XMVAL.properties file for XML Validator component
_UI_PROBLEMS_VALIDATING_REFERENCED_FILE = Problems validating referenced file, "{0}".

!NOTE TO TRANSLATOR: (_ERROR_BAD_FILENAME_EXTENSION + string + _UI_LABEL_OR + string) or (_ERROR_BAD_FILENAME_EXTENSION)
_ERROR_BAD_FILENAME_EXTENSION         = The file name must end with
_ERROR_FILE_ALREADY_EXISTS            = The same name already exists.

_UI_LABEL_OR = or

_UI_MENU_VALIDATE_DTD               = &Validate DTD File

!
! Validate DTD 
!
_UI_DIALOG_DTD_INVALID_TITLE  = Validation Failed
_UI_DIALOG_DTD_VALID_TITLE    = Validation Succeeded
_UI_DIALOG_DTD_VALID_TEXT     = The DTD file is valid.
_UI_DIALOG_DTD_INVALID_TEXT   = The DTD file is not valid. See the Problems view for error messages.
_UI_DIALOG_DTD_LIMIT_EXCEEDED  = The DTD file is not valid.  The message limit for the Problems view has been exceeded.  To see all the messages increase the limit and validate again.


_UI_XML_DTD_VALIDATOR                = DTD Validator

!
! Referenced Element Validation
!
_ERROR_REF_ELEMENT_UNDEFINED = The element {0} has not been declared.
