/*
 * WineCfg resources
 * Italian Language Support
 *
 * Copyright 2004 Ivan Leo Pioti
 * Copyright 2009 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     "Automatically capture the &mouse in full-screen windows",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        " Selezione del driver ",IDC_STATIC,8,4,244,160
    LTEXT           "Seleziona un driver audio spuntando la casella del driver desiderato. Per disabilitare l'audio, non selezionare alcun driver. La selezione di molteplici drivers non è raccomandata. Configura un driver cliccando con il tasto destro su di esso.",IDC_STATIC,15,15,227,32
    CONTROL         "Dispositivi",IDC_AUDIO_TREE,"SysTreeView32",WS_BORDER | WS_TABSTOP,15,50,155,105
    PUSHBUTTON      "&Test dell'audio",IDC_AUDIO_TEST,175,50,69,14
    PUSHBUTTON	    "Pannello di &controllo",IDC_AUDIO_CONTROL_PANEL,175,70,69,14
    GROUPBOX        " DirectSound ",IDC_STATIC,8,170,244,45
    LTEXT	    "Accelerazione &hardware: ",IDC_STATIC,15,180,90,10
    COMBOBOX	    IDC_DSOUND_HW_ACCEL,100,178,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Sample Rate normale:",IDC_STATIC,15,197,70,8
    COMBOBOX        IDC_DSOUND_RATES,90,195,42,76,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
    LTEXT           "&Bit Per Sample normale:",IDC_STATIC,137,197,80,8
    COMBOBOX        IDC_DSOUND_BITS,220,195,30,56,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
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
