/*
 * 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
 */

#include "shresdef.h"

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."
}
