###############################################################################
# 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.CaseIdentUpper=&Uppercase
PrefsLabel.CaseIdentLower=L&owercase
PrefsLabel.CasePropNameUpper=U&ppercase
PrefsLabel.CasePropNameLower=Lo&wercase
PrefsLabel.CasePropValueUpper=Upp&ercase
PrefsLabel.CasePropValueLower=Lowe&rcase

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