# Italian messages for gettext-runtime.
# Copyright (C) 1997, 2005, 2006, 2007, 2010 Free Software Foundation, Inc.
# This file is distributed under the same license as the gettext package.
# Marco Colombo <m.colombo@ed.ac.uk>, 2005, 2006, 2007, 2010, 2013, 2015.
# Giovanni Bortolozzo <borto@pluto.linux.it>, 1997.
#
msgid ""
msgstr ""
"Project-Id-Version: gettext-runtime 0.19.4.73\n"
"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n"
"POT-Creation-Date: 2020-07-26 21:56+0200\n"
"PO-Revision-Date: 2015-08-05 12:00+0100\n"
"Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8-bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"

#: gnulib-lib/closeout.c:66
msgid "write error"
msgstr "errore di scrittura"

#: gnulib-lib/error.c:195
msgid "Unknown system error"
msgstr "Errore di sistema sconosciuto"

#: gnulib-lib/getopt.c:278
#, fuzzy, c-format
#| msgid "%s: option '%s' is ambiguous\n"
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: l'opzione '%s' è ambigua\n"

#: gnulib-lib/getopt.c:284
#, fuzzy, c-format
#| msgid "%s: option '%s' is ambiguous; possibilities:"
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: l'opzione '%s' è ambigua; scelte:"

#: gnulib-lib/getopt.c:319
#, fuzzy, c-format
#| msgid "%s: unrecognized option '%c%s'\n"
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: opzione '%c%s' non riconosciuta\n"

#: gnulib-lib/getopt.c:345
#, fuzzy, c-format
#| msgid "%s: option '%c%s' doesn't allow an argument\n"
msgid "%s: option '%s%s' doesn't allow an argument\n"
msgstr "%s: l'opzione '%c%s' non accetta argomenti\n"

#: gnulib-lib/getopt.c:360
#, fuzzy, c-format
#| msgid "%s: option '--%s' requires an argument\n"
msgid "%s: option '%s%s' requires an argument\n"
msgstr "%s: l'opzione '%s' richiede un argomento\n"

#: gnulib-lib/getopt.c:621
#, c-format
msgid "%s: invalid option -- '%c'\n"
msgstr "%s: opzione non valida -- '%c'\n"

#: gnulib-lib/getopt.c:636 gnulib-lib/getopt.c:682
#, c-format
msgid "%s: option requires an argument -- '%c'\n"
msgstr "%s: l'opzione richiede un argomento -- '%c'\n"

#: gnulib-lib/xmalloc.c:38
#, c-format
msgid "memory exhausted"
msgstr "memoria esaurita"

#: src/envsubst.c:110 src/gettext.c:135 src/ngettext.c:124
#, fuzzy, c-format, no-wrap
#| msgid ""
#| "Copyright (C) %s Free Software Foundation, Inc.\n"
#| "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
#| "This is free software: you are free to change and redistribute it.\n"
#| "There is NO WARRANTY, to the extent permitted by law.\n"
msgid ""
"Copyright (C) %s Free Software Foundation, Inc.\n"
"License GPLv3+: GNU GPL version 3 or later <%s>\n"
"This is free software: you are free to change and redistribute it.\n"
"There is NO WARRANTY, to the extent permitted by law.\n"
msgstr ""
"Copyright (C) %s Free Software Foundation, Inc.\n"
"Licenza GPLv3+: GNU GPL versione 3 o superiore <http://gnu.org/licenses/gpl.html>\n"
"\n"
"Questo è software libero: siete liberi di cambiarlo e redistribuirlo.\n"
"NON c'è alcuna garanzia, fino agli estremi permessi dalla legge.\n"

#: src/envsubst.c:116 src/gettext.c:141 src/ngettext.c:130
#, c-format
msgid "Written by %s.\n"
msgstr "Scritto da %s.\n"

#. This is a proper name. See the gettext manual, section Names.
#: src/envsubst.c:116
msgid "Bruno Haible"
msgstr "Bruno Haible"

#: src/envsubst.c:125 src/gettext.c:159 src/ngettext.c:142
#, c-format
msgid "too many arguments"
msgstr "troppi argomenti"

#: src/envsubst.c:136 src/gettext.c:169 src/ngettext.c:154
#, c-format
msgid "missing arguments"
msgstr "argomenti mancanti"

