#!/bin/bash # # Copyright 2007, Donatas Glodenis # # # # # This script is free software; you can redistribute it and/or modify # # it under the terms of the GNU General Public License 2 as published by # # the Free Software Foundation. # # # This script 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 this script; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # ths-potopot.sh - converts po files to pot (template) files (basically # strips all the translation). source `dirname $0`/ths-variables if [ ! $MSGMERGE ]; then echo -e $RED"This program needs the msgmerge utility."$ENDCOLOR exit 1 fi if [ ! $MSGFILTER ]; then echo -e $RED"This program needs the msgfilter utility."$ENDCOLOR exit 1 fi if [ $# -ne 1 ]; then echo "Usage: `basename $0` " exit 1 fi pofiles=$1 echo "This script will create a directory of pot files called " echo "./templates/ inside the directory of the po files." echo "Starting in three seconds..." sleep 3 echo "Creating directory ${pofiles}/templates/ ... " mkdir $pofiles/templates sleep 1 for file in `cd $pofiles; find . -name "*.po"` do echo -n "Working on ${file}. Unwrapping..." # unwrap messages for cleaner operation $MSGMERGE --no-wrap ${pofiles}/$file $pofiles/$file -o $pofiles/$file # remove the translations and creating pot files echo "Cleaning up translations..." $MSGFILTER --input=$pofiles/$file --output-file=$pofiles/templates/${file}t --keep-header sed --expression='s/.*//' ; echo "done." # applying some more filters via sed: remove remaining \n signs (sed 1 and 2), removing the fuzzy headers (3), removing the empty "" (4), removing the extra empty lines (5) echo "Applying additional filter..." cat $pofiles/templates/${file}t | sed -e 's/msgstr \"\\n\"/msgstr \"\"/' | \ sed -e 's/\"\\n\"/\"\"/' | \ sed -e 's/#, fuzzy//' | \ sed -e 's/^""//' | \ sed '/./,/^$/!d' > $pofiles/templates/${file}t ; echo "done." echo "File ${file}t in directory templates/ created." echo done