1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
|
#!/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
<<PODUSAGE
=pod
=head1 NAME
update_po.sh - create or update .po file
=head1 SYNOPSIS
%> update_po.sh [command] [options]
=head1 DESCRIPTION
F<update_po.sh> is a shell script that lets you to create or update .po file.
=head1 ARGUMENTS
=over 4
=item * C<-l> I<language>
.po langunage file. Default to all existing .po files.
=item * C<-m> I<path>
MojoMojo directory.
=back
=head1 OPTIONS
=over 4
=item * C<-p> I<path>
perl binary executable path. You can also set C<PERL> 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
|