/*
 * 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
{
    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_RUN
        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_SELECT_DESTINATION DIALOG 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 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  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"
}
