
        *****************************************************
        *           GENERATED FILE, DO NOT EDIT             *
        * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
        *****************************************************

This file was generated by po4a(7). Do not store it (in VCS, for example),
but store the PO file used as source file by po4a-translate.

In fact, consider this as a binary, and the PO file as a regular .c file:
If the PO get lost, keeping this translation up-to-date will be harder.

=encoding UTF-8

=head1 NOME

po4a - aggiorna i file PO e i documenti tradotti in un colpo solo

=head1 SINTASSI

B<po4a> [I<opzioni>] I<file_config>

=head1 DESCRIZIONE

po4a (PO for anything - N.d.T. PO per tutto) semplifica la manutenzione
delle traduzioni della documentazione usando i classici strumenti forniti da
gettext. La caratteristica principale di po4a è che separa la traduzione dei
contenuti dalla struttura del relativo documento.  Fare riferimento alla
pagina L<po4a(7)> per un'introduzione a questo progetto.

Al momento dell'esecuzione, B<po4a> analizza tutti i file di documentazione
specificati nel file di configurazione. Aggiorna i file PO (contenenti la
traduzione) per riflettere eventuali modifiche alla documentazione e produce
una documentazione tradotta inserendo la traduzione del contenuto (che si
trova nei file PO) nella struttura del documento master originale.

Inizialmente, i file PO contengono solo le stringhe da tradurre dalla
documentazione originale. Questo formato di file consente ai traduttori di
fornire manualmente una traduzione per ogni paragrafo estratto da
B<po4a>. Se la documentazione viene modificata dopo la traduzione, B<po4a>
contrassegna le traduzioni corrispondenti come "fuzzy" nel file PO per
richiedere una revisione manuale da parte dei traduttori. I traduttori
possono anche fornire i cosiddetti "addendum", che sono contenuti extra che
indicano ad esempio chi ha eseguito la traduzione e come segnalare i
difetti.

 master documents ---+---->-------->---------+
  (doc authoring)    |                       |
                     V   (po4a executions)   >-----+--> translated
                     |                       |     |     documents
 existing PO files -->--> updated PO files >-+     |
      ^                            |               |
      |                            V               |
      +----------<---------<-------+               ^
       (manual translation process)                |
                                                   |
 addendum -->--------------------------------------+

Il flusso di lavoro di B<po4a> è asincrono, adatto ai progetti open
source. Gli autori della documentazione creano i documenti master al proprio
ritmo. I traduttori esaminano e aggiornano le traduzioni nei file PO. I
manutentori rieseguono B<po4a> se necessario, per riflettere qualsiasi
modifica alla documentazione originale nei file PO e per produrre traduzioni
della documentazione aggiornate, inserendo l'ultima traduzione nella
struttura del documento più recente.

Per impostazione predefinita, un determinato documento tradotto viene
prodotto quando viene tradotto almeno l'80% del suo contenuto. Il testo non
tradotto è mantenuto nella lingua originale. La documentazione prodotta
mescola quindi lingue se la traduzione non è completa. È possibile
modificare la soglia dell'80% con l'opzione I<-- keep> descritta di
seguito. Si noti tuttavia che scartare le traduzioni appena sotto al 100%
può essere scoraggiante per i traduttori il cui lavoro non verrà quasi mai
mostrato agli utenti, mentre mostrare "traduzioni" troppo incomplete può
creare problemi per gli utenti finali.

La memorizzazione dei file di documentazione tradotti nel sistema di
controllo versionamento è probabilmente una cattiva idea, poiché vengono
generati automaticamente. I file importanti sono i file PO, che contengono
il duro lavoro dei colleghi traduttori. Inoltre, alcune persone trovano più
facile interagire con i traduttori attraverso una piattaforma online come
S<weblate>, ma questo è naturalmente opzionale.

=head2 Guida di avvio rapido

