/*
 * Winefile
 * German Language Support
 *
 * Copyright 2000, 2005 Martin Fuchs
 * Copyright 2002 Steven Edwards
 * Copyright 2002 Alexandre Julliard
 *
 * 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
 */

#include "resource.h"

#pragma code_page(65001)

LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL

/* Menu */

IDM_WINEFILE MENU FIXED IMPURE
{
    POPUP "&Datei"  {
        MENUITEM "Ö&ffnen\tEingabetaste",       ID_ACTIVATE
        MENUITEM "&Verschieben...\tF7",         ID_FILE_MOVE
        MENUITEM "&Kopieren...\tF8",            ID_FILE_COPY
        MENUITEM "&In Zwischenablage...\tF9",   118
        MENUITEM "&Löschen\tEntf",              ID_FILE_DELETE
        MENUITEM "&Umbenennen...",              109
        MENUITEM "&Eigenschaften...\tAlt+Eingabetaste", ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "K&omprimieren...",            119
        MENUITEM "Deko&mprimieren...",          120
        MENUITEM SEPARATOR
        MENUITEM "&Ausführen...",               ID_EXECUTE
        MENUITEM "&Drucken...",                 102
        MENUITEM "Zuord&nen...",                103
        MENUITEM SEPARATOR
        MENUITEM "Ver&zeichnis erstellen...",   111
        MENUITEM "&Suchen...",                  104
        MENUITEM "Dateien aus&wählen...",       116
        MENUITEM SEPARATOR
        MENUITEM "&Beenden\tAlt+X",             ID_FILE_EXIT
    }

    POPUP "Da&tenträger"  {
        MENUITEM "Datenträger &kopieren...",    201
        MENUITEM "Datenträger &benennen...",    202
        MENUITEM SEPARATOR
        MENUITEM "Datenträger &formatieren...", ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "...",         -1  /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "Netzwerklaufwerk &verbinden...",ID_CONNECT_NETWORK_DRIVE
        MENUITEM "Netzwerklaufwerk &trennen...",ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "F&reigeben als...",           254
        MENUITEM "Freigabe been&den...",        255
        MENUITEM SEPARATOR
        MENUITEM "Laufwerk aus&wählen...",      251
    }


    POPUP "&Verzeichnisse"  {
        MENUITEM "&Nächste Ebene einblenden\t+",301
        MENUITEM "&Zweig einblenden\t*",        302
        MENUITEM "Alle &Ebenen einblenden\tStrg+*",303
        MENUITEM "Zweig &ausblenden\t-",        304
        MENUITEM SEPARATOR
        MENUITEM "&Verzweigungen kennzeichnen", 505
    }

    POPUP "&Ansicht"  {
        MENUITEM "Struktur &und Verzeichnis",   413
        MENUITEM "Nur St&ruktur",               411
        MENUITEM "Nur &Verzeichnis",            412
        MENUITEM SEPARATOR
        MENUITEM "&Teilen",                     ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Name",                       ID_VIEW_NAME
        MENUITEM "A&lle Dateiangaben",          ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "&Bestimmte Dateiangaben...",  ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "Nach N&ame",                  ID_VIEW_SORT_NAME
        MENUITEM "Nach T&yp",                   ID_VIEW_SORT_TYPE
        MENUITEM "Nach &Größe",                 ID_VIEW_SORT_SIZE
        MENUITEM "Nach &Datum",                 ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Angaben ausw&ählen...",       ID_VIEW_FILTER
    }

    POPUP "&Optionen"  {
        MENUITEM "&Bestätigen...",              501
        MENUITEM "Schrift&art...",              ID_SELECT_FONT
        MENUITEM "Symbolleiste &definieren...", 512
        MENUITEM SEPARATOR
        MENUITEM "Sy&mbolleiste",               ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "Lauf&werkleiste",             ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "&Statusleiste",               ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "Vollb&ild\tStrg+Umschalt+S",  ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Symbol nach Programmstart",  504
        MENUITEM "&Einstellungen beim Beenden speichern", 511
    }

    POPUP "&Sicherheit"  {
        MENUITEM "&Berechtigungen...",          605
        MENUITEM "Über&wachen...",              606
        MENUITEM "Besi&tzer...",                607
    }

    POPUP "&Fenster"  {
        MENUITEM "Neues &Fenster",              ID_WINDOW_NEW
        MENUITEM "Über&lappend\tUmschalt+F5",   ID_WINDOW_CASCADE
        MENUITEM "&Untereinander",              ID_WINDOW_TILE_HORZ
        MENUITEM "&Nebeneinander\tUmschalt+F4", ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "au&tomatisch anordnen",       ID_WINDOW_AUTOSORT
#endif
        MENUITEM "&Symbole anordnen",           ID_WINDOW_ARRANGE
        MENUITEM "&Aktualisieren\tF5",          ID_REFRESH
    }

    POPUP "&Hilfe"  {
        MENUITEM "&Hilfethemen\tF1",            ID_HELP
        MENUITEM "&Suchen...\tF1",              ID_HELP
        MENUITEM "Hilfe &verwenden\tF1",        ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "&Info über Winefile...",      ID_ABOUT
    }
}


