/*
 * Copyright 1998 Juergen Schmied
 * Copyright 2004 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
 */

#include "shresdef.h"

#pragma code_page(65001)

LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL

MENU_001 MENU
BEGIN
	MENUITEM "&Große Symbole",	FCIDM_SHVIEW_BIGICON
	MENUITEM "&Kleine Symbole",	FCIDM_SHVIEW_SMALLICON
	MENUITEM "&Liste",		FCIDM_SHVIEW_LISTVIEW
	MENUITEM "&Details",		FCIDM_SHVIEW_REPORTVIEW
END

/*
 shellview background menu
*/
MENU_002 MENU
BEGIN
	POPUP ""
	BEGIN
	  POPUP "&Ansicht"
	  BEGIN
            MENUITEM "&Große Symbole",  FCIDM_SHVIEW_BIGICON
	    MENUITEM "&Kleine Symbole",	FCIDM_SHVIEW_SMALLICON
	    MENUITEM "&Liste",		FCIDM_SHVIEW_LISTVIEW
	    MENUITEM "&Details",	FCIDM_SHVIEW_REPORTVIEW
	  END
	  MENUITEM SEPARATOR
	  POPUP "Symbole anordnen"
	  BEGIN
	    MENUITEM "Nach &Name",	0x30	/* column 0 */
	    MENUITEM "Nach &Typ",	0x32	/* column 2 */
            MENUITEM "Nach &Größe",     0x31    /* ... */
	    MENUITEM "Nach &Datum",	0x33
	    MENUITEM SEPARATOR
	    MENUITEM "&Automatisch anordnen",	FCIDM_SHVIEW_AUTOARRANGE
	  END
	  MENUITEM "Icons anordnen",	FCIDM_SHVIEW_SNAPTOGRID
	  MENUITEM SEPARATOR
	  MENUITEM "Aktualisieren",		FCIDM_SHVIEW_REFRESH
	  MENUITEM SEPARATOR
          MENUITEM "Einfügen",                  FCIDM_SHVIEW_INSERT
          MENUITEM "Einfügen als Verknüpfung",  FCIDM_SHVIEW_INSERTLINK
	  MENUITEM SEPARATOR
	  POPUP "Neu"
	  BEGIN
	    MENUITEM "Neues Ver&zeichnis",	FCIDM_SHVIEW_NEWFOLDER
            MENUITEM "Neue Ver&knüpfung",       FCIDM_SHVIEW_NEWLINK
	    MENUITEM SEPARATOR
	  END
	  MENUITEM SEPARATOR
	  MENUITEM "&Eigenschaften",	FCIDM_SHVIEW_PROPERTIES
	END
END

/*
 shellview item menu
*/
MENU_SHV_FILE MENU
BEGIN
	POPUP ""
	BEGIN
          MENUITEM "Aus&wählen"         FCIDM_SHVIEW_OPEN
	  MENUITEM "E&rkunden",		FCIDM_SHVIEW_EXPLORE
          MENUITEM "&Öffnen"            FCIDM_SHVIEW_OPEN
	  MENUITEM SEPARATOR
	  MENUITEM "&Ausschneiden",		FCIDM_SHVIEW_CUT
	  MENUITEM "&Kopieren",		FCIDM_SHVIEW_COPY
	  MENUITEM SEPARATOR
          MENUITEM "&Verknüpfung erzeugen",     FCIDM_SHVIEW_CREATELINK
          MENUITEM "&Löschen",                  FCIDM_SHVIEW_DELETE
	  MENUITEM "&Umbenennen",		FCIDM_SHVIEW_RENAME
	  MENUITEM SEPARATOR
	  MENUITEM "&Eigenschaften",	FCIDM_SHVIEW_PROPERTIES
	END
END