Supponiamo di mantenere un programma chiamato B<foo> che ha una pagina man
F<man/foo.1> scritta in inglese (il linguaggio ponte nella maggior parte dei
progetti open-source, ma B<po4a> può essere usato da o verso qualsiasi
linguaggio). Qualche tempo fa, qualcuno ha fornito una traduzione manuale in
tedesco chiamata F<man/foo.de.1> ed è scomparso. Questo è un problema perché
hai appena ricevuto una segnalazione di bug che dice che la tua
documentazione contiene informazioni gravemente fuorvianti che devono essere
corrette in tutte le lingue, ma non parli tedesco quindi puoi solo
modificare l'originale, non la traduzione. Ora, un altro collaboratore vuole
contribuire con una traduzione in giapponese, un'altra lingua che non si
mastica.

È ora di convertire la documentazione a B<po4a> per risolvere la
manutenzione da incubo della documentazione. Si vuole aggiornare il
documento quando serve, facilitare il lavoro dei colleghi traduttori e
assicurare che gli utenti non vedano mai documentazioni obsolete e quindi
fuorviante.

La conversione comprende due passaggi: configurare l'infrastruttura po4a e
convertire la precedente traduzione tedesca per salvare il lavoro
precedente. Quest'ultima parte viene eseguita utilizzando
S<po4a-gettextize>, come segue. Come dettagliato nella documentazione di
L<po4a-gettextize(1)>, questo processo raramente è anche completamente
automatico, ma una volta terminato, il file B<de.po> contenente la
traduzione tedesca può essere integrato nel flusso di lavoro di po4a.

  po4a-gettextize --format man --master foo.1 --localized foo.de.1 --po de.po

Configuriamo ora po4a. Con la disposizione file appropriata, la
configurazione potrebbe assomigliare ad un semplice file come questo:

 [po_directory] man/po4a/

 [type: man] man/foo.1 $lang:man/translated/foo.$lang.1

Specifica che tutti i file PO (contenenti il lavoro dei traduttori) sono la
cartella F<man/po4a/> e che si ha un solo file master, F<man/foo.1>. Se si
avesse più file master, si avrebbero più righe simili alla seconda. Ciascuna
di queste righe specifica anche dove scrivere i file di traduzione
corrispondenti. Qui, la traduzione tedesca di F<man/foo.1> è in
F<man/translated/foo.de.1>.

L'ultima cosa di cui abbiamo bisogno per completare la configurazione di
B<po4a> è un file POT contenente il materiale del modello che dovrebbe
essere usato per iniziare una nuova traduzione. Basta creare un file vuoto
con l'estensione S<.pot> nella S<po_directory> specificata (ad
es. F<man/po4a/foo.pot>) e B<po4a> lo riempirà con il contenuto previsto.

Ecco un riassunto dei file in questa impostazione:

  ├── man/
  │   ├── foo.1        <- The original man page, in English
  │   ├── po4a/
  │   │   ├── de.po    <- The German PO translation, from gettextization
  │   │   └── foo.pot  <- The POT template of future translations (empty at first)
  │   └── translated/  <- Directory where the translations will be created
  └── po4a.cfg         <- The configuration file

Una volta impostato, l'esecuzione di B<po4a> analizzerà la documentazione,
aggiornerà il file modello POT, lo utilizzerà per aggiornare i file di
traduzione PO e li utilizzerà per aggiornare i file di traduzione della
documentazione. Tutto in un comando:

        po4a --verbose po4a.cfg

Fatto. B<po4a> è ora completamente configurato. Dopo aver corretto l'errore
in F<man/foo.1>, il paragrafo colpevole nella traduzione tedesca sarà
sostituito dal testo corretto in inglese. Mescolare le lingue non è
ottimale, ma è l'unico modo per rimuovere errori nelle traduzioni (in
lingue) che non si comprendono e garantire che il contenuto presentato agli
utenti non sia mai forviante. Anche l'aggiornamento della traduzione tedesca
è molto più semplice nel file PO corrispondente, quindi il disguido
linguistico potrebbe non durare a lungo. Infine, quando un traduttore
giapponese volesse contribuire con una nuova traduzione, questi dovrebbe
rinominare S<foo.pot> in S<jp.po> e completare la traduzione. Una volta
ottenuto questo file, basterà metterlo in F<man/po4a/po/>. Una pagina
tradotta apparirà come F<man/translated/foo.jp.1> quando si eseguirà
nuovamente B<po4a> (sempre che il contenuto tradotto sia sufficientemente
completo).

