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 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 'makehtml-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:
OTHER_LANGS = it-ITThere'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: http://git.fedorahosted.org/git/?p=docs/user-guide.git;a=tree;h=refs/heads/f11-tx;hb=f11-tx (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: http://git.fedorahosted.org/git/docs/install-guide.git?p=docs/install-guide.git;a=blob_plain;f=Makefile;hb=df349fa845ffbecaa597a4839d83c85228a63bbb
3. install the publican-fedora package (which will also pull in publican itself)
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
done
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 :)
Cheers Ruediger