On Tue, Sep 02, 2003 at 04:34:50PM +0200, Bartosz Feński aka fEnIo wrote: > > O ile wiem, to nie ma centralnego repozytorium. Można sobie wgetnąć > > http://www.debian.org/intl/l10n/po-debconf/pot > No to praktycznie uniemożliwia grupową pracę nad tymi szablonami :/ > To znaczy, żeby naprzykład wrzucić to do repo PDDP to musiałbym to > nieźle oskryptować... hmm... pomyślę nad tym. W załączniku posyłam skrypt, który może się przydać. Gotowe szablony możemy wrzucać do CVSu PDDP, a potem po jakiejś sensownej korekcie zgłaszać błędy w poszczególnych pakietach. Skrypt wymaga jeszcze pracy, żeby można nim było ściągać szablony itp. Chyba ./szablon help dobrze wyjaśni jego użycie. > > Do sensownego przetłumaczenia szablonu debconfa i tak trzeba ściągnąć paczkę > > źródłową i sprawdzić w jakich momentach dany szablon się pokazuje. > No nie koniecznie. Kontekst bardziej się przydaje przy tłumaczeniu > normalnych komunikatów programów. Tutaj kontekst jest raczej oczywisty. > Upgrade/instalacja pakietu. Mimo to w PDDP proponuję oficjalnie ogłosić, że sprawdzamy kontekst ściągając te wszystkie szablony itp. Sam wiesz jak jest nawet mając kontekst ;). -- Bartosz Zapalowski bartek@klepisko.eu.org
#! /usr/bin/perl -w use strict; my $WEBSITE = "http://www.debian.org/intl/l10n/po-debconf/pl"; my @command = ("wget", "-q", "-O", "status.html", $WEBSITE); sub szablon_update() { my $a; my $section = 0; if (($a = system (@command)) != 0) { print "szablon: Nie można było pobrać stanu.".$a."\n"; exit 1; } # przeparsowanie statusu open SZ, "status.html" or die; open STATUS, ">status2" or die; while (<SZ>) { if ($_ =~ m/^<tr bgcolor="[^"]*"><td>([A-Za-z0-9_+-]+)<\/td><td>[ ]*([0-9]+%) \(([0-9]+)t;([0-9]+)f;([0-9]+)u\)<\/td><td><a href="([^"]+)">/) { my $pkg = $1; my $percent = $2; my $mt = $3; my $mf = $4; my $mu = $5; my $url = $6; print STATUS $pkg." ".$percent." ".$mt." ".$mf." ".$mu." ".$url."\n"; $section = 1; } elsif ($section) { if ($_ =~ m/^<!-- BEGIN SECTION -->/) { while (<SZ>) { if ($_ =~ m/^<h3>Section: ([a-z-]+)<\/h3>/) { my $sectionname = "section_".$1; open SECTION, ">", $sectionname."2"; while (<SZ>) { while ($_ =~ m/<a href="([^"]+)">([^<]+)<\/a>/g) { print SECTION $2." ".$1."\n"; } if ($_ =~ m/<!-- END SECTION -->/) { last; } } close SECTION; rename $sectionname."2", $sectionname; last; } } } } } close STATUS; close SZ; rename "status2", "status"; unlink "status.html"; } sub szablon_list () { if (not defined $ARGV[1]) { print "szablon: Może byś mi jednak podał sekcję.\n"; exit 1; } open SE, "section_".$ARGV[1] or die; while (<SE>) { if ($_ =~ m/^([^ ]+)/) { print $1."\n"; } } close SE; } sub szablon_help () { print <<EOF szablon <polecenie> <polecenie>: help - pomoc (ten ekran) update - ściąga listę i tworzy pliki stanu list sekcja - pokazuje listę nieprzetłumaczonych szablonów z danej sekcji status - stan tłumaczenia rozpoczętych szablonów EOF ; } sub szablon_status () { open ST, "status" or die; printf ("%30s %4s %3s %3s %3s\n", "Pakiet", "%", "T", "F", "U"); while (<ST>) { if ($_ =~ m/^([^ ]+) ([^%]+\%) ([^ ]+) ([^ ]+) ([^ ]+)/) { my $pkg = $1; my $percent = $2; my $mt = $3; my $mf = $4; my $mu = $5; printf ("%30s %4s %3s %3s %3s\n", $pkg, $percent, $mt, $mf, $mu); } } close ST; } my %commands = ( 'help' => \&szablon_help, 'update' => \&szablon_update, 'list' => \&szablon_list, 'status' => \&szablon_status ); if (defined $ARGV[0]) { if (defined $commands{$ARGV[0]}) { &{$commands{$ARGV[0]}}; } else { print "szablon: Nie znam takiego polecenia. A może ty je znasz?\n"; exit 1; } } else { print "szablon: Brak argumentów. Zapodaj szablon help.\n"; exit 1; }
Attachment:
pgpO84f0fC7BQ.pgp
Description: PGP signature