/*
 * Copyright 2006 by Henning Gerhardt
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL

#pragma code_page(65001)

IDM_MAINMENU MENU DISCARDABLE
BEGIN
    POPUP "&Datei"
    BEGIN
        MENUITEM "&Neu...\tStrg+N",          ID_FILE_NEW
        MENUITEM "Ö&ffnen...\tStrg+O",    ID_FILE_OPEN
        MENUITEM "&Speichern\tStrg+S",    ID_FILE_SAVE
        MENUITEM "Speichern &unter...",   ID_FILE_SAVEAS
        MENUITEM SEPARATOR
        MENUITEM "&Drucken...\tStrg+P",   ID_PRINT
        MENUITEM "Seitenansi&cht",        ID_PREVIEW
        MENUITEM "Seite ein&richten...",  ID_PRINTSETUP
        MENUITEM SEPARATOR
        MENUITEM "&Beenden",              ID_FILE_EXIT
    END
    POPUP "&Bearbeiten"
    BEGIN
        MENUITEM "&Rückgängig\tStrg+Z",         ID_EDIT_UNDO
        MENUITEM "&Wiederholen\tStrg+Y",        ID_EDIT_REDO
        MENUITEM SEPARATOR
        MENUITEM "&Ausschneiden\tStrg+X",       ID_EDIT_CUT
        MENUITEM "&Kopieren\tStrg+C",           ID_EDIT_COPY
        MENUITEM "&Einfügen\tStrg+V",           ID_EDIT_PASTE
        MENUITEM "&Löschen\tEntf",              ID_EDIT_CLEAR
        MENUITEM "Alles &markieren\tStrg+A",    ID_EDIT_SELECTALL
        MENUITEM SEPARATOR
        MENUITEM "&Suchen...\tStrg+F",          ID_FIND
        MENUITEM "&Weitersuchen\tF3",           ID_FIND_NEXT
        MENUITEM "Erset&zen...\tStrg+H",        ID_REPLACE
        MENUITEM SEPARATOR
        MENUITEM "Schreibgeschü&tzt",           ID_EDIT_READONLY
        MENUITEM "&Geändert",                   ID_EDIT_MODIFIED
        MENUITEM SEPARATOR
        POPUP "&Extras"
        BEGIN
            MENUITEM "Markierungs&information",     ID_EDIT_SELECTIONINFO
            MENUITEM "Zeichen&format",              ID_EDIT_CHARFORMAT
            MENUITEM "&Standardzeichenformat",      ID_EDIT_DEFCHARFORMAT
            MENUITEM "&Absatzformat",               ID_EDIT_PARAFORMAT
            MENUITEM "&Text holen",                 ID_EDIT_GETTEXT
        END
    END
    POPUP "&Ansicht"
    BEGIN
        MENUITEM "&Symbolleiste",         ID_TOGGLE_TOOLBAR
        MENUITEM "&Formatierungsleiste",  ID_TOGGLE_FORMATBAR
        MENUITEM "L&ineal",               ID_TOGGLE_RULER
        MENUITEM "Status&leiste",         ID_TOGGLE_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "&Optionen...",          ID_VIEWPROPERTIES
    END
    POPUP "&Einfügen"
    BEGIN
        MENUITEM "&Datum und Uhrzeit...",  ID_DATETIME
    END
    POPUP "Forma&t"
    BEGIN
        MENUITEM "Sch&riftart...",               ID_FONTSETTINGS
        MENUITEM "Auf&zählungszeichen"           ID_BULLET
        MENUITEM "&Absatz..."                    ID_PARAFORMAT
        MENUITEM "&Tabstopps..."                 ID_TABSTOPS
        POPUP "&Hintergrund"
        BEGIN
            MENUITEM "&System\tStrg+1",         ID_BACK_1
            MENUITEM "&PostIt-Notiz\tStrg+2",   ID_BACK_2
        END
    END
    POPUP "&?"
    BEGIN
        MENUITEM "Ü&ber Wine Wordpad"       ID_ABOUT
    END
END

IDM_POPUP MENU DISCARDABLE
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "Aus&schneiden",       ID_EDIT_CUT
        MENUITEM "&Kopieren",           ID_EDIT_COPY
        MENUITEM "&Einfügen",           ID_EDIT_PASTE
        MENUITEM SEPARATOR
        MENUITEM "Auf&zählungszeichen"  ID_BULLET
        MENUITEM "&Absatz..."           ID_PARAFORMAT
    END
END

IDD_DATETIME DIALOG DISCARDABLE 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Datum und Uhrzeit"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Verfügbare Formate",-1,3,2,100,15
    LISTBOX      IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
    PUSHBUTTON   "&OK",IDOK,87,12,40,12
    PUSHBUTTON   "A&bbrechen",IDCANCEL,87,26,40,12
END

IDD_NEWFILE DIALOG DISCARDABLE 30, 20, 140, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Neu"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Neuer Dokumenttyp",-1,3,2,100,15
    LISTBOX      IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
    PUSHBUTTON   "&OK",IDOK,97,12,40,12
    PUSHBUTTON   "A&bbrechen",IDCANCEL,97,26,40,12
END

IDD_PARAFORMAT DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Absatz"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Einzug", -1, 10, 10, 120, 68
    LTEXT "Links", -1, 15, 22, 40, 13
    EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
    LTEXT "Rechts", -1, 15, 40, 40, 13
    EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
    LTEXT "Erste Zeile", -1, 15, 58, 40, 13
    EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
    LTEXT "Ausrichtung", -1, 15, 87, 40, 13
    COMBOBOX IDC_PARA_ALIGN, 55, 85, 60, 60, CBS_DROPDOWNLIST
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "A&bbrechen", IDCANCEL, 137, 33, 50, 15
END

IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Tabstopps"
FONT 8, "MS SHell DLg"
BEGIN
    GROUPBOX "Tabstoppposition", -1, 10, 10, 120, 90
    COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
    DEFPUSHBUTTON "&Festlegen", ID_TAB_ADD, 20, 80, 45, 15
    PUSHBUTTON "&Löschen", ID_TAB_DEL, 72, 80, 45, 15
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "A&bbrechen", IDCANCEL, 137, 33, 50, 15
    PUSHBUTTON "&Alle löschen", ID_TAB_EMPTY, 137, 51, 50, 15
END

IDD_FORMATOPTS DIALOG DISCARDABLE 0, 0, 280, 110
STYLE DS_SYSMODAL
Caption ""
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Zeilenumbruch", -1, 10, 10, 130, 85
    RADIOBUTTON "No line wrapping", IDC_PAGEFMT_WN, 18, 25, 117, 15
    RADIOBUTTON "&Am Fenster umbrechen", IDC_PAGEFMT_WW, 18, 45, 117, 15
    RADIOBUTTON "A&m Lineal umbrechen", IDC_PAGEFMT_WM, 18, 65, 117, 15
    GROUPBOX "Symbolleisten", -1, 150, 10, 120, 85
    CHECKBOX "&Symbolleiste", IDC_PAGEFMT_TB, 160, 20, 80, 15
    CHECKBOX "&Formatierungsleiste", IDC_PAGEFMT_FB, 160, 38, 80, 15
    CHECKBOX "L&ineal", IDC_PAGEFMT_RU, 160, 56, 80, 15
    CHECKBOX "Status&leiste", IDC_PAGEFMT_SB, 160, 74, 80, 15
    LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_RICHTEXT_FILES_RTF,     "RTF-Format (*.rtf)"
    STRING_TEXT_FILES_TXT,         "Textdokumente (*.txt)"
    STRING_TEXT_FILES_UNICODE_TXT, "Unicode-Textdokumente (*.txt)"
    STRING_ALL_FILES,              "Alle Dokumente (*.*)"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_ALIGN_LEFT,            "Links"
    STRING_ALIGN_RIGHT,           "Rechts"
    STRING_ALIGN_CENTER,          "Zentriert"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_NEWFILE_RICHTEXT,     "RTF-Dokument"
    STRING_NEWFILE_TXT,          "Textdokument"
    STRING_NEWFILE_TXT_UNICODE,  "Unicode-Textdokument"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_PRINTER_FILES_PRN,        "Druckerdateien (*.PRN)"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_VIEWPROPS_TITLE,          "Optionen"
    STRING_VIEWPROPS_TEXT,           "Text"
    STRING_VIEWPROPS_RICHTEXT,       "Rich Text"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_PREVIEW_PRINT,            "&Drucken"
    STRING_PREVIEW_NEXTPAGE,         "&Nächste"
    STRING_PREVIEW_PREVPAGE,         "&Vorherige"
    STRING_PREVIEW_TWOPAGES,         "Zwei Seiten"
    STRING_PREVIEW_ONEPAGE,          "Eine Seite"
    STRING_PREVIEW_CLOSE,            "&Schließen"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_UNITS_CM,             "cm"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_DEFAULT_FILENAME,     "Dokument"
    STRING_PROMPT_SAVE_CHANGES,  "Änderungen an '%s' speichern?"
    STRING_SEARCH_FINISHED,      "Wordpad hat das Durchsuchen des Dokuments beendet."
    STRING_LOAD_RICHED_FAILED,   "Die RichEdit-Bibliothek konnte nicht geladen werden."
    STRING_SAVE_LOSEFORMATTING,  "Sie sind dabei, die Datei als Textdatei zu speichern. " \
                                 "Dadurch geht die Formatierung verloren. " \
                                 "Möchten Sie den Vorgang trotzdem fortsetzen?"
    STRING_INVALID_NUMBER,       "Diese Maßeinheit ist nicht zulässig."
    STRING_OLE_STORAGE_NOT_SUPPORTED, "OLE-Dokumentenspeicherung wird nicht unterstützt."
    STRING_WRITE_FAILED,         "Die Datei konnte nicht gespeichert werden."
    STRING_WRITE_ACCESS_DENIED,  "Sie haben keine ausreichende Zugriffsberechtigung um die Datei zu speichern."
    STRING_OPEN_FAILED,          "Die Datei konnte nicht geöffnet werden."
    STRING_OPEN_ACCESS_DENIED,   "Sie haben keine ausreichende Zugriffsberechtigung um die Datei zu öffnen."
    STRING_PRINTING_NOT_IMPLEMENTED, "Drucken ist nicht implementiert"
END

#pragma code_page(default)
