#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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 implementation.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR

# Font Style Names
fontStyle_normal=Normal
fontStyle_sectionHeading=Abschnitts\u00fcberschrift der Ebene 1
fontStyle_subsectionHeading=Abschnitts\u00fcberschrift der Ebene 2
fontStyle_subSubsectionHeading=Abschnitts\u00fcberschrift der Ebene 3
fontStyle_quote=Zitat
fontStyle_codeSample=Codebeispiel

# HTML Block Tags
blockTag_paragraph=Absatz
blockTag_heading1=\u00dcberschrift 1
blockTag_heading2=\u00dcberschrift 2
blockTag_heading3=\u00dcberschrift 3
blockTag_heading4=\u00dcberschrift 4
blockTag_heading5=\u00dcberschrift 5
blockTag_heading6=\u00dcberschrift 6
blockTag_address=Adresse
blockTag_preformattedText=Vorformatierter Text

# HTML Font Names
fontName_default=Standard
fontName_arial=Arial
fontName_courierNew=Courier New
fontName_timesNewRoman=Times New Roman
fontName_verdana=Verdana

# Rich Text Editor Tool Buttons
addHorizontalBarAction_toolTipText=Horizontalen Balken hinzuf\u00fcgen
addImageAction_toolTipText=Grafik hinzuf\u00fcgen
addLineAction_toolTipText=Zeile hinzuf\u00fcgen
addLinkAction_toolTipText=Link hinzuf\u00fcgen
addOrderedListAction_toolTipText=Geordnete Liste hinzuf\u00fcgen
addTableAction_toolTipText=Tabelle hinzuf\u00fcgen
addUnorderedListAction_toolTipText=Ungeordnete Liste hinzuf\u00fcgen
boldAction_toolTipText=Fett
clearContentAction_toolTipText=Inhalt l\u00f6schen
copyAction_toolTipText=Kopieren
cutAction_toolTipText=Ausschneiden
findReplaceAction_toolTipText=Suchen/Ersetzen
indentAction_toolTipText=Einr\u00fccken
italicAction_toolTipText=Kursiv
justifyCenterAction_toolTipText=Zentriert
justifyFullAction_toolTipText=Block
justifyLeftAction_toolTipText=Linksb\u00fcndig
justifyRightAction_toolTipText=Rechtsb\u00fcndig
outdentAction_toolTipText=Ausr\u00fccken
pasteAction_toolTipText=Einf\u00fcgen
subscriptAction_toolTipText=Tiefstellen
superscriptAction_toolTipText=Hochstellen
underlineAction_toolTipText=Unterstreichen

# Rich Text Editor Comboboxes
fontStyleAction_toolTipText=Schriftstil festlegen
blockTagAction_toolTipText=Als Block markieren
fontNameAction_toolTipText=Schriftnamen festlegen
fontSizeAction_toolTipText=Schriftgr\u00f6\u00dfe festlegen

# Rich Text Editor Context Menu Items
cutAction_text=Ausschneiden
copyAction_text=Kopieren
pasteAction_text=Einf\u00fcgen

# Rich Text Editor Tabs
richTextTab_text=Rich Text
richTextTab_toolTipText=Inhalt in Rich Text bearbeiten
htmlTab_text=HTML
htmlTab_toolTipText=Inhalt in HTML bearbeiten

# Add Dialogs
addImageDialog_title=Grafik hinzuf\u00fcgen
addLinkDialog_title=Link hinzuf\u00fcgen
addTableDialog_title=Tabelle hinzuf\u00fcgen
findReplaceDialog_title=Suchen/Ersetzen
urlLabel_text=URL:
summaryLabel_text=Zusammenfassung:
captionLabel_text=Titel:
rowsLabel_text=Zeilen:
columnsLabel_text=Spalten:
widthLabel_text=Breite:
tableStyleLabel_text=Stil:
tableHeaderNone_text=Tabelle ohne \u00dcberschriften
tableHeaderCols_text=Tabelle mit Spalten\u00fcberschriften
tableHeaderRows_text=Tabelle mit Zeilen\u00fcberschriften
tableHeaderBoth_text=Tabelle mit Spalten- und Zeilen\u00fcberschriften
browseButton_text=Durchsuchen...

# Clear Editor Content Dialog
clearContentDialog_title=L\u00f6schen des Inhalts im Editor best\u00e4tigen
clearContentDialog_text=M\u00f6chten Sie den Inhalt in diesem Rich Text Editor wirklich l\u00f6schen?

# Find/Replace Dialog
findLabel_text=Suchen:
replaceLabel_text=Ersetzen durch:
optionsGroup_text=Optionen
caseSensitiveCheckbox_text=Gro\u00df-/Kleinschreibung beachten
wholeWordCheckbox_text=Ganzes Wort
directionGroup_text=Richtung
forwardRadioButton_text=Vor
backwardRadioButton_text=Zur\u00fcck
findButton_text=Suchen
replaceButton_text=Ersetzen
replaceFindButton_text=Ersetzen/Suchen
replaceallButton_text=Alle ersetzen
# taken from org.eclipse.ui.workbench.texteditor
FindReplace_Status_noMatch_label=Zeichenfolge nicht gefunden

# Preference Page
maxCharsPerLineLabel_text=Maximale Anzahl Zeichen pro Zeile:
indentHTMLCheckbox_text=HTML-Tags einr\u00fccken
indentSizeLabel_text=Einr\u00fcckungsgr\u00f6\u00dfe:
urlDisplayNameLabel_text=URL-Anzeigename:
