Fedora selinux-user-guide translation

Ruediger Landmann r.landmann at redhat.com
Sat May 23 00:56:32 UTC 2009

Paul W. Frields wrote:
> On Fri, May 22, 2009 at 09:32:12AM +0200, Gianluca Sforna wrote:
>> On Fri, May 22, 2009 at 4:44 AM, Scott Radvan <sradvan at redhat.com> wrote:
>>> Hi all
>>> The SELinux User Guide for F11 is completed, is there anyone available
>>> to work on translation?
>> I will forward this to the it_IT translation team.
>> BTW, can you briefly explain how to build the guide locally? I find it
>> very useful to see the overall document structure, and having a
>> printed version is quite more comfortable to read...
> Install the 'publican-fedora' package (which brings in 'publican' and
> other necessary dependencies).  Then you can do 'make
> html-single-<LANG>' to make your language version.  

Before you "make html-single-it-IT" (for example), you need to make sure 
that the target language is in Publican's Makefile, or add it if it's 
not, like:


There's another complication, however. Publican will look for the .po 
files for the document in a directory named for the target language, and 
will expect a separate .po file for each .xml file in the English 
version of the document. Because the current version of Transifex can 
only serve a single .po file for each document, we've had to merge these 
files together to make them available in Transifex, and they must be 
split apart again before you can make the document in Publican.

So, let's assume that you want to build a local copy of the SELinux User 
Guide in Italian:

1. Check out a copy of the source. It should have the following structure:
-- a directory named "en-US", holding the English XML files
-- a directory named "pot", holding the .pot files that correspond to 
each XML file
-- Publican's Makefile
-- a directory named po, holding a file named LINGUAS, a file named 
selinux-user-guide.pot that was created by merging together the contents 
of the pot directory, and the merged po files for various languages 
including it.po
You can see this structure clearly in, for example, the repo for the 
Fedora User Guide: 
(ignore the es-ES directory for now)

2. add OTHER_LANGS = it-IT to the Publican makefile if it isn't already 
there (or add it-IT to this line if OTHER_LANGS is already enabled for 
languages other than Italian). You can see an example of a 
well-populated Publican Makefile in the Fedora Installation Guide here: 

3. install the publican-fedora package (which will also pull in publican 

4. In this document's directory (that is, the folder that contains the 
Makefile and the various directories listed in step 1 above), run "make 
update-po-it-IT". This will create a directory named it-IT and a set of 
.po files ready to translate into Italian. (The es-ES directory that you 
saw in step 1 above was created in this way)

5. run the following  short script to update Publican's po files from 
the merged po file:

for POTFILE in pot/*.pot; do
        msgmerge po/it.po ${POTFILE} | msgattrib --no-obsolete \
                 > $'it-IT'/$(basename ${POTFILE} .pot).po

For other languages, replace "it.po" with the name of the merged po file 
for your language, and "it-IT" with the name of the Publican directory 
for your language

6. run "make html-single-it-IT" to create the document as a single html 
file. The output will appear in the tmp/it-IT/html-single directory.

On subsequent runs, you will be able to start at step 5!

Note that any XML errors introduced in the po files will stop Publican 
from building the document. You will need to find and fix the error in 
the merged po file, then run the script from step 5 to bring the changes 
into Publican's po files.

The good news is that Transifex 0.6 can handle Publican's multiple .po 
files and will therefore remove a lot of this double-handling when 
Fedora's Transifex is updated to this version :)


More information about the Fedora-trans-list mailing list