=head1 OPZIONI

=over 4

=item B<-k>, B<--keep>

Minima percentuale di traduzione richiesta affinché il file generato sia
mantenuto (cioè scritto) su disco. Il valore predefinito è 80, vale a dire
che una traduzione viene scritta su disco solo se è completa almeno per
l'80%.

=item B<-w>, B<--width>

Colonna alla quale si dovrebbe mandare a capo il file risultante se il
formato lo supporta (valore predefinito: 76). Se il valore fornito è 0 o
negativo, il file risultante non verrà mandato a capo. Utile con alcuni
formati che potrebbero bloccarsi quando si va a capo.

=item B<-h>, B<--help>

Mostra un breve messaggio di aiuto.

=item B<-M>, B<--master-charset>

Set di caratteri dei file contenenti i documenti da tradurre. Tutti i
documenti master devono usare la stessa codifica.

=item B<-L>, B<--localized-charset>

Set di caratteri dei file contenenti i documenti localizzati. Tutti i
documenti tradotti useranno la stessa codifica.

=item B<-A>, B<--addendum-charset>

Set di caratteri degli addenda. Tutti gli addenda devono usare la stessa
codifica.

=item B<-V>, B<--version>

Mostra la versione del programma ed esce.

=item B<-v>, B<--verbose>

Rende il programma più prolisso.

=item B<-q>, B<--quiet>

Rende il programma meno prolisso.

=item B<-d>, B<--debug>

Mostra delle informazioni di debug.

=item B<-o>, B<--option>

Opzioni extra da passare al plugin di formato. Vedere la documentazione per
ogni plugin per ulteriori informazioni sulle opzioni valide e sul loro
significato. Per esempio si può passare "-o tablecells" all'analizzatore
AsciiDoc mentre l'analizzatore di testo semplice accetta "-o tabs=split".

=item B<-f>, B<--force>

Genera sempre i file POT e PO, anche se B<po4a> non lo considera necessario.

Il comportamento predefinito (quando non è specificato B<--force>) è il
seguente:

=over

Se il file POT esiste già, viene rigenerato se un documento master o il file
di configurazione sono più recenti (a meno che non venga fornito
B<--no-update>).  Il file POT viene scritto anche in un documento temporaneo
e B<po4a> verifica che i cambiamenti siano veramente necessari.

Inoltre, una traduzione viene rigenerata solo se il suo documento master, il
file PO, uno dei suoi addendum o il file di configurazione sono più
recenti.  Per evitare di provare a rigenerare le traduzioni che non passano
il test di soglia (vedere B<--keep>), un file con estensione F<.po4a-stamp>
può venir creato (vedere B<--stamp>).

=back

Se un documento master include dei file, si dovrebbe usare la flag
B<--force> perché il tempo di modifica di questi file inclusi non sono
tenuti in considerazione.

I file PO vengono sempre rigenerati in base al POT con B<msgmerge -U>.

=item B<--stamp>

Dice a B<po4a> di creare dei file stamp quando una traduzione non viene
generata perché essa non raggiunge la soglia. A questi file stamp viene
assegnato un nome in accordo con il nome previsto del documento tradotto, ed
applicata estensione F<.po4a-stamp>.

Nota: ciò attiva solo la creazione dei file F<.po4a-stamp>. I file stamp
vengono sempre usati se esistono, e vengono rimossi con l'uso di
B<--rm-translations> o quando il file viene infine tradotto.

=item B<--no-translations>

Non generare i documenti tradotti, aggiorna solo i file POT e PO.

=item B<--no-update>

Non cambiare i file POT e PO, solo la traduzione può essere aggiornata.

=item B<--keep-translations>

Mantiene i file di traduzione esistenti anche se la traduzione non incontra
la soglia specificata da B<--keep>.  Questa opzione non crea nuovi file di
traduzione con poco contenuto, ma salverà le traduzioni esistenti che
scadranno a causa dei cambiamenti nei file master.

