
        *****************************************************
        *           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.

Quando si esegue il programma B<po4a> per la prima volta, con solo un file
di configurazione e i documenti da tradurre (i documenti master), esso
produce un file POT (o modello di traduzione) che contiene tutte le stringhe
traducibili nel documento in un formato che semplifica il lavoro ai
traduttori.

Questi file POT si possono tradurre con un editor specializzato come lo
B<GNOME Translation Editor>, B<Lokalize> di KDE o B<poedit>, o possono
essere integrati su una piattaforme di traduzione online come B<weblate> o
B<pootle>.  Il risultato della traduzione è un insieme di file PO, uno per
lingua.

Quando si esegue il programma B<po4a> con sia i documenti master e i file
PO, esso produce i documenti tradotti iniettando la traduzione dei contenuti
(trovata nel file PO) nella struttura dei documenti master originali.

Se i documenti master nel frattempo sono cambiati, po4a aggiornerà i file PO
e POT di conseguenza, in modo da permettere ai traduttori di rilevare
facilmente le modifiche ed aggiornare il loro lavoro. A seconda delle tue
impostazioni, po4a scarterà i documenti parzialmente tradotti, o produrrà un
documento mescolando inglese (per i paragrafi nuovi o modificati) e la
lingua obiettivo (per i paragrafi dove la traduzione è già presente nei file
PO).

Per impostazione predefinita, i documenti tradotti vengono prodotti solo se
almeno l'80% del contenuto è stato tradotto (vedere l'opzione I<--keep>
sotto).  Scartare le traduzioni che non sono al 100% può essere scoraggiante
per i traduttori, mentre mostrare "traduzioni" che sono troppo incomplete
potrebbe essere un problema per gli utenti finali.

=head2 Panoramica grafica



 documenti master ---+----->---------->--------+
  (doc.ti orig.)     |                         |
                     V    (esecuzioni po4a)    >----+--> traduzioni
                     |                         |    |
 file PO esistenti -->--> file PO aggiornati >-+    |
      ^                                |            |
      |                                V            |
      +------------<------------<------+            ^
       (processo di traduzione manuale)             |
                                                    |
 addendum -->---------------------------------------+

I documenti master vengono prodotti in originale dagli autori della
documentazione. Qualunque cambiamento viene propagato automaticamente da
po4a nei file PO, i quali vengono poi aggiornati dai traduttori. Tutti i
cambiamenti ai file PO (sia manuali effettuati da po4a) si riflettono
automaticamente nei documenti tradotti. Si può mimare questo comportamento
usando gli script L<po4a-updatepo(1)> e L<po4a-translate(1)> nei makefile,
ma ciò diventa rapidamente oneroso e ripetitivo (vedere L<po4a(7)>). Si
raccomanda caldamente di utilizzare il programma B<po4a> nei processi di
compilazione.

=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<-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" al parser AsciiDoc
mentre il parser 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 --keep.  Questa opzione non crea nuovi file di
traduzione con poco contenuto, ma salverà le traduzioni esistenti che
scadranno a causa dei cambiamenti ai 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<--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 (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<numero> (predefinito: 76)

Specifica come il file po dovrebbe essere mandato a capo. Ciò 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, ovvero 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ò permette di 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

Se ci sono conflitti di nomi a causa del fatto che i diversi file hanno lo
stesso nomefile, il nome del file master può essere specificato aggiungendo
l'opzione C<master:file=>I<nome>:

 [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 master:file=foo-gui
 [type: xml] bar/gui.xml $lang:bar/gui.$lang.xml master:file=bar-gui

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

Bisogna anche elencare i documenti che dovrebbero essere tradotti. Per ogni
file master, bisogna specificare il processatore del formato da usare, la
posizione del documento tradotto da produrre, e opzionalmente qualche
configurazione. 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 dei parser 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> al parser 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>
al parser 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> al
parser 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 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

With this setting, the strings to translate will be extracted from the
F<book-filtered.xml> (that must be produced before calling B<po4a>) while
the translated files will be built from F<book.xml>. As a result, any string
that is part of F<book.xml> but not in F<book-filtered.xml> will not be
included in the PO files, preventing the translators from providing a
translation for them. So these strings will be left unmodified when
producing the translated documents.  This naturally decreases the level of
translation, so you may need the C<--keep> option to ensure that the
document is produced anyway.

=head2 ESEMPIO DI CONFIGURAZIONE

DAFARE: questa sezione è veramente utile?

Poniamo di essere il responsabile di un programma di nome B<foo> il quale è
dotato di una pagina man F<man/foo.1> che naturalmente viene mantenuta solo
in inglese. Ora si vorrebbe creare e mantenere anche le traduzioni.  Per
prima cosa è necessario creare il file POT da inviare necessariamente ai
traduttori, usando L<po4a-gettextize(1)>.

Perciò nel nostro caso eseguiremmo

 cd man && po4a-gettextize -f man -m foo.1 -p foo.pot

Poi invieremmo questo file alle mailing list dei gruppi linguistici
appropriati o lo renderemmo disponibile per scaricamento da qualche parte
sul sito web del progetto.

Poniamo ora di aver ricevuto tre traduzioni prima del rilascio della
prossima versione: F<de.po> (incluso un file addendum F<de.add>), F<sv.po> e
F<pt.po>.  Dato che non si vuole cambiare i propri F<Makefile> ogni
qualvolta arrivi una nuova traduzione si può usare B<po4a> con un file di
configurazione appropriato nel proprio F<Makefile>.  Chiamiamolo
F<po4a.cfg>. Nel nostro esempio questo somiglierebbe al seguente:

 [cartella_po] man/po4a/po/

 [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \
            add_$lang:?man/po4a/add_$lang/$lang.add opt:"-k 80"

In questo esempio si presume che le pagine man generate (e tutti il file po
e addendum) siano stati posti in F<man/translated/$lang/> (rispettivamente
in F<man/po4a/po/> e F<man/po4a/add_$lang/>) sotto la cartella corrente. Nel
nostro esempio la cartella F<man/po4a/po/> includerà F<de.po>, F<pt.po> e
F<sv.po>, e la cartella F<man/po4a/add_de/> includerà F<de.add>.

Si noti l'utilizzo del modificatore B<?> in quanto solo la traduzione
tedesca (F<de.po>) è accompagnata da un addendum.

Per creare realmente le pagine man tradotte aggiungere (una sola volta!) la
seguente riga nel target B<build> del F<Makefile> appropriato:

        po4a po4a.cfg

Una volta impostato tutto questo non è necessario toccare il F<Makefile>
quando arriva una nuova traduzione, cioè se la squadra francese vi spedisce
F<fr.po> e F<fr.add> basta semplicemente metterli rispettivamente in
F<man/po4a/po/> e F<man/po4a/add_fr/> e la prossima volta che il programma
verrà compilato la traduzione francese verrà automaticamente aggiornata in
F<man/translated/fr/>.

Si noti che è necessario un obiettivo appropriato per installare le pagine
man localizzate con quelle inglesi.

Infine, se non si memorizza i file generati nel proprio sistema di versionamento,
sarà necessaria anche una riga nell'obiettivo B<clean>:
        -rm -rf man/translated

=head1 VEDERE ANCHE

L<po4a-gettextize(1)>, L<po4a-normalize(1)>, L<po4a-translate(1)>,
L<po4a-updatepo(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@libero.it>

=head1 COPYRIGHT E LICENZA

Copyright 2002-2020 by SPI, inc.

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

