/*
 * WineCfg resources
 * Italian Language Support
 *
 * Copyright 2004 Ivan Leo Pioti
 * Copyright 2009,2011 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 "config.h"   /* Needed for the PACKAGE_STRING definition */
#include "resource.h"

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

LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL

IDD_ABOUTCFG DIALOGEX 0, 0, 260, 220
STYLE WS_CHILD
FONT 8, "MS Shell Dlg"
BEGIN
    CONTROL         "", IDC_ABT_PANEL, "STATIC", SS_OWNERDRAW, 0, 0, 260, 140
    LTEXT           PACKAGE_NAME,IDC_ABT_TITLE_TEXT,105,30,55,30
    LTEXT           PACKAGE_VERSION,IDC_ABT_PANEL_TEXT,160,43,140,8
    CONTROL         "",IDC_ABT_WEB_LINK,"SysLink", LWS_TRANSPARENT, 105,53,106,8
    LTEXT           "Questo programma è software libero; puoi redistribuirlo e/o modificarlo sotto i termini della GNU Lesser General Public License come pubblicata dalla Free Software Foundation; sia la versione 2.1 della licenza, o (a tua scelta) qualunque altra versione più recente.",
                    IDC_ABT_LICENSE_TEXT,105,64,145,60
    GROUPBOX        " Informazioni di registrazione di Windows ", IDC_STATIC, 15, 155, 230, 55
    LTEXT           "&Proprietario:", IDC_STATIC, 22, 171, 40, 20
    EDITTEXT        IDC_ABT_OWNER, 75, 171, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "&Organizzazione:", IDC_STATIC, 22, 185, 50, 20
    EDITTEXT        IDC_ABT_ORG, 75, 185, 160, 13, ES_AUTOHSCROLL | WS_TABSTOP
END

IDD_APPCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        "Impostazioni delle applicazioni",IDC_STATIC, 8,4,244,210
    LTEXT           "Wine può simulare diverse versioni e stili di Windows per ogni applicazione. Questa scheda è collegato a quelle Librerie e Grafica per permetterti di cambiare le impostazioni a livello di sistema o per applicazione pure in quelle schede.",
                    IDC_STATIC,15,15,235,33
    CONTROL         "Applicazioni",IDC_APP_LISTVIEW,"SysListView32",WS_BORDER | WS_TABSTOP | LVS_LIST | LVS_SINGLESEL | LVS_SHOWSELALWAYS,
                    15,50,230,120
    PUSHBUTTON      "&Aggiungi applicazione...",IDC_APP_ADDAPP, 80,174,85,14
    PUSHBUTTON      "&Rimuovi applicazione",IDC_APP_REMOVEAPP, 170,174,75,14
    LTEXT           "Versione di Windows:",IDC_STATIC,15,196,68,8
    COMBOBOX        IDC_WINVER,100,194,146,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END

IDD_GRAPHCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX    " Impostazioni delle finestre ",IDC_STATIC,8,4,244,84
    CONTROL     "Cattura automaticamente il &mouse nelle finestre a schermo pieno",IDC_FULLSCREEN_GRAB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,20,230,8
    CONTROL     "Permetti al gestore delle finestre di &decorare le finestre",IDC_ENABLE_DECORATED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,32,230,8
    CONTROL     "Permetti al &gestore delle finestre di controllare le finestre",IDC_ENABLE_MANAGED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,230,8
    CONTROL     "&Emula un desktop virtuale",IDC_ENABLE_DESKTOP,"Button",
                BS_AUTOCHECKBOX | WS_TABSTOP,15,56,230,8
    LTEXT       "Dimensione del desktop:",IDC_DESKTOP_SIZE,15,70,44,8,WS_DISABLED
    LTEXT       "X",IDC_DESKTOP_BY,109,70,8,8,WS_DISABLED
    EDITTEXT    IDC_DESKTOP_WIDTH,64,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED
    EDITTEXT    IDC_DESKTOP_HEIGHT,117,68,40,12,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED

    GROUPBOX    " Direct3D ",IDC_STATIC,8,95,244,49
    LTEXT       "Supporto al &Vertex Shader: ",IDC_STATIC,15,110,100,32
    COMBOBOX    IDC_D3D_VSHADER_MODE,120,108,125,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    CONTROL     "Permetti &Pixel Shader (se supportato dall'hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,10

    GROUPBOX    " &Risoluzione dello schermo ",IDC_STATIC,8,151,244,63
    CONTROL     "", IDC_RES_TRACKBAR, "msctls_trackbar32",WS_TABSTOP,12,161,187,15
    EDITTEXT    IDC_RES_DPIEDIT,204,161,23,13,ES_NUMBER|WS_TABSTOP
    LTEXT       "dpi",IDC_STATIC,235,163,10,8
    LTEXT       "Questo è un testo di esempio che usa il carattere Tahoma a 10 punti",IDC_RES_FONT_PREVIEW,15,181,230,28
