/*
 * 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 FIXED IMPURE
{
    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 cartella...",          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 unità di rete",    ID_CONNECT_NETWORK_DRIVE
        MENUITEM "&Disconnetti unità di rete",  ID_DISCONNECT_NETWORK_DRIVE
        MENUITEM SEPARATOR
        MENUITEM "Condividi come...",           254
        MENUITEM "&Rimuovi condivisione...",    255
        MENUITEM SEPARATOR
        MENUITEM "&Seleziona unità...",         251
    }

    POPUP "&Directory"  {
        MENUITEM "&Livello successivo\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 "&Albero e cartella",         413
        MENUITEM "Solo &albero",                411
        MENUITEM "Solo &cartella",             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 n&ome",            ID_VIEW_SORT_NAME
        MENUITEM "Ordina per &tipo",            ID_VIEW_SORT_TYPE
        MENUITEM "Ordina per &dimensione",      ID_VIEW_SORT_SIZE
        MENUITEM "Ordina per d&ata",            ID_VIEW_SORT_DATE
        MENUITEM SEPARATOR
        MENUITEM "Ordina per &...",             ID_VIEW_FILTER
    }

    POPUP "&Opzioni"  {
        MENUITEM "&Conferma...",           501
        MENUITEM "C&arattere...",                    ID_SELECT_FONT
        MENUITEM "&Personalizza barra degli strumenti...", 512
        MENUITEM SEPARATOR
        MENUITEM "Barra degli &strumenti",      ID_VIEW_TOOL_BAR, CHECKED
        MENUITEM "Barra delle &unità",            ID_VIEW_DRIVE_BAR, CHECKED
        MENUITEM "Barra di s&tato",             ID_VIEW_STATUSBAR, CHECKED
#ifndef _NO_EXTENSIONS
        MENUITEM "A tutto scher&mo\tCtrl+Shift+S",ID_VIEW_FULLSCREEN
#endif
        MENUITEM SEPARATOR
        MENUITEM "&Esegui minimizzato",         504
        MENUITEM "Sa&lva 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 &orizzontalmente",      ID_WINDOW_TILE_HORZ
        MENUITEM "Ordina &verticalmente\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 FIXED IMPURE 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 DISCARDABLE 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 file",IDC_VIEW_TYPE_OTHERS,"Button",
                    BS_AUTOCHECKBOX | WS_TABSTOP,13,65,70,10
    CONTROL         "&Mostra file 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 DISCARDABLE  0, 0, 248, 215
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Proprietà 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           "&Copyright:",-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         "Co&mpresso",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            "Gestore di file di Wine"
    IDS_ERROR               "Errore"
    IDS_ROOT_FS             "radice fs"
    IDS_UNIXFS              "unix fs"
    IDS_DESKTOP             "Scrivania"
    IDS_SHELL               "Terminale"
    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           "Data di creazione"
    IDS_COL_ADATE           "Data di ultimo accesso"
    IDS_COL_MDATE           "Data di ultima modifica"
    IDS_COL_IDX             "Indice/Inode"
    IDS_COL_LINKS           "Collegamenti"
    IDS_COL_ATTR            "Attributi"
    IDS_COL_SEC             "Sicurezza"

    IDS_FREE_SPACE_FMT      "liberi %s di %s"
}