ATTENZIONE: questo flag cambia il comportamento di po4a in modo piuttosto
radicale: i file tradotti non verranno aggiornati per nulla fino a quando la
traduzione non migliorerà. Usare questo flag se si preferisce inviare una
documentazione tradotta non aggiornata piuttosto che spedire solo una
documentazione accurata non tradotta.

=item B<--rm-translations>

Rimuovi i file tradotti (implica B<--no-translations>).

=item B<--no-backups>

Questo flag non fa nulla dalla versione 0.41, e potrebbe venir rimosso dalle
prossime versioni.

=item B<--rm-backups>

Questo flag non fa nulla dalla versione 0.41, e potrebbe venir rimosso dalle
prossime versioni.

=item B<--translate-only> I<file-tradotto>

Traduce solo il file specificato.  Può essere utile per velocizzare il
processo se un file di configurazione contiene molti file. Si noti che
questa opzione non aggiorna i file PO e POT.  Questa opzione può essere
usata più volte.

=item B<--variable> I<var>B<=>I<valore>

Definisce una variabile che verrà espansa nel file di configurazione
B<po4a>.  Ogni occorrenza di I<$(var)> verrà rimpiazzata da I<value>.
Questa opzione può essere usata più volte.

=item B<--target-lang> I<LANG>

Aggiorna i file PO e genera documenti tradotti solo per la lingua
specificata. Questa opzione può essere utilizzata più volte.

=item B<--srcdir> I<SRCDIR>

Imposta la cartella di base per tutti i documenti in ingresso specificati
nel file di configurazione B<po4a>.

Se vengono specificati sia I<destdir> che I<srcdir>, i file in ingresso
vengono cercati nelle seguenti cartelle, in ordine: I<destdir>, la cartella
corrente e I<srcdir>. I file in uscita vengono scritti su I<destdir> se
specificata, o nella cartella corrente.

=item B<--destdir> I<DESTDIR>

Imposta la cartella di base per tutti i documenti in uscita specificati nel
file di configurazione B<po4a> (vedere B<--srcdir> sopra).

=back

=head2 Ozioni che modificano l'intestazione POT

=over 4

=item B<--porefs> I<tipo>

Specifica il formato di riferimento. L'argomento I<type> può essere un
valore qualsiasi tra: B<never> per non produrre nessun riferimento, B<file>
per specificare solo il file senza il numero di riga, B<counter> per
rimpiazzare il numero di riga con un contatore incrementale, e B<full> per
includere il riferimento completo (valore predefinito: full).

=item B<--wrap-po> B<no>|B<newlines>|I<number> (predefinito: 76)

Specifica come il file po deve essere mandato a capo. Consente di scegliere
tra file con righe mandate capo ben formattate e quindi ben leggibili ma che
potrebbero portare a conflitti in git o file che sono più facili da gestire
automaticamente, ma più difficili da leggere per le persone.

Storicamente, la suite gettext riformattava i file po alla 77a colonna per
questioni estetiche. Questa opzione specifica il comportamento di po4a. Se
impostato su un valore numerico, po4a manderà a capo il file po a questo
numero di colonna e dopo i caratteri di a capo nel testo. Se impostato su
B<newlines>, po4a dividerà msgstr e msgstr solo dopo i caratteri di a capo
nel testo. Se impostato su B<no>, po4a non metterà a capo nel testo del file
po. L'andare a capo nei commenti di riferimento è controllato dagli
strumenti gettext che vengono usati internamente.

Si noti che questa opzione non ha alcun impatto sul modo in cui msgstr e
msgstr vanno a capo, cioè su come i caratteri di a capo vengono aggiunti al
contenuto di queste stringhe.

=item B<--master-language>

La lingua dei file contenenti il documento da tradurre. Tutti i file devono
usare la stessa lingua.

=item B<--msgid-bugs-address> I<indirizzo@email>

Imposta l'indirizzo a cui inviare i rapporti di errore per i msgid. Come
impostazione predefinita, i file POT creati non hanno campi
Report-Msgid-Bugs-To.