#: src/envsubst.c:174 src/gettext.c:246 src/ngettext.c:211
#, c-format
msgid "Try '%s --help' for more information.\n"
msgstr "Usare '%s --help' per maggiori informazioni.\n"

#: src/envsubst.c:179
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [SHELL-FORMAT]\n"
msgstr "Uso: %s [OPZIONE] [FORMATO-SHELL]\n"

#: src/envsubst.c:184
#, c-format, no-wrap
msgid "Substitutes the values of environment variables.\n"
msgstr "Sostituisce i valori delle variabili d'ambiente.\n"

#: src/envsubst.c:188
#, c-format, no-wrap
msgid "Operation mode:\n"
msgstr "Modo di operazione:\n"

#: src/envsubst.c:191
#, c-format, no-wrap
msgid "  -v, --variables             output the variables occurring in SHELL-FORMAT\n"
msgstr "  -v, --variables             mostra le variabili che appaiono in FORMATO-SHELL\n"

#: src/envsubst.c:195 src/gettext.c:275 src/ngettext.c:241
#, c-format, no-wrap
msgid "Informative output:\n"
msgstr "Output informativo:\n"

#: src/envsubst.c:198
#, c-format, no-wrap
msgid "  -h, --help                  display this help and exit\n"
msgstr "  -h, --help                  mostra questo aiuto ed esce\n"

#: src/envsubst.c:201
#, c-format, no-wrap
msgid "  -V, --version               output version information and exit\n"
msgstr "  -V, --version               mostra le informazioni sulla versione ed esce\n"

#: src/envsubst.c:205
#, c-format, no-wrap
msgid ""
"In normal operation mode, standard input is copied to standard output,\n"
"with references to environment variables of the form $VARIABLE or ${VARIABLE}\n"
"being replaced with the corresponding values.  If a SHELL-FORMAT is given,\n"
"only those environment variables that are referenced in SHELL-FORMAT are\n"
"substituted; otherwise all environment variables references occurring in\n"
"standard input are substituted.\n"
msgstr ""
"Nella modalità operativa normale, lo standard input viene copiato sullo\n"
"standard output, con i riferimenti alle variabili d'ambiente nella forma\n"
"$VARIABILE o ${VARIABILE} sostituiti dai valori corrispondenti.\n"
"Se un FORMATO-SHELL è indicato, solo quelle variabili d'ambiente che sono\n"
"referenziate in FORMATO-SHELL verranno sostituite; in caso contrario, saranno\n"
"sostituiti tutti i riferimenti alle variabili d'ambiente che appaiono sullo\n"
"standard input.\n"

#: src/envsubst.c:214
#, c-format, no-wrap
msgid ""
"When --variables is used, standard input is ignored, and the output consists\n"
"of the environment variables that are referenced in SHELL-FORMAT, one per line.\n"
msgstr ""
"Quando --variables è usato, lo standard input viene ignorato; l'output\n"
"consiste delle variabili d'ambiente che sono referenziate in FORMATO-SHELL,\n"
"una per riga.\n"

#. TRANSLATORS: The first placeholder is the web address of the Savannah
#. project of this package.  The second placeholder is the bug-reporting
#. email address for this package.  Please add _another line_ saying
#. "Report translation bugs to <...>\n" with the address for translation
#. bugs (typically your translation team's web or email address).
#: src/envsubst.c:223 src/gettext.c:299 src/ngettext.c:262
#, c-format
msgid ""
"Report bugs in the bug tracker at <%s>\n"
"or by email to <%s>.\n"
msgstr ""

#: src/envsubst.c:451
#, c-format
msgid "error while reading \"%s\""
msgstr "errore durante la lettura di \"%s\""

#: src/envsubst.c:451
msgid "standard input"
msgstr "standard input"

#. This is a proper name. See the gettext manual, section Names.
#: src/gettext.c:141 src/ngettext.c:130
msgid "Ulrich Drepper"
msgstr "Ulrich Drepper"

#: src/gettext.c:251
#, c-format, no-wrap
msgid ""
"Usage: %s [OPTION] [[TEXTDOMAIN] MSGID]\n"
"or:    %s [OPTION] -s [MSGID]...\n"
msgstr ""
"Uso: %s [OPZIONE] [[DOMINIOTESTO] MSGID]\n"
"  o: %s [OPZIONE] -s [MSGID]...\n"

