#!/usr/bin/perl # Copyright 2003-2005 Nathan Walp # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 50 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Taken from the Gaim project, modified by Angel Vidal (Kry) for the aMule project. use POSIX qw(strftime); my $PACKAGE="aMule"; my $DOMAIN="amule"; use Locale::Language; $lang{gl} = "Galician (Galiza)"; $lang{en_AU} = "English (Australian)"; $lang{en_CA} = "English (Canadian)"; $lang{en_GB} = "English (British)"; $lang{en_US} = "English (USA)"; $lang{es_MX} = "Spanish (Mexico)"; $lang{et_EE} = "Estonian (Estonia)"; $lang{it_CH} = "Italian (Switzerland)"; $lang{ko_KR} = "Korean (Korea)"; $lang{my_MM} = "Burmese (Myanmar)"; $lang{pt_BR} = "Portuguese (Brazilian)"; $lang{pt_PT} = "Portuguese (Portugal)"; $lang{'sr@Latn'} = "Serbian (Latin)"; $lang{zh_CN} = "Chinese (Simplified)"; $lang{zh_TW} = "Chinese (Traditional)"; opendir(DIR, ".") || die "can't open directory: $!"; @pos = grep { /\.po$/ && -f } readdir(DIR); foreach (@pos) { s/\.po$//; }; closedir DIR; @pos = sort @pos; $now = `date`; system("intltool-update --pot > /dev/null"); $_ = `msgfmt --statistics $DOMAIN.pot -o /dev/null 2>&1`; die "unable to get total: $!" unless (/(\d+) untranslated messages/); $total = $1; $generated = strftime "%Y-%m-%d %H:%M:%S", gmtime; $stats_generated = `date`; chomp($stats_generated); print "\n"; print "\n"; print "\n"; foreach $index (0 .. $#pos) { $trans = $fuzz = $untrans = 0; $po = $pos[$index]; print STDERR "$po..." if($ARGV[0] eq '-v'); system("msgmerge $po.po $DOMAIN.pot -o $po.new 2>$po.po.warnings"); $_ = `msgfmt --statistics $po.new -o /dev/null 2>&1`; chomp; if(/(\d+) translated message/) { $trans = $1; } if(/(\d+) fuzzy translation/) { $fuzz = $1; } if(/(\d+) untranslated message/) { $untrans = $1; } unlink("$po.new"); $warnings = `cat $po.po.warnings | grep -v done | wc -l | cut -d" " -f 1`; chop($warnings); unlink("$po.po.warnings") if $warnings eq "0"; $name = ""; $name = $lang{$po}; $name = code2language($po) unless $name ne ""; $name = "???" unless $name ne ""; print "\n" unless $po eq "en_GB"; print STDERR "done ($untrans untranslated strings).\n" if($ARGV[0] eq '-v'); } print "\n";