=item B<--copyright-holder> I<stringa>

Imposta l'intestatario del copyright nell'intestazione del POT. Il valore
predefinito è "Free Software Foundation, Inc."

=item B<--package-name> I<stringa>

Imposta il nome del pacchetto nell'intestazione del POT. Il valore
predefinito è "PACKAGE".

=item B<--package-version> I<stringa>

Imposta la versione del pacchetto nell'intestazione del POT. Il valore
predefinito è "VERSION".

=back

=head2 Opzioni che modificano i file PO

=over 4

=item B<--msgmerge-opt> I<opzioni>

Opzioni extra per B<msgmerge>(1).

Nota: B<$lang> verrà estesa alla lingua corrente.

=item B<--no-previous>

Questa opzione rimuove B<--previous> dalle opzioni passate a B<msgmerge>.
Ciò è necessario per supportare versioni di B<gettext> precedenti alla 0.16.

=item B<--previous>

Questa opzione aggiunge B<--previous> alle opzioni passate a B<msgmerge>.
Richiede B<gettext> 0.16 o successive, ed è attivata come impostazione
predefinita.

=back

=head1 FILE DI CONFIGURAZIONE

po4a si aspetta un file di configurazione come argomento. Questo file deve
contenere i seguenti elementi:

=over

=item

Il percorso ai file PO e l'elenco delle lingue esistenti nel progetto;

=item

Opzionalmente, alcune opzioni globali e i cosidetti alias di configurazione
che vengono usati come modelli per configurare i singoli file master;

=item

L'elenco dei singoli file master da tradurre, insieme a parametri specifici.

=back

Tutte le righe contengono un comando tra parentesi quadre, seguito dai suoi
parametri.  I commenti cominciano con il carattere '#' e continuano fino
alla fine della riga. Si può fare escape del carattere di fine riga per
distribuire un comando su più righe.

Alcuni esempi completi sono presenti su questa pagina, mentre altri esempi
si possono trovare nella cartella C<t/cfg> della distribuzione dei sorgenti.

=head2 Trovare i file POT e PO

La soluzione più semplice è indicare il percorso ai file POT e PO nel modo
seguente:

 [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po

Questo specifica prima il percorso verso il file POT, e poi i percorsi ai
file PO tedesco e francese.

La stessa informazione può essere scritta come di seguito per ridurre il
rischio di errori di copia/incolla:

 [po4a_langs] fr de
 [po4a_paths] man/po/project.pot $lang:man/po/$lang.po

La componente C<$lang> viene automaticamente espansa usando l'elenco lingue
fornito, riducendo il rischio di errori di copia/incolla quando una nuova
lingua viene aggiunta.

Si possono compattare ulteriormente le stesse informazioni fornendo
solamente il percorso per la cartella contenente il progetto di traduzione,
come di seguito.

 [po_directory] man/po/

La cartella fornita deve contenere un insieme di file PO, ognuno con nome
F<XX.po> dove C<XX> è il codice ISO 639-1 della lingua usata in questo
file. La cartella deve anche contenere un singolo file POT, con estensione
file C<.pot> . Nella prima esecuzione, quest'ultimo può essere vuoto ma deve
esistere (po4a non può indovinare il nome da usare davanti all'estensione).

Si noti che bisogna scegliere solo uno tra C<po_directory> e
C<po4a_paths>. Il primo (C<po_directory>) è più compatto, inoltre riduce il
rischio degli errori di copia/incolla, ma forza ad usare la struttura
progetto e i nomi file previsti. Il secondo (C<po4a_paths>), è più
esplicito, probabilmente più leggibile, e suggerito quando si imposta il
primo progetto con po4a.

=head3 File PO centralizzati o separati?

Per impostazione predefinita, po4a produce un singolo file PO per lingua
obiettivo, con l'intero contenuto del progetto di traduzione. Come il
progetto cresce, la dimensione di questi file può diventare
problematica. Quando si usa weblate, è possibile specificare priorità per
ogni segmento di traduzione (cioè msgid) in modo tale da far tradurre i più
importanti per primi. Comunque, alcune squadre di traduzione preferiscono
dividere il contenuto in più file.

Per avere un file PO per file master, basta semplicemente usare la stringa
C<$master> nel nome dei file PO nella riga C<[po4a_paths]>, come di seguito.

 [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po

Con questa riga, po4a produrrà file POT e PO separati per ogni documento da
tradurre. Ad esempio, se si hanno 3 documenti e 5 lingue, ciò porterà ad
avere 3 file POT e 15 file PO. Questi file saranno denominati come
specificato nel modello C<po4a_paths>, con C<$master> sostituito con il nome
di base di ciascun documento da tradurre. In caso di conflitto di nomi, è
possibile specificare il file POT da utilizzare come segue, con il parametro
C<pot=>.

Questa funzione può essere utilizzata anche per raggruppare più file
tradotti nello stesso file POT. L'esempio seguente produce solo 2 file POT:
F<l10n/po/foo.pot> (contenente il materiale di F<foo/gui.xml>) e
F<l10n/po/bar.pot> (contenente il materiale di entrambi F<bar/gui.xml> e
F<bar/cli.xml>).

 [po4a_langs] de fr ja
 [po4a_paths] l10n/po/$master.pot $lang:l10n/po/$master.$lang.po
 [type: xml] foo/gui.xml $lang:foo/gui.$lang.xml pot=foo
 [type: xml] bar/gui.xml $lang:bar/gui.$lang.xml pot=bar
 [type: xml] bar/cli.xml $lang:bar/cli.$lang.xml pot=bar

In modalità split, B<po4a> crea un compendio temporaneo durante
l'aggiornamento PO, per condividere le traduzioni tra tutti i file PO. Se
due PO hanno traduzioni diverse per la stessa stringa, B<po4a> marcherà
questa stringa come fuzzy e inserirà entrambe le traduzioni in tutti i file
PO contenenti questa stringa. Poi, quando un traduttore aggiornerà la
traduzione e rimuoverà la marcatura fuzzy in un file PO, la traduzione di
questa stringa verrà aggiornata in ogni file PO automaticamente.

=head2 Specificare i documenti da tradurre

È necessario anche elencare i documenti che devono essere tradotti. Per ogni
file master, bisogna specificare l'analizzatore del formato da usare, la
posizione del documento tradotto da produrre, e opzionalmente qualche
configurazione. Se i nomi dei file dovessero contenere degli spazi, a questi
ultimi dovranno essere apposti dei caratteri di escape oppure i nomi interi
dovranno essere messi tra virgolette. Ecco un esempio:

 [type: sgml] "doc/my stuff.sgml"  "fr:doc/fr/mon truc.sgml"  de:doc/de/mein\ kram.sgml
 [type: man] script fr:doc/fr/script.1 de:doc/de/script.1
 [type: docbook] doc/script.xml fr:doc/fr/script.xml \
             de:doc/de/script.xml

Ma ancora, queste righe complesse sono difficili da leggere e da modificare,
per es. quando si vuole aggiungere una lingua. È molto più semplice
riorganizzare le cose usando il modello C<$lang> come di seguito:

 [type: sgml]    doc/my_stuff.sgml $lang:doc/$lang/my_stuff.sgml
 [type: man]     script.1          $lang:po/$lang/script.1
 [type: docbook] doc/script.xml    $lang:doc/$lang/script.xml

=head2 Specificare le opzioni

Ci sono due tipi di opzioni: le I<opzioni po4a> sono valori predefiniti alle
opzioni di riga di comando po4a mentre le I<opzioni di formato> vengono
usate per cambiare il comportamento dell'analizzatore di formato. Con una
I<opzione po4a>, si può per esempio specificare nel file di configurazione
che il valore predefinito del parametro a riga di comando B<--keep> è 50%
invece che 80%. Le I<opzioni di formato> sono documentate nella pagina
specifica di ogni modulo di elaborazione, per
es. L<Locale::Po4a::Xml(3pm)>. Si può per esempio passare B<nostrip>
all'analizzatore XML per non eliminare gli spazi attorno alle stringhe
estratte.

È possibile passare queste opzioni per un file master specifico, o persino
per una specifica traduzione di quel file, usando C<opt:> e C<opt_XX:> per
la lingua C<XX>.  Nell'esempio seguente, viene passata l'opzione B<nostrip>
all'analizzatore XML (per tutte le lingue), mentre la soglia viene ridotta a
0% per la traduzione francese (che significa perciò che sarà sempre
mantenuta).

 [type:xml] toto.xml $lang:toto.$lang.xml opt:"-o nostrip" opt_fr:"--keep 0"

In ogni caso, questi blocchi di configurazione devono essere posizionati
alla fine della riga.  La dichiarazione dei file viene prima, poi l'addendum
se presente (vedere sotto), e solo poi le opzioni. Il raggruppamento dei
blocchi di configurazione non è molto importante, dato che gli elementi sono
internamente concatenati come stringhe. Gli esempi seguenti sono tutti
equivalenti:

  [type:xml] toto.xml $lang:toto.$lang.xml opt:"--keep 20" opt:"-o nostrip" opt_fr:"--keep 0"
  [type:xml] toto.xml $lang:toto.$lang.xml opt:"--keep 20 -o nostrip" opt_fr:"--keep 0"
  [type:xml] toto.xml $lang:toto.$lang.xml opt:--keep opt:20 opt:-o opt:nostrip opt_fr:--keep opt_fr:0

Si noti che le opzioni specifiche della lingua non vengono usate durante la
costruzione del file POT. È per esempio impossibile passare B<nostrip>
all'analizzatore solo quando crea la traduzione francese, perché lo stesso
file POT viene usato per aggiornare tutte le lingue. Perciò le sole opzioni
che possono essere specifiche per una lingua sono quelle che vengono usate
durante la produzione della traduzione, come l'opzione C<--keep>.

=head3 Alias di configurazione

Per passare le stesse opzioni a più file, è meglio definire un alias di tipo
come di seguito. Nel prossimo esempio, C<--keep 0> viene passata ad ogni
traduzione italiana usando il tipo C<test>, che è un'estensione del tipo
C<man>.

  [po4a_alias:test] man opt_it:"--keep 0"
  [type: test] man/page.1 $lang:man/$lang/page.1

Si può anche estendere un tipo esistente riutilizzando lo stesso nome per
l'alias come di seguito. Ciò non viene interpretato come una definizione
erroneamente ricorsiva.

  [po4a_alias:man] man opt_it:"--keep 0"
  [type: man] man/page.1 $lang:man/$lang/page.1

=head3 Opzioni predefinite globali

Si può anche usare righe di C<[options]> per definire opzioni che devono
essere usate per tutti i file, indipendentemente dal loro tipo.

  [options] --keep 20 --option nostrip

Come con le opzioni a riga di comando, si possono abbreviare i parametri
passati nel file di configurazione:

  [options] -k 20 -o nostrip

=head3 Priorità delle opzioni

Le opzioni di ogni sorgente vengono concatenate, assicurando così che i
valori predefiniti possano essere facilmente ridefiniti da opzioni più
specifiche. L'ordine è il seguente:

=over

=item

Le righe C<[options]> forniscono i valori predefiniti che possono essere
ridefiniti da qualsiasi altra sorgente.

=item

Vengono poi usati gli alias dei tipi. Le impostazioni specifiche per la
lingua sovrascrivono quelle applicabili a tutte le lingue.

=item

Le impostazioni specifiche ad ogni dato file master sovrascrivono sia quelle
predefinite che quelle che provengono dagli alias dei tipi. In questo caso
inoltre, le impostazioni specifiche della lingua sovrascrivono quelle
globali.

=item

Infine, i parametri forniti sulla riga di comando di B<po4a> sovrascrivono
qualsiasi impostazione proveniente dal file di configurazione.

=back

=head3 Esempio

Ecco un esempio che mostra come commentare gli spazi e il virgolettato:

 [po_directory] man/po/
 
 [options] --master-charset UTF-8
 
 [po4a_alias:man] man opt:"-o \"mdoc=NAME,SEE ALSO\""
 [type:man] t-05-config/test02_man.1 $lang:tmp/test02_man.$lang.1 \
            opt:"-k 75" opt_it:"-L UTF-8" opt_fr:--verbose

=head2 Addendum: aggiunta di contenuto extra nella traduzione

Se si vuole aggiungere una sezione extra alla traduzione, per esempio per
dare credito al lavoro del traduttore, allora è necessario definire un
addendum alla riga che difinisce il file master. Fare riferimento alla
pagina L<po4a(7)> per ulteriori dettagli sulla sintassi dei file addendum.

 [type: pod] script fr:doc/fr/script.1 \
             add_fr:doc/l10n/script.fr.add

Si può usare anche i modelli di lingua nel modo seguente:

 [type: pod] script $lang:doc/$lang/script.1 \
             add_$lang:doc/l10n/script.$lang.add

Se un file addendum fallisce nell'applicazione, la traduzione viene
scartata.

=head3 Modificatori per la dichiarazione dell'addendum

I modificatori dell'addendum possono semplificare il file di configurazione
nel caso in cui non tutte le lingue forniscano un addendum, o quando
l'elenco degli addenda cambia da una lingua all'altra. Il modificatore è un
singolo carattere posizionato prima del nome del file.

=over 2

=item B<?>

Include I<addendum_path> se questo file esiste, altrimenti non fa nulla.

=item B<@>

I<addendum_path> non è un addendum normale ma un file contenente una lista
di addendum, uno per riga.  Ogni addendum può essere preceduto da
modificatori.

=item B<!>

I<percorso_addendum> viene scartato, non viene caricato e non verrà caricato
da nessun'altra successiva specifica di addendum.

=back

Il seguente include un addendum in ogni lingua, ma solo se questo
esiste. Non viene generato nessun errore se l'addendum non esiste.

 [type: pod] script $lang:doc/$lang/script.1  add_$lang:?doc/l10n/script.$lang.add

Il seguente include un elenco di addendum per ogni lingua:

 [type: pod] script $lang:doc/$lang/script.1  add_$lang:@doc/l10n/script.$lang.add

=head2 Filtro delle stringhe tradotte

Talvolta si vorrebbe nascondere alcune stringhe dal processo di
traduzione. A tale scopo, si può passare un parametro C<pot_in> al file
master per specificare il nome del file da usare invece del master reale
quando si crea il file POT. Ecco un esempio:

  [type:docbook] book.xml          \
          pot_in:book-filtered.xml \
          $lang:book.$lang.xml

Con questa impostazione, le stringhe da tradurre verranno estratte da
F<book-filtered.xml> (che deve essere prodotto prima di chiamare B<po4a>)
mentre i file tradotti verranno creati da F<book.xml>. Di conseguenza,
qualsiasi stringa che fa parte di F<book.xml> ma non di F<book-filtered.xml>
non verrà inclusa nei file PO, impedendo ai traduttori di fornire una
traduzione per essi. Quindi queste stringhe non verranno modificate durante
la produzione dei documenti tradotti. Questo naturalmente riduce il livello
di traduzione, quindi si potrebbe aver bisogno dell'opzione C<--keep> per
assicurarsi che il documento venga prodotto comunque.

=head1 VEDERE ANCHE

L<po4a-gettextize(1)>, L<po4a(7)>.

=head1 AUTORI

 Denis Barbier <barbier@linuxfr.org>
 Nicolas François <nicolas.francois@centraliens.net>
 Martin Quinson (mquinson#debian.org)


=head1 TRADUZIONE

 Danilo Piazzalunga <danilopiazza@libero.it>
 Marco Ciampa <ciampix@posteo.net>

=head1 COPYRIGHT E LICENZA

Copyright 2002-2023 by SPI, inc.

Questo programma è software libero; è lecito ridistribuirlo o modificarlo
secondo i termini della licenza GPL v2.0 o successive (vedere il file
COPYING).
