/*
 * Program Manager
 *
 * Copyright 1996 Ulrich Schmid
 */

#define LANGUAGE_ID                  It
#define LANGUAGE_NUMBER              9
#define LANGUAGE_MENU_ITEM           "&Italiano"

/* Menu */

#define MENU_FILE                    "&File"
#define MENU_FILE_NEW                "&Nuovo..."
#define MENU_FILE_OPEN               "&Apri\tEnter"
#define MENU_FILE_MOVE               "&Sposta...\tF7"
#define MENU_FILE_COPY               "&Copia...\tF8"
#define MENU_FILE_DELETE             "E&limina\tEntf"
#define MENU_FILE_ATTRIBUTES         "Pr&oprieta'...\tAlt+Enter"
#define MENU_FILE_EXECUTE            "&Esegui..."
#define MENU_FILE_EXIT               "Esc&i"

#define MENU_OPTIONS                 "&Opzioni"
#define MENU_OPTIONS_AUTO_ARRANGE    "&Disposizione automatica"
#define MENU_OPTIONS_MIN_ON_RUN      "&Riduci a icona in esecuzione"
#define MENU_OPTIONS_SAVE_SETTINGS   "&Salva impostazioni in uscita"

#define MENU_WINDOWS                 "F&inestra"
#define MENU_WINDOWS_OVERLAP         "&Sovrapponi\tShift+F5"
#define MENU_WINDOWS_SIDE_BY_SIDE    "A&ffianca\tShift+F4"
#define MENU_WINDOWS_ARRANGE         "&Disponi icone"

#define MENU_LANGUAGE                "&Lingua"

#define MENU_HELP                    "&?"
#define MENU_HELP_CONTENTS           "&Sommario"
#define MENU_HELP_SEARCH             "&Ricerca..."
#define MENU_HELP_HELP_ON_HELP       "&Aiuto sulla Guida"
#define MENU_HELP_TUTORIAL           "&Tutorial"

#define MENU_INFO                    "&Informazioni su..."
#define MENU_INFO_LICENSE            "&Licenza"
#define MENU_INFO_NO_WARRANTY        "&NESSUNA GARANZIA"
#define MENU_INFO_ABOUT_WINE         "&Informazioni su WINE"

/* Dialogs */

#define DIALOG_OK                    "OK"
#define DIALOG_CANCEL                "Annulla"
#define DIALOG_BROWSE                "S&foglia"
#define DIALOG_HELP                  "&?"

#define DIALOG_NEW_CAPTION           "Nuovo elemento"
#define DIALOG_NEW_NEW               "Nuovo"
#define DIALOG_NEW_GROUP             "&Gruppo di programmi"
#define DIALOG_NEW_PROGRAM           "&Programma"

#define DIALOG_MOVE_CAPTION          "Sposta programma"
#define DIALOG_MOVE_PROGRAM          "Sposta programma:"
#define DIALOG_MOVE_FROM_GROUP       "Dal gruppo:"
#define DIALOG_MOVE_TO_GROUP         "&Al gruppo:"

#define DIALOG_COPY_CAPTION          "Copia programma"
#define DIALOG_COPY_PROGRAM          "Copia programma:"
#define DIALOG_COPY_FROM_GROUP       DIALOG_MOVE_FROM_GROUP
#define DIALOG_COPY_TO_GROUP         DIALOG_MOVE_TO_GROUP

#define DIALOG_GROUP_CAPTION         "Proprieta' del gruppo di programmi"
#define DIALOG_GROUP_DESCRIPTION     "&Descrizione:"
#define DIALOG_GROUP_FILE            "&File di gruppo:"

#define DIALOG_PROGRAM_CAPTION       "Proprieta' del programma"
#define DIALOG_PROGRAM_DESCRIPTION   DIALOG_GROUP_DESCRIPTION
#define DIALOG_PROGRAM_COMMAND_LINE  "&Riga di comando:"
#define DIALOG_PROGRAM_DIRECTORY     "Directory di &lavoro:"
#define DIALOG_PROGRAM_HOT_KEY       "&Tasto di scelta rapida"
#define DIALOG_PROGRAM_SYMBOL        "&Avvia ridotto a icona"
#define DIALOG_PROGRAM_OTHER_SYMBOL  "&Cambia icona..."

#define DIALOG_SYMBOL_CAPTION        "Cambia icona"
#define DIALOG_SYMBOL_FILE           "&Nome del file:"
#define DIALOG_SYMBOL_CURRENT        "I&cona corrente:"

#define DIALOG_EXECUTE_CAPTION       "Execute Program"
#define DIALOG_EXECUTE_COMMAND_LINE  DIALOG_PROGRAM_COMMAND_LINE
#define DIALOG_EXECUTE_SYMBOL        DIALOG_PROGRAM_SYMBOL

/* Strings */

#define STRING_PROGRAM_MANAGER            "Program Manager"
#define STRING_ERROR                      "ERRORE"
#define STRING_WARNING                    "ATTENZONE"
#define STRING_INFO                       "Informazione"
#define STRING_DELETE                     "Elimina"
#define STRING_DELETE_GROUP_s             "Eliminare il gruppo `%s'?"
#define STRING_DELETE_PROGRAM_s           "Eliminare `%s'?"
#define STRING_NOT_IMPLEMENTED            "Non ancora implementato"
#define STRING_FILE_READ_ERROR_s          "Errore di lettura `%s'"
#define STRING_FILE_WRITE_ERROR_s         "Errore di scrittura `%s'"

#define STRING_GRPFILE_READ_ERROR_s       "\
Il file di gruppo `%s' non puo' essere aperto.\n\
Provare ad aprirlo in futuro?"

#define STRING_OUT_OF_MEMORY              "Memoria esaurita"
#define STRING_WINHELP_ERROR              "Guida non disponibile"
#define STRING_UNKNOWN_FEATURE_s          "Funzione sconosciuta nel file %s"
#define STRING_FILE_NOT_OVERWRITTEN_s     "Il file `%s' esiste. Sovrascriverlo."
#define STRING_SAVE_GROUP_AS_s            "Salvare il gruppo come `%s' per non sovrascrivere i file originali"

#define STRING_NO_HOT_KEY                 "Nessuno"

#define STRING_ALL_FILES                  "Tutti i files (*.*)"
#define STRING_PROGRAMS                   "Programmi"
#define STRING_LIBRARIES_DLL              "Librerie (*.dll)"
#define STRING_SYMBOL_FILES               "File icona"
#define STRING_SYMBOLS_ICO                "Icone (*.ico)"

#include "Xx.rc"
