/*
 * Copyright 1998 Juergen Schmied
 * Copyright 2008 Michael Stefaniuc
 *
 * 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_ROMANIAN, SUBLANG_NEUTRAL

#pragma code_page(65001)

MENU_001 MENU DISCARDABLE
BEGIN
        MENUITEM "Pictograme &mari",    FCIDM_SHVIEW_BIGICON
        MENUITEM "Pictograme m&ici",    FCIDM_SHVIEW_SMALLICON
        MENUITEM "&Listă",              FCIDM_SHVIEW_LISTVIEW
        MENUITEM "&Detalii",            FCIDM_SHVIEW_REPORTVIEW
END

/*
 shellview background menu
*/
MENU_002 MENU DISCARDABLE
BEGIN
        POPUP ""
        BEGIN
          POPUP "&Mod afișare"
          BEGIN
            MENUITEM "Pictograme &mari",        FCIDM_SHVIEW_BIGICON
            MENUITEM "Pictograme m&ici",        FCIDM_SHVIEW_SMALLICON
            MENUITEM "&Listă",                  FCIDM_SHVIEW_LISTVIEW
            MENUITEM "&Detalii",                FCIDM_SHVIEW_REPORTVIEW
          END
          MENUITEM SEPARATOR
          POPUP "Aranjează &pictogramele"
          BEGIN
            MENUITEM "După &nume",      0x30  /* column 0 */
            MENUITEM "După &tip",       0x32  /* column 2 */
            MENUITEM "După &mărime",    0x31  /* ... */
            MENUITEM "După &dată",      0x33
            MENUITEM SEPARATOR
            MENUITEM "&Aranjează automat",      FCIDM_SHVIEW_AUTOARRANGE
          END
          MENUITEM "Aliniază pictogramele",     FCIDM_SHVIEW_SNAPTOGRID
          MENUITEM SEPARATOR
          MENUITEM "Actualizează",              FCIDM_SHVIEW_REFRESH
          MENUITEM SEPARATOR
          MENUITEM "Inserează",                 FCIDM_SHVIEW_INSERT
          MENUITEM "Inserează ca link",         FCIDM_SHVIEW_INSERTLINK
          MENUITEM SEPARATOR
          POPUP "Nou"
          BEGIN
            MENUITEM "&Dosar nou",              FCIDM_SHVIEW_NEWFOLDER
            MENUITEM "&Link nou",               FCIDM_SHVIEW_NEWLINK
            MENUITEM SEPARATOR
          END
          MENUITEM SEPARATOR
          MENUITEM "Proprietăți",               FCIDM_SHVIEW_PROPERTIES
        END
END

/*
 shellview item menu
*/
MENU_SHV_FILE MENU DISCARDABLE
BEGIN
        POPUP ""
        BEGIN
          MENUITEM "&Selecție"          FCIDM_SHVIEW_OPEN
          MENUITEM "E&xploreză",        FCIDM_SHVIEW_EXPLORE
          MENUITEM "&Deschide",         FCIDM_SHVIEW_OPEN
          MENUITEM SEPARATOR
          MENUITEM "Dec&upează",        FCIDM_SHVIEW_CUT
          MENUITEM "&Copiază",          FCIDM_SHVIEW_COPY
          MENUITEM SEPARATOR
          MENUITEM "Crează &link",      FCIDM_SHVIEW_CREATELINK
          MENUITEM "&Șterge",           FCIDM_SHVIEW_DELETE
          MENUITEM "&Redenumește",      FCIDM_SHVIEW_RENAME
          MENUITEM SEPARATOR
          MENUITEM "&Proprietăți",      FCIDM_SHVIEW_PROPERTIES
        END
END

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

    POPUP "&View"
    BEGIN
        MENUITEM "Pictograme &mari",    FCIDM_SHVIEW_BIGICON
        MENUITEM "Pictograme m&ici",    FCIDM_SHVIEW_SMALLICON
        MENUITEM "&Listă",              FCIDM_SHVIEW_LISTVIEW
        MENUITEM "&Detalii",            FCIDM_SHVIEW_REPORTVIEW
    END

    POPUP "&Help"
    BEGIN
        MENUITEM "&About Control Panel...", IDM_CPANEL_ABOUT
    END
END