#: src/gettext.c:257
#, c-format, no-wrap
msgid "Display native language translation of a textual message.\n"
msgstr "Mostra la traduzione di un messaggio di testo in linguaggio nativo.\n"

#: src/gettext.c:261
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
msgstr ""

#: src/gettext.c:263 src/ngettext.c:228
#, c-format
msgid "  -c, --context=CONTEXT     specify context for MSGID\n"
msgstr ""

#: src/gettext.c:265 src/ngettext.c:230
#, c-format
msgid "  -e                        enable expansion of some escape sequences\n"
msgstr ""

#: src/gettext.c:267
#, c-format
msgid "  -n                        suppress trailing newline\n"
msgstr ""

#: src/gettext.c:269 src/ngettext.c:232
#, c-format
msgid "  -E                        (ignored for compatibility)\n"
msgstr ""

#: src/gettext.c:271
#, c-format
msgid ""
"  [TEXTDOMAIN] MSGID        retrieve translated message corresponding\n"
"                            to MSGID from TEXTDOMAIN\n"
msgstr ""

#: src/gettext.c:277 src/ngettext.c:243
#, fuzzy, c-format
#| msgid "  -h, --help                  display this help and exit\n"
msgid "  -h, --help                display this help and exit\n"
msgstr "  -h, --help                  mostra questo aiuto ed esce\n"

#: src/gettext.c:279 src/ngettext.c:245
#, fuzzy, c-format
#| msgid "  -V, --version               output version information and exit\n"
msgid "  -V, --version             display version information and exit\n"
msgstr ""
"  -V, --version               mostra le informazioni sulla versione ed esce\n"

#: src/gettext.c:283
#, c-format, no-wrap
msgid ""
"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
"environment variable TEXTDOMAIN.  If the message catalog is not found in the\n"
"regular directory, another location can be specified with the environment\n"
"variable TEXTDOMAINDIR.\n"
"When used with the -s option the program behaves like the 'echo' command.\n"
"But it does not simply copy its arguments to stdout.  Instead those messages\n"
"found in the selected catalog are translated.\n"
"Standard search directory: %s\n"
msgstr ""
"Se il parametro DOMINIOTESTO non è indicato, il dominio è determinato dalla\n"
"variabile d'ambiente TEXTDOMAIN. Se il catalogo dei messaggi non si trova\n"
"nella directory solita, può essere specificata un'altra posizione con la\n"
"variabile d'ambiente TEXTDOMAINDIR.\n"
"Quando è usato con l'opzione -s, il programma si comporta come il comando \n"
"'echo' ma, invece di copiare semplicemente gli argomenti su standard output,\n"
"traduce i messaggi trovati nel catalogo selezionato.\n"
"Directory di ricerca standard: %s\n"

#: src/ngettext.c:216
#, c-format, no-wrap
msgid "Usage: %s [OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL COUNT\n"
msgstr "Uso: %s [OPZIONE] [DOMINIOTESTO] MSGID MSGID-PLURAL NUMERO\n"

#: src/ngettext.c:221
#, c-format, no-wrap
msgid ""
"Display native language translation of a textual message whose grammatical\n"
"form depends on a number.\n"
msgstr ""
"Mostra la traduzione di un messaggio di testo, la cui forma grammaticale\n"
"dipende da un numero, in linguaggio nativo.\n"

#: src/ngettext.c:226
#, c-format, no-wrap
msgid "  -d, --domain=TEXTDOMAIN   retrieve translated message from TEXTDOMAIN\n"
msgstr ""

#: src/ngettext.c:234
#, c-format
msgid ""
"  [TEXTDOMAIN]              retrieve translated message from TEXTDOMAIN\n"
msgstr ""

#: src/ngettext.c:236
#, c-format
msgid ""
"  MSGID MSGID-PLURAL        translate MSGID (singular) / MSGID-PLURAL "
"(plural)\n"
msgstr ""

#: src/ngettext.c:238
#, c-format
msgid ""
"  COUNT                     choose singular/plural form based on this value\n"
msgstr ""

