Product SiteDocumentation Site

Capitolo 7. Frequently Asked Questions

Domanda: Come si aggiunge una lingua ad un libro?
Domanda: E se non si specifica il codice di nazione? Per esempio, si può eseguire publican update_po --langs=es,de,fr?
Domanda: Come si aggiornano tutti i file PO?
Domanda: Come si ottiene l'elenco completo delle opzioni di build di Publican?
Domanda: Come si ottiene l'elenco completo dei parametri configurabili nel file publican.cfg?
Domanda: Dove si trovano i file comuni di Publican?
Domanda: E' possibile includere nei tarball e nei pacchetti RPM un file qualsiasi?
Domanda: Perchè Publican segnala con warning i tag sconosciuti?
Domanda: Quali brand abilitano la modalità strict? Al momento la modalità strict non è applicata.
Domanda: I documenti HTML vengono creati regolarmente, ma provando a creare documenti PDF, si solleva un'eccezione java.lang.NullPointerException senza produzione di file PDF. Cos'è che non va?
Domanda: Un errore segnala che Batik non è presente nel classpath eppure Batik è installato! Cos'è che non va?
Domanda: Creando un file PDF si solleva un'eccezione Exception in thread "main" java.lang.OutOfMemoryError: Java heap space. Cos'è che non va?
Domanda: Versioni precedenti di Publican rimuovevano i tag <para> vuoti. E le versioni di Publican correnti?
Domanda: Che fine ha fatto il controllo ortografico?
Domanda: Perchè quando si creano file PDF, i tag <segmentedlist> non funzionano?
Domanda: Come mai, nei PDF, si altera il colore delle immagini?
Domanda: Creando un documento, si ottiene un errore del tipo ‘undefined language’ — cos'è che non va?
Domanda: Come abilitare il completamento dei comandi bash per Publican?
Domanda: Perchè Jeff chiama Isaac ‘Ivan’?
Come si aggiunge una lingua ad un libro?
Eseguendo il comando publican update_po --langs=codice_linguistico, dove codice_linguistico è il codice della lingua che si vuole aggiungere. Si possono aggiungere più lingue per volta, sperando i codici linguistici con virgole. Per esempio, publican update_po --langs=ja-JP crea la cartella per la lingua giapponese ed i file PO in giapponese, mentre publican update_po --langs=ja-JP,ko-KR crea cartelle e file PO per la lingua giapponese e coreana.
E se non si specifica il codice di nazione? Per esempio, si può eseguire publican update_po --langs=es,de,fr?
Anche così il comando funziona. Tuttavia, se si omette il codice di nazione, il risultato potrebbe essere indefinito nel caso in cui Publican o un brand abbia definizioni per varietà nazionali di una lingua — come nel caso di zh-CN (cinese semplificato della Repubblica Popolare Cinese) e zh-TW (cinese tradizionale della Repubblica di Cina, o Taiwan). Anche nel caso sia definita correntemente una sola varietà linguista, è sempre opportuno includere anche il codice di nazione, cosicchè un futuro aggiornamento di Publican non trasformi inaspettatamente un documento in lingua tedesca (de-DE) nel Common Content dello Schweizerdeutsch (de-CH) o svizzero tedesco.
Come si aggiornano tutti i file PO?
Eseguendo il comando publican update_po --langs=all.
Come si ottiene l'elenco completo delle opzioni di build di Publican?
Eseguendo il comando publican build --help.
Come si ottiene l'elenco completo dei parametri configurabili nel file publican.cfg?
Eseguendo il comando publican help_config in una cartella contenente un documento di Publican.
Dove si trovano i file comuni di Publican?
Per impostazione, nella directory /usr/share/publican/ nei Sistemi Operativi Linux e in %SystemDrive%/%ProgramFiles%/publican/Common_Content nei sistemi operativi Windows — tipicamente, C:/Program Files/publican/Common_Content.
E' possibile includere nei tarball e nei pacchetti RPM un file qualsiasi?
Certo. Creando una sotto-cartella denominata files nella cartella del linguaggio originale, essa viene inclusa in tutti i tarball o pacchetti SRPM creati da Publican.

Importante

