/*
 * WineFile
 *
 * Copyright 2000 Martin Fuchs
 * Copyright 2002 Steven Edwards
 * Copyright 2002 Alexandre Julliard
 * Copyright 2010 Claudia Cotună
 *                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 "resource.h"

LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL

#pragma code_page(65001)

/* Menu */

IDM_WINEFILE MENU
{
    POPUP "&Fișier"  {
        MENUITEM "Desc&hide\tEnter",                    ID_ACTIVATE
        MENUITEM "&Mutare...\tF7",                      ID_FILE_MOVE
        MENUITEM "&Copiere...\tF8",                     ID_FILE_COPY
        MENUITEM "În cl&ipboard...\tF9",                118
        MENUITEM "Șter&ge\tDel",                        ID_FILE_DELETE
        MENUITEM "Rede&numire...",                      109
        MENUITEM "Proprietăț&i...\tAlt+Enter",          ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "C&omprimare...",                      119
        MENUITEM "Dec&omprimare...",                    120
        MENUITEM SEPARATOR
        MENUITEM "E&xecutare...",                       ID_RUN
        MENUITEM "Im&primare...",                       102
        MENUITEM "Asociere...",                         103
        MENUITEM SEPARATOR
        MENUITEM "Cr&eare director...",                 111
        MENUITEM "Că&utare...",                         104
        MENUITEM "&Selectare fișiere...",               116
        MENUITEM SEPARATOR
#ifndef _NO_EXTENSIONS
        MENUITEM "Înc&hide\Alt+X",                      ID_FILE_EXIT
#else
        MENUITEM "Înc&hide",                            ID_FILE_EXIT
#endif
    }

    POPUP "&Disc"  {
        MENUITEM "&Copiere disc...",                    201
        MENUITEM "E&tichetare disc...",                 202
        MENUITEM SEPARATOR
        MENUITEM "&Formatare disc...",                  ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "Creare disc siste&m...",              -1 /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "Co&nectează unitatea de rețea",       ID_CONNECT_NETWORK_DRIVE
        MENUITEM "&Deconectează unitatea de rețea",     ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "Partajare ca...",                     254
        MENUITEM "Elimina&re partajare...",             255
        MENUITEM SEPARATOR
        MENUITEM "&Selectare unitate...",               251
    }

    POPUP "Di&rectoare"  {
        MENUITEM "&Nivelul următor\t+",                 301
        MENUITEM "Extinde ar&borele\t*",                302
        MENUITEM "Extinde t&ot\tStrg+*",                303
        MENUITEM "Restrân&ge arborele\t-",              304
        MENUITEM SEPARATOR
        MENUITEM "&Marchează copiii",                   505
    }

    POPUP "&Vizualizare"  {
        MENUITEM "Arbo&re și director",                 413
        MENUITEM "Numai arbor&ele",                     411
        MENUITEM "Numai direct&orul",                   412
        MENUITEM SEPARATOR
        MENUITEM "Sep&ară",                             ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Nume",                               ID_VIEW_NAME
        MENUITEM "To&ate detaliile ",                   ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "Detalii &parțiale...",                ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "&Sortează după nume",                 ID_VIEW_SORT_NAME
        MENUITEM "Sortează după &tip",                  ID_VIEW_SORT_TYPE
        MENUITEM "Sortează după &mărime",               ID_VIEW_SORT_SIZE
        MENUITEM "Sortează după &dată",                 ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Filtrare după &...",                  ID_VIEW_FILTER
    }

    POPUP "&Opțiuni"  {
        MENUITEM "&Confirmare...",                      501
        MENUITEM "&Font...",                            ID_SELECT_FONT
        MENUITEM "Personalizare &bară de unelte...",    512
        MENUITEM SEPARATOR
        MENUITEM "Bara de unel&te",                     ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "Bara &de unitate",                    ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "Bara de &stare",                      ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "Pe tot ecran&ul\tCtrl+Shift+S",       ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Minimizează la execuție",            504
        MENUITEM "&Salvează configurația la închidere", ID_VIEW_SAVESETTINGS
    }

    POPUP "&Securitate"  {
        MENUITEM "&Acces...",                           605
        MENUITEM "Înre&gistrare...",                    606
        MENUITEM "Pr&oprietar...",                      607
    }

    POPUP "&Fereastră"  {
        MENUITEM "&Fereastră nouă",                     ID_WINDOW_NEW
        MENUITEM "Cascadă\tCtrl+F5",                    ID_WINDOW_CASCADE
        MENUITEM "Mozaic &orizontal",                   ID_WINDOW_TILE_HORZ
        MENUITEM "Mozaic &vertical\tCtrl+F4",           ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Aranjează automat",                   ID_WINDOW_AUTOSORT
#endif
        MENUITEM "Aranjează &simbolurile",              ID_WINDOW_ARRANGE
        MENUITEM "Actualiza&re\tF5",                    ID_REFRESH
    }

    POPUP "A&jutor"  {
        MENUITEM "&Subiecte în ajutor...\tF1",          ID_HELP
        MENUITEM "&Căutare în ajutor...\tF1",           ID_HELP
        MENUITEM "&Utilizare ajutor\tF1",               ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "Des&pre Winefile...",                 ID_ABOUT
    }
}

