/*
 * 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
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
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
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 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 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 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 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"
        IDS_SHV_COL_DOCS        "Documente"
        IDS_SHV_COL_STATUS      "Stare"
        IDS_SHV_COL_LOCATION    "Locație"
        IDS_SHV_COL_MODEL       "Model"

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