Re: minor breakage in international/l10n
On Sat, May 26, 2001 at 02:49:46PM +0200, Martin Schulze wrote:
> James A. Treacy wrote:
> > A quick look did not show me where the following problems come from:
> >
> > Looking into http://www.debian.org/international/l10n/l10n.en.html
> > http://www.debian.org/international/l10n/po-Pa : Error = (404) Not Found
> > [many more identical lines snipped]
> >
> > Looking into http://www.debian.org/international/l10n/team-po.en.html
> > http://www.debian.org/international/l10n/po-Pa : Error = (404) Not Found
>
> The problem seems to arise from international/l10n/data/unstable:
>
> Package: python-4suite
> Version: 0.10.2-1
> Section: interpreters
> Priority: optional
> Type: ?
> Upstream: other
> Stats: en_US: 0t0f30u
> Stats: de: 80t0f0u
> Stats: Pa: 0t0f6u <----------------- should be pa, I guess
> Stats: fr_FR: 77t0f1u
> PO:
>
> Can somebody fix this?
Well, it's fixed in the data file, but I can't manage to fix it in the
script generating the DB. The problem is in the following of your snipet:
Stats: fr_FR: 77t0f1u
PO:
[...]
Ods/Parsers/Odl/en_US.po:pa:0t0f2u:Ods/Parsers/Odl/python-4suite_0.10.2-1_Ods_Parsers_Odl_en_US.po
Ods/Parsers/Oif/en_US.po:pa:0t0f2u:Ods/Parsers/Oif/python-4suite_0.10.2-1_Ods_Parsers_Oif_en_US.po
Ods/Parsers/Oql/en_US.po:pa:0t0f2u:Ods/Parsers/Oql/python-4suite_0.10.2-1_Ods_Parsers_Oql_en_US.po
So, my stupid script think that Ods/Parsers/Odl/en_US.po is in 'pa', and
not in 'en_US' as it should.
The offending code is the following (from intl/l10n/scripts/transmonitor-check):
##
## for po files, try to guess the language from the name,
## and the l10n with msgfmt
##
my $file; # the po file name in the package
my $filename; #the po file name to be archived
my $lang=""; # the identified code language
my $bad_lang=""; #this could be a language, but this is not a valid language
my $f; #nb of fuzzy msg
my $u; #nb of untranslated msg
my $t; #nb of translated msg
my $this_stat = ""; #stats for this file
my $err_msg =""; # err msg of the statistic external command (ie, msgfmt or debconf-stats)
# HERE, my problem is HERE
my $regexp_for_lang_code = "((..)([-_][a-zA-Z]*)?(@[^\.]*)?)(\.[^\.]*)?";
# That all, the rest should be ok
POFILE: foreach $file (@pofiles) {
File::Path::mkpath(File::Basename::dirname("$PO_ROOT/$pkg/$file"));
$filename = "${pkg}_$data{$pkg}{'version'}/$file";
$filename =~ s,/,_,g;
$filename = File::Basename::dirname("$file")."/".$filename;
my $filename_http = $filename; #To transfer files with ":" in their name over http, the file
$filename_http =~ s,:,\%3a,;#on the server must have the ":", but the URL must be fixed.
if (system("gzip -c9 $file > $PO_ROOT/$pkg/$filename.gz")){
warn "Can't gunzip $file to $PO_ROOT/$pkg/$filename.gz : $!";
}
$this_stat="";
$lang ="";
if ($file=~ /\/$regexp_for_lang_code\.po$/){
$bad_lang =$1;
if (is_lang($bad_lang)) {
$lang = $bad_lang;
$bad_lang = "";
}
}
if ($lang eq "" && $file=~ /\/$regexp_for_lang_code\//){
$bad_lang =$1;
if (is_lang($bad_lang)) {
$lang = $bad_lang;
$bad_lang = "";
}
}
# The next rule is for kde-i18n and other such packages
if ($lang eq "" && $file =~ m,^$regexp_for_lang_code/messages,) {
$bad_lang = $1;
if (is_lang($bad_lang)) {
$lang = $bad_lang;
$bad_lang = "";
}
}
if ($lang ne "") {
# stats the file
[....]
I never managed to find the regexp matching a lang code... Can someone help
me fixing this ?
Bye, Mt.
Reply to: