###############################################################################
# Copyright (c) 2004, 2014 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
###############################################################################

ID_Selector_Case__UI_=ID Selector case:
INFO_Not_Categorized_1=Not Categorized

## CSS Preferences -- source ##
PrefsLabel_WrappingWithoutAttr=Disable wrapping in style &attribute of HTML
PrefsLabel_WrappingInsertLineBreak=Insert &line break between properties

PrefsLabel_CaseGroup=Capitalization style
PrefsLabel_CaseIdent=Identifier:
PrefsLabel_CasePropName=Property name:
PrefsLabel_CasePropValue=Property value:
PrefsLabel_SelectorTagName=Type selector:

PrefsLabel_CaseIdentUpper=&Uppercase
PrefsLabel_CaseIdentLower=L&owercase
PrefsLabel_CasePropNameUpper=U&ppercase
PrefsLabel_CasePropNameLower=Lo&wercase
PrefsLabel_CasePropValueUpper=Upp&ercase
PrefsLabel_CasePropValueLower=Lowe&rcase
PrefsLabel_SelectorTagNameUpper=Upper&case
PrefsLabel_SelectorTagNameLower=Lowerca&se
PrefsLabel_SelectorWhitespace=Inser&t whitespace between selectors

## CSS Preferences -- color ##

## The following line is a sample CSS document.  Please translate only the following parts:
## Sample Styles
PrefsLabel_ColorSample=@import url("../sample2.css");\n\n/* Sample Styles */\n\nBODY {\n\tcolor : black;\n\tbackground-color : rgb(181, 253, 211);\n\ttext-align : center;\n\tfont-family : "Heisei Mincho W3", serif\n}\n\n#content > div *.links a[href~="http://"]:hover {\n\ttext-decoration : underline;\n}\n\n@page :left { margin-left : 4cm }\n\n@media aural {\n\tP.heidi {\n\t\tazimuth : center-left;\n\t\televation : 12.3deg;\n\t\tpause : 30ms 1.6s\n\t}\n}\n

PrefsLabel_ColorNormal=Default
PrefsLabel_ColorAtmarkRule=At-Rule
PrefsLabel_ColorSelector=Type Selector
PrefsLabel_ColorCombinator=Combinator
PrefsLabel_ColorUniversal=Universal Selector
PrefsLabel_ColorId=Id Selector
PrefsLabel_ColorPseudoClass=Pseudo-class
PrefsLabel_ColorClass=Class Selector
PrefsLabel_ColorMedia=Media Name
PrefsLabel_ColorComment=Comment
PrefsLabel_ColorPropertyName=Property Name
PrefsLabel_ColorPropertyValue=Property Value
PrefsLabel_ColorUri=URI
PrefsLabel_ColorString=Quoted String
PrefsLabel_ColorColon=Property Delimiter
PrefsLabel_ColorSemiColon=Semicolon
PrefsLabel_ColorCurlyBrace=Curly Brace
PrefsLabel_ColorError=Error
PrefsLabel_ColorAttrDelimiter=Attribute Selector Delimiter
PrefsLabel_ColorAttrName=Attribute Name
PrefsLabel_ColorAttrValue=Attribute Value
PrefsLabel_ColorAttrOperator=Attribute Selector Operator
#
SortAction_0=Sort
#
_UI_WIZARD_NEW_TITLE = New CSS File
_UI_WIZARD_NEW_HEADING = CSS
_UI_WIZARD_NEW_DESCRIPTION = Create a new CSS file.
_ERROR_FILENAME_MUST_END_CSS = The file name must end in one of the following extensions {0}.
_WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT = Files created outside of a web content folder will not be included in your deployed Web application. 
#
Title_InvalidValue=Invalid Value
Message_InvalidValue=Invalid property value.
# Copied from sse.ui
FormatMenu_label=F&ormat
Class_Selector_Case__UI_=Class Selector case:
CleanupDocument_label=C&leanup Document...
CleanupDocument_tooltip=Cleanup Document
CleanupDocument_description=Cleanup Document
UI_none=none
Cleanup_UI_=Cleanup
CSS_Cleanup_UI_=CSS Cleanup
AddBlockComment_tooltip=Add Block Comment
RemoveBlockComment_tooltip=Remove Block Comment
ToggleComment_tooltip=Toggle Comment
Identifier_case__UI_=Identifier case:
Property_name_case__UI_=Property name case:
Property_value_case__UI_=Property value case:
Selector_tag_name_case__UI_=Selector tag name case:
Quote_values_UI_=Quote values
Format_source_UI_=&Format source
As_is_UI_=As-is
Lower_UI_=Lower
Upper_UI_=Upper
SourceMenu_label=&Source
Formatting_UI_=Formatting
Line_width__UI_=Line &width:
Indent_using_tabs_=&Indent using tabs
Indent_using_spaces=I&ndent using spaces
Indentation_size=In&dentation size:
Indentation_size_tip=Indentation size
StructureSelectEnclosing_label=&Enclosing Element
StructureSelectEnclosing_tooltip=Expand selection to include enclosing element
StructureSelectEnclosing_description=Expand selection to include enclosing element
StructureSelectNext_label=&Next Element
StructureSelectNext_tooltip=Expand selection to include next sibling
StructureSelectNext_description=Expand selection to include next sibling
StructureSelectPrevious_label=&Previous Element
StructureSelectPrevious_tooltip=Expand selection to include previous sibling
StructureSelectPrevious_description=Expand selection to include previous sibling
##
Creating_files_encoding=Creating files encoding preference
ResourceGroup_nameExists = The same name already exists.
NewCSSTemplatesWizardPage_0=Select CSS Template
NewCSSTemplatesWizardPage_1=Select a template as initial content in the CSS page.
NewCSSTemplatesWizardPage_2=Name
NewCSSTemplatesWizardPage_3=Description
NewCSSTemplatesWizardPage_4=&Use CSS Template
NewCSSTemplatesWizardPage_5=&Preview:
NewCSSTemplatesWizardPage_6=Templates are 'New CSS' templates found in the <a>CSS Templates</a> preference page.
NewCSSTemplatesWizardPage_7=&Templates:
# CSS Content Settings
CSSContentSettingsPropertyPage_0=The type of CSS to use.  The project setting is used if you specify "none."
CSSContentSettingsPropertyPage_1=CSS Profile:
CSSHover_ColorAction=Edit Property Color
SyntaxColoringPage_0=S&yntax Element:
SyntaxColoringPage_2=Enable
SyntaxColoringPage_3=&Bold
SyntaxColoringPage_4=&Italic
SyntaxColoringPage_5=&Strikethrough
SyntaxColoringPage_6=&Underline
_UI_STRUCTURED_TEXT_EDITOR_PREFS_LINK=CSS editing preferences.  Note that some preferences may be set on the <a>{0}</a> preference page.