MENU_CPANEL MENU
BEGIN
    POPUP "&Datei"
    BEGIN
        MENUITEM SEPARATOR
        MENUITEM "&Beenden", IDM_CPANEL_EXIT
    END

    POPUP "&Ansicht"
    BEGIN
        MENUITEM "&Große Symbole", FCIDM_SHVIEW_BIGICON
        MENUITEM "&Kleine Symbole", FCIDM_SHVIEW_SMALLICON
        MENUITEM "&Liste", FCIDM_SHVIEW_LISTVIEW
        MENUITEM "&Details", FCIDM_SHVIEW_REPORTVIEW
    END

    POPUP "&Hilfe"
    BEGIN
        MENUITEM "&Über Systemsteuerung...", IDM_CPANEL_ABOUT
    END
END

SHBRSFORFOLDER_MSGBOX DIALOG 15, 40, 188, 192
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Verzeichnis auswählen"
FONT 8, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Abbrechen", 2, 134, 176, 50, 12, WS_GROUP | WS_TABSTOP
 LTEXT "", IDD_TITLE, 4, 4, 180, 12
 LTEXT "", IDD_STATUS, 4, 25, 180, 12
 CONTROL "", IDD_TREEVIEW, "SysTreeView32",
 	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
	WS_BORDER | WS_TABSTOP,
	4, 40, 180, 120
}

SHNEWBRSFORFOLDER_MSGBOX DIALOG 15, 40, 218, 196
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | WS_SIZEBOX | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Verzeichnis auswählen"
FONT 8, "MS Shell Dlg"
{
 LTEXT "", IDD_TITLE, 10, 8, 198, 24
 LTEXT "", IDD_STATUS, 10, 25, 198, 12
 LTEXT "Verzeichnis:", IDD_FOLDER, 10, 156, 40, 12
 CONTROL "", IDD_TREEVIEW, "SysTreeView32",
        TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
        WS_BORDER | WS_TABSTOP,
        12, 38, 194, 105
 EDITTEXT IDD_FOLDERTEXT, 46, 150, 160, 14, WS_BORDER | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "&Neues Verzeichnis erstellen", IDD_MAKENEWFOLDER, 12, 174, 95, 14, WS_GROUP | WS_TABSTOP
 DEFPUSHBUTTON "OK", IDOK, 112, 174, 45, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Abbrechen", IDCANCEL, 161, 174, 45, 14, WS_GROUP | WS_TABSTOP
}

SHELL_YESTOALL_MSGBOX DIALOG 200, 100, 280, 90
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Meldung"
FONT 8, "MS Shell Dlg"
{
    DEFPUSHBUTTON "&Ja", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Ja zu &allen", IDD_YESTOALL, 92, 69, 65, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Nein", IDNO, 162, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Abbrechen", IDCANCEL, 220, 69, 53, 14, WS_GROUP | WS_TABSTOP
    ICON "", IDD_ICON, 10, 10, 16, 16
    LTEXT "", IDD_MESSAGE, 40, 10, 238, 52, 0
}

SHELL_ABOUT_MSGBOX DIALOG 15, 40, 210, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Informationen über %s"
FONT 10, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", IDOK, 153, 133, 50, 12, WS_TABSTOP
 PUSHBUTTON "&Lizenz...", IDC_ABOUT_LICENSE, 153, 113, 50, 12, WS_TABSTOP
 LISTBOX IDC_ABOUT_LISTBOX, 8, 65, 137, 82, LBS_NOTIFY | WS_VSCROLL | WS_BORDER
 ICON "", stc1, 10, 10, 30, 30
 LTEXT "", IDC_ABOUT_STATIC_TEXT1, 40, 10, 137, 10
 LTEXT "", IDC_ABOUT_STATIC_TEXT2, 40, 22, 137, 10
 LTEXT "Wine Version %s", IDC_ABOUT_STATIC_TEXT3, 40, 34, 170, 10
 LTEXT "Wine wurde für Sie gekeltert von:", IDC_ABOUT_WINE_TEXT, 8, 55, 137, 10
}

SHELL_RUN_DLG DIALOG 0, 0, 227, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION ""
FONT 8, "MS Shell Dlg"
{
 ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE
 LTEXT "Geben sie den Namen eines Programmes, eines Ordners, eines Dokumentes oder einer Internet-Ressource ein, die geöffnet werden soll", 12289, 36, 11, 182, 18
 LTEXT "Ö&ffnen:", 12305, 7, 39, 24, 10
 CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100
 DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "Abbrechen", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "&Durchsuchen...", 12288, 170, 63, 50, 14, WS_TABSTOP
}