SHBRSFORFOLDER_MSGBOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 15, 40, 188, 192
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Selectare dosar"
FONT 8, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", 1, 80, 176, 50, 12, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Renunță", 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 LOADONCALL MOVEABLE DISCARDABLE 15, 40, 218, 196
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | WS_SIZEBOX | DS_MODALFRAME | DS_SETFONT | DS_3DLOOK
CAPTION "Selectare dosar"
FONT 8, "MS Shell Dlg"
{
 LTEXT "", IDD_TITLE, 10, 8, 198, 24
 LTEXT "", IDD_STATUS, 10, 25, 198, 12
 LTEXT "Dosar:", 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 "&Creează un dosar nou", IDD_MAKENEWFOLDER, 12, 174, 80, 14, WS_GROUP | WS_TABSTOP
 DEFPUSHBUTTON "OK", IDOK, 102, 174, 50, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP
 PUSHBUTTON "Renunță", 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 "Mesaj"
FONT 8, "MS Shell Dlg"
{
    DEFPUSHBUTTON "&Da", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "Da la &toate", IDD_YESTOALL, 92, 69, 65, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Nu", IDNO, 162, 69, 53, 14, WS_GROUP | WS_TABSTOP
    PUSHBUTTON "&Renunță", 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 LOADONCALL MOVEABLE DISCARDABLE 15, 40, 220, 152
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Despre %s"
FONT 10, "MS Shell Dlg"
{
 DEFPUSHBUTTON "OK", IDOK, 153, 133, 60, 12, WS_TABSTOP
 PUSHBUTTON "&Licența Wine...", 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 "Rulând pe %s", IDC_ABOUT_STATIC_TEXT3, 42, 34, 170, 10
 LTEXT "Wine a fost vinificat de:", IDC_ABOUT_WINE_TEXT, 8, 54, 204, 10
}

SHELL_RUN_DLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 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 "Introduceți numele unui program, dosar, document sau resursă internet și Wine îl va deschide.", 12289, 36, 11, 182, 18
 LTEXT "&Deschide:", 12305, 7, 39, 29, 10
 CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 39, 37, 183, 100
 DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "Renunță", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP
 PUSHBUTTON "&Navighează...", 12288, 170, 63, 50, 14, WS_TABSTOP
}

STRINGTABLE
{
        /* columns in the shellview */
        IDS_SHV_COLUMN1         "Fișier"
        IDS_SHV_COLUMN2         "Mărime"
        IDS_SHV_COLUMN3         "Tip"
        IDS_SHV_COLUMN4         "Modificat"
        IDS_SHV_COLUMN5         "Atribute"
        IDS_SHV_COLUMN6         "Mărime"
        IDS_SHV_COLUMN7         "Spațiu disponibil"
        IDS_SHV_COLUMN8         "Nume"
        IDS_SHV_COLUMN9         "Comentarii"
        IDS_SHV_COLUMN10        "Proprietar"
        IDS_SHV_COLUMN11        "Grup"
        IDS_SHV_COLUMN_DELFROM  "Locația originală"
        IDS_SHV_COLUMN_DELDATE  "Data ștergerii"

        /* special folders */
        IDS_DESKTOP             "Birou"
        IDS_MYCOMPUTER          "Computerul meu"
        IDS_RECYCLEBIN_FOLDER_NAME      "Gunoi"
	IDS_CONTROLPANEL	"Panoul de control"

        /* context menus */
        IDS_VIEW_LARGE          "Pictograme &mari"
        IDS_VIEW_SMALL          "Pictograme m&ici"
        IDS_VIEW_LIST           "&Listă"
        IDS_VIEW_DETAILS        "&Detalii"
        IDS_SELECT              "Selectează"
        IDS_OPEN                "Deschide"

	IDS_CREATEFOLDER_DENIED "Nu se poate crea un nou dosar: Permisiune refuzată."
	IDS_CREATEFOLDER_CAPTION "Eroare la crearea unui nou dosar"
	IDS_DELETEITEM_CAPTION "Confirmați ștergerea fișierului"
	IDS_DELETEFOLDER_CAPTION "Confirmați ștergerea dosarului"
	IDS_DELETEITEM_TEXT "Sunteți sigur că vreți să ștergeți '%1'?"
	IDS_DELETEMULTIPLE_TEXT "Sunteți sigur că vreți să ștergeți acest %1 elemente?"
	IDS_DELETESELECTED_TEXT "Sunteți sigur că vreți să ștergeți elementele selectate?"
	IDS_TRASHITEM_TEXT "Sunteți sigur că vreți să trimiteți '%1' la gunoi?"
	IDS_TRASHFOLDER_TEXT "Sunteți sigur că vreți să trimiteți '%1' și tot conținutul lui la gunoi?"
	IDS_TRASHMULTIPLE_TEXT "Sunteți sigur că vreți să trimiteți aceste %1 elemente la gunoi?"
	IDS_CANTTRASH_TEXT "Elementul '%1' nu poate fi trimis la gunoi. Vreți să îl ștergeți?"
	IDS_OVERWRITEFILE_TEXT "Acest dosar conține deja un fișier numit '%1'.\n\nVreți să îl înlocuiți?"
	IDS_OVERWRITEFILE_CAPTION "Confirmați suprascrierea fișierului"
	IDS_OVERWRITEFOLDER_TEXT "Acest dosar conține deja un dosar numit '%1'.\n\n"\
	    "Dacă fișierele din dosarul destinație au același nume cu fișierele din dosarul\n"\
	    "selectat vor fi înlocuite. Mai vreți să mutați sau să copiați dosarul?"

        /* message box strings */
        IDS_RESTART_TITLE       "Repornire"
        IDS_RESTART_PROMPT      "Vreți să simulați o repornire de Windows?"
        IDS_SHUTDOWN_TITLE      "Oprire"
        IDS_SHUTDOWN_PROMPT     "Vreți să opriți sesiunea de Wine?"

        /* Run File dialog */
        IDS_RUNDLG_ERROR           "Nu se poate afișa caseta de rulare fișier (eroare internă)"
        IDS_RUNDLG_BROWSE_ERROR    "Nu se poate afișa caseta de navigare (eroare internă)"
        IDS_RUNDLG_BROWSE_CAPTION  "Navighează"
        IDS_RUNDLG_BROWSE_FILTER   "Fișiere executabile\0*.exe\0Toate fișierele\0*.*\0\0"

        /* shell folder path default values */
	IDS_PROGRAMS                "Meniu Start\\Programe"
	IDS_PERSONAL                "Documentele mele"
	IDS_FAVORITES               "Favorite"
	IDS_STARTUP                 "Meniu Start\\Programe\\AutoStart"
	IDS_RECENT                  "Recente"
	IDS_SENDTO                  "SendTo"
	IDS_STARTMENU               "Meniu Start"
	IDS_MYMUSIC                 "Muzica mea"
	IDS_MYVIDEO                 "Filmele mele"
	IDS_DESKTOPDIRECTORY        "Desktop"
	IDS_NETHOOD                 "NetHood"
	IDS_TEMPLATES               "Templates"
	IDS_APPDATA                 "Application Data"
	IDS_PRINTHOOD               "PrintHood"
	IDS_LOCAL_APPDATA           "Local Settings\\Application Data"
	IDS_INTERNET_CACHE          "Local Settings\\Temporary Internet Files"
	IDS_COOKIES                 "Cookies"
	IDS_HISTORY                 "Local Settings\\History"
	IDS_PROGRAM_FILES           "Program Files"
	IDS_MYPICTURES              "My Pictures"
	IDS_PROGRAM_FILES_COMMON    "Program Files\\Common Files"
	IDS_COMMON_DOCUMENTS        "Documente"
	IDS_ADMINTOOLS              "Meniu Start\\Programe\\Scule administrative"
	IDS_COMMON_MUSIC            "Documente\\Muzica mea"
	IDS_COMMON_PICTURES         "Documente\\Pozele mele"
	IDS_COMMON_VIDEO            "Documente\\Filmele mele"
	IDS_CDBURN_AREA             "Local Settings\\Application Data\\Microsoft\\CD Burning"

	IDS_NEWFOLDER		"Dosar nou"

	IDS_CPANEL_TITLE        "Panoul de control al Wine"
	IDS_CPANEL_NAME         "Nume"
	IDS_CPANEL_DESCRIPTION  "Descriere"

	IDS_SHLEXEC_NOASSOC     "Nici un program Windows nu este configurat să deschidă fișiere de acest tip."
}

STRINGTABLE
{
IDS_LICENSE_CAPTION,            "Licența Wine"
IDS_LICENSE,
"Wine 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.\n\n\
Wine 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.\n\n\
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."
}

#pragma code_page(default)