IDD_SELECT_DESTINATION DIALOG 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Selectare destinație"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "Ca&le:", -1, "Static", SS_LEFTNOWORDWRAP|WS_GROUP, 3, 18, 60, 10
    EDITTEXT        201, 3, 29, 134, 12, ES_AUTOHSCROLL
    DEFPUSHBUTTON   "OK", 1, 158, 6, 47, 14
    PUSHBUTTON      "Anulează", 2, 158, 23, 47, 14
    PUSHBUTTON      "Navi&gare", 254, 158, 43, 47, 14
}

IDD_DIALOG_VIEW_TYPE DIALOG 15, 13, 161, 97
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "După tipul de fișier"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "&Nume:",-1,7,8,22,10
    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
    GROUPBOX        "Tip fișier",-1,7,23,87,56
    CONTROL         "&Directoare",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
    CONTROL         "&Programe",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
    CONTROL         "Docu&mente",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
    CONTROL         "&Alte fișiere",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "Arată fișierele ascunse/de &sistem",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,126,9
    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
    PUSHBUTTON      "Anulează",IDCANCEL,104,24,50,14
END

IDD_DIALOG_PROPERTIES DIALOG  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Proprietăți pentru %s"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,191,7,50,14
    PUSHBUTTON      "Anulează",IDCANCEL,191,29,50,14
    LTEXT           "Nume &fișier:",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Calea com&pletă:",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Ultima modificare:",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Versiune:",-1,7,40,59,9
    EDITTEXT        IDC_STATIC_PROP_VERSION,71,40,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Drep&t de autor:",-1,7,51,59,9
    EDITTEXT        IDC_STATIC_PROP_COPYRIGHT,71,51,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Dimensiune:",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Atribute",-1,7,79,158,46
    CONTROL         "Doar citi&re",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "Ascu&ns",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "&Arhivă",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "&Sistem",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "&Comprimat",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,17,111,68,9
    GROUPBOX        "Informații despre &versiune",-1,7,129,234,79
    LISTBOX         IDC_LIST_PROP_VERSION_TYPES,13,139,107,63,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
    EDITTEXT        IDC_LIST_PROP_VERSION_VALUES,123,139,111,63,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END


STRINGTABLE
{
    IDS_FONT_SEL_DLG_NAME   "Se aplică opțiunile de font"
    IDS_FONT_SEL_ERROR      "Eroare la selectarea unui nou font."
}

STRINGTABLE
{
    IDS_WINEFILE            "Administrator Wine File"
    IDS_ERROR               "Eroare"
    IDS_ROOT_FS             "director rădăcină"
    IDS_UNIXFS              "director unix"
    IDS_DESKTOP             "Desktop"
    IDS_SHELL               "Shell"
    IDS_TITLEFMT            "%s - %s"
    IDS_NO_IMPL             "Neimplementat încă"
    IDS_WINE_FILE           "Wine File"
}

STRINGTABLE
{
    IDS_COL_NAME            "Nume"
    IDS_COL_SIZE            "Dimensiune"
    IDS_COL_CDATE           "Ultima schimbare de stare (ctime)"
    IDS_COL_ADATE           "Ultima accesare"
    IDS_COL_MDATE           "Ultima modificare"
    IDS_COL_IDX             "Index/Inode"
    IDS_COL_LINKS           "Legături"
    IDS_COL_ATTR            "Atribute"
    IDS_COL_SEC             "Securitate"

    IDS_FREE_SPACE_FMT      "%s din %s liber"
}
