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

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=Selector tag name:

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

## 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@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=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
#
SortAction_0=Sort
#
_UI_WIZARD_NEW_TITLE = New Cascading Style Sheet
_UI_WIZARD_NEW_HEADING = Cascading Style Sheet
_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}.
#
Title_InvalidValue=Invalid Value
Message_InvalidValue=Invalid property value.
# Copied from sse.ui
FormatMenu_label=F&ormat
CleanupDocument_label=C&leanup Document...
CleanupDocument_tooltip=Cleanup Document
CleanupDocument_description=Cleanup Document
UI_none=none
Cleanup_UI_=Cleanup
CSS_Cleanup_UI_=CSS Cleanup
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.
# CSS Content Settings
CSSContentSettingsPropertyPage_0=The type of CSS to use.  The project setting is used if you specify "none."
CSSContentSettingsPropertyPage_1=CSS Profile:
