// I18N constants
// LANG: "de", ENCODING: UTF-8
//
// IMPORTANT NOTICE FOR TRANSLATORS
// ============================================================================
//
// Please be sure you read the README_TRANSLATORS.TXT in the Xinha Root 
// Directory.  Unless you are making a new plugin or module it is unlikely 
// that you want to be editing this file directly.
//
{
    "&#8212; format &#8212;": "&#8212; Format &#8212;",
    "About this editor": "Über diesen Editor",
    "Address": "Adresse",
    "Background Color": "Hindergrundfarbe",
    "Bold": "Fett",
    "Bulleted List": "Aufzählungsliste",
    "Clean content pasted from Word": "Von Word eingefügter Text bereinigen",
    "Clear Inline Font Specifications": "Zeichensatz Formatierungen entfernen",
    "Clear MSOffice tags": "MSOffice filter",
    "Close": "Schließen",
    "Constructing object": "Objekt wird generiert",
    "Copy selection": "Kopieren",
    "Create Statusbar": "Statusleiste wird generiert",
    "Create Toolbar": "Werkzeugleiste wird generiert",
    "Current style": "Derzeitiger Stil",
    "Cut selection": "Ausschneiden",
    "Decrease Indent": "Einzug verkleinern",
    "Direction left to right": "Textrichtung von Links nach Rechts",
    "Direction right to left": "Textrichtung von Rechts nach Links",
    "Finishing": "Laden wird abgeschlossen",
    "Font Color": "Schriftfarbe",
    "Formatted": "Formatiert",
    "Generate Xinha framework": "Xinha Framework wird generiert",
    "Heading 1": "Überschrift 1",
    "Heading 2": "Überschrift 2",
    "Heading 3": "Überschrift 3",
    "Heading 4": "Überschrift 4",
    "Heading 5": "Überschrift 5",
    "Heading 6": "Überschrift 6",
    "Headings": "Überschrift Typ 1 bis 6",
    "Help using editor": "Hilfe",
    "Horizontal Rule": "Horizontale Linie",
    "Increase Indent": "Einzug vergrößern",
    "Init editor size": "Größe wird berechnet",
    "Insert Table": "Tabelle einfügen",
    "Insert Web Link": "Hyperlink einfügen",
    "Insert/Modify Image": "Bild einfügen/verändern",
    "Insert/Overwrite": "Einfügen/Überschreiben",
    "Italic": "Kursiv",
    "Justify Center": "Zentriert",
    "Justify Full": "Blocksatz",
    "Justify Left": "Linksbündig",
    "Justify Right": "Rechtsbündig",
    "Keyboard shortcuts": "Tastaturkürzel",
    "Loading in progress. Please wait!": "Editor wird geladen. Bitte warten !",
    "Loading plugin $plugin": "Plugin $plugin wird geladen",
    "Normal": "Normal (Absatz)",
    "Ordered List": "Nummerierte Liste",
    "Paste from clipboard": "Einfügen aus der Zwischenablage",
    "Path": "Pfad",
    "Print document": "Dokument ausdrucken",
    "Redoes your last action": "Wiederholen",
    "Register plugin $plugin": "Plugin $plugin wird registriert",
    "Remove formatting": "Formatierung entfernen",
    "Save as": "speichern unter",
    "Select all": "Alles markieren",
    "Set format to paragraph": "Setze Formatierung auf Absatz",
    "Split Block": "Block teilen",
    "Strikethrough": "Durchgestrichen",
    "Subscript": "Tiefgestellt",
    "Superscript": "Hochgestellt",
    "The editor provides the following key combinations:": "Der Editor unterstützt die folgenden kombinationen:",
    "Toggle Borders": "Tabellenränder ein/ausblenden",
    "Toggle HTML Source": "HTML Quelltext ein/ausschalten",
    "Underline": "Unterstrichen",
    "Undoes your last action": "Rückgängig",
    "Would you like to clear font colours?": "Wollen sie Zeichensatzfarben entfernen",
    "Would you like to clear font sizes?": "Wollen Sie Zeichensatzgrößen entfernen",
    "Would you like to clear font typefaces?": "Wollen Sie Zeichensatztypen entfernen",
    "You are in TEXT MODE.  Use the [<>] button to switch back to WYSIWYG.": "Sie sind im Text-Modus. Benutzen Sie den [<>] Button, um in den visuellen Modus (WYSIWIG) zu gelangen.",
    "insert linebreak": "Harter Umbruch einfügen",
    "new paragraph": "Neuer Absatz(Paragraph)",
    "__OBSOLETE__": {
        "Absbottom": "unten bündig",
        "Absmiddle": "mittig",
        "Alignment:": "Ausrichtung:",
        "Alternate text:": "Alternativer Text:",
        "Baseline": "Grundlinie",
        "Border thickness:": "Randstärke:",
        "Bottom": "unten",
        "Cancel": "Abbrechen",
        "Cell padding:": "Innenabstand:",
        "Cell spacing:": "Zellenabstand:",
        "Click a color...": "Farbe wählen",
        "Color: ": "Farbe: ",
        "Cols:": "Spalten:",
        "Em": "Geviert",
        "Enlarge Editor": "Editor vergrößern",
        "Enter the image URL here": "Bitte geben sie hier die Bild URL ein",
        "Fixed width columns": "Spalten mit fester Breite",
        "For browsers that don't support images": "für Browser, die keine Bilder unterstützen",
        "Horizontal padding": "horizontaler Inhaltsabstand",
        "Horizontal:": "horizontal:",
        "Image Preview:": "Bild Voransicht:",
        "Image URL:": "Bild URL:",
        "Insert Image": "Bild einfügen",
        "Insert/Modify Link": "Verknüpfung hinzufügen/ändern",
        "Layout": "Layout",
        "Leave empty for no border": "leer lassen für keinen Rand",
        "Left": "links",
        "Middle": "zentriert",
        "New window (_blank)": "Neues Fenster (_blank)",
        "None (use implicit)": "k.A. (implizit)",
        "Not set": "nicht eingestellt",
        "Number of columns": "Spaltenanzahl",
        "Number of rows": "Zeilenanzahl",
        "OK": "OK",
        "Other": "Anderes",
        "Percent": "Prozent",
        "Pixels": "Pixel",
        "Positioning of this image": "Positionierung dieses Bildes",
        "Positioning of this table": "Positionierung der Tabelle",
        "Preview": "Voransicht",
        "Preview the image in a new window": "Voransicht des Bildes in einem neuen Fenster",
        "Register bottom panel": "Unteres Panel wird generiert",
        "Register left panel": "Linkes Panel wird generiert",
        "Register right panel": "Rechtes Panel wird generiert",
        "Register top panel": "Oberes Panel wird generiert",
        "Right": "rechts",
        "Rows:": "Zeilen:",
        "Same frame (_self)": "Selber Rahmen (_self)",
        "Sample": "Beispiel",
        "Space between adjacent cells": "Raum zwischen angrenzenden Zellen",
        "Space between content and border in cell": "Raum zwischen Inhalt und Rand der Zelle",
        "Spacing": "Abstand",
        "Target:": "Ziel:",
        "Texttop": "oben bündig",
        "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Aus Sicherheitsgründen dürfen Skripte normalerweise nicht auf Ausschneiden/Kopieren/Einfügen zugreifen. Benutzen Sie bitte die entsprechenden Tastatur-Kommandos (Strg + x/c/v).",
        "Title (tooltip):": "Titel (Tooltip):",
        "Top": "oben",
        "Top frame (_top)": "Oberster Rahmen (_top)",
        "URL:": "URL:",
        "Vertical padding": "vertikaler Inhaltsabstand",
        "Vertical:": "vertikal:",
        "Web Safe: ": "Web Safe: ",
        "Width of the table": "Tabellenbreite",
        "Width unit": "Größeneinheit",
        "Width:": "Breite:",
        "You must enter a number of columns": "Bitte geben Sie die Anzahl der Spalten an",
        "You must enter a number of rows": "Bitte geben Sie die Anzahl der Zeilen an",
        "You must enter the URL": "Bitte geben Sie die URL ein",
        "You must enter the URL where this link points to": "Sie müssen eine Ziel-URL angeben für die Verknüpfung angeben",
        "You need to select some text before create a link": "Sie müssen einen Text markieren, um einen Link zu erstellen",
        "Your Document is not well formed. Check JavaScript console for details.": "Ihr Dokument ist in keinem sauberen Format. Benutzen Sie die Javascript Console für weitere Informationen."
    }
};