2008-11-04 Colin Leroy <colin@colino.net>
[gpg4win.git] / src / potomo
1 #!/bin/sh
2 # potomo - Convert a .po file to an utf-8 encoded .mo file.
3 #
4 # This script is used to create the mo files for applications using
5 # the simplegetext implementaion as used by GnuPG and some other
6 # tools.  That gettext can only cope with utf-8 encoded mo files; thus
7 # we make this sure while creating the mo.  A vonversion is not done
8 # if the source file does not exist or if it is not newer than the mo
9 # file. 
10
11 if [ "$1" = "--get-linguas" -a $# -eq 2 ]; then
12    if [ ! -f "$2/LINGUAS" ]; then
13        echo "potomo: directory '$2' has no LINGUAS file" >&2
14        exit 1
15    fi
16    echo $(sed -e "/^#/d" -e "s/#.*//" "$2"/LINGUAS)
17    exit 0
18 fi
19
20 if [ $# -ne 2 ]; then
21   echo "usage: potomo infile.po outfile.mo" >&2
22   exit 1
23 fi
24 infile="$1"
25 outfile="$2"
26
27 if [ ! -f "$infile" ]; then
28   echo "potomo: '$infile' not found - ignored" 2>&1
29   exit 0
30 fi
31
32 if [ "$outfile" -nt "$infile" ]; then
33   echo "potomo: '$outfile' is newer than source - keeping" 2>&1
34   exit 0
35 fi
36   
37 fromset=`sed -n '/^"Content-Type:/ s/.*charset=\([a-zA-Z0-9_-]*\).*/\1/p' \
38          "$infile"`
39
40 case "$fromset" in 
41     utf8|utf-8|UTF8|UTF-8) 
42         echo "potomo: '$infile' keeping $fromset" >&2 
43         msgfmt --output-file="$outfile" "$infile"
44         ;;   
45     *)
46         echo "potomo: '$infile' converting from $fromset to utf-8" >&2
47         iconv --silent --from-code=$fromset --to-code=utf-8 < "$infile" |\
48             sed "/^\"Content-Type:/ s/charset=[a-zA-Z0-9_-]*/charset=utf-8/"|\
49             msgfmt --output-file="$outfile" -
50         ;;
51 esac
52