END

IDD_DLLCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Sostituzioni di DLL ",IDC_STATIC,8,4,244,210
    LTEXT           "Le Dynamic Link Libraries possono essere specificate individualmente per essere integrate (fornite da Wine) o native (prese da Windows o fornite dall'applicazione)."
                    ,IDC_STATIC,16,16,220,32
    LTEXT           "&Nuova sostituzione per la libreria:",IDC_STATIC,16,48,100,8
    COMBOBOX        IDC_DLLCOMBO,16,58,140,14,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | CBS_SORT | CBS_LOWERCASE
    PUSHBUTTON      "&Aggiungi",IDC_DLLS_ADDDLL, 164,58,82,13
    LTEXT           "&Sostituzioni esistenti:",IDC_STATIC,16,76,100,8
    LISTBOX         IDC_DLLS_LIST,16,86,140,122,WS_BORDER | WS_TABSTOP | WS_VSCROLL
    PUSHBUTTON      "&Modifica...",IDC_DLLS_EDITDLL,164,86,82,14
    PUSHBUTTON      "&Rimuovi",IDC_DLLS_REMOVEDLL,164,104,82,14
END

IDD_LOADORDER DIALOG 80, 90, 110, 92
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Modifica sostituzione"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Carica l'ordine ",IDC_STATIC,8,4,94,66
    CONTROL         "&Integrata (Wine)",IDC_RAD_BUILTIN,"Button", BS_AUTORADIOBUTTON | WS_GROUP,16,14,75,10
    CONTROL         "&Nativa (Windows)",IDC_RAD_NATIVE,"Button", BS_AUTORADIOBUTTON,16,24,75,10
    CONTROL         "In&tegrata poi nativa",IDC_RAD_BUILTIN_NATIVE,"Button", BS_AUTORADIOBUTTON,16,34,75,10
    CONTROL         "N&ativa poi integrata",IDC_RAD_NATIVE_BUILTIN,"Button", BS_AUTORADIOBUTTON,16,44,75,10
    CONTROL         "&Disabilita",IDC_RAD_DISABLE,"Button", BS_AUTORADIOBUTTON,16,54,75,10
    DEFPUSHBUTTON   "Ok",IDOK,8,74,45,14,WS_GROUP
    PUSHBUTTON      "Annulla",IDCANCEL,57,74,45,14,WS_GROUP
END

IDD_DRIVECHOOSE DIALOG  60, 70, 170, 60
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Seleziona la lettera dell'unità"
FONT 8, "MS Shell Dlg"
BEGIN
    COMBOBOX IDC_DRIVESA2Z,15,10,75,230,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    DEFPUSHBUTTON   "Ok",IDOK,105,10,45,14,WS_GROUP
    PUSHBUTTON      "Annulla",IDCANCEL,105,30,45,14,WS_GROUP
END

