/*
 * WineFile
 * Italian Language Support
 *
 * Copyright 2000 Martin Fuchs
 * Copyright 2002 Steven Edwards
 * Copyright 2002 Alexandre Julliard
 * Copyright 2004 Ivan Leo Puoti
 * Copyright 2010 Luca Bennati
 *
 * 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"

/*UTF-8*/
#pragma code_page(65001)

LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL

/* Menu */

IDM_WINEFILE MENU
{
    POPUP "&File"  {
        MENUITEM "&Apri\tInvio",                ID_ACTIVATE
        MENUITEM "&Sposta...\tF7",              ID_FILE_MOVE
        MENUITEM "&Copia...\tF8",               ID_FILE_COPY
        MENUITEM "&Negli Appunti...\tF9",       118
        MENUITEM "&Cancella\tDel",              ID_FILE_DELETE
        MENUITEM "Ri&nomina...",                109
        MENUITEM "Propri&età...\tAlt+Invio",    ID_EDIT_PROPERTIES
        MENUITEM SEPARATOR
        MENUITEM "C&omprimi...",                119
        MENUITEM "Dec&omprimi...",              120
        MENUITEM SEPARATOR
        MENUITEM "&Esegui...",                  ID_RUN
        MENUITEM "&Stampa...",                  102
        MENUITEM "Associa...",                  103
        MENUITEM SEPARATOR
        MENUITEM "Cr&ea Directory...",          111
        MENUITEM "Cerc&a...",                   104
        MENUITEM "&Seleziona i file...",        116
        MENUITEM SEPARATOR
#ifndef _NO_EXTENSIONS
        MENUITEM "E&sci\tAlt+X",                ID_FILE_EXIT
#else
        MENUITEM "E&sci",                       ID_FILE_EXIT
#endif
    }

    POPUP "&Disco"  {
        MENUITEM "&Copia Disco...",             201
        MENUITEM "&Etichetta Disco...",         202
        MENUITEM SEPARATOR
        MENUITEM "&Formatta Disco...",          ID_FORMAT_DISK
#ifdef _WIN95
        MENUITEM "&Crea Disco di Sistema...", -1    /*TODO*/
#endif
        MENUITEM SEPARATOR
        MENUITEM "Connetti & Drive di Rete",    ID_CONNECT_NETWORK_DRIVE
        MENUITEM "&Disconnetti Drive di Rete",  ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "Condividi come...",           254
        MENUITEM "&Rimuovi condivisione...",    255
        MENUITEM SEPARATOR
        MENUITEM "&Seleziona Drive...",         251
    }

    POPUP "&Directory"  {
        MENUITEM "&Livello Sucessivo\t+",       301
        MENUITEM "Espandi &Albero\t*",          302
        MENUITEM "Espandi &tutto\tStrg+*",      303
        MENUITEM "Riduci &Albero\t-",           304
        MENUITEM SEPARATOR
        MENUITEM "&Seleziona unità",            505
    }

    POPUP "&Visualizza"  {
        MENUITEM "A&lbero e Directory",         413
        MENUITEM "So&lo Albero",                411
        MENUITEM "&Solo Directory",             412
        MENUITEM SEPARATOR
        MENUITEM "Di&vidi",                     ID_VIEW_SPLIT
        MENUITEM SEPARATOR
        MENUITEM "&Nome",                       ID_VIEW_NAME
        MENUITEM "&Mostra tutti i dettagli sui file",ID_VIEW_ALL_ATTRIBUTES, CHECKED
        MENUITEM "&Mostra dettagli parziali...",ID_VIEW_SELECTED_ATTRIBUTES
        MENUITEM SEPARATOR
        MENUITEM "&Ordina per Nome",            ID_VIEW_SORT_NAME
        MENUITEM "&Ordina per Tipo",            ID_VIEW_SORT_TYPE
        MENUITEM "&Ordina per Dimensione",      ID_VIEW_SORT_SIZE
        MENUITEM "&Ordina per Data",            ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Ordina per &...",             ID_VIEW_FILTER
    }

    POPUP "&Opzioni"  {
        MENUITEM "&Confermazione...",           501
        MENUITEM "&Font...",                    ID_SELECT_FONT
        MENUITEM "&Personalizza barra degli strumenti...", 512
        MENUITEM SEPARATOR
        MENUITEM "&Barra degli strumenti",      ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "&Barra dei Drive",            ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "&Barra di stato",             ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "A& tutto schermo\tCtrl+Shift+S",ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Esegui minimizzato",         504
        MENUITEM "&Salva impostazioni all'uscita",511
    }


    POPUP "&Sicurezza"  {
        MENUITEM "&Accessi...",                 605
        MENUITEM "&Logging...",                 606
        MENUITEM "&Proprietario...",            607
    }

    POPUP "&Finestra"  {
        MENUITEM "Nuova &Finestra",             ID_WINDOW_NEW
        MENUITEM "Finestre a cascata\tCtrl+F5", ID_WINDOW_CASCADE
        MENUITEM "Ordina &Orizontalmente",      ID_WINDOW_TILE_HORZ
        MENUITEM "Ordina &Verticlmente\tCtrl+F4",ID_WINDOW_TILE_VERT
#ifndef _NO_EXTENSIONS
        MENUITEM "Disponi automaticamente",     ID_WINDOW_AUTOSORT
#endif
        MENUITEM "Disponi &Simboli",            ID_WINDOW_ARRANGE
        MENUITEM "&Aggiorna\tF5",               ID_REFRESH
    }

    POPUP "&Guida"  {
        MENUITEM "&Sommario della Guida\tF1",   ID_HELP
        MENUITEM "&Cerca nella Guida...\tF1",   ID_HELP
        MENUITEM "&Uso della Guida\tF1",         ID_HELP_USING
        MENUITEM SEPARATOR
        MENUITEM "&Informazioni su Winefile...",ID_ABOUT
    }
}