IDD_EXECUTE DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ausführen"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "Befehls&zeile:", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    CONTROL         "Als &Symbol", 214, "Button", BS_AUTOCHECKBOX|WS_TABSTOP,3, 45, 71, 12
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "Abbrechen", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Hilfe", 254, 158, 43, 47, 14
}

IDD_SELECT_DESTINATION DIALOG FIXED IMPURE 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ziel auswählen"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Verzeichnis:", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "Abbrechen", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Durchsuchen", 254, 158, 43, 47, 14
}

IDD_DIALOG_VIEW_TYPE DIALOG DISCARDABLE 15, 13, 161, 97
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Angaben auswählen"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "&Name:",-1,7,8,22,10
    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
    GROUPBOX        "Dateityp",-1,7,23,87,56
    CONTROL         "&Verzeichnisse",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
    CONTROL         "&Programme",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
    CONTROL         "&Dokumente",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
    CONTROL         "&Andere Dateien",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "Vers&teckte/Systemdateien anzeigen",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,106,9
    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
    PUSHBUTTON      "Abbrechen",IDCANCEL,104,24,50,14
END

IDD_DIALOG_PROPERTIES DIALOG DISCARDABLE  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Eigenschaften für %s"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,191,7,50,14
    PUSHBUTTON      "Abbrechen",IDCANCEL,191,29,50,14
    LTEXT           "&Dateiname:",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "&Pfad:",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Letzte &Änderung:",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "&Version:",-1,7,40,59,9
    EDITTEXT        IDC_STATIC_PROP_VERSION,71,40,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "&Copyright:",-1,7,51,59,9
    EDITTEXT        IDC_STATIC_PROP_COPYRIGHT,71,51,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "&Größe:",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Attribute",-1,7,79,158,46
    CONTROL         "&Schreibgeschützt",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "&Versteckt",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "&Archiv",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "Sys&tem",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "&Komprimiert",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,17,111,68,9
    GROUPBOX        "&Versionsinformationen",-1,7,129,234,79
    LISTBOX         IDC_LIST_PROP_VERSION_TYPES,13,139,107,63,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
    EDITTEXT        IDC_LIST_PROP_VERSION_VALUES,123,139,111,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END


STRINGTABLE
{
    IDS_FONT_SEL_DLG_NAME   "Anwenden der Schriftarteinstellung"
    IDS_FONT_SEL_ERROR      "Fehler während der Schriftart-Auswahl."
}

STRINGTABLE
{
    IDS_WINEFILE            "Winefile"
    IDS_ERROR               "Fehler"
    IDS_ROOT_FS             "root fs"
    IDS_UNIXFS              "unixfs"
    IDS_DESKTOP             "Desktop"
    IDS_SHELL               "Shell"
    IDS_TITLEFMT            "%s - %s"
    IDS_NO_IMPL             "Noch nicht implementiert"
    IDS_WINE_FILE           "Wine File"
}

STRINGTABLE
{
    IDS_COL_NAME            "Name"
    IDS_COL_SIZE            "Größe"
    IDS_COL_CDATE           "CDatum"
    IDS_COL_ADATE           "ZDatum"
    IDS_COL_MDATE           "ÄDatum"
    IDS_COL_IDX             "Index/Inode"
    IDS_COL_LINKS           "Links"
    IDS_COL_ATTR            "Attribute"
    IDS_COL_SEC             "Sicherheit"

    IDS_FREE_SPACE_FMT      "%s von %s frei"
}