STRINGTABLE
{
        /* columns in the shellview */
	IDS_SHV_COLUMN1		"Datei"
	IDS_SHV_COLUMN2		"Größe"
	IDS_SHV_COLUMN3		"Typ"
	IDS_SHV_COLUMN4		"Geändert"
	IDS_SHV_COLUMN5		"Attribute"
	IDS_SHV_COLUMN6		"Gesamtgröße"
	IDS_SHV_COLUMN7		"Freier Speicher"
	IDS_SHV_COLUMN8		"Name"
	IDS_SHV_COLUMN9		"Kommentar"
	IDS_SHV_COLUMN10	"Besitzer"
	IDS_SHV_COLUMN11	"Gruppe"
	IDS_SHV_COLUMN_DELFROM	"Ursprung"
	IDS_SHV_COLUMN_DELDATE	"Gelöscht am"
	IDS_SHV_COL_DOCS	"Dokumente"
	IDS_SHV_COL_STATUS	"Status"
	IDS_SHV_COL_LOCATION	"Ort"
	IDS_SHV_COL_MODEL	"Modell"

        /* special folders */
	IDS_DESKTOP		"Desktop"
	IDS_MYCOMPUTER		"Arbeitsplatz"
	IDS_RECYCLEBIN_FOLDER_NAME      "Papierkorb"
	IDS_CONTROLPANEL	"Systemsteuerung"

        /* context menus */
	IDS_VIEW_LARGE		"&Große Symbole"
	IDS_VIEW_SMALL		"&Kleine Symbole"
	IDS_VIEW_LIST		"&Liste"
	IDS_VIEW_DETAILS	"&Details"
	IDS_SELECT		"Auswählen"
	IDS_OPEN		"Öffnen"

	IDS_CREATEFOLDER_DENIED "Es konnte kein neues Verzeichnis erstellt werden: Zugriff verweigert."
	IDS_CREATEFOLDER_CAPTION "Es trat ein Fehler beim Erstellen eines neuen Verzeichnisses auf"
	IDS_DELETEITEM_CAPTION "Bestätigung: Objekt löschen"
	IDS_DELETEFOLDER_CAPTION "Bestätigung: Verzeichnis löschen"
	IDS_DELETEITEM_TEXT "Sind Sie sich sicher, dass Sie '%1' löschen möchten?"
	IDS_DELETEMULTIPLE_TEXT "Sind Sie sich sicher, dass Sie diese %1 Objekte löschen möchten?"
	IDS_DELETESELECTED_TEXT "Sind Sie sich sicher, dass Sie die ausgewählten Objekte löschen möchten?"
	IDS_TRASHITEM_TEXT "Sind Sie sich sicher, dass Sie '%1' in den Papierkorb verschieben möchten?"
	IDS_TRASHFOLDER_TEXT "Sind Sie sich sicher, dass Sie '%1' und seinen Inhalt in den Papierkorb verschieben möchten?"
	IDS_TRASHMULTIPLE_TEXT "Sind Sie sich sicher, dass Sie diese %1 Dateien in den Papierkorb verschieben möchten?"
	IDS_CANTTRASH_TEXT "Das Objekt '%1' kann nicht in den Papierkorb verschoben werden.\n\n Möchten Sie es stattdessen löschen?"
	IDS_OVERWRITEFILE_TEXT "Der Ordner enthält bereits eine Datei namens '%1'.\n\n Wollen Sie die Datei ersetzen?"
	IDS_OVERWRITEFILE_CAPTION "Bestätigung: Datei überschreiben"
	IDS_OVERWRITEFOLDER_TEXT "Im Verzeichnis befindet sich bereits ein Ordner namens '%1'.\n\n"\
	"Wenn die Dateien im Zielordner die gleichen Namen haben, wie die im ausgewählten Ordner, werden sie ersetzt.\n\n\
	Möchten sie trotzdem fortfahren?"

        /* message box strings */
        IDS_RESTART_TITLE       "Neustarten"
        IDS_RESTART_PROMPT      "Möchten Sie, dass ein simulierter Windows Neustart durchgeführt wird?"
        IDS_SHUTDOWN_TITLE      "Beenden"
        IDS_SHUTDOWN_PROMPT     "Möchten Sie die aktuelle Wine Sitzung beenden?"

        /* Run File dialog */
        IDS_RUNDLG_ERROR           "Konnte Ausführen-Dialog nicht anzeigen (interner Fehler)"
        IDS_RUNDLG_BROWSE_ERROR    "Konnte Durchsuchen-Dialog nicht anzeigen (interner Fehler)"
        IDS_RUNDLG_BROWSE_CAPTION  "Durchsuchen"
        IDS_RUNDLG_BROWSE_FILTER   "Programme\0*.exe\0Alle Dateien\0*.*\0\0"

        /* shell folder path default values */
	IDS_PROGRAMS		"Startmenü\\Programme"
	IDS_PERSONAL		"Eigene Dateien"
	IDS_FAVORITES		"Favoriten"
	IDS_STARTUP		"Startmenü\\Programme\\Autostart"
	IDS_RECENT		"Recent"
	IDS_SENDTO		"SendTo"
	IDS_STARTMENU		"Startmenü"
	IDS_MYMUSIC		"Eigene Musik"
	IDS_MYVIDEO		"Eigene Videos"
	IDS_DESKTOPDIRECTORY	"Desktop"
	IDS_NETHOOD		"Netzwerkumgebung"
	IDS_TEMPLATES		"Vorlagen"
	IDS_APPDATA		"Anwendungsdaten"
	IDS_PRINTHOOD		"Druckumgebung"
	IDS_LOCAL_APPDATA	"Lokale Einstellungen\\Anwendungsdaten"
	IDS_INTERNET_CACHE	"Lokale Einstellungen\\Temporary Internet Files"
	IDS_COOKIES		"Cookies"
	IDS_HISTORY		"Lokale Einstellungen\\Verlauf"
	IDS_PROGRAM_FILES	"Programme"
	IDS_MYPICTURES		"Eigene Bilder"
	IDS_PROGRAM_FILES_COMMON "Programme\\Gemeinsame Dateien"
	IDS_COMMON_DOCUMENTS	"Dokumente"
	IDS_ADMINTOOLS		"Startmenü\\Programme\\Verwaltung"
	IDS_COMMON_MUSIC	"Musik"
	IDS_COMMON_PICTURES	"Bilder"
	IDS_COMMON_VIDEO	"Videos"
	IDS_CDBURN_AREA		"Lokale Einstellungen\\Anwendungsdaten\\Microsoft\\CD Burning"

	IDS_NEWFOLDER		"Neuer Ordner"

	IDS_CPANEL_TITLE	"Wine Systemsteuerung"
	IDS_CPANEL_NAME		"Name"
	IDS_CPANEL_DESCRIPTION	"Beschreibung"
	IDS_SHLEXEC_NOASSOC	"Es ist kein Programm mit diesem Dateityp verknüpft."
}

STRINGTABLE
{
IDS_LICENSE_CAPTION,            "Wine Lizenz"
IDS_LICENSE,
"Wine ist freie Software; Sie dürfen sie unter den Bedingungen \
der GNU Lesser General Public License, welche von der \
Free Software Foundation veröffentlicht wurde; weiter verteilen \
und/oder modifizieren gemäß Version 2.1 der Lizenz, oder \
(nach ihren Ermessen) jeder späteren Version.\n\n\
Wine wird mit der Hoffnung verteilt das es sich als nützlich erweist. \
Wine kommt aber OHNE JEGLICHE GARANTIE daher; sogar ohne einer \
angedeuteten Garantie der MARKTGÄNGIGKEIT oder der EIGNUNG FÜR EINEN \
BESTIMMTEN NUTZEN. Sehen Sie sich die GNU Lesser General Public License \
an für mehr Details.\n\n\
Sie sollten mit dieser Bibliothek auch eine Kopie der \
GNU Lesser General Public License erhalten haben; wenn nicht schreiben \
Sie der Free Software Foundation, \
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA."
}
