| #!/bin/sh | |
| # potomo - Convert a .po file to an utf-8 encoded .mo file. | |
| # Copyright 2008 g10 Code GmbH | |
| # Copyright 2010 Free Software Foundation, Inc. | |
| # | |
| # This file is free software; as a special exception the author gives | |
| # unlimited permission to copy and/or distribute it, with or without | |
| # modifications, as long as this notice is preserved. | |
| # | |
| # This file is distributed in the hope that it will be useful, but | |
| # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the | |
| # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| # This script is used to create the mo files for applications using | |
| # the simple gettext implementation provided by libgpg-error. That | |
| # gettext can only cope with utf-8 encoded mo files; thus we make this | |
| # sure while creating the mo. A conversion is not done if the source | |
| # file does not exist or if it is not newer than the mo file. | |
| if [ "$1" = "--get-linguas" -a $# -eq 2 ]; then | |
| if [ ! -f "$2/LINGUAS" ]; then | |
| echo "potomo: directory '$2' has no LINGUAS file" >&2 | |
| exit 1 | |
| fi | |
| echo $(sed -e "/^#/d" -e "s/#.*//" "$2"/LINGUAS) | |
| exit 0 | |
| fi | |
| if [ $# -ne 2 ]; then | |
| echo "usage: potomo INFILE.PO OUTFILE.MO" >&2 | |
| echo " potomo --get-linguas DIR" >&2 | |
| exit 1 | |
| fi | |
| infile="$1" | |
| outfile="$2" | |
| if [ ! -f "$infile" ]; then | |
| echo "potomo: '$infile' not found - ignored" 2>&1 | |
| exit 0 | |
| fi | |
| if [ "$outfile" -nt "$infile" ]; then | |
| echo "potomo: '$outfile' is newer than source - keeping" 2>&1 | |
| exit 0 | |
| fi | |
| # Note that we could use the newer msgconv. However this tool was not | |
| # widely available back in 2008. | |
| fromset=`sed -n '/^"Content-Type:/ s/.*charset=\([a-zA-Z0-9_-]*\).*/\1/p' \ | |
| "$infile"` | |
| case "$fromset" in | |
| utf8|utf-8|UTF8|UTF-8) | |
| echo "potomo: '$infile' keeping $fromset" >&2 | |
| msgfmt --output-file="$outfile" "$infile" | |
| ;; | |
| *) | |
| echo "potomo: '$infile' converting from $fromset to utf-8" >&2 | |
| iconv --silent --from-code=$fromset --to-code=utf-8 < "$infile" |\ | |
| sed "/^\"Content-Type:/ s/charset=[a-zA-Z0-9_-]*/charset=utf-8/"|\ | |
| msgfmt --output-file="$outfile" - | |
| ;; | |
| esac |