IDD_DRIVECFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Mappature delle unità ",IDC_STATIC,8,4,244,195
    LTEXT           "Impossibile connettersi al gestore delle unità, la configurazione dell'unità non può essere modificata.", IDC_STATIC_MOUNTMGR_ERROR, 15,30,190,76
    CONTROL         "Listview",IDC_LIST_DRIVES,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                    LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,18,232,76
    PUSHBUTTON      "Aggiungi...",IDC_BUTTON_ADD,15,98,45,14
    PUSHBUTTON      "Rimuovi",IDC_BUTTON_REMOVE,64,98,37,14
    PUSHBUTTON      "Rileva automaticamente...",IDC_BUTTON_AUTODETECT,155,98,91,14

    /* editing drive details */
    LTEXT           "&Percorso:",IDC_STATIC_PATH,15,123,30,9
    EDITTEXT        IDC_EDIT_PATH,51,120,150,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Naviga...",IDC_BUTTON_BROWSE_PATH,206,120,40,13

    LTEXT           "&Tipo:",IDC_STATIC_TYPE,15,138,21,10
    COMBOBOX        IDC_COMBO_TYPE,51,136,97,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP

    PUSHBUTTON      "Mostra controlli &avanzati",IDC_BUTTON_SHOW_HIDE_ADVANCED,154,135,92,13
    LTEXT           "&Unità:",IDC_STATIC_DEVICE,15,153,26,9
    EDITTEXT        IDC_EDIT_DEVICE,51,150,150,13,ES_AUTOHSCROLL | WS_TABSTOP
    PUSHBUTTON      "Na&viga...",IDC_BUTTON_BROWSE_DEVICE,206,150,40,13

    LTEXT           "&Etichetta:",IDC_STATIC_LABEL,15,168,32,12
    EDITTEXT        IDC_EDIT_LABEL,70,165,80,13,ES_AUTOHSCROLL | WS_TABSTOP
    LTEXT           "Numero &seriale:",IDC_STATIC_SERIAL,15,183,54,12
    EDITTEXT        IDC_EDIT_SERIAL,70,180,80,13,ES_AUTOHSCROLL | WS_TABSTOP

    CONTROL         "Mostra file &dot",IDC_SHOW_DOT_FILES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,205,230,8
END

IDD_AUDIOCFG DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Diagnostica del driver ",IDC_STATIC,8,4,244,27
    LTEXT           "",IDC_AUDIO_DRIVER,18,16,230,8
    GROUPBOX        " Valori predefiniti ",IDC_STATIC,8,33,244,76
    LTEXT           "Unità output:",IDC_STATIC,18,45,230,8
    LTEXT           "Unità output voce:",IDC_STATIC,18,61,230,8
    LTEXT           "Unità input:",IDC_STATIC,18,77,230,8
    LTEXT           "Unità input voce:",IDC_STATIC,18,93,230,8
    COMBOBOX        IDC_AUDIOOUT_DEVICE,110,43,135,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    COMBOBOX        IDC_VOICEOUT_DEVICE,110,59,135,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    COMBOBOX        IDC_AUDIOIN_DEVICE,110,75,135,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    COMBOBOX        IDC_VOICEIN_DEVICE,110,91,135,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Test dell'audio",IDC_AUDIO_TEST,8,113,69,14
END

IDD_DESKTOP_INTEGRATION DIALOG  0, 0, 260, 220
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX        " Aspetto ",IDC_STATIC,8,4,244,106
    LTEXT           "&Tema:",IDC_STATIC,15,15,130,8
    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,130,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    PUSHBUTTON      "&Installa un tema...",IDC_THEME_INSTALL,152,23,93,14
    LTEXT           "&Colore:",IDC_THEME_COLORTEXT,15,40,112,8
    COMBOBOX        IDC_THEME_COLORCOMBO,15,49,112,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Dimen&sione:",IDC_THEME_SIZETEXT,135,40,110,8
    COMBOBOX        IDC_THEME_SIZECOMBO,135,49,110,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "Ogg&etto:",IDC_STATIC,15,64,112,8
    COMBOBOX        IDC_SYSPARAM_COMBO,15,74,112,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP | CBS_SORT
    LTEXT           "C&olore:",IDC_SYSPARAM_COLOR_TEXT,135,64,25,8,WS_DISABLED
    PUSHBUTTON      "",IDC_SYSPARAM_COLOR,135,74,25,13,WS_DISABLED | BS_OWNERDRAW
    LTEXT           "&Dimensione:",IDC_SYSPARAM_SIZE_TEXT,166,64,35,8,WS_DISABLED
    EDITTEXT        IDC_SYSPARAM_SIZE,166,74,23,13,ES_AUTOHSCROLL | WS_TABSTOP | WS_DISABLED
    CONTROL         "",IDC_SYSPARAM_SIZE_UD,UPDOWN_CLASS,UDS_SETBUDDYINT | WS_DISABLED,187,74,15,13
    PUSHBUTTON      "&Carattere",IDC_SYSPARAM_FONT,208,74,37,13,WS_DISABLED
    GROUPBOX        " C&artelle ",IDC_STATIC,8,114,244,100
    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
    CONTROL         "&Collega a:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
    PUSHBUTTON      "&Naviga",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
END
