#!/bin/sh # Default setting PERL_DEFAULT=`which perl` MOJOMOJO_DIR="." # Process command line options while getopts ":hl:m:jp:" Option do case $Option in # MojoMojo directory m ) MOJOMOJO_DIR=$OPTARG ;; # Help option h ) perldoc $0 exit ;; # JOSN only j ) JSON_ONLY=1 ;; # Language l ) langs=$OPTARG ;; # perl path p ) PERL=$OPTARG ;; # Unknow option * ) echo Unknow option. echo See: echo " ./$0 -h" echo for usage exit 1 ;; esac done # Check perl executable if [ -z "$PERL" ] || [ ! -x "$PERL" ]; then PERL=$PERL_DEFAULT fi # Check MojoMojo dir if [ ! -d "$MOJOMOJO_DIR/lib/MojoMojo/I18N" ]; then echo "$MOJOMOJO_DIR directory: lib/MojoMojo/I18N not found." exit 1 else cd $MOJOMOJO_DIR MOJOMOJO_DIR="." fi # Check language(s) if [ -z "$langs" ] then langs=$(ls $MOJOMOJO_DIR/lib/MojoMojo/I18N|grep ^..\.po$) else langs=$langs.po fi # Process .po files for lang in $langs ; do lang_=`echo $lang|sed 's/.po//'` echo "lang: $lang_" if [ -z "$JSON_ONLY" ]; then $PERL -Ilib `which xgettext.pl` -now -D $MOJOMOJO_DIR/lib/MojoMojo $MOJOMOJO_DIR/lib/MojoMojo.pm -D $MOJOMOJO_DIR/root/forms -D $MOJOMOJO_DIR/root/base -P perl=* -P tt2=* -P yaml=yml -P formfu=* -P text=* -o $MOJOMOJO_DIR/lib/MojoMojo/I18N/$lang_.po $PERL -Ilib `which xgettext.pl` -now -D $MOJOMOJO_DIR/root/static/js -P perl=* -P tt2=* -P yaml=yml -P formfu=* -P text=* -o $MOJOMOJO_DIR/lib/MojoMojo/I18N/$lang_.js.po fi $PERL -Ilib $MOJOMOJO_DIR/script/po2json.pl $MOJOMOJO_DIR/lib/MojoMojo/I18N/$lang_.js.po $MOJOMOJO_DIR/root/static/json/$lang_.po.json done # All is OK exit 0 < update_po.sh [command] [options] =head1 DESCRIPTION F is a shell script that lets you to create or update .po file. =head1 ARGUMENTS =over 4 =item * C<-l> I .po langunage file. Default to all existing .po files. =item * C<-m> I MojoMojo directory. =back =head1 OPTIONS =over 4 =item * C<-p> I perl binary executable path. You can also set C environment variable. For example: %> PERL=/path/to/my/perl ./update_po.sh ... =item * C<-j> Create json file only. =item * C<-h> Print out this help page and exit. =back =head1 EXAMPLES %> sh update_po.sh %> sh update_po.sh -l it -p /path/to/perl-5.11/bin/perl %> sh update_po.sh -m /my/lib/MoyoMoyo -l de =head1 AUTHOR Robert Litwiniec (basic script) Enrico Sorcinelli (script improvements and POD) =head1 BUGS Send bug reports and comments to: <...>. In each report please include the version module, the Perl version, the Apache, the mod_perl version and your SO. If the problem is browser dependent please include also browser name and version. =head1 SEE ALSO MojoMojo PODUSAGE