La cartella files non è disponibile durante la fase di validazione, per cui non è possibile xi:include o inglobare diversamente, i file contenuti in questa cartella nell'XML.
Perchè Publican segnala con warning i tag sconosciuti?
Questi warning informano che si sta usando dei tag il cui effetto non è stato testato per attrattiva, conformità a XHTML 1.0 Strict o conformità a Section 508 (Standard d'Accessibilità USA).
Quali brand abilitano la modalità strict? Al momento la modalità strict non è applicata.
Al momento i brand Red Hat e JBoss abilitano la modalità strict.
I documenti HTML vengono creati regolarmente, ma provando a creare documenti PDF, si solleva un'eccezione java.lang.NullPointerException senza produzione di file PDF. Cos'è che non va?
Provare a creare un file PDF con un diverso documento — meglio se con un nuovo documento creato con il comando publican create. Se il problema persiste, allora probabilmente nel sistema in uso, esiste un conflitto tra JRE (Java Runtime Environment) e JDK (Java Development Kit). Se è presente una JDK, FOP richiede che la JDK abbia la stessa versione della JRE. Inoltre, FOP non può usare la GCJ (GNU Compiler for Java).
Eseguire alternatives --config java e alternatives --config javac per determinare la JRE e JDK in uso, poi selezionare le versioni corrispondenti e quelle prive dell'elemento gcj nel loro nome. Per esempio, la seguente configurazione Java visualizza una JRE ed una JDK corrispondente che consentono di creare file PDF:
$ alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*  2           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
 + 3           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number:
$ alternatives --config javac

There are 3 programs which provide 'javac'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/javac
   2           /usr/lib/jvm/java-1.6.0-openjdk/bin/javac
   3           /usr/lib/jvm/java-1.5.0-gcj/bin/javac

Enter to keep the current selection[+], or type selection number:
Potrebbe essere necessario installare una JDK extra, nel caso non sia presente una JDK corrispondente alle versioni JRE presenti.
Alcune installazioni Java non configurano correttamente gli ambienti con il comando alternatives. Per questo problema non è stata determinata una soluzione.
Un errore segnala che Batik non è presente nel classpath eppure Batik è installato! Cos'è che non va?
Si ritiene che ciò sia dovuto a problemi di classpath causati dall'utilizzo di differenti versioni di JRE e JDK. Fare riferimento alla domanda precedente di questa FAQ, riguardante l'eccezione java.lang.NullPointerException ed usare il comando alternatives per assicurarsi di avere JRE e JDK corrispondenti.
Creando un file PDF si solleva un'eccezione Exception in thread "main" java.lang.OutOfMemoryError: Java heap space. Cos'è che non va?
La memoria allocata per Java, in modo predefinito, è insufficiente a creare il PDF. Occorre aumentare la memoria allocata per FOP. Prima di eseguire publican build, eseguire echo "FOP_OPTS='-Xms50m -Xmx700m'" > ~/.foprc. Ciò imposta lo spazio iniziale della memoria heap a 50 MB e permette di aumentare fino ad un massimo di 700 MB.
Versioni precedenti di Publican rimuovevano i tag <para> vuoti. E le versioni di Publican correnti?
No. Publican nel passato, rimuoveva i tag <para> vuoti durante la trasformazione dei file XML, in quanto i tag <para> vuoti creavano problemi agli strumenti di traduzione usati in precedenza in Red Hat e nel Fedora Project. Tag <para> vuoti, sono tag validi in DocBook XML ed ora non vengono più rimossi da Publican.
Che fine ha fatto il controllo ortografico?
Precedenti versioni di Publican (fino alla versione 0.45, inclusa) eseguivano un controllo ortografico durante la trasformazione dei file XML. In seguito ai giudizi negativi degli utenti, questa funzione è stata rimossa.
Eseguire il seguente script bash nella cartella radice del documento, per controllare l'ortografia nei file XML con aspell, un controllore ortografico da riga di comando.
#!/bin/sh
# Jeff Fearn 2010

ASPELL_EXCLUDES=programlisting,userinput,screen,filename,command,computeroutput,abbrev,accel,orgname,surname,foreignphrase,acronym,hardware

for file in `find en-US -wholename '*/extras/*' -prune -o -name \*.xml -print`; do
	echo "Processing $file";
	aspell --list --lang=en-US --mode=sgml --add-sgml-skip={$ASPELL_EXCLUDES} < $file  | sort -u;
	echo;
done


Perchè quando si creano file PDF, i tag <segmentedlist> non funzionano?
Contare il numero di colonne presenti nei tag <segmentedlist>. Se i <segmentedlist> sono formattati come tabelle, l'XSL di DocBook limita il numero delle colonne a due soltanto, e Publican formatta i <segmentedlist> come tabelle.
Come mai, nei PDF, si altera il colore delle immagini?
Ciò è dovuto ad un bug in FOP che distorce i colori nelle immagini PNG a 24-bit. Convertire le immagini, in immagini PNG a 32-bit per circuire questo problema.
Creando un documento, si ottiene un errore del tipo ‘undefined language’ — cos'è che non va?
In Publican l'evidenziazione del codice è generato con il modulo Perl, Syntax::Highlight::Engine::Kate. Se in un tag <programlisting> si specifica un linguaggio non riconosciuto da Syntax::Highlight::Engine::Kate, in fase di creazione del libro si riceve un errore. Le prime righe del messaggio d'errore sono simili a:
undefined language: JAVA at /usr/lib/perl5/vendor_perl/5.10.0/Syntax/Highlight/Engine/Kate.pm
line 615.
cannot create plugin for language 'JAVA'
Notare che il modulo Syntax::Highlight::Engine::Kate è molto rigoroso con i nomi dei linguaggi ed è case sensitive. Quindi, <programlisting language="Java"> funziona, ma <programlisting language="java"> e <programlisting language="JAVA"> non funzionano. Il messaggio d'errore specifica il problema relativo all'attributo del linguaggio.
Fare riferimento a http://search.cpan.org/~szabgab/Syntax-Highlight-Engine-Kate-0.06/lib/Syntax/Highlight/Engine/Kate.pm#PLUGINS per l'elenco completo dei linguaggi supportati da Syntax::Highlight::Engine::Kate, insieme al corretto uso delle lettere maiuscole e della punteggiatura.
Come abilitare il completamento dei comandi bash per Publican?
Supporto al completamento dei comandi bash è una nuova funzionalità presente in Publican 2.2. Per abilitarla:
  1. Installare il pacchetto o i pacchetti che offrono il completamento dei comando bash per il proprio sistema operatvio. Per esempio, in Fedora, eseguire il comando sudo yum install bash-completion.
  2. Aggiungere al proprio file ~/.bashrc:
    # Use bash-completion, if available
    if [ -f /etc/bash_completion ]; then
            . /etc/bash_completion
    fi
    
  3. Riavviare il terminale o eseguire source ~/.bashrc.
Perchè Jeff chiama Isaac ‘Ivan’?
Perchè la memoria di Jeff è in mutande!