<div dir="ltr">Grazie mille.
Ammetto che io ho solo lavorato sulle traduzioni fuzzy o mancanti, non ho rivisto tutte quelle vecchie.<div>Accetterò molti dei tuoi consigli, tranne:</div><div>1. Sulla traduzione di "array" con "vettore" ho ancora qualche dubbio, mi pare più universale la prima.</div><div>2. Per quanto riguarda le virgolette, mi sembra che l'usanza fosse di tradurre sempre `xxx' con "xxx", tranne nei casi in cui si sarebbe generata palese confusione, nel qual caso «xxx» (e quindi il famoso `"' sarebbe stato da tradurre con «"» e non con """ ). Io preferirei attenermi a questa regola, anche perchè in generale trovo un po' fuori moda le «».</div><div>3. Infine, io cerco sempre di evitare il "a me", "me stesso", mi sembra che in italiano si cerchino sempre delle forme più neutre, vediamo come riesco a girare le frasi. (per inciso quel "I have no name" è una stringa usata come nome utente in assenza del nome effettivo! lo renderei come "Senza nome").</div><div><br></div><div>Luca</div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">Il giorno dom 11 mag 2025 alle ore 15:35 Giuseppe Sacco <<a href="mailto:giuseppe@sguazz.it">giuseppe@sguazz.it</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Luca,<br>
il testo è lungo e non ho ancora finito, ma ti passo questa prima parte<br>
di commenti. L'ultima traduzione che ho commentato è l'ultima che ho<br>
controllato. Cercherò di vedere le altre stringhe nei prossimi giorni.<br>
<br>
Vedrai che a volte ci sono dei commenti che avrebbero un grosso<br>
impatto, come ad esempio quello sulle virgolette o sulla traduzione di<br>
ARRAY. Ovviamente le mie sono solo proposte.<br>
<br>
Vale poi quanto già scritto in questo thread riguardo all'uso del<br>
doppio spazio: io userei lo spazio singolo.<br>
<br>
Ciao,<br>
Giuseppe<br>
<br>
Il giorno gio, 08/05/2025 alle 09.08 +0200, Luca Vercelli ha scritto:<br>
[...]<br>
> #: arrayfunc.c:63<br>
> msgid "bad array subscript"<br>
> msgstr "indice dell'array errato"<br>
<br>
In generale io credo che avrei tradotto dappertutto «array» con<br>
«vettore». Lo so che il termine è sicuramente accettato da tutti anche<br>
in Italia, ma è una di quelle parole per le quali anche la traduzione<br>
italiana è sufficientemente diffusa.<br>
<br>
[...]<br>
> #: bashline.c:4628<br>
> msgid "bash_execute_unix_command: cannot find keymap for command"<br>
> msgstr ""<br>
> "bash_execute_unix_command: impossibile trovare una mappatura per il comando"<br>
<br>
qui si perde un po' il riferimento alla tastiera. «mappatura» è forse<br>
troppo generico. Potrebbe andare bene qualcosa come<br>
«combinazione/sequenza di tasti», oppure cercare di usare<br>
«scorciatoia»?<br>
<br>
[...]<br>
> #: bashline.c:4799<br>
> #, c-format<br>
> msgid "%s: first non-whitespace character is not `\"'"<br>
> msgstr "%s: il primo carattere non spazio non è \"\"\""<br>
<br>
nell'originale si ha qualcosa del tipo `"', mentre in italiano<br>
diventa """, che non è chiarissimo. Forse potresti provare a tradurre tutte<br>
le occorrenze del virgolettato `' con «», quindi in questo caso sarebbe «"».<br>
Invece lascerei invariata la traduzione quando l'originale usa già le doppie<br>
virgolette, come per \"%s\" che è usato in altri punti e che manterrei uguale.<br>
<br>
> #: bashline.c:4828<br>
> #, c-format<br>
> msgid "no closing `%c' in %s"<br>
> msgstr "carattere di chiusura \"%c\" non presente in %s"<br>
<br>
Nel caso che prima avessi scelto di usare «», allora anche in tutti gli<br>
altri punti, come questo qui, dovresti tradurre `' in «».<br>
<br>
[...]<br>
<br>
> #: builtins/common.c:190<br>
> #, c-format<br>
> msgid "%s: not found"<br>
> msgstr "%s: non trovata"<br>
<br>
al femminile? Si riferisce sempre alle opzioni?<br>
<br>
[...]<br>
> #: builtins/common.c:236<br>
> #, c-format<br>
> msgid "`%s': not a pid or valid job spec"<br>
> msgstr "\"%s\": non è un pid o un numero di job valido"<br>
<br>
Qui non userei "numero" per la parte del job perché si tratta di un<br>
jobspec. Normalmente è con un numero, tipo %4, ma può anche essere %+,<br>
oppure %?while, eccetera. In altri posti hai usato «specifica dei job»<br>
<br>
[...]<br>
> #: builtins/common.c:271<br>
> #, c-format<br>
> msgid "%s: no job control"<br>
> msgstr "%s: nessun controllo dei job"<br>
><br>
> #: builtins/common.c:273<br>
> msgid "no job control"<br>
> msgstr "nessun controllo dei job"<br>
<br>
In queste due non capisco bene il contesto. Il controllo in questione è<br>
una cosa che si attiva nella bash se il sistema operativo lo consente,<br>
e vale per tutti i job, non è una cosa dei singoli job, ma «nessuno» fa<br>
pensare a qualcosa che potrebbe essere attivo o meno per ciascun job.<br>
Inoltre in inglese è al singolare. Mi spiace, ma non saprei bene come<br>
tradurlo.<br>
<br>
[...]<br>
> #: builtins/common.c:1028 builtins/set.def:964 variables.c:3868<br>
> #, c-format<br>
> msgid "%s: cannot unset: readonly %s"<br>
> msgstr "%s: impossibile azzerare: %s in sola lettura"<br>
><br>
> #: builtins/common.c:1033 builtins/set.def:930<br>
> variables.c:3873<br>
> #, c-format<br>
> msgid "%s: cannot unset"<br>
> msgstr "%s: impossibile azzerare"<br>
<br>
In queste due non userei «azzerare» che, almeno a me, fa capire che il<br>
valore della variabile viene «svuotato» lasciando la variabile senza<br>
valore. Invece «unset» dovrebbe eliminare del tutto la variabile<br>
dall'ambiente di lavoro. In questo senso credo che userei «annullare» o<br>
«cancellare» o «rimuovere».<br>
<br>
[...]<br>
> #: builtins/complete.def:501 builtins/complete.def:644<br>
> #: builtins/complete.def:899<br>
> #, c-format<br>
> msgid "%s: no completion specification"<br>
> msgstr "%s: nessun completamento specificato"<br>
<br>
Credo che dovrebbe essere «nessuna specifica di completamento»<br>
<br>
[...]<br>
><br>
> #: builtins/declare.def:567 variables.c:3346<br>
> #, c-format<br>
> msgid "%s: nameref variable self references not allowed"<br>
> msgstr "%s: riferimento a nome autoreferenziale non permesso"<br>
<br>
qui la frase inglese è comprensibile, ma non capisco quella italiana 🙂<br>
Non ho capito come hai deciso di tradurre nameref, ma la frase completa<br>
potrebbe essere qualcosa del tipo «non si può usare un nameref che<br>
punti a se stesso».<br>
<br>
[...]<br>
> #: builtins/declare.def:572 variables.c:2035 variables.c:3343<br>
> #, c-format<br>
> msgid "%s: circular name reference"<br>
> msgstr "%s: riferimento a nome circolare"<br>
<br>
qui la frase è ambigua, ma immagino che ad essere circolare sia il<br>
riferimento più che il nome. «riferimento circolare a nome» potrebbe<br>
risolvere l'ambiguità.<br>
<br>
[...]<br>
> #: builtins/evalfile.c:143<br>
> #, c-format<br>
> msgid "%s: not a regular file"<br>
> msgstr "%s: non è un file regolare"<br>
<br>
«regolare» è molto americano; magari potresti scrivere «normale»,<br>
oppure non capito bene il contesto.<br>
<br>
[...]<br>
><br>
> #: builtins/exit.def:116<br>
> #, c-format<br>
> msgid ""<br>
> "There are stopped jobs.\n"<br>
> msgstr ""<br>
> "Sono presenti job interrotti.\n"<br>
><br>
> #: builtins/exit.def:118<br>
> #, c-format<br>
> msgid ""<br>
> "There are running jobs.\n"<br>
> msgstr ""<br>
> "Ci sono job in esecuzione.\n"<br>
<br>
«there are» è tradotto diversamente nelle due frasi, ma credo che<br>
andrebbero invece omologate.<br>
<br>
[...]<br>
> #: builtins/getopt.c:110<br>
> #, c-format<br>
> msgid ""<br>
> "%s: illegal option -- %c\n"<br>
> msgstr ""<br>
> "%s: opzione illecita -- %c\n"<br>
<br>
Non ho mai visto tradurre illegal con illecito nel contesto<br>
informatico, sicché a me suona un po' strano. Avrei messo un classico<br>
«non consentita», ma i gusti sono gusti :-)<br>
<br>
[...]<br>
> #: builtins/hash.def:144<br>
> #, c-format<br>
> msgid ""<br>
> "%s: hash table empty\n"<br>
> msgstr ""<br>
> "%s tabella di hash vuota\n"<br>
<br>
qui manca il «:». Non so se sia importante.<br>
<br>
[...]<br>
> #: expr.c:586<br>
> msgid "bug: bad expassign token"<br>
> msgstr "bug: token di expassign errato"<br>
<br>
Ci ho messo un po' e non sono ancora sicuro del risultato, ma credo che<br>
«expassign» sia un assegnamento che ha una espressione a destra del<br>
simbolo «=». Se così fosse, io cercherei di rendere più comprensibile<br>
questo messaggio, almeno in italiano, ma non mi è chiaro il contesto.<br>
<br>
[...]<br>
> #: expr.c:1450 expr.c:1471<br>
> msgid "--: assignment requires lvalue"<br>
> msgstr "--: l'assegnazione richiede un valore a sinistra"<br>
><br>
> #: expr.c:1452 expr.c:1473<br>
> msgid "++: assignment requires lvalue"<br>
> msgstr "++: l'assegnazione richiede un valore a sinistra"<br>
<br>
non credo che si possa tradurre «lvalue» con «valore a sinistra», difatti<br>
per definizione un lvalue non è un valore, ma un qualcosa che ha un posto<br>
in memoria (puoi pensarlo come una «L»ocazione), in genere è una variabile.<br>
Giustamente sta a sinistra dell'uguale, in un assegnamento, e quindi diventa<br>
lvalue, ma qui parliamo di pre- e post-incremento, ad esempio di espressioni<br>
come VAR++ o ++VAR. Non è quindi corretto dire valore a sinistra. Se non<br>
capisco male questo messaggio appare quando si scrive una espressione<br>
del tipo 5++ che ha in effetti un valore a sinistra, ma non è un<br>
lvalue, cioè non identifica un posto in memoria nel quale mettere il<br>
risultato.<br>
<br>
Non so se lvalue abbia una traduzione italiana, ma in caso contrario<br>
lascerei la parola invariata.<br>
<br>
[...]<br>
> #: jobs.c:1974 jobs.c:2000<br>
> msgid "Done"<br>
> msgstr "Completato"<br>
[...]<br>
> #: jobs.c:2004<br>
> #, c-format<br>
> msgid "Done(%d)"<br>
> msgstr "Eseguito(%d)"<br>
<br>
questi due sono effettivamente diversi?<br>
<br>
[...]<br>
> #: lib/malloc/malloc.c:364<br>
> #, c-format<br>
> msgid ""<br>
> "malloc: failed assertion: %s\n"<br>
> msgstr ""<br>
> "malloc: asserzione non riuscita: %s\n"<br>
<br>
L'ho sempre tradotto con «fallita». «Non riuscita» è una traduzione<br>
diffusa per questo contesto?<br>
<br>
[...]<br>
> #: lib/malloc/malloc.c:876<br>
> msgid "malloc: block on free list clobbered"<br>
> msgstr "malloc: blocco eliminato nell'elenco dei<br>
> disponibili"<br>
<br>
credo che «clobbered» voglia dire «rovinato». Nel caso di malloc capita<br>
ad esempio quando si tenti fare una free() con un puntatore che non è<br>
stato restituito da malloc(). Ad esempio se faccio p=malloc(n) e poi<br>
free(&p[4]).<br>
<br>
[...]<br>
> #: lib/sh/netopen.c:332<br>
> msgid "network operations not supported"<br>
> msgstr "operazione di rete non supportata"<br>
<br>
qui la frase è al plurale in inglese e al singolare in italiano.<br>
<br>
[...]<br>
> # (ndt) pretty print?<br>
> #: shell.c:827<br>
> msgid "pretty-printing mode ignored in interactive shells"<br>
> msgstr "modalità di stampa elegante ignorata nelle shell interattive"<br>
<br>
Si tratta di una modalità di bash che prende in input un file shell e lo<br>
stampa indentato per bene e senza commenti. Va chiamata così:<br>
$ bash --pretty-print nomefile.sh<br>
<br>
non saprei dire se tradurre «pretty» con «elegante» sia la scelta migliore,<br>
ma non ho suggerimenti buoni.<br>
<br>
[...]<br>
> #: shell.c:1891<br>
> msgid "I have no name!"<br>
> msgstr "Manca il nome"<br>
<br>
credo che ne manchi un pezzetto: «Manca il mio nome»<br>
<br>
[...]<br>
> #: shell.c:2088<br>
> #, c-format<br>
> msgid ""<br>
> "Type `%s -c \"help set\"' for more information about shell options.\n"<br>
> msgstr ""<br>
> "Digitare «%s -c \"help set\"» per ulteriori informazioni sulle opzioni di "<br>
> "shell.\n"<br>
<br>
Ecco, questo è un esempio dell'utilizzo delle varie virgolette.<br>
<br>
[...]<br>
> #: siglist.c:183<br>
> msgid "HFT input data pending"<br>
> msgstr "Dati di input HTF in sospeso"<br>
<br>
HFT è diventato HTF. Non so cosa voglia dire ma nelle stringhe successive non<br>
l'hai cambiato come hai fatto qui.<br>
<br>
[...]<br>
> #: siglist.c:195<br>
> msgid "migrate process to another CPU"<br>
> msgstr "processo spostato su un'altra CPU"<br>
<br>
Qui la frase in inglese non è al passato. Qual è il contesto? Potrebbe<br>
essere «migra processo su altra CPU»?<br>
<br>
[...]<br>
> #: subst.c:7929 subst.c:8097<br>
> msgid "%s: invalid variable name"<br>
> msgstr "\"%s\": nome di variabile non valido"<br>
<br>
Qui ci sono delle virgolette aggiuntive in italiano. È una svista?<br>
<br>
[...]<br>
> #: subst.c:11552<br>
> #, c-format<br>
> msgid "bad substitution: no closing \"`\" in %s"<br>
> msgstr "sostituzione errata: manca «\"» di chiusura in %s"<br>
<br>
Mi pare di capire che il carattere mancante sia «`» e non «"». Potresti controllare?<br>
<br>
[...]<br>
> #: trap.c:459<br>
> #, c-format<br>
> msgid ""<br>
> "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself"<br>
> msgstr ""<br>
> "run_pending_traps: il gestore dei segnali è SIG_DFL, viene inviato "<br>
> "nuovamente %d (%s)"<br>
<br>
forse manca un «a me stesso» finale.<br>
<br>
[...]<br>
> #: builtins.c:184<br>
> msgid "! PIPELINE"<br>
> msgstr ""<br>
<br>
Questa non è tradotta.<br>
<br>
[...]<br>
> #: builtins.c:447<br>
> msgid ""<br>
> "Null command.\n"<br>
> " \n"<br>
> " No effect; the command does nothing.\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " Always succeeds."<br>
> msgstr ""<br>
> "Comando nullo.\n"<br>
> " \n"<br>
> " Nessun effetto; il comando non esegue nulla.\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " ha sempre successo."<br>
<br>
Io qui non direi «non esegue» perché eseguire mi fa venire in mente una<br>
azione esterna, come eseguire un programma esterno; lo tradurrei invece con<br>
«non fa nulla».<br>
<br>
[...]<br>
> #: builtins.c:495<br>
> msgid ""<br>
> "Set variable values and attributes.\n"<br>
> " \n"<br>
> " Declare variables and give them attributes. If no NAMEs are given,\n"<br>
> " display the attributes and values of all variables.\n"<br>
> " \n"<br>
> " Options:\n"<br>
> " -f\trestrict action or display to function names and definitions\n"<br>
> " -F\trestrict display to function names only (plus line number and\n"<br>
> " \t\tsource file when debugging)\n"<br>
> " -g\tcreate global variables when used in a shell function; otherwise\n"<br>
> " \t\tignored\n"<br>
> " -I\tif creating a local variable, inherit the attributes and value\n"<br>
> " \t\tof a variable with the same name at a previous scope\n"<br>
> " -p\tdisplay the attributes and value of each NAME\n"<br>
> " \n"<br>
> " Options which set attributes:\n"<br>
> " -a\tto make NAMEs indexed arrays (if supported)\n"<br>
> " -A\tto make NAMEs associative arrays (if supported)\n"<br>
> " -i\tto make NAMEs have the `integer' attribute\n"<br>
> " -l\tto convert the value of each NAME to lower case on assignment\n"<br>
> " -n\tmake NAME a reference to the variable named by its value\n"<br>
> " -r\tto make NAMEs readonly\n"<br>
> " -t\tto make NAMEs have the `trace' attribute\n"<br>
> " -u\tto convert the value of each NAME to upper case on assignment\n"<br>
> " -x\tto make NAMEs export\n"<br>
> " \n"<br>
> " Using `+' instead of `-' turns off the given attribute, except for a,\n"<br>
> " A, and r.\n"<br>
> " \n"<br>
> " Variables with the integer attribute have arithmetic evaluation (see\n"<br>
> " the `let' command) performed when the variable is assigned a value.\n"<br>
> " \n"<br>
> " When used in a function, `declare' makes NAMEs local, as with the "<br>
> "`local'\n"<br>
> " command. The `-g' option suppresses this behavior.\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " Returns success unless an invalid option is supplied or a variable\n"<br>
> " assignment error occurs."<br>
> msgstr ""<br>
> "Imposta i valori e gli attributi delle variabili.\n"<br>
> " \n"<br>
> " Dichiara le variabili e fornisce loro attributi. Se non vengono forniti "<br>
> "NOMI,\n"<br>
> " visualizza gli attributi e i valori di tutte le variabili.\n"<br>
> " \n"<br>
> " Opzioni:\n"<br>
> " -f\tlimita l'azione o la visualizzazione ai nomi e alle definizioni di "<br>
> "funzione\n"<br>
> " -F\tlimita la visualizzazione ai soli nomi di funzione (più numero di "<br>
> "riga e\n"<br>
> " \t\tfile sorgente durante il debug)\n"<br>
> " -g\tCrea variabili globali quando usato in una funzione di shell; "<br>
> "altrimenti\n"<br>
> " \t\tè ignorato\n"<br>
> " -I\tcreando una variabile locale, eredita attributi e valore\n"<br>
> " \t\tdi una variable con stesso nome in uno scope precedente\n"<br>
> " -p\tvisualizza gli attributi e i valori di ciascun NOME\n"<br>
> " \n"<br>
> " Opzioni che impostano gli attributi:\n"<br>
> " -a\tRende i NOMI array indicizzati (se supportata)\n"<br>
> " -A\tRende i NOMI array associativi (se supportata)\n"<br>
> " -i\tFornisce ai NOMI l'attributo \"integer\"\n"<br>
> " -l\tConverte i valori dei NOMI in lettere minuscole in fase di assegnazione\n"<br>
> " -n\tmake NAME a reference to the variable named by its value\n"<br>
> " -r\tImposta i NOMI in sola lettura\n"<br>
> " -t\tFornisce ai NOMI l'attributo \"trace\"\n"<br>
> " -u\tConverte i valori dei NOMI in lettere maiuscole in fase di assegnazione\n"<br>
> " -x\tImposta i NOMI come esportabili\n"<br>
> " \n"<br>
> " Usando \"+\" al posto di \"-\" disattiva l'attributo fornito, ad\n"<br>
> " eccezione di a, A e r.\n"<br>
> " \n"<br>
> " Le variabili con attributo intero vengono valutate aritmeticamente "<br>
> "(vedere\n"<br>
> " il comando \"let\") quando alla variabile è assegnato un valore.\n"<br>
> " \n"<br>
> " Quando viene usato in una funzione, \"declare\" rende locali i NOMI, "<br>
> "come con\n"<br>
> " il comando \"local\".\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Restituisce successo a meno che non sia fornita una opzione non valida o "<br>
> "si riscontri un errore nell'assegnazione di variabili."<br>
<br>
Qui c'è una parte non tradotta «make NAME a reference to the variable named by its value»<br>
e poi è rimasto un «variable» nella parte italiana.<br>
<br>
[...]<br>
> #: builtins.c:566<br>
> msgid ""<br>
> "Write arguments to the standard output.\n"<br>
> " \n"<br>
> " Display the ARGs, separated by a single space character and followed by "<br>
> "a\n"<br>
> " newline, on the standard output.\n"<br>
> " \n"<br>
> " Options:\n"<br>
> " -n\tdo not append a newline\n"<br>
> " -e\tenable interpretation of the following backslash escapes\n"<br>
> " -E\texplicitly suppress interpretation of backslash escapes\n"<br>
> " \n"<br>
> " `echo' interprets the following backslash-escaped characters:\n"<br>
> " \\a\talert (bell)\n"<br>
> " \\b\tbackspace\n"<br>
> " \\c\tsuppress further output\n"<br>
> " \\e\tescape character\n"<br>
> " \\E\tescape character\n"<br>
> " \\f\tform feed\n"<br>
> " \\n\tnew line\n"<br>
> " \\r\tcarriage return\n"<br>
> " \\t\thorizontal tab\n"<br>
> " \\v\tvertical tab\n"<br>
> " \\\\\tbackslash\n"<br>
> " \\0nnn\tthe character whose ASCII code is NNN (octal). NNN can be\n"<br>
> " \t\t0 to 3 octal digits\n"<br>
> " \\xHH\tthe eight-bit character whose value is HH (hexadecimal). HH\n"<br>
> " \t\tcan be one or two hex digits\n"<br>
> " \\uHHHH\tthe Unicode character whose value is the hexadecimal value "<br>
> "HHHH.\n"<br>
> " \t\tHHHH can be one to four hex digits.\n"<br>
> " \\UHHHHHHHH the Unicode character whose value is the hexadecimal "<br>
> "value\n"<br>
> " \t\tHHHHHHHH. HHHHHHHH can be one to eight hex digits.\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " Returns success unless a write error occurs."<br>
> msgstr ""<br>
> "Scrive argomenti sullo standard output.\n"<br>
> " \n"<br>
> " Visualizza gli ARG sullo standard output, separati da un singolo carattere\n"<br>
> " spazio, e seguiti da un ritorno a capo.\n"<br>
> " \n"<br>
> " Opzioni:\n"<br>
> " -n\tNon accoda un carattere di ritorno a capo\n"<br>
> " -e\tAbilita l'interpretazione dei seguenti caratteri backslash di "<br>
> "escape\n"<br>
> " -E\tDisabilita esplicitamente l'interpretazione dei caratteri "<br>
> "backslash di escape\n"<br>
> " \n"<br>
> " \"echo\" interpreta i seguenti caratteri backslash di escape:\n"<br>
> " \\a\tavviso (campanello)\n"<br>
> " \\b\tbackspace\n"<br>
> " \\c\telimina ulteriore output\n"<br>
> " \\e\tcarattere di escape\n"<br>
> " \\E\tcarattere di escape\n"<br>
> " \\f\tavanzamento pagina\n"<br>
> " \\n\tritorno a capo\n"<br>
> " \\r\tritorno carrello\n"<br>
> " \\t\ttabulazione orizzontale\n"<br>
> " \\v\ttabulazione verticale\n"<br>
> " \\\\\tbackslash\n"<br>
> " \\0nnn\til carattere il cui codice ASCII è NNN (ottale). NNN può "<br>
> "avere\n"<br>
> " \t\tda 0 a 3 cifre ottali\n"<br>
> " \\xHH\til carattere otto bit il cui valore è HH (esadecimale). HH "<br>
> "può\n"<br>
> " \t\tavere una o due cifre esadecimali\n"<br>
> " \t\tHHHH può avere da una a quattro cifre esadecimali.\n"<br>
> " \\UHHHHHHHH il carattere Unicode il cui valore è HHHH (esadecimale).\n"<br>
> " \t\tHHHHHHHH. HHHHHHHH può avere da una a otto cifre esadecimali.\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Restituisce successo a meno che non venga riscontrato un errore di "<br>
> "scrittura."<br>
<br>
Nella parte italiana manca questa specifica:<br>
" \\uHHHH\tthe Unicode character whose value is the hexadecimal value "<br>
"HHHH.\n"<br>
<br>
[...]<br>
> #: builtins.c:666<br>
> msgid ""<br>
> "Parse option arguments.\n"<br>
> " \n"<br>
> " Getopts is used by shell procedures to parse positional parameters\n"<br>
> " as options.\n"<br>
> " \n"<br>
> " OPTSTRING contains the option letters to be recognized; if a letter\n"<br>
> " is followed by a colon, the option is expected to have an argument,\n"<br>
> " which should be separated from it by white space.\n"<br>
> " \n"<br>
> " Each time it is invoked, getopts will place the next option in the\n"<br>
> " shell variable $name, initializing name if it does not exist, and\n"<br>
> " the index of the next argument to be processed into the shell\n"<br>
> " variable OPTIND. OPTIND is initialized to 1 each time the shell or\n"<br>
> " a shell script is invoked. When an option requires an argument,\n"<br>
> " getopts places that argument into the shell variable OPTARG.\n"<br>
> " \n"<br>
> " getopts reports errors in one of two ways. If the first character\n"<br>
> " of OPTSTRING is a colon, getopts uses silent error reporting. In\n"<br>
> " this mode, no error messages are printed. If an invalid option is\n"<br>
> " seen, getopts places the option character found into OPTARG. If a\n"<br>
> " required argument is not found, getopts places a ':' into NAME and\n"<br>
> " sets OPTARG to the option character found. If getopts is not in\n"<br>
> " silent mode, and an invalid option is seen, getopts places '?' into\n"<br>
> " NAME and unsets OPTARG. If a required argument is not found, a '?'\n"<br>
> " is placed in NAME, OPTARG is unset, and a diagnostic message is\n"<br>
> " printed.\n"<br>
> " \n"<br>
> " If the shell variable OPTERR has the value 0, getopts disables the\n"<br>
> " printing of error messages, even if the first character of\n"<br>
> " OPTSTRING is not a colon. OPTERR has the value 1 by default.\n"<br>
> " \n"<br>
> " Getopts normally parses the positional parameters, but if arguments\n"<br>
> " are supplied as ARG values, they are parsed instead.\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " Returns success if an option is found; fails if the end of options is\n"<br>
> " encountered or an error occurs."<br>
> msgstr ""<br>
> "Analizza gli argomenti di opzione.\n"<br>
> " \n"<br>
> " Getopts è usato dalle procedure di shell per analizzare i parametri\n"<br>
> " posizionali come opzioni.\n"<br>
> " \n"<br>
> " STRINGAOPZ contiene le lettere di opzione da riconoscere; se una "<br>
> "lettera\n"<br>
> " è seguita da un due punti, ci si aspetta che l'opzione abbia un "<br>
> "argomento,\n"<br>
> " che dovrebbe essere separato da uno spazio.\n"<br>
> " \n"<br>
> " Ogni volta che viene evocato getopts posiziona l'opzione successiva\n"<br>
> " nella variabile di shell $nome inizializzando il nome, se non esiste,\n"<br>
> " e l'indice dell'argomento successivo da elaborare nella variabile di\n"<br>
> " shell OPTIND. OPTIND è inizializzata a 1 ogni volta che viene invocata\n"<br>
> " la shell o uno script di shell. Quando una opzione richiede un "<br>
> "argomento,\n"<br>
> " getopts posiziona tale argomento nella variabile di shell OPTARG.\n"<br>
> " \n"<br>
> " getopts riporta gli errori in uno o due modi. Se il primo carattere "<br>
> "della\n"<br>
> " STRINGAOPZ è un due punti, riporta gli errori in silenzio. In questa\n"<br>
> " modalità non vengono stampati messaggi di errore. Se viene riscontrata "<br>
> "una\n"<br>
> " opzione non valida, getopts posiziona il carattere di opzione trovato "<br>
> "in\n"<br>
> " ARGOPZ. Se un argomento richiesto non viene trovato, getopts posiziona\n"<br>
> " un \":\" nel NOME e imposta ARGOPZ al carattere di opzione trovato. Se "<br>
> "getopts\n"<br>
> " non è in modalità silenziosa e viene riscontrata una opzione non valida, "<br>
> "getopts\n"<br>
> " posiziona \"?\" nel NOME e azzera ARGOPZ. Se un argomento richiesto non "<br>
> "viene\n"<br>
> " trovato, viene posizionato un \"?\" nel NOME, ARGOPZ viene azzerato e "<br>
> "viene stampato\n"<br>
> " un messaggio diagnostico.\n"<br>
> " \n"<br>
> " Se il valore della variabile di shell ERROPZ è pari a 0, getopts "<br>
> "disabilita\n"<br>
> " la stampa dei messaggi di errore anche se il primo carattere della "<br>
> "STRINGAOPZ\n"<br>
> " non è un due punti. Il valore predefinito di ERROPZ è pari a 1.\n"<br>
> " \n"<br>
> " Getopts normalmente analizza i parametri posizionali, ma se vengono\n"<br>
> " forniti degli argomenti come valori ARG, vengono analizzati questi ultimi.\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Restituisce successo se viene trovata una opzione, insuccesso se viene "<br>
> "raggiunta\n"<br>
> " la fine delle opzioni o viene riscontrato un errore."<br>
<br>
Nella riga:<br>
" Ogni volta che viene evocato getopts posiziona l'opzione successiva\n"<br>
non userei evocare, ma invocare.<br>
<br>
Nella riga:<br>
" nella variabile di shell $nome inizializzando il nome, se non esiste,\n"<br>
io toglierei «il» perché non si riferisce al nome ma alla variabile chiamata nome.<br>
Farei lo stesso anche per «nel NOME» che è presente più volte e che cambierei in «in NOME» <br>
<br>
Infine, c'è la traduzione dei nomi di variabile OPTARG, OPTIND e OPTERR che credo siano<br>
fissi, quindi non andrebbero tradotti.<br>
<br>
[...]<br>
> #: builtins.c:748<br>
> msgid ""<br>
> "Display or execute commands from the history list.\n"<br>
> " \n"<br>
> " fc is used to list or edit and re-execute commands from the history list."<br>
> "\n"<br>
> " FIRST and LAST can be numbers specifying the range, or FIRST can be a\n"<br>
> " string, which means the most recent command beginning with that\n"<br>
> " string.\n"<br>
> " \n"<br>
> " Options:\n"<br>
> " -e ENAME\tselect which editor to use. Default is FCEDIT, then EDITOR,"<br>
> "\n"<br>
> " \t\tthen vi\n"<br>
> " -l \tlist lines instead of editing\n"<br>
> " -n\tomit line numbers when listing\n"<br>
> " -r\treverse the order of the lines (newest listed first)\n"<br>
> " \n"<br>
> " With the `fc -s [pat=rep ...] [command]' format, COMMAND is\n"<br>
> " re-executed after the substitution OLD=NEW is performed.\n"<br>
> " \n"<br>
> " A useful alias to use with this is r='fc -s', so that typing `r cc'\n"<br>
> " runs the last command beginning with `cc' and typing `r' re-executes\n"<br>
> " the last command.\n"<br>
> " \n"<br>
> " The history builtin also operates on the history list.\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " Returns success or status of executed command; non-zero if an error "<br>
> "occurs."<br>
> msgstr ""<br>
> "Visualizza o esegue comandi dall'elenco della cronologia.\n"<br>
> " \n"<br>
> " fc è usato per elencare, modificare e rieseguire comandi dall'elenco "<br>
> "della cronologia.\n"<br>
> " PRIMO e ULTIMO possono essere numeri che specificano l'intervallo oppure "<br>
> "PRIMO può\n"<br>
> " essere una stringa, nel qual caso significa il comando più recente che "<br>
> "inizia con\n"<br>
> " quella stringa.\n"<br>
> " \n"<br>
> " Opzioni:\n"<br>
> " -e EDITOR\tSeleziona l'editor da usare. Il predefinito è FCEDIT, "<br>
> "quindi EDITOR,\n"<br>
> " \t\tinfine vi\n"<br>
> " -l \tElenca le righe invece di modificarle\n"<br>
> " -n\tOmette i numeri di riga nell'elencare i comandi\n"<br>
> " -r\tInverte l'ordine delle righe (elenca prima le più recenti)\n"<br>
> " \n"<br>
> " Con il formato \"fc -s [pat=rep ...] [comando]\", il COMANDO è\n"<br>
> " rieseguito dopo aver effettuato la sostituzione VECCHIO=NUOVO.\n"<br>
> " \n"<br>
> " Un alias utile da usare insieme è r=\"fc -s\", in modo che digitando \"r "<br>
> "cc\"\n"<br>
> " viene eseguito l'ultimo comando che inizia con \"cc\" e digitando \"r\" "<br>
> "riesegue\n"<br>
> " l'ultimo comando.\n"<br>
> " \n"<br>
> " Il comando interno history opera anche sull'elenco della cronologia.\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Restituisce successo o lo stato del comando eseguito, non zero se si "<br>
> "riscontra un errore."<br>
<br>
Alla riga<br>
" -e EDITOR\tSeleziona l'editor da usare. Il predefinito è FCEDIT, "<br>
credo che EDITOR debba invece essere «ENAME» oppure «NOMEEDITOR». Se però non<br>
metti ENAME dovresti cambiare anche la corrispondente traduzione che riporto sotto:<br>
<br>
#: builtins.c:105<br>
msgid "fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]"<br>
msgstr "fc [-e ename] [-lnr] [primo] [ultimo] oppure fc -s [pat=rep][comando]"<br>
<br>
[...]<br>
> #: builtins.c:795<br>
> msgid ""<br>
> "Move jobs to the background.\n"<br>
> " \n"<br>
> " Place the jobs identified by each JOB_SPEC in the background, as if "<br>
> "they\n"<br>
> " had been started with `&'. If JOB_SPEC is not present, the shell's "<br>
> "notion\n"<br>
> " of the current job is used.\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " Returns success unless job control is not enabled or an error occurs."<br>
> msgstr ""<br>
> "Sposta i job in background.\n"<br>
> " \n"<br>
> " Mette il jobs identificato da ogni SPEC_JOB in background, come se\n"<br>
> " fossero stati avviati con \"&\". Se SPEC_JOB non è presente, viene\n"<br>
> " usata la nozione di job corrente della shell.\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Restituisce successo a meno che il controllo dei job non sia abilitato o "<br>
> "si riscontri un errore."<br>
<br>
Altrove background è stato tradotto con «sullo sfondo», qui invece no.<br>
Inoltre «Mette il jobs identificato» dovrebbe essere tutto al<br>
plurale: «Mette i job identificati»<br>
<br>
[...]<br>
> #: builtins.c:858<br>
> msgid ""<br>
> "Display or manipulate the history list.\n"<br>
> " \n"<br>
> " Display the history list with line numbers, prefixing each modified\n"<br>
> " entry with a `*'. An argument of N lists only the last N entries.\n"<br>
> " \n"<br>
> " Options:\n"<br>
> " -c\tclear the history list by deleting all of the entries\n"<br>
> " -d offset\tdelete the history entry at position OFFSET. Negative\n"<br>
> " \t\toffsets count back from the end of the history list\n"<br>
> " \n"<br>
> " -a\tappend history lines from this session to the history file\n"<br>
> " -n\tread all history lines not already read from the history file\n"<br>
> " \t\tand append them to the history list\n"<br>
> " -r\tread the history file and append the contents to the history\n"<br>
> " \t\tlist\n"<br>
> " -w\twrite the current history to the history> file\n"<br>
> " \n"<br>
> " -p\tperform history expansion on each ARG and display the result\n"<br>
> " \t\twithout storing it in the history list\n"<br>
> " -s\tappend the ARGs to the history list as a single entry\n"<br>
> " \n"<br>
> " If FILENAME is given, it is used as the history file. Otherwise,\n"<br>
> " if HISTFILE has a value, that is used. If FILENAME is not supplied\n"<br>
> " and HISTFILE is unset or null, the -a, -n, -r, and -w options have\n"<br>
> " no effect and return success.\n"<br>
> " \n"<br>
> " The fc builtin also operates on the history list.\n"<br>
> " \n"<br>
> " If the HISTTIMEFORMAT variable is set and not null, its value is used\n"<br>
> " as a format string for strftime(3) to print the time stamp> associated\n"<br>
> " with each displayed history entry. No time stamps are printed otherwise."<br>
> "\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " Returns success unless an invalid option is given or an error occurs."<br>
> msgstr ""<br>
> "Visualizza o manipola l'elenco della cronologia.\n"<br>
> " \n"<br>
> " Visualizza l'elenco della cronologia con i numeri di riga, aggiungendo a "<br>
> "ciascuna voce\n"<br>
> " modificata il prefisso \"*\". Un argomento pari a N elenca solo le "<br>
> "ultime N voci.\n"<br>
> " \n"<br>
> " Opzioni:\n"<br>
> " -c\tPulisce la cronologia eliminando tutte le voci\n"<br>
> " -d posiz\tElimina la voce della cronologia alla posizione POSIZ.\n"<br>
> " \t\tPosizioni negative indicano di contare all'indietro dalla fine\n"<br>
> " \t\tdell'elenco della cronologia.\n"<br>
> " \n"<br>
> " -a\tAccoda righe al file della cronologia relative alla sessione "<br>
> "attuale\n"<br>
> " -n\tLegge tutte le righe non ancora lette dal file della cronologia\n"<br>
> " \t\te le accodano all'elenco della cronologia\n"<br>
> " -r\tLegge il file della cronologia e ne accoda il contenuto all'elenco\n"<br>
> " \t\tdella cronologia\n"<br>
> " -w\tScrive la cronologia corrente nel file della cronologia\n"<br>
> " \n"<br>
> " -p\tEffettua l'espansione della cronologia su ciascun ARG e visualizza "<br>
> "il\n"<br>
> " \t\trisultato senza memorizzarlo nell'elenco della cronologia\n"<br>
> " -s\tAccoda gli ARG all'elenco della cronologia come una voce singola\n"<br>
> " \n"<br>
> " Se viene fornito il NOMEFILE, viene usato come file della cronologia. \n"<br>
> " Altrimenti, se HISTFILE è valorizzato, viene usato quest'ultimo. Se\n\n"<br>
> " NOMEFILE non viene fornito, e HISTFILE non è settato oppure è null, le\n"<br>
> " opzioni -a, -n, -r e -w non hanno effetto e termina con successo.\n"<br>
> " \n"<br>
> " Se la variabile $HISTTIMEFORMAT è impostata e non è nulla, il suo valore "<br>
> "viene usato\n"<br>
> " come una stringa di formato per strftime(3) per stampare l'orario "<br>
> "associato a ciascuna\n"<br>
> " voce di cronologia visualizzata. Altrimenti non viene stampato alcun "<br>
> "orario.\n"<br>
> " \n"<br>
> " Il comando interno fc opera anche sull'elenco della cronologia.\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Restituisce successo a meno che non sia fornita una opzione non valida o "<br>
> "si riscontri un errore."<br>
<br>
Alla riga<br>
" \t\te le accodano all'elenco della cronologia\n"<br>
credo che accodare vada declinato al singolare.<br>
<br>
Alla riga:<br>
" Altrimenti, se HISTFILE è valorizzato, viene usato quest'ultimo. Se\n\n"<br>
c'è un ritorno a capo di troppo, credo.<br>
<br>
[...]<br>
> #: builtins.c:926<br>
> msgid ""<br>
> "Remove jobs from current shell.\n"<br>
> " \n"<br>
> " Removes each JOBSPEC argument from the table of active jobs. Without\n"<br>
> " any JOBSPECs, the shell uses its notion of the current job.\n"<br>
> " \n"<br>
> " Options:\n"<br>
> " -a\tremove all jobs if JOBSPEC is not supplied\n"<br>
> " -h\tmark each JOBSPEC so that SIGHUP is not sent to the job if the\n"<br>
> " \t\tshell receives a SIGHUP\n"<br>
> " -r\tremove only running jobs\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " Returns success unless an invalid option or JOBSPEC is given."<br>
> msgstr ""<br>
> "Rimuove job dalla shell corrente.\n"<br>
> " \n"<br>
> " Rimuove ciascun argomento SPECJOB dalla tabella dei job attivi. Senza "<br>
> "alcun\n"<br>
> " SPECJOB, la shell usa la sua nozione del job corrente.\n"<br>
> " \n"<br>
> " Opzioni:\n"<br>
> " -a\tRimuove tutti i job se non viene fornito uno SPECJOB\n"<br>
> " -h\tMarca ciascun SPECJOB in modo che non venga inviato un SIGHUP al\n"<br>
> " \t\tjob se la shell lo riceve\n"<br>
> " -r\tRimuove solo i job in esecuzione\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Restituisce successo a meno che non venga fornita una opzione non valida\n"<br>
> " o uno SPECJOB."<br>
<br>
Cambierei le ultime due righe perché sembra che ci sia un errore nel caso di opzione non valida,<br>
oppure se viene fornito un qualsiasi SPECJOB; invece deve dare errore se c'è una opzione o una<br>
SPECJOB non valida.<br>
<br>
[...]<br>
> #: builtins.c:945<br>
> msgid ""<br>
> "Send a signal to a job.\n"<br>
> " \n"<br>
> " Send the processes identified by PID or JOBSPEC the signal named by\n"<br>
> " SIGSPEC or SIGNUM. If neither SIGSPEC nor SIGNUM is present, then\n"<br>
> " SIGTERM is assumed.\n"<br>
> " \n"<br>
> " Options:\n"<br>
> " -s sig\tSIG is a signal name\n"<br>
> " -n sig\tSIG is a signal number\n"<br>
> " -l\tlist the signal names; if arguments follow `-l' they are\n"<br>
> " \t\tassumed to be signal numbers for which names should be listed\n"<br>
> " -L\tsynonym for -l\n"<br>
> " \n"<br>
> " Kill is a shell builtin for two reasons: it allows job IDs to be used\n"<br>
> " instead of process IDs, and allows processes to be killed if the limit\n"<br>
> " on processes that you can create is reached.\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " Returns success unless an invalid option is given or an error occurs."<br>
> msgstr ""<br>
> "Invia un segnale a un job.\n"<br>
> " \n"<br>
> " Invia il segnale chiamato dallo SPECSEGN o dal NUMSEGN ai processi "<br>
> "identificati\n"<br>
> " dal PID o dallo SPECJOB. Se non è presente né lo SPECSEGN né il NUMSEGN,"<br>
> " viene\n"<br>
> " allora considerato SIGTERM.\n"<br>
> " \n"<br>
> " Opzioni:\n"<br>
> " -s segn\tSEGN è il nome di un segnale\n"<br>
> " -n segn\tSEGN è il numero di un segnale\n"<br>
> " -l\telenca i nomi dei segnali; se ci sono argomenti dopo \"-l\"\n"<br>
> " \t\tvengono considerati come numeri di segnale di cui elencare i nomi\n"<br>
> " -L\tsinonimo di -l\n"<br>
> " \n"<br>
> " Kill è un comando interno di shell per due ragioni: permette di usare\n"<br>
> " gli ID dei job invece degli ID dei processi e permette di uccidere quei\n"<br>
> " processi che abbiano raggiunto un numero limite prefissato di processi\n"<br>
> " creabili.\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Restituisce successo a meno che non sia fornita una opzione non valida o "<br>
> "si riscontri un errore."<br>
<br>
Alla riga<br>
" Invia il segnale chiamato dallo SPECSEGN o dal NUMSEGN ai processi "<br>
togliere la preposizione articolata in questo modo:<br>
" Invia il segnale chiamato SPECSEGN o NUMSEGN ai processi "<br>
<br>
e lo stessa anche dopo, ad esempio:<br>
" dal PID o dallo SPECJOB. Se non è presente né lo SPECSEGN né il NUMSEGN,"<br>
diventerebbe:<br>
" dal PID o dallo SPECJOB. Se non è presente né SPECSEGN né NUMSEGN,"<br>
<br>
Questa parte invece è sbagliata:<br>
" Kill è un comando interno di shell per due ragioni: permette di usare\n"<br>
" gli ID dei job invece degli ID dei processi e permette di uccidere quei\n"<br>
" processi che abbiano raggiunto un numero limite prefissato di processi\n"<br>
" creabili.\n"<br>
<br>
il limite di processi non è una caratteristica del processo, ma dell'utente<br>
(o del container, ma quella è un'altra storia). Vale a dire che non può <br>
capitare che un processo abbia raggiunto il limite di processi. Invece capita <br>
che l'utente abbia un limite e lo raggiunga. In questo caso, se kill fosse un<br>
comando esterno, la bash dovrebbe creare un processo per eseguirlo, ma questo <br>
fallirebbe a causa del limite. Invece in quanto comando interno, viene<br>
eseguito dallo stesso processo della bash, senza incappare nel limite di processi.<br>
<br>
[...]<br>
> #: builtins.c:969<br>
> msgid ""<br>
> "Evaluate arithmetic expressions.\n"<br>
> " \n"<br>
> " Evaluate each ARG as an arithmetic expression. Evaluation is done in\n"<br>
> " fixed-width integers with no check for overflow, though division by 0\n"<br>
> " is trapped and flagged as an error. The following list of operators is\n"<br>
> " grouped into levels of equal-precedence operators. The levels are "<br>
> "listed\n"<br>
> " in order of decreasing precedence.\n"<br>
> " \n"<br>
> " \tid++, id--\tvariable post-increment, post-decrement\n"<br>
> " \t++id, --id\tvariable pre-increment, pre- decrement\n"<br>
> " \t-, +\t\tunary minus, plus\n"<br>
> " \t!, ~\t\tlogical and bitwise negation\n"<br>
> " \t**\t\texponentiation\n"<br>
> " \t*, /, %\t\tmultiplication, division, remainder\n"<br>
> " \t+, -\t\taddition, subtraction\n"<br>
> " \t<<, >>\t\tleft and right bitwise shifts\n"<br>
> " \t<=, >=, <, >\tcomparison\n"<br>
> " \t==, !=\t\tequality, inequality\n"<br>
> " \t&\t\tbitwise AND\n"<br>
> " \t^\t\tbitwise XOR\n"<br>
> " \t|\t\tbitwise OR\n"<br>
> " \t&&\t\tlogical AND\n"<br>
> " \t||\t\tlogical OR\n"<br>
> " \texpr ? expr : expr\n"<br>
> " \t\t\tconditional operator\n"<br>
> " \t=, *=, /=, %=,\n"<br>
> " \t+=, -=, <<=, >>=,\n"<br>
> " \t&=, ^=, |=\tassignment\n"<br>
> " \n"<br>
> " Shell variables are allowed as operands. The name of the variable\n"<br>
> " is replaced by its value (coerced to a fixed-width integer) within\n"<br>
> " an expression. The variable need not have its integer attribute\n"<br>
> " turned on to be used in an expression.\n"<br>
> " \n"<br>
> " Operators are evaluated in order of precedence. Sub-expressions in\n"<br>
> " parentheses are evaluated first and may override the precedence\n"<br>
> " rules above.\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " If the last ARG evaluates to 0, let returns 1; let returns 0 otherwise."<br>
> msgstr ""<br>
> "Valuta espressioni aritmetiche.\n"<br>
> " \n"<br>
> " Valuta ciascun ARG come una espressione aritmetica. La valutazione è\n"<br>
> " effettuata con interi a larghezza fissa senza alcun controllo sull'overflow,\n"<br>
> " sebbene la divisione per 0 sia catturata e contrassegnata come un errore.\n"<br>
> " Il seguente elenco di operatori è raggruppato per livelli di operatore\n"<br>
> " di uguale precedenza. I livelli sono elencati in ordine di precedenza\n"<br>
> " decrescente.\n"<br>
> " \n"<br>
> " \tid++, id--\tIncremento e decremento successivo di variabile\n"<br>
> " \t++id, --id\tIncremento e decremento precedente di variabile\n"<br>
> " \t-, +\t\tMeno e più unari\n"<br>
> " \t!, ~\t\tNegazione logica e bit a bit\n"<br>
> " \t**\t\tEsponenziazione\n"<br>
> " \t*, /, %\t\tMoltiplicazione, divisione, resto\n"<br>
> " \t+, -\t\tAddizione, sottrazione\n"<br>
> " \t<<, >>\t\tScorrimento bit a bit sinistro e destro\n"<br>
> " \t<=, >=, <, >\tComparazione\n"<br>
> " \t==, !=\t\tUguaglianza, disuguaglianza\n"<br>
> " \t&\t\tAND bit a bit\n"<br>
> " \t^\t\tXOR bit a bit\n"<br>
> " \t|\t\tOR bit a bit\n"<br>
> " \t&&\t\tAND logico\n"<br>
> " \t||\t\tOR logico\n"<br>
> " \tespr ? espr : espr\n"<br>
> " \t\t\tOperatore condizionale\n"<br>
> " \t=, *=, /=, %=,\n"<br>
> " \t+=, -=, <<=, >>=,\n"<br>
> " \t&=, ^=, |=\tAssegnazione\n"<br>
> " \n"<br>
> " Le variabili di shell sono ammesse come operandi. Il nome della "<br>
> "variabile è\n"<br>
> " sostituito dal suo valore (forzato a un intero a larghezza fissa) "<br>
> "all'interno\n"<br>
> " di una espressione. Non è necessario che la variabile abbia il proprio "<br>
> "attributo\n"<br>
> " intero abilitato per essere usata in una espressione.\n"<br>
> " \n"<br>
> " Gli operatori sono valutati in ordine di precedenza. Le sottoespressioni\n"<br>
> " tra parentesi sono valutate per prime e possono avere la precedenza sulle\n"<br>
> " regole sopradescritte.\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Se l'ultimo ARG viene valutato pari a 0 restituisce 1, altrimenti "<br>
> "restituisce 0."<br>
<br>
alla riga:<br>
" Il seguente elenco di operatori è raggruppato per livelli di operatore\n"<br>
credo che la parola finale vada al plurale.<br>
<br>
alle righe:<br>
" \tid++, id--\tIncremento e decremento successivo di variabile\n"<br>
" \t++id, --id\tIncremento e decremento precedente di variabile\n"<br>
io non ho mai sentito parlare di incremento e decremento precedente o<br>
successivo, ma magari è uso comune e io non lo so. Quello che ho sempre<br>
sentito e letto è l'utilizzo delle formule latine pre- e post-, esattamente<br>
come inglese.<br>
<br>
[...]<br>
> #: builtins.c:1014<br>
> msgid ""<br>
> "Read a line from the standard input and split it into fields.\n"<br>
> " \n"<br>
> " Reads a single line from the standard input, or from file descriptor FD\n"<br>
> " if the -u option is supplied. The line is split into fields as with "<br>
> "word\n"<br>
> " splitting, and the first word is assigned to the first NAME, the second\n"<br>
> " word to the second NAME, and so on, with any leftover words assigned to\n"<br>
> " the last NAME. Only the characters found in $IFS are recognized as "<br>
> "word\n"<br>
> " delimiters. By default, the backslash character escapes delimiter "<br>
> "characters\n"<br>
> " and newline.\n"<br>
> " \n"<br>
> " If no NAMEs are supplied, the line read is stored in the REPLY variable."<br>
> "\n"<br>
> " \n"<br>
> " Options:\n"<br>
> " -a array\tassign the words read to sequential indices of the array\n"<br>
> " \t\tvariable ARRAY, starting at zero\n"<br>
> " -d delim\tcontinue until the first character of DELIM is read, rather\n"<br>
> " \t\tthan newline\n"<br>
> " -e\tuse Readline to obtain the line\n"<br>
> " -E\tuse Readline to obtain the line and use the bash default\n"<br>
> " \t\tcompletion instead of Readline's default completion\n"<br>
> " -i text\tuse TEXT as the initial text for Readline\n"<br>
> " -n nchars\treturn after reading NCHARS characters rather than waiting\n"<br>
> " \t\tfor a newline, but honor a delimiter if fewer than\n"<br>
> " \t\tNCHARS characters are read before the delimiter\n"<br>
> " -N nchars\treturn only after reading exactly NCHARS characters, "<br>
> "unless\n"<br>
> " \t\tEOF is encountered or read times out, ignoring any\n"<br>
> " \t\tdelimiter\n"<br>
> " -p prompt\toutput the string PROMPT without a trailing newline before\n"<br>
> " \t\tattempting to read\n"<br>
> " -r\tdo not allow backslashes to escape any characters\n"<br>
> " -s\tdo not echo input coming from a terminal\n"<br>
> " -t timeout\ttime out and return failure if a complete line of\n"<br>
> " \t\tinput is not read within TIMEOUT seconds. The value of the\n"<br>
> " \t\tTMOUT variable is the default timeout. TIMEOUT may be a\n"<br>
> " \t\tfractional number. If TIMEOUT is 0, read returns\n"<br>
> " \t\timmediately, without trying to read any data, returning\n"<br>
> " \t\tsuccess only if input is available on the specified\n"<br>
> " \t\tfile descriptor. The exit status is greater than 128\n"<br>
> " \t\tif the timeout is exceeded\n"<br>
> " -u fd\tread from file descriptor FD instead of the standard input\n"<br>
> " \n"<br>
> " Exit Status:\n"<br>
> " The return code is zero, unless end-of-file is encountered, read times "<br>
> "out\n"<br>
> " (in which case it's greater than 128), a variable assignment error "<br>
> "occurs,\n"<br>
> " or an invalid file descriptor is supplied as the argument to -u."<br>
> msgstr ""<br>
> "Legge una riga dallo standard input e la divide in campi.\n"<br>
> " \n"<br>
> " Legge una singola riga dallo standard input o, se viene fornita "<br>
> "l'opzione -u,\n"<br>
> " dal descrittore di file FD. La riga è divisa in campi corrispondenti a\n"<br>
> " parole dove la prima parola è assegnata al primo NOME, la seconda "<br>
> "parola\n"<br>
> " al secondo NOME e così via, con ciascuna parola rimanente assegnata al\n"<br>
> " corrispondente ultimo NOME. Sono riconosciuti come delimitatori di "<br>
> "parola\n"<br>
> " solo quelli presenti in $IFS. Come impostazione predefinita, il carattere\n"<br>
> " backslash viene usato come escape per i caratteri delimitatore e\n"<br>
> " \"a capo\".\n"<br>
> " \n"<br>
> " Se non viene fornito alcun NOME, la riga letta è memorizzata nella "<br>
> "variabile REPLY.\n"<br>
> " \n"<br>
> " Opzioni:\n"<br>
> " -a array\tAssegna le parole lette agli indici sequenziali della "<br>
> "variabile\n"<br>
> " \t\tdi ARRAY, iniziando da zero\n"<br>
> " -d delim\tContinua fino alla lettura del primo carattere di DELIM, "<br>
> "invece\n"<br>
> " \t\tdi un ritorno a capo \n"<br>
> " -e\tUsa Readline per ottenere la riga\n"<br>
> " -E\tUsa Readline per ottenere la riga, e utilizza il completamento\n"<br>
> " \t\tpredefinito d bash anziché quello predefinito di Readline\n"<br>
> " -i testo\tUsa TESTO come testo iniziale per Readline\n"<br>
> " -n ncarat\tRitorna dopo la lettura di NCARAT caratteri invece di "<br>
> "attendere\n"<br>
> " \t\tun a capo, ma rispetta un delimitatore se vengono letti meno di\n"<br>
> " \t\tNCARAT caratteri prima del delimitatore stesso\n"<br>
> " -N ncarat\tRitorna solo dopo la lettura di NCARAT caratteri esatti, a "<br>
> "meno che non si\n"<br>
> " \t\triscontri un EOF o un time out di lettura, ignorando qualsiasi\n"<br>
> " \t\tdelimitatore\n"<br>
> " -p stringa\tVisualizza la stringa PROMPT senza un a capo finale prima\n"<br>
> " \t\tdel tentativo di lettura\n"<br>
> " -r\t\tNon ammette backslash per fare l'escape dei caratteri\n"<br>
> " -s\t\tNon fa l'echo dell'input proveniente da un terminale\n"<br>
> " -t secondi\tVa in timeout e restituisce insuccesso se non viene letta\n"<br>
> " \t\tuna riga di input completa entro i SECONDI forniti. Il valore della\n"<br>
> " \t\tvariabile TMOUT è il timeout predefinito. SECONDI può essere\n"<br>
> " \t\tuna frazione. Se SECONDI è pari a 0, la lettura termina immediata-\n"<br>
> " \t\tmente, senza provare a leggere dati, restituendo successo\n"<br>
> " \t\tsolo se l'input è disponibile sul descrittore di file specificato.\n"<br>
> " \t\tSe viene superato il timeout lo stato di uscita è maggiore di 128\n"<br>
> " -u fd\t\tLegge dal descrittore di file FD invece che dallo standard "<br>
> "input\n"<br>
> " \n"<br>
> " Stato di uscita:\n"<br>
> " Il codice restituito è zero a meno che non sia riscontrato un EOF, un\n"<br>
> " timeout in lettura (nel qual caso sarà maggiore di 128), un errore di\n"<br>
> " assegnazione di variabili, o venga fornito un descrittore di file non\n"<br>
> " valido come argomento per -u."<br>
<br>
Alle righe:<br>
" al secondo NOME e così via, con ciascuna parola rimanente assegnata al\n"<br>
" corrispondente ultimo NOME. Sono riconosciuti come delimitatori di "<br>
credo che in questo caso non ci sia una corrispondenza degli argomenti rimasti,<br>
appunto, senza variabile corrispondente. Quindi cambierei la frase in questo modo:<br>
" al secondo NOME e così via, con ciascuna parola rimanente assegnata\n"<br>
" all'ultimo NOME. Sono riconosciuti come delimitatori di "<br>
<br>
Alle righe:<br>
" -a array\tAssegna le parole lette agli indici sequenziali della "<br>
"variabile\n"<br>
" \t\tdi ARRAY, iniziando da zero\n"<br>
se non ho capito male, ARRAY è un segnaposto per una variabile di tipo vettore.<br>
In questo caso non direi «variabile di ARRAY», ma «variabile ARRAY». <br>
<br>
Inoltre, hai usato varie volte NCARAT come segnaposto, ma nell'altra stringa<br>
tradotta, che riporto qui, hai usato, due volte, ncaratt con due «t»:<br>
<br>
msgid ""<br>
"read [-Eers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p "<br>
"prompt] [-t timeout] [-u fd] [name ...]"<br>
msgstr ""<br>
"read [-Eers] [-a array] [-d delim] [-i testo] [-n ncaratt] [-N ncaratt] [-p "<br>
"stringa] [-t secondi] [-u fd] [nome ...]"<br>
<br>
[...]<br>
<br>
<br>
-- <br>
principale: <a href="http://www.linux.it/tp/" rel="noreferrer" target="_blank">http://www.linux.it/tp/</a><br>
ausiliaria: <a href="http://fly.cnuce.cnr.it/gnu/tp/ausiliaria.html" rel="noreferrer" target="_blank">http://fly.cnuce.cnr.it/gnu/tp/ausiliaria.html</a><br>
</blockquote></div>