IDD_SELECT_DESTINATION DIALOG 15, 13, 210, 63
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Seleziona destinazione"
FONT 8, "MS Shell Dlg"
{
    CONTROL         "", 101, "Static", SS_SIMPLE|SS_NOPREFIX, 3, 6, 162, 10
    CONTROL         "&Percorso:", -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      "Annulla", 2, 158, 23, 47, 14
    PUSHBUTTON      "&Naviga", 254, 158, 43, 47, 14
}

IDD_DIALOG_VIEW_TYPE DIALOG 15, 13, 161, 97
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Per tipo di file"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "&Nome:",-1,7,8,22,10
    EDITTEXT        IDC_VIEW_PATTERN,31,7,63,12,ES_AUTOHSCROLL
    GROUPBOX        "Tipo di file",-1,7,23,87,56
    CONTROL         "&Cartelle",IDC_VIEW_TYPE_DIRECTORIES,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,32,70,10
    CONTROL         "&Programmi",IDC_VIEW_TYPE_PROGRAMS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,43,70,10
    CONTROL         "Docu&menti",IDC_VIEW_TYPE_DOCUMENTS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,54,70,10
    CONTROL         "&Altri files",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "&Mostra files nascosti/di sistema",IDC_VIEW_TYPE_HIDDEN,
                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,81,106,9
    DEFPUSHBUTTON   "OK",IDOK,104,7,50,14
    PUSHBUTTON      "Annulla",IDCANCEL,104,24,50,14
END

IDD_DIALOG_PROPERTIES DIALOG  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Propprietà di %s"
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,191,7,50,14
    PUSHBUTTON      "Annulla",IDCANCEL,191,29,50,14
    LTEXT           "Nome del &file:",-1,7,7,59,9
    EDITTEXT        IDC_STATIC_PROP_FILENAME,71,7,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "&Indirizzo completo:",-1,7,18,59,9
    EDITTEXT        IDC_STATIC_PROP_PATH,71,18,120,9, ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Ultima modifica:",-1,7,29,59,9
    EDITTEXT        IDC_STATIC_PROP_LASTCHANGE,71,29,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Versione:",-1,7,40,59,9
    EDITTEXT        IDC_STATIC_PROP_VERSION,71,40,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Cop&yright:",-1,7,51,59,9
    EDITTEXT        IDC_STATIC_PROP_COPYRIGHT,71,51,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    LTEXT           "Dimensione:",-1,7,62,59,9
    EDITTEXT        IDC_STATIC_PROP_SIZE,71,62,120,9,ES_READONLY | NOT WS_BORDER | WS_TABSTOP
    GROUPBOX        "Attributi",-1,7,79,158,46
    CONTROL         "&Sola lettura",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,91,68,9
    CONTROL         "&Nascosto",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,91,68,9
    CONTROL         "&Archivio",IDC_CHECK_ARCHIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,101,68,9
    CONTROL         "&Di sistema",IDC_CHECK_SYSTEM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,101,68,9
    CONTROL         "&Compresso",IDC_CHECK_COMPRESSED,"Button", BS_AUTOCHECKBOX |  WS_TABSTOP,17,111,68,9
    GROUPBOX        "&Informazioni sulla versione",-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   "Applica le impostazioni dei caratteri"
    IDS_FONT_SEL_ERROR      "Si è verificato un errore durante la selezione del nuovo carattere."
}

STRINGTABLE
{
    IDS_WINEFILE            "Wine File Manager"
    IDS_ERROR               "Errore"
    IDS_ROOT_FS             "root fs"
    IDS_UNIXFS              "unixfs"
    IDS_DESKTOP             "Scrivania"
    IDS_SHELL               "Shell"
    IDS_TITLEFMT            "%s - %s"
    IDS_NO_IMPL             "Non ancora implementato"
    IDS_WINE_FILE           "Wine File"
}

STRINGTABLE
{
    IDS_COL_NAME            "Nome"
    IDS_COL_SIZE            "Dimensione"
    IDS_COL_CDATE           "CDate"
    IDS_COL_ADATE           "ADate"
    IDS_COL_MDATE           "MDate"
    IDS_COL_IDX             "Index/Inode"
    IDS_COL_LINKS           "Collegamenti"
    IDS_COL_ATTR            "Attributi"
    IDS_COL_SEC             "Sicurezza"

    IDS_FREE_SPACE_FMT      "liberi %s di %s"
}
