summaryrefslogtreecommitdiffstats
path: root/Documentation/make_PO_to_ASCIIDOC.sh
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/make_PO_to_ASCIIDOC.sh')
-rwxr-xr-xDocumentation/make_PO_to_ASCIIDOC.sh59
1 files changed, 59 insertions, 0 deletions
diff --git a/Documentation/make_PO_to_ASCIIDOC.sh b/Documentation/make_PO_to_ASCIIDOC.sh
new file mode 100755
index 000000000..95fbf40ab
--- /dev/null
+++ b/Documentation/make_PO_to_ASCIIDOC.sh
@@ -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