/*
 * Copyright 1998 Juergen Schmied
 * Copyright 2008 Jens Albretsen
 *           2010 Thomas Larsen
 *
 * 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_DANISH, SUBLANG_DEFAULT

MENU_001 MENU
BEGIN
        MENUITEM "&Store Ikoner",       FCIDM_SHVIEW_BIGICON
        MENUITEM "S&må Ikoner" ,        FCIDM_SHVIEW_SMALLICON
        MENUITEM "&Liste",              FCIDM_SHVIEW_LISTVIEW
        MENUITEM "&Detaljer",           FCIDM_SHVIEW_REPORTVIEW
END

/*
 shellview background menu
*/
MENU_002 MENU
BEGIN
        POPUP ""
        BEGIN
          POPUP "&Vis"
          BEGIN
            MENUITEM "&Store Ikoner",   FCIDM_SHVIEW_BIGICON
            MENUITEM "S&må Ikoner",     FCIDM_SHVIEW_SMALLICON
            MENUITEM "&Liste",          FCIDM_SHVIEW_LISTVIEW
            MENUITEM "&Detaljer",       FCIDM_SHVIEW_REPORTVIEW
          END
          MENUITEM SEPARATOR
          POPUP "Sortere &Ikoner"
          BEGIN
            MENUITEM "Efter &Navn",         0x30    /* column 0 */
            MENUITEM "Efter &Type",         0x32    /* column 2 */
            MENUITEM "Efter &Størrelse",    0x31    /* ... */
            MENUITEM "Efter &Ændringsdato", 0x33
            MENUITEM SEPARATOR
            MENUITEM "&Arranger Automatisk", FCIDM_SHVIEW_AUTOARRANGE
          END
          MENUITEM "A&rranger ikoner i forhold til gitter", FCIDM_SHVIEW_SNAPTOGRID
          MENUITEM SEPARATOR
          MENUITEM "Opdater",           FCIDM_SHVIEW_REFRESH
          MENUITEM SEPARATOR
          MENUITEM "Indsæt",            FCIDM_SHVIEW_INSERT
          MENUITEM "Indsæt som genvej", FCIDM_SHVIEW_INSERTLINK
          MENUITEM SEPARATOR
          POPUP "Ny"
          BEGIN
            MENUITEM "&Mappe",      FCIDM_SHVIEW_NEWFOLDER
            MENUITEM "&Genvej",     FCIDM_SHVIEW_NEWLINK
            MENUITEM SEPARATOR
          END
          MENUITEM SEPARATOR
          MENUITEM "Egenskaber",        FCIDM_SHVIEW_PROPERTIES
        END
END

/*
 shellview item menu
*/
MENU_SHV_FILE MENU
BEGIN
	POPUP ""
	BEGIN
	  MENUITEM "&Vælg"		FCIDM_SHVIEW_OPEN
	  MENUITEM "U&dforsk",		FCIDM_SHVIEW_EXPLORE
	  MENUITEM "&Åben",		FCIDM_SHVIEW_OPEN
	  MENUITEM SEPARATOR
	  MENUITEM "K&lip",		FCIDM_SHVIEW_CUT
	  MENUITEM "&Kopier",		FCIDM_SHVIEW_COPY
	  MENUITEM SEPARATOR
	  MENUITEM "Opret &genvej",	FCIDM_SHVIEW_CREATELINK
	  MENUITEM "&Slet",		FCIDM_SHVIEW_DELETE
	  MENUITEM "&Omdøb",		FCIDM_SHVIEW_RENAME
	  MENUITEM SEPARATOR
	  MENUITEM "&Egenskaber",	FCIDM_SHVIEW_PROPERTIES
	END
END

MENU_CPANEL MENU
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM SEPARATOR
        MENUITEM "E&xit", IDM_CPANEL_EXIT
    END

    POPUP "&Vis"
    BEGIN
        MENUITEM "&Store Ikoner", FCIDM_SHVIEW_BIGICON
        MENUITEM "S&må Ikoner", FCIDM_SHVIEW_SMALLICON
        MENUITEM "&Liste", FCIDM_SHVIEW_LISTVIEW
        MENUITEM "&Detaljer", FCIDM_SHVIEW_REPORTVIEW
    END

    POPUP "&Hjælp"
    BEGIN
        MENUITEM "&Om Kontrolpanelet...", 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 "Søg efter mappe"
FONT 8, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Annuller", 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 "Vælg Folder"
FONT 8, "MS Shell Dlg"
{
 LTEXT "", IDD_TITLE, 10, 8, 198, 24
 LTEXT "", IDD_STATUS, 10, 25, 198, 12
 LTEXT "Folder:", 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 "&Lav ny folder", IDD_MAKENEWFOLDER, 12, 174, 70, 14, WS_GROUP | WS_TABSTOP
 DEFPUSHBUTTON "OK", IDOK, 102, 174, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Annuller", IDCANCEL, 156, 174, 50, 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 "Message"
FONT 8, "MS Shell Dlg"
{
    DEFPUSHBUTTON "&Ja", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Ja to &alt", IDD_YESTOALL, 92, 69, 65, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Nej", IDNO, 162, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Annuller", 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, 220, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Om %s"
FONT 10, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", IDOK, 153, 133, 60, 12, WS_TABSTOP
 PUSHBUTTON "Wine &licens...", IDC_ABOUT_LICENSE, 153, 113, 60, 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, 42, 10, 170, 10
 LTEXT "", IDC_ABOUT_STATIC_TEXT2, 42, 22, 170, 10
 LTEXT "Kører på %s", IDC_ABOUT_STATIC_TEXT3, 42, 34, 170, 10
 LTEXT "Wine havde ikke været mulig uden hjælp fra disse personer:", IDC_ABOUT_WINE_TEXT, 8, 54, 204, 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 "Skriv navnet på et program, en mappe, et dokument eller Internet ressource, og Wine åbner det for dig.", 12289, 36, 11, 182, 18
 LTEXT "&Åbn:", 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 "Annuller", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "&Gennemse...", 12288, 170, 63, 50, 14, WS_TABSTOP
}

STRINGTABLE
{
        /* columns in the shellview */
        IDS_SHV_COLUMN1         "Fil"
        IDS_SHV_COLUMN2         "Størrelse"
        IDS_SHV_COLUMN3         "Type"
        IDS_SHV_COLUMN4         "Modificeret"
        IDS_SHV_COLUMN5         "Attributer"
        IDS_SHV_COLUMN6         "Størrelse"
        IDS_SHV_COLUMN7         "Størrelse ledig"
        IDS_SHV_COLUMN8         "Navn"
        IDS_SHV_COLUMN9         "Kommentare"
        IDS_SHV_COLUMN10        "Ejer"
        IDS_SHV_COLUMN11        "Gruppe"
        IDS_SHV_COLUMN_DELFROM  "Original sted"
        IDS_SHV_COLUMN_DELDATE  "Dato slettet"
        IDS_SHV_COL_DOCS        "Dokumenter"
        IDS_SHV_COL_STATUS      "Status"
        IDS_SHV_COL_LOCATION    "Placering"
        IDS_SHV_COL_MODEL       "Model"

        /* special folders */
        IDS_DESKTOP             "Skrivebord"
        IDS_MYCOMPUTER          "Min Computer"
        IDS_RECYCLEBIN_FOLDER_NAME "Papirkurven"
	IDS_CONTROLPANEL	"Control Panel"

        /* context menus */
        IDS_VIEW_LARGE          "Store Ikoner"
        IDS_VIEW_SMALL          "S&må Ikoner"
        IDS_VIEW_LIST           "&Liste"
        IDS_VIEW_DETAILS        "&Detaljer"
        IDS_SELECT              "Vælg"
        IDS_OPEN                "Åben"

        IDS_CREATEFOLDER_DENIED "Kunne ikke oprette en ny mappe: Adgang nægtet."
        IDS_CREATEFOLDER_CAPTION "Fejl ved oprettelse af ny mappe"
        IDS_DELETEITEM_CAPTION "Bekræft sletning af fil"
        IDS_DELETEFOLDER_CAPTION "Bekræft sletning af mappe"
        IDS_DELETEITEM_TEXT "Er du sikker på du vil slette '%1'?"
        IDS_DELETEMULTIPLE_TEXT "Er du sikker på du vil slette disse %1 filer?"
        IDS_DELETESELECTED_TEXT "Er du sikker på du vil slette de(n) valgte fil(er)?"
        IDS_TRASHITEM_TEXT "Er du sikker på at du vil sende '%1' til papirkurven?"
        IDS_TRASHFOLDER_TEXT "Er du sikker på at du vil sende '%1' og alt dens indhold til papirkurven?"
        IDS_TRASHMULTIPLE_TEXT "Er du sikker på at du vil sende disse %1 filer til papirkurven?"
        IDS_CANTTRASH_TEXT "Filen '%1' kunne ikke sendes til papirkurven. Ønsker du at slette den permanent istedet for?"
        IDS_OVERWRITEFILE_TEXT "Denne mappe indeholder allerede en fil kaldet '%1'.\n\nVil du overskrive den?"
        IDS_OVERWRITEFILE_CAPTION "Bekræft overskrivning af fil"
        IDS_OVERWRITEFOLDER_TEXT "Denne mappe indeholder allerede en mappe med navnet '%1'.\n\n"\
            "Hvis filerne i destinationsmappen har de samme navne som filerne i\n"\
            "den markerede mappe, vil de blive erstattet. Ønsker du stadig at flytte eller kopiere\n"\
            "mappen?"

        /* message box strings */
        IDS_RESTART_TITLE       "Genstart"
        IDS_RESTART_PROMPT      "Vil du simulere en genstart af Windows?"
        IDS_SHUTDOWN_TITLE      "Luk ned"
        IDS_SHUTDOWN_PROMPT     "Vil du lukke din Wine session?"

        /* Run File dialog */
        IDS_RUNDLG_ERROR           "Kan ikke vise Kør Fil dialogboksen (intern fejl)"
        IDS_RUNDLG_BROWSE_ERROR    "Kan ikke vise Gennemse dialogboksen (intern fejl)"
        IDS_RUNDLG_BROWSE_CAPTION  "Gennemse"
        IDS_RUNDLG_BROWSE_FILTER   "Program Filer\0*.exe\0Alle Filer\0*.*\0\0"

        /* shell folder path default values */
        IDS_PROGRAMS                "Start Menu\\Programmer"
        IDS_PERSONAL                "Mine Dokumenter"
        IDS_FAVORITES               "Favoriter"
        IDS_STARTUP                 "Start Menu\\Programmer\\Start"
        IDS_RECENT                  "Recent"
        IDS_SENDTO                  "SendTo"
        IDS_STARTMENU               "Start Menu"
        IDS_MYMUSIC                 "Min Musik"
        IDS_MYVIDEO                 "Mine Film"
        IDS_DESKTOPDIRECTORY        "Skrivebord"
        IDS_NETHOOD                 "NetHood"
        IDS_TEMPLATES               "Skabeloner"
        IDS_APPDATA                 "Programdata"
        IDS_PRINTHOOD               "PrintHood"
        IDS_LOCAL_APPDATA           "Lokale indstillinger\\Application Data"
        IDS_INTERNET_CACHE          "Lokale indstillinger\\Temporary Internet Files"
        IDS_COOKIES                 "Cookies"
        IDS_HISTORY                 "Lokale indstillinger\\History"
        IDS_PROGRAM_FILES           "Program Files"
        IDS_MYPICTURES              "Mine Billeder"
        IDS_PROGRAM_FILES_COMMON    "Programmer\Fælles Filer"
        IDS_COMMON_DOCUMENTS        "Documenter"
        IDS_ADMINTOOLS              "Start Menu\Programmer\Administrative Værktøjer"
        IDS_COMMON_MUSIC            "Dokumenter\\Min Musik"
        IDS_COMMON_PICTURES         "Dokumenter\\Mine Billeder"
        IDS_COMMON_VIDEO            "Dokumenter\\Mine Film"
        IDS_CDBURN_AREA             "Lokale indstillinger\Applikations Data\Microsoft\CD Brændning"

        IDS_NEWFOLDER               "Ny Mappe"

        IDS_CPANEL_TITLE            "Wine Kontrolpanel"
        IDS_CPANEL_NAME             "Name"
        IDS_CPANEL_DESCRIPTION      "Description"

        IDS_SHLEXEC_NOASSOC         "Der er ikke noget Windows program, konfigureret til at åbne denne type fil."
}

STRINGTABLE
{
IDS_LICENSE_CAPTION,            "Licensbetingelser"
IDS_LICENSE,
"Wine er fri software; du må distribuere det og/eller \
ændre det i henhold til vilkårene i «GNU Lesser General Public \
License», udgivet af the Free Software Foundation; enten \
version 2.1 af Licensen, eller (hvis du ønsker det) en nyere version.\n\n\
Wine udgives i håb om at det er nyttigt, \
men UDEN ENHVER GARANTI; uden engang den antydede garanti om \
HANDELSEGNETHED eller EGNETHED FOR ET SPECIELT FORMÅL.  Se «GNU \
Lesser General Public License» for flere detaljer.\n\n\
Du skal have modtaget et eksemplar af «GNU Lesser General Public \
License» sammen med dette program; hvis ikke, skriv til: the Free Software \
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA."
}