#: src/ngettext.c:249
#, c-format, no-wrap
msgid ""
"If the TEXTDOMAIN parameter is not given, the domain is determined from the\n"
"environment variable TEXTDOMAIN.  If the message catalog is not found in the\n"
"regular directory, another location can be specified with the environment\n"
"variable TEXTDOMAINDIR.\n"
"Standard search directory: %s\n"
msgstr ""
"Se il parametro DOMINIOTESTO non è indicato, il dominio è determinato dalla\n"
"variabile d'ambiente TEXTDOMAIN. Se il catalogo dei messaggi non si trova\n"
"nella directory solita, può essere specificata un'altra posizione con la\n"
"variabile d'ambiente TEXTDOMAINDIR.\n"
"Directory di ricerca standard: %s\n"

#, c-format
#~ msgid "%s: option '--%s' doesn't allow an argument\n"
#~ msgstr "%s: l'opzione '--%s' non accetta argomenti\n"

#, c-format
#~ msgid "%s: unrecognized option '--%s'\n"
#~ msgstr "%s: opzione '--%s' non riconosciuta\n"

#, c-format
#~ msgid "%s: option '-W %s' is ambiguous\n"
#~ msgstr "%s: l'opzione '-W %s' è ambigua\n"

#, c-format
#~ msgid "%s: option '-W %s' doesn't allow an argument\n"
#~ msgstr "%s: l'opzione '-W %s' non accetta argomenti\n"

#, c-format
#~ msgid "%s: option '-W %s' requires an argument\n"
#~ msgstr "%s: l'opzione '-W %s' richiede un argomento\n"

#~ msgid "Report bugs to <bug-gnu-gettext@gnu.org>.\n"
#~ msgstr "Segnalare i bug a <bug-gnu-gettext@gnu.org>.\n"

#, c-format, no-wrap
#~ msgid ""
#~ "  -d, --domain=TEXTDOMAIN   retrieve translated messages from TEXTDOMAIN\n"
#~ "  -e                        enable expansion of some escape sequences\n"
#~ "  -E                        (ignored for compatibility)\n"
#~ "  -h, --help                display this help and exit\n"
#~ "  -n                        suppress trailing newline\n"
#~ "  -V, --version             display version information and exit\n"
#~ "  [TEXTDOMAIN] MSGID        retrieve translated message corresponding\n"
#~ "                            to MSGID from TEXTDOMAIN\n"
#~ msgstr ""
#~ "  -d, --domain=DOMINIOTESTO recupera i messaggi tradotti da DOMINIOTESTO\n"
#~ "  -e                        abilita l'espansione di alcune sequenze di escape\n"
#~ "  -E                        (ignorato per compatibilità)\n"
#~ "  -h, --help                mostra questo aiuto ed esce\n"
#~ "  -V, --version             mostra le informazioni sulla versione ed esce\n"
#~ "  [DOMINIOTESTO] MSGID      recupera da DOMINIOTESTO i messaggi tradotti\n"
#~ "                            corrispondenti a MSGID\n"

#, c-format, no-wrap
#~ msgid ""
#~ "  -d, --domain=TEXTDOMAIN   retrieve translated message from TEXTDOMAIN\n"
#~ "  -e                        enable expansion of some escape sequences\n"
#~ "  -E                        (ignored for compatibility)\n"
#~ "  -h, --help                display this help and exit\n"
#~ "  -V, --version             display version information and exit\n"
#~ "  [TEXTDOMAIN]              retrieve translated message from TEXTDOMAIN\n"
#~ "  MSGID MSGID-PLURAL        translate MSGID (singular) / MSGID-PLURAL (plural)\n"
#~ "  COUNT                     choose singular/plural form based on this value\n"
#~ msgstr ""
#~ "  -d, --domain=DOMINIOTESTO recupera i messaggi tradotti da DOMINIOTESTO\n"
#~ "  -e                        abilita l'espansione di alcune sequenze di escape\n"
#~ "  -E                        (ignorato per compatibilità)\n"
#~ "  -h, --help                mostra questo aiuto ed esce\n"
#~ "  -V, --version             mostra le informazioni sulla versione ed esce\n"
#~ "  [DOMINIOTESTO]            recupera da DOMINIOTESTO i messaggi tradotti\n"
#~ "  MSGID MSGID-PLURAL        traduce MSGID (singolare) e MSGID-PLURAL (plurale)\n"
#~ "  NUMERO                    sceglie la forma singolare/plurale in base a\n"
#~ "                            questo valore\n"
#~ "\n"
