[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: msgfmt --statistics annoyance



Quoting Frans Pop (elendil@planet.nl):
> Hi all,
> 
> When I run 'msgfmt --statistics <po-file>', msgfmt always creates a file 
> messages.mo.
> 
> If I only ask for statistics, why is this file created?
> Can this be avoided?
> What is the function of a messages.mo file anyway?


This is what is really used by programs when compiled.

Attached is my "po_test" script which tests a given PO file, with regards
to the POT fil in the current directory. Among other things, it also
outputs stats about the file.

(some parts have been contributed by Denis Barbier)



#!/bin/sh

temp=`tempfile`
trap "rm -f $temp $temp.new" 1 2 3 15

clean_and_die() {
    rm -f $temp $temp.new
    if [ "$1" = "2" ] ; then
	echo Invalid encoding. Please check the file.
    fi
    exit $1
}


if [ -z $1 ]
then
  echo Usage $0 fichier
  clean_and_die 1
fi
if [ ! -f $1 ]
then
  echo $1 not found.
  clean_and_die 1
fi

if [ `ls -1 *pot 2>/dev/null | wc -l` != "1" ] ; then 
  echo No POT file \(or more than one\) in current directory
  clean_and_die 1
fi

potfile=`ls -1 *pot`
msgmerge -U $1 $potfile


enc=$(grep -E "^\"Content-Type" $1 | cut -f2 -d= | sed 's/\\n\"//g')

echo -n "Charset is $enc. Stats: "


if test -n "$enc" ; then
  iconv -f $enc -t UTF-8 $1 >$temp >/dev/null 2>&1 || clean_and_die 2
  if [ -x $HOME/bin/check_var.pl ] ; then
    $HOME/bin/check_var.pl $1 || clean_and_die 3
  else
    echo $HOME/bin/check_var.pl not found
    clean_and_die 1
  fi
  LC_ALL=C msgfmt -c -v -o /dev/null --statistics $1
fi


clean_and_die 0

Attachment: signature.asc
Description: Digital signature


Reply to: