/* Italian resource for Wine WordPad
 *
 * Copyright 2010 by 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 "wordpad.h"

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

LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL

IDM_MAINMENU MENU DISCARDABLE
BEGIN
    POPUP "&File"
    BEGIN
        MENUITEM "&Nuovo...\tCtrl+N",       ID_FILE_NEW
        MENUITEM "&Apri...\tCtrl+O",      ID_FILE_OPEN
        MENUITEM "&Salva\tCtrl+S",         ID_FILE_SAVE
        MENUITEM "Salva &come...",           ID_FILE_SAVEAS
        MENUITEM SEPARATOR
        MENUITEM "&Stampa...\tCtrl+P",     ID_PRINT
        MENUITEM "An&teprima di stampa...",     ID_PREVIEW
        MENUITEM "&Impostazioni di stampa...",        ID_PRINTSETUP
        MENUITEM SEPARATOR
        MENUITEM "E&sci",                 ID_FILE_EXIT
    END
    POPUP "&Modifica"
    BEGIN
        MENUITEM "&Annulla\tCtrl+Z",               ID_EDIT_UNDO
        MENUITEM "&Rifai\tCtrl+Y",               ID_EDIT_REDO
        MENUITEM SEPARATOR
        MENUITEM "&Taglia\tCtrl+X",                ID_EDIT_CUT
        MENUITEM "&Copia\tCtrl+C",               ID_EDIT_COPY
        MENUITEM "&Incolla\tCtrl+V",              ID_EDIT_PASTE
        MENUITEM "Ca&ncella\tDEL",                 ID_EDIT_CLEAR
        MENUITEM "&Seleziona tutto\tCtrl+A",         ID_EDIT_SELECTALL
        MENUITEM SEPARATOR
        MENUITEM "T&rova...\tCtrl+F",            ID_FIND
        MENUITEM "Trova s&uccessivo\tF3",              ID_FIND_NEXT
        MENUITEM "S&ostituisci...\tCtrl+H",         ID_REPLACE
        MENUITEM SEPARATOR
        MENUITEM "Solo &Lettura",                  ID_EDIT_READONLY
        MENUITEM "&Modificato",                   ID_EDIT_MODIFIED
        MENUITEM SEPARATOR
        POPUP "E&xtra"
        BEGIN
            MENUITEM "&Informazioni sulla selezione",             ID_EDIT_SELECTIONINFO
            MENUITEM "&Formato del carattere",           ID_EDIT_CHARFORMAT
            MENUITEM "Formato del &def. char",           ID_EDIT_DEFCHARFORMAT
            MENUITEM "Formato del &paragrafo",           ID_EDIT_PARAFORMAT
            MENUITEM "&Ricava il testo",                   ID_EDIT_GETTEXT
        END
    END
    POPUP "&Visualizza"
    BEGIN
        MENUITEM "Barra degli &strumenti",        ID_TOGGLE_TOOLBAR
        MENUITEM "Barra del &formato",      ID_TOGGLE_FORMATBAR
        MENUITEM "&Righello",          ID_TOGGLE_RULER
        MENUITEM "Barra dello s&tato",      ID_TOGGLE_STATUSBAR
        MENUITEM SEPARATOR
        MENUITEM "&Opzioni...",     ID_VIEWPROPERTIES
    END
    POPUP "&Inserisci"
    BEGIN
        MENUITEM "&Data e ora...",  ID_DATETIME
    END
    POPUP "F&ormato"
    BEGIN
        MENUITEM "&Carattere...",                     ID_FONTSETTINGS
        MENUITEM "&Elenco"                ID_BULLET
        MENUITEM "&Paragrafo..."                 ID_PARAFORMAT
        MENUITEM "&Tabulazioni..."                      ID_TABSTOPS
        POPUP "Sfon&do"
        BEGIN
            MENUITEM "Di &sistema\tCtrl+1",         ID_BACK_1
            MENUITEM "&Giallo di PostThat\tCtrl+2",           ID_BACK_2
        END
    END
    POPUP "&Aiuto"
    BEGIN
        MENUITEM "&Riguardo A Wine Wordpad"       ID_ABOUT
    END
END

IDM_POPUP MENU DISCARDABLE
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "&Taglia",                ID_EDIT_CUT
        MENUITEM "&Copia",               ID_EDIT_COPY
        MENUITEM "&Incolla",              ID_EDIT_PASTE
        MENUITEM SEPARATOR
        MENUITEM "&Elenco"       ID_BULLET
        MENUITEM "&Paragrafo..."        ID_PARAFORMAT
    END
END

IDM_COLOR_POPUP MENU DISCARDABLE
BEGIN
    POPUP ""
    BEGIN
        MENUITEM "Nero"              ID_COLOR_BLACK
        MENUITEM "Marrone rossiccio" ID_COLOR_MAROON
        MENUITEM "Verde"             ID_COLOR_GREEN
        MENUITEM "Verde oliva"       ID_COLOR_OLIVE
        MENUITEM "Blu oltremare"     ID_COLOR_NAVY
        MENUITEM "Propora"           ID_COLOR_PURPLE
        MENUITEM "Teal"              ID_COLOR_TEAL
        MENUITEM "Grigio"            ID_COLOR_GRAY
        MENUITEM "Argento"           ID_COLOR_SILVER
        MENUITEM "Rosso"             ID_COLOR_RED
        MENUITEM "Verde cedro"       ID_COLOR_LIME
        MENUITEM "Giallo"            ID_COLOR_YELLOW
        MENUITEM "Blu"               ID_COLOR_BLUE
        MENUITEM "Fucsia"            ID_COLOR_FUCHSIA
        MENUITEM "Aqua"              ID_COLOR_AQUA
        MENUITEM "Bianco"            ID_COLOR_WHITE
        MENUITEM "Automatic"         ID_COLOR_AUTOMATIC
    END
END

IDD_DATETIME DIALOG DISCARDABLE 30, 20, 130, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Data e ora"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Formati disponibili",-1,3,2,100,15
    LISTBOX      IDC_DATETIME,3,12,80,65,LBS_NOINTEGRALHEIGHT | LBS_NOTIFY
    PUSHBUTTON   "&OK",IDOK,87,12,40,12
    PUSHBUTTON   "&Annulla",IDCANCEL,87,26,40,12
END

IDD_NEWFILE DIALOG DISCARDABLE 30, 20, 140, 80
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Nuovo"
FONT 10, "MS Sans Serif"
BEGIN
    LTEXT        "Nuovo tipo di documento",-1,3,2,100,15
    LISTBOX      IDC_NEWFILE,3,12,90,65,LBS_NOINTEGRALHEIGHT
    PUSHBUTTON   "&OK",IDOK,97,12,40,12
    PUSHBUTTON   "&Annulla",IDCANCEL,97,26,40,12
END

IDD_PARAFORMAT DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Formato del paragrafo"
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Indentazione", -1, 10, 10, 120, 68
    LTEXT "Sinistra", -1, 15, 22, 40, 13
    EDITTEXT IDC_PARA_LEFT, 55, 20, 60, 13
    LTEXT "Destra", -1, 15, 40, 40, 13
    EDITTEXT IDC_PARA_RIGHT, 55, 38, 60, 13
    LTEXT "Prima riga", -1, 15, 58, 40, 13
    EDITTEXT IDC_PARA_FIRST, 55, 56, 60, 13
    LTEXT "Allineamento", -1, 15, 87, 45, 13
    COMBOBOX IDC_PARA_ALIGN, 60, 85, 60, 60, CBS_DROPDOWNLIST
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "&Annulla", IDCANCEL, 137, 33, 50, 15
END

IDD_TABSTOPS DIALOG DISCARDABLE 30, 20, 200, 110
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
Caption "Tabulazioni"
FONT 8, "MS SHell DLg"
BEGIN
    GROUPBOX "Punti di fermata delle tabulazioni", -1, 10, 10, 120, 90
    COMBOBOX IDC_TABSTOPS, 20, 20, 100, 60, CBS_SIMPLE
    DEFPUSHBUTTON "&Aggiungi", ID_TAB_ADD, 20, 80, 45, 15
    PUSHBUTTON "&Rimuovi", ID_TAB_DEL, 72, 80, 45, 15
    PUSHBUTTON "&OK", IDOK, 137, 15, 50, 15
    PUSHBUTTON "&Annulla", IDCANCEL, 137, 33, 50, 15
    PUSHBUTTON "Rimuovi &tutti", ID_TAB_EMPTY, 137, 51, 50, 15
END

IDD_FORMATOPTS DIALOG DISCARDABLE 0, 0, 310, 110
STYLE DS_SYSMODAL
Caption ""
FONT 8, "MS Shell Dlg"
BEGIN
    GROUPBOX "Linea di margine", -1, 10, 10, 150, 85
    RADIOBUTTON "&Nessuna linea di margine", IDC_PAGEFMT_WN, 18, 25, 140, 15
    RADIOBUTTON "Confina il testo nel &bordo della finestra", IDC_PAGEFMT_WW, 18, 45, 140, 15
    RADIOBUTTON "Confina il testo nel &margine", IDC_PAGEFMT_WM, 18, 65, 140, 15
    GROUPBOX "Barre", -1, 170, 10, 120, 85
    CHECKBOX "Barra degli &strumenti", IDC_PAGEFMT_TB, 180, 20, 80, 15
    CHECKBOX "Barra del &formato", IDC_PAGEFMT_FB, 180, 38, 80, 15
    CHECKBOX "&Righello", IDC_PAGEFMT_RU, 180, 56, 80, 15
    CHECKBOX "Barra dello s&tato", IDC_PAGEFMT_SB, 180, 74, 80, 15
    LTEXT "", IDC_PAGEFMT_ID, 0,0,0,0
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_ALL_FILES,              "Tutti i files (*.*)"
    STRING_TEXT_FILES_TXT,         "File di testo (*.txt)"
    STRING_TEXT_FILES_UNICODE_TXT, "File di testo Unicode (*.txt)"
    STRING_RICHTEXT_FILES_RTF,     "Formato rich text (*.rtf)"
    STRING_NEWFILE_RICHTEXT,       "Documento Rich text"
    STRING_NEWFILE_TXT,            "Documento di testo"
    STRING_NEWFILE_TXT_UNICODE,    "Documento di testo Unicode"
    STRING_PRINTER_FILES_PRN,      "File di stampa (*.PRN)"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_ALIGN_LEFT,            "Sinistra"
    STRING_ALIGN_RIGHT,           "Destra"
    STRING_ALIGN_CENTER,          "Centro"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_VIEWPROPS_TITLE,          "Opzioni"
    STRING_VIEWPROPS_TEXT,           "Testo"
    STRING_VIEWPROPS_RICHTEXT,       "Rich text"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_PREVIEW_PRINT,            "Stampa"
    STRING_PREVIEW_NEXTPAGE,         "Prossima pagina"
    STRING_PREVIEW_PREVPAGE,         "Pagina precedente"
    STRING_PREVIEW_TWOPAGES,         "Due pagine"
    STRING_PREVIEW_ONEPAGE,          "Una pagina"
    STRING_PREVIEW_ZOOMIN,           "Ingrandisci"
    STRING_PREVIEW_ZOOMOUT,          "Rimpicciolisci"
    STRING_PREVIEW_CLOSE,            "Chiudi"
    STRING_PREVIEW_PAGE,             "Pagina"
    STRING_PREVIEW_PAGES,            "Pagine"
    STRING_UNITS_CM,                 "cm"
END

STRINGTABLE DISCARDABLE
BEGIN
    STRING_DEFAULT_FILENAME,     "Documento"
    STRING_PROMPT_SAVE_CHANGES,  "Salva i cambiamenti su '%s'?"
    STRING_SEARCH_FINISHED,      "Finita la ricerca sul documento."
    STRING_LOAD_RICHED_FAILED,   "Impossibile caricare la libreria RichEdit."
    STRING_SAVE_LOSEFORMATTING,  "Hai scelto di salvare nel formato Testo semplice, " \
                                 "che causerà la perdita di tutta la formattazione. " \
                                 "Sei sicuro?"
    STRING_INVALID_NUMBER,       "Numero di formato non valido"
    STRING_OLE_STORAGE_NOT_SUPPORTED, "I documenti di storage OLE non sono supportati"
    STRING_WRITE_FAILED,              "Impossibile salvare il file."
    STRING_WRITE_ACCESS_DENIED,       "Non hai i diritti di accesso per salvare il file."
    STRING_OPEN_FAILED,               "Impossibile aprire il file."
    STRING_OPEN_ACCESS_DENIED,        "Non hai i diritti di accesso per aprire il file."
    STRING_PRINTING_NOT_IMPLEMENTED,  "Stampa non  implementata"
    STRING_MAX_TAB_STOPS,             "Non si possono aggiungere più di 32 punti di fermata delle tabulazioni."
END
