/*
 * Wine command prompt
 * Italian Language Support
 *
 * Copyright (C) 1999 D A Pickles
 * Copyright (C) 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 "wcmd.h"

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

LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL

STRINGTABLE
{
  WCMD_ATTRIB, "Aiuto su ATTRIB\n"
  WCMD_CALL,
"CALL <nomedelfilebatch> si usa all'interno di un file batch per eseguire\n\
comandi da un altro file batch. Quando il file batch esiste, il controllo\n\
torna al file che l'ha chiamato. Il comando CALL può passare parametri alla\n\
procedura chiamata.\n\
\n\
Cambiamenti alla cartella predefinita, alle variabili d'ambiente etc fatti dentro una\n\
procedura chiamata sono ereditati dalla chiamante.\n"

  WCMD_CD,     "Aiuto su CD\n"
  WCMD_CHDIR,  "Aiuto su CHDIR\n"

  WCMD_CLS,    "CLS pulisce la schermata della console\n"

  WCMD_COPY,   "Aiuto su COPY\n"
  WCMD_CTTY,   "Aiuto su CTTY\n"
  WCMD_DATE,   "Aiuto su DATE\n"
  WCMD_DEL,    "Aiuto su DEL\n"
  WCMD_DIR,    "Aiuto su DIR\n"

  WCMD_ECHO,
"ECHO <string> mostra <string> sul dispositivo di terminale corrente.\n\
\n\
ECHO ON fa sì che tutti i comandi seguenti in un file batch siano mostrati\n\
sul dispositivo di terminale prima di essere eseguiti.\n\
\n\
ECHO OFF inverte l'effetto di un precedente ECHO ON (ECHO usa OFF per\n\
default). Si può evitare che il comando ECHO OFF sia mostrato\n\
precedendolo con un segno @.\n"

  WCMD_ERASE,  "Aiuto su ERASE\n"

  WCMD_FOR,
"Il comando FOR è usato per eseguire un comando per ciascuno di un set di files.\n\
\n\
Sintassi: FOR %variabile IN (set) DO comando\n\
\n\
La necessità di raddoppiare il segno % nell'uso di un FOR in un file batch non\n\
esiste nel cmd di wine.\n"

  WCMD_GOTO,
"Il comando GOTO trasferisce l'esecuzione ad un'altra istruzione dentro un\n\
file batch.\n\
\n\
L'etichetta di destinazione di un GOTO può essere lunga fino a 255 caratteri\n\
ma non può includere spazi (questo è differente da altri sistemi\n\
operativi). Se esistono due o più etichette identiche in un file batch, la\n\
prima sarà sempre eseguita. Tentare un GOTO verso un'etichetta\n\
inesistente termina l'esecuzione del file batch.\n\
\n\
GOTO non ha effetto quando usato in modalità interattiva.\n"

  WCMD_HELP,   "Aiuto su HELP\n"

  WCMD_IF,
"IF è usato per eseguire condizionalmente un comando.\n\
\n\
Sintassi:	IF [NOT] EXIST nomedelfile comando\n\
		IF [NOT] stringa1==stringa2 comando\n\
		IF [NOT] ERRORLEVEL numero comando\n\
\n\
Nella seconda forma del comando, stringa1 and stringa2 devono essere\n\
in doppi apici. Il confronto non è sensibile alle maiuscole.\n"

  WCMD_LABEL,  "LABEL è usato per creare un'etichetta del volume di un disco.\n\
\n\
Sintassi: LABEL [unità:]\n\
Il comando ti chiederà la nuova etichetta di volume per l'unità specificata.\n\
Puoi mostrare l'etichetta di volume del disco con il comando VOL.\n"

  WCMD_MD,     "Aiuto su MD\n"
  WCMD_MKDIR,  "Aiuto su MKDIR\n"
  WCMD_MOVE,
"MOVE sposta un file o una cartella in un punto diverso nel file system.\n\
\n\
Se l'oggetto che viene spostato è una cartella allora tutti i files e le sottocartelle\n\
dentro l'oggetto saranno spostate insieme.\n\
\n\
MOVE fallisce se la nuova e la vecchia locazione sono su lettere di unità DOS differenti.\n"

  WCMD_PATH,
"PATH mostra o cambia il percorso di ricerca di cmd.\n\
\n\
Usando PATH, verrà mostrato l'impostazione corrente di PATH (il cui valore è preso\n\
inizialmente dal registro). Per cambiarla, fai seguire al\n\
comando PATH il nuovo valore.\n\
\n\
È anche possibile modificare il PATH usando la variabile d'ambiente\n\
PATH, per esempio:\n\
		PATH %PATH%;c:\\temp\n"

  WCMD_PAUSE,
"PAUSE mostra un messaggio sullo schermo 'Premere Invio per continuare'\n\
e aspetta che l'utente prema Invio. È utile principalmente nei files\n\
batch per permettere all'utente di leggere l'output di un comando precedente\n\
prima che scorra fuori dallo schermo.\n"

  WCMD_PROMPT,
"PROMPT configura il prompt a linea di comando.\n\
\n\
La stringa che segue il comando PROMPT (e lo spazio immediatamente dopo)\n\
appariranno all'inizio della linea quando cmd sta aspettando l'input dell'utente.\n\
\n\
Le seguenti stringhe di caratteri hanno il loro significato speciale accanto:\n\
\n\
$$    Segno del dollaro		$_    Linefeed		$b    Segno della pipe (|)\n\
$d    Data attuale		$e    Escape		$g    Segno >\n\
$l    Segno <			$n    Unità attuale	$p    Percorso corrente\n\
$q    Segno uguale		$t    Ora attuale	$v    Versione di cmd\n\
\n\
Nota che inserire il comando PROMPT senza una stringa dopo resetta il\n\
prompt al default, che è la cartella corrente (che include la\n\
lettera dell'unità attuale) seguita da un segno maggiore (>).\n\
(come un comando PROMPT $p$g).\n\
\n\
Il prompt può essere cambiato anche alterando la variabile d'ambiente PROMPT,\n\
perciò il comando 'SET PROMPT=testo' ha lo stesso effetto di 'PROMPT testo'\n"

  WCMD_REM,
"Una linea di comando che comincia con REM (seguito da uno spazio) non esegue\n\
alcuna azione e può, quindi, essere usata come un commento in un file batch.\n"

  WCMD_REN,    "Aiuto su REN\n"
  WCMD_RENAME, "Aiuto su RENAME\n"
  WCMD_RD,     "Aiuto su RD\n"
  WCMD_RMDIR,  "Aiuto su RMDIR\n"

  WCMD_SET,
"SET mostra o cambia le variabili d'ambiente di cmd.\n\
\n\
SET senza parametri mostra tutto dell'ambiente attuale.\n\
\n\
Per creare o modificare una variabile d'ambiente, la sintassi è:\n\
\n\
      SET <variabile>=<valore>\n\
\n\
dove <variabile> e <valore> sono stringhe di caratteri. Non devono esserci\n\
spazi prima del segno uguale, né il nome della variabile può\n\
avere spazi all'interno.\n\
\n\
Sotto Wine, l'ambiente del sistema operativo sottostante è\n\
incluso nell'ambiente Win32; ci saranno quindi generalmente\n\
molti più valori che ina implementazione nativa di Win32. Nota che non è\n\
possibile influenzare l'ambiente del sistema operativo da dentro il cmd.\n"

  WCMD_SHIFT,
"SHIFT è usato in un file batch per rimuovere un parametro dall'inizio della\n\
lista, perciò il parametro 2 diventa parametro 1 e così via. Non ha effetto\n\
se chiamato dalla linea di comando.\n"

  WCMD_TIME,   "Aiuto su TIME\n"

  WCMD_TITLE,  "Stabilisce il titolo della finestra per quella di cmd, sintassi TITLE [stringa]\n"

  WCMD_TYPE,
"TYPE <nomedelfile> copia <nomedelfile> sul dispositivo della console (o ovunque\n\
se rediretto). Nessun controllo è fatto se il file sia testo leggibile.\n"

  WCMD_VERIFY,
"VERIFY è usato per impostare, pulire o verificare la flag di verify. Forme valide sono:\n\
\n\
VERIFY ON	Imposta la flag\n\
VERIFY OFF	Pulisce la flag\n\
VERIFY		Mostra ON o OFF a seconda dei casi.\n\
\n\
La flag di verify non ha funzioni in Wine.\n"

  WCMD_VER,
"VER mostra la versione di cmd che stai usando\n"

  WCMD_VOL,    "Aiuto su VOL\n"

  WCMD_PUSHD,  "PUSHD <nomedellacartella> salva la cartella attuale su di uno\n\
stack e poi la cambia con quella passata.\n"

  WCMD_POPD,   "POPD cambia la cartella attuale con l'ultima salvata con\n\
PUSHD.\n"

  WCMD_MORE,   "MORE mostra l'output di files o l'input dalla pipe in pagine.\n"

  WCMD_EXIT,
"EXIT termina la sessione corrente di cmd e torna al\n\
sistema operativo o alla shell dal quale hai chiamato cmd.\n"

  WCMD_ALLHELP, "I comandi built-in di CMD sono:\n\
ATTRIB\t\tMostra o cambia gli attributi dei files DOS\n\
CALL\t\tInvoca un file batch da dentro un altro\n\
CD (CHDIR)\tCambia la cartella di default attuale\n\
CLS\t\tPulisce lo schermo della console\n\
COPY\t\tCopia files\n\
CTTY\t\tCambia il dispositivo di input/output\n\
DATE\t\tMostra o cambia la data di sistema\n\
DEL (ERASE)\tCancella un file o un set di files\n\
DIR\t\tElenca il contenuto di una cartella\n\
ECHO\t\tCopia il testo direttamente sull'output della console\n\
HELP\t\tMostra dei semplici dettagli di aiuto su di un argomento\n\
MD (MKDIR)\tCrea una sottocartella\n\
MORE\t\tMostra l'output in pagine\n\
MOVE\t\tMuove un file, set di files o un albero di cartelle\n\
PATH\t\tConfigura o mostra il percorso di ricerca\n\
POPD\t\tRipristina la cartella all'ultima salvata con PUSHD\n\
PROMPT\t\tCambia il prompt dei comandi\n\
PUSHD\t\tCambia su una nuova cartella, salvando quella attuale\n\
REN (RENAME)\tRinomina un file\n\
RD (RMDIR)\tCancella una sottocartella\n\
SET\t\tConfigura o mostra le variabili d'ambiente\n\
TIME\t\tConfigura o cambia l'orario di sistema attuale\n\
TITLE\t\tConfigura il titolo della finestra per la sessione di CMD\n\
TYPE\t\tInserisce il contenuto di un file di testo\n\
VER\t\tMostra la versione attuale di CMD\n\
VOL\t\tMostra l'etichetta di volume di un'unità disco\n\
EXIT\t\tChiude CMD\n\n\
Inserisci HELP <comando> per maggiori informazioni su ciascuno dei comandi soprastanti\n"

  WCMD_CONFIRM, "Sei sicuro"
  WCMD_YES, "S"
  WCMD_NO, "N"
  WCMD_NOASSOC, "Associazione di file mancante per l'estensione %s\n"
  WCMD_NOFTYPE, "Nessun comando di apertura associato con il tipo di file '%s'\n"
  WCMD_OVERWRITE, "Sovrascrivere %s"
  WCMD_MORESTR, "Di più..."
  WCMD_TRUNCATEDLINE, "Linea nell'elaborazione Batch probabilmente troncata. Uso:\n"
  WCMD_NYI, "Non ancora implementato\n\n"
  WCMD_NOARG, "Manca un parametro\n"
  WCMD_SYNTAXERR, "Errore di sintassi\n"
  WCMD_FILENOTFOUND, "%s : File non trovato\n"
  WCMD_NOCMDHELP, "Nessun aiuto disponibile per %s\n"
  WCMD_NOTARGET, "Destinazione del GOTO non trovata\n"
  WCMD_CURRENTDATE, "La data attuale è  %s\n"
  WCMD_CURRENTTIME, "L'ora attuale è  %s\n"
  WCMD_NEWDATE, "Inserisci una nuova data: "
  WCMD_NEWTIME, "Inserisci una nuova ora: "
  WCMD_MISSINGENV, "Variabile d'ambiente %s non definita\n"
  WCMD_READFAIL, "Impossibile aprire '%s'\n"
  WCMD_CALLINSCRIPT, "Impossibile chiamare un'etichetta batch fuori da uno script batch\n"
  WCMD_ALL, "T"
  WCMD_DELPROMPT, "%s, Cancella"
  WCMD_ECHOPROMPT, "Echo è %s\n"
  WCMD_VERIFYPROMPT, "Verify è %s\n"
  WCMD_VERIFYERR, "Verify deve essere ON o OFF\n"
  WCMD_ARGERR, "Errore nel parametro\n"
  WCMD_VOLUMEDETAIL, "Il volume nell'unità %c è %s\nIl numero seriale del volume è %04x-%04x\n\n"
  WCMD_VOLUMEPROMPT, "Etichetta del volume (11 caratteri, Invio per nessuno)?"
  WCMD_NOPATH, "PATH non trovato\n"
  WCMD_ANYKEY,"Premere Invio per continuare: "
  WCMD_CONSTITLE,"Prompt dei comandi di Wine"
  WCMD_VERSION,"Versione di CMD %s\n\n"
  WCMD_MOREPROMPT, "Di più? "
  WCMD_LINETOOLONG, "La linea di input è troppo lunga.\n"
}
