Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/translate-toolkit-1.3.0/tools/pomigrate2
diff options
context:
space:
mode:
Diffstat (limited to 'translate-toolkit-1.3.0/tools/pomigrate2')
-rwxr-xr-xtranslate-toolkit-1.3.0/tools/pomigrate2159
1 files changed, 159 insertions, 0 deletions
diff --git a/translate-toolkit-1.3.0/tools/pomigrate2 b/translate-toolkit-1.3.0/tools/pomigrate2
new file mode 100755
index 0000000..a8e47f5
--- /dev/null
+++ b/translate-toolkit-1.3.0/tools/pomigrate2
@@ -0,0 +1,159 @@
+#!/bin/bash
+#
+# Copyright 2004, 2005 Zuza Software Foundation
+#
+# This file is part of The Translate Toolkit.
+#
+# The Translate Toolkit is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# translate is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with translate; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+# pomigrate2 - migrates PO files from an old version using new POT files.
+
+
+function usage() {
+ echo "Usage `basename $0` [options] <product-old> <product-new> <product-templates>"
+ echo
+ echo "Options:"
+ echo " -F|--use-fuzzy-matching - use fuzzy algorithms when merging to attempt to match strings"
+ echo " -C|--use-compendium - create and use a compendium built from the migrating files"
+ echo " -C|--use-compendium=some-compendium.po"
+ echo " - use an external compendium during the migration"
+ echo " --no-wrap - do not wrap long lines"
+ echo " --locale=lang - set locale for newly born files"
+ echo " -q|--quiet - suppress most output"
+ echo " -p|--pot2po - use pot2po instead of msgmerge to migrate"
+ exit 1
+}
+
+option_no_fuzzy_matching="--no-fuzzy-matching"
+option_verbose="Y"
+
+while true
+do
+ case $1 in
+ -F|--use-fuzzy-matching)
+ option_no_fuzzy_matching=""
+ shift
+ ;;
+ -C|--use-compendium)
+ option_use_compendium="--compendium"
+ shift
+ ;;
+ -C=*|--use-compendium=*)
+ option_use_own_compendium="$option_use_own_compendium --compendium=`echo $1 | sed 's/\-C=\|--use-compendium=//'`"
+ option_pot2po_use_own_compendium="$option_use_own_compendium --tm=`echo $1 | sed 's/\-C=\|--tm=//'`"
+ shift
+ ;;
+ --no-wrap)
+ option_no_wrap="--no-wrap"
+ shift
+ ;;
+ --locale=*)
+ option_locale=`echo $1 | sed 's/--locale=//'`
+ shift
+ ;;
+ --locale)
+ shift
+ if [ $# -lt 1 ]; then
+ usage
+ fi
+ option_locale=$1
+ shift
+ ;;
+ -q|--quiet)
+ option_verbose=""
+ option_verbose_msgmerge="--quiet"
+ shift
+ ;;
+ -p|--pot2po)
+ option_pot2po="pot2po"
+ shift
+ ;;
+ -*|--*)
+ usage
+ ;;
+ *)
+ break
+ ;;
+ esac
+done
+
+if [ $# -ne 3 ]; then
+ usage
+fi
+
+old=$1
+new=$2
+templates=$3
+
+echo "** Migrating files... **"
+pots=`cd $templates; find . -name "*.pot"`
+if [ "$pots" == "" ]; then
+ echo "No POT templates found in: $templates"
+ exit 1
+fi
+for pot in $pots
+do
+ filename=`basename $pot .pot`.po
+ directory=`dirname $pot`
+ mkdir -p $new/$directory
+ if [ -f $old/$directory/$filename ]; then
+ cp -p $old/$directory/$filename $new/$directory/$filename && [ $option_verbose ] && echo Copied $new/$directory/$filename
+ else
+ if [ `find $old -name "$filename" | wc -l` -ge 1 ]; then
+ msgcat $option_no_wrap -o $new/$directory/$filename `find $old -name "$filename" -printf "%p "` && [ $option_verbose ] && echo Migrated $new/$directory/$filename
+ else
+ if [ ! $option_verbose ]; then
+ msginit $option_no_wrap --locale=$option_locale --no-translator -i $templates/$pot -o $new/$directory/$filename 2>&1 | egrep -v "^Created"
+ else
+ msginit $option_no_wrap --locale=$option_locale --no-translator -i $templates/$pot -o $new/$directory/$filename
+ fi
+ fi
+ fi
+done
+
+if [ "$option_use_compendium" != "" ]; then
+ echo "** Creating compendium from old files... **"
+ compendium=`mktemp tmp.XXXXXXXXXX`.po
+ `dirname $0`/pocompendium --correct $compendium -d $old
+ option_use_compendium=" --compendium=$compendium "
+ option_pot2po_use_compendium=" --tm=$compendium "
+fi
+
+echo -n "** Updating files against templates"
+[ $option_use_compendium ] && echo -n " using a compendium"
+echo " **"
+if [ ! $option_pot2po ]; then
+ for po in `cd $new ; find . -name "*.po" | sort`
+ do
+ [ $option_verbose ] && echo -n $new/$po
+ msgmerge $option_verbose_msgmerge $option_no_fuzzy_matching $option_no_wrap $option_use_compendium $option_use_own_compendium --backup=off --update $new/$po $templates/${po}t
+ done
+else
+ temp_pot2po_new=`mktemp -d tmp.XXXXXXXXXX`
+ temp_msgcat_new=`mktemp -d tmp.XXXXXXXXXX`
+ cp -rp $new/* $temp_pot2po_new
+ pot2po --errorlevel=traceback $option_pot2po_use_compendium $option_pot2po_use_own_compendium -t $temp_pot2po_new $templates $temp_msgcat_new
+ for file in `cd $temp_msgcat_new; find . -name "*.po"`
+ do
+ mkdir -p $new/$(dirname $file)
+ msgcat $temp_msgcat_new/$file > $new/$file
+ done
+ rm -rf $temp_pot2po_new $temp_msgcat_new
+fi
+
+if [ "$option_use_compendium" != "" ]; then
+ rm $compendium
+fi