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