Add POT/PO infrastructure to translate user manual.

Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Guillaume GARDET 2015-01-14 16:25:58 +01:00 committed by Dirk Hohndel
parent 501f72c697
commit b4b08bdcc5
3 changed files with 7117 additions and 0 deletions

File diff suppressed because it is too large Load diff

22
Documentation/make_POT.sh Executable file
View file

@ -0,0 +1,22 @@
#!/bin/bash
#
# Author(s): Guillaume GARDET <guillaume.gardet@free.fr>
#
# History:
# - 2015-01-14: Initial release
#
# Package deps: - po4a (for po4a-gettextize)
# - perl-Unicode-LineBreak
# Some vars
File_to_translate="./user-manual.txt"
POT_files_folder="./50-pot"
POT_name="subsurface-manual.pot"
#Generate a POT file from user-manual.txt file in current folder
cmd="po4a-gettextize --msgid-bugs-address subsurface@subsurface-divelog.org \
--package-name subsurface-manual -o porefs=full,nowrap \
-f asciidoc -M UTF-8 -m $File_to_translate -p $POT_files_folder/$POT_name"
echo "Generating POT file:"
echo $cmd
$cmd

View file

@ -0,0 +1,59 @@
#!/bin/bash
#
# Author(s): Guillaume GARDET <guillaume.gardet@free.fr>
#
# History:
# - 2015-01-14: Initial release
#
# Known bugs:
# - Some list item indexes are lost during PO to ASCII conversion (see asciidoc warning messages)
#
# Package deps: - po4a (for po4a-translate)
# - git (for git sync)
# - gettext-tools (for msginit and msgmerge)
# Some vars
File_to_translate="./user-manual.txt"
POT_files_folder="./50-pot/"
langs="fr" # Language list which uses POT/PO files for translation
PO_filename_root="subsurface-manual"
translation_limit="0" # Minimal translation percentage. Under this limit, no translated file is output.
dosync=1 # whether to pull new translations from git
for i in "$@"; do
if [ "$i" = "--nosync" ]; then
dosync=0
fi
done
for lang in $langs; do
PO_folder="$lang/po"
# Sync PO files from GIT server and update it using latest generated POT file (in case PO file not merged with latest POT)
if [ "$dosync" = 1 ]; then
echo "* Syncing PO file for '$lang'"
git pull
for file in $(ls $POT_files_folder/*.pot); do
filename=$(basename ${file%.pot}).$lang.po
if [ ! -f $PO_folder/$filename ]; then
echo "** Initializing PO file for $lang"
mkdir -p $PO_folder
msginit -l $lang --input=$file --output-file=$PO_folder/$filename
fi;
echo "** Updating PO file for '$lang' from POT file"
msgmerge --previous --lang=$lang --update $PO_folder/$filename $POT_files_folder/*.pot
done
fi
# Generate translated ASCIIDOC files
echo "* Generating ASCIIDOC files for '$lang'"
for file in $File_to_translate; do
Translated_file=$(basename ${File_to_translate%.txt})_$lang.txt
cmd="po4a-translate --keep $translation_limit -f asciidoc -M UTF-8 -m $File_to_translate -p $PO_folder/$PO_filename_root.$lang.po -l $Translated_file"
echo $cmd
$cmd
done
done