Po di freeciv
Cappelletti Lorenzo
l.cappelletti@mail.com
Wed, 28 Mar 2001 14:06:18 +0200
--bp/iNruPH9dso1Pn
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Di primo acchito ci sono da correggere tutti gli accenti: si scrive=20
"perch=E9", "(af)finch=E9", "s=E9", ma si scrive "cio=E8", "=E8".
Cmq controllare un file cos=EC grosso =E8 veramente un'impresa ciclopica=20
per un singolo, oltre ad un dispendio di energie. Che ne dite se ci
mettiamo d'accordo su chi tradurre che cosa?
In particolare vi ripropongo un messaggio ed uno script in perl che=20
avevo fatto circolare su questa lisat ma di cui non ho ricevuto nessun=20
commento di nessun genere.
Ho preparato un piccolo script in perl che prende un file .po dallo
*standard input* e restituisce un blocco continuo di messaggi in modo=20
che il carico di lavoro per correggere tale blocco non sia mai=20
superiore a 15 minuti (calcolando 3 secondi per msgid). Il blocco =E8=20
scelto a caso, ma se avete suggerimenti migliori...
Fatemi sapere cosa ne pensate.
LoLo
--=20
Lorenzo Cappelletti
e-mail: L.Cappelletti@mail.com
Voice&SMs: +39 3474874077 Fax: +39 02700502773
Home Page: http://www.bigfoot.com/~l.cappelletti/
Fingerprint: 8CDD 3408 53B2 6122 99DA EE37 1523 68FC D906 4C08
--bp/iNruPH9dso1Pn
Content-Type: application/x-perl
Content-Disposition: attachment; filename="estrai_po_msg.pl"
Content-Transfer-Encoding: quoted-printable
#!/usr/bin/perl -w=0A#=0A# $Id: estrai_po_msg.pl,v 1.2 2001/03/28 12:01:16 =
lolo Exp $=0A#=0A# Extracts from a .po file a random selected block of msgi=
ds,=0A# whose length depends on the number of messages and the max work loa=
d.=0A#=0A=0A#=0A# Command line parsing and constant=0A#=0A$max_work_time =
=3D 15*60; # Max time of work in seconds=0A$sec_per_msg =3D 3; # Seco=
nds per message=0A=0A=0A=0A#=0A# Counts the number of messages=0A#=0A=0Awhi=
le (<>) {=0A=0A $num_msgs++ if /^msgid /;=0A=0A}=0A=0Adie "Errore! Non sem=
bra un file po.\n" if (not $num_msgs);=0A=0A$num_msgs--; # First msgid is p=
o info=0Aseek(STDIN, 0, 0);=0A=0A=0A=0A#=0A# Computes size and first messag=
e of the block=0A#=0A=0A$num_blocks =3D int($num_msgs * $sec_per_msg / $max=
_work_time) + 1;=0A=0Asrand(time ^ $$);=0A$block =3D int(rand() * $num_bloc=
ks);=0A=0A$block_size =3D int($num_msgs / $num_blocks);=0A$first_msg =3D $b=
lock * $block_size;=0A=0Aprint STDERR "=0ATrovati $num_msgs messaggi che ve=
rranno suddivisi=0Ain $num_blocks blocchi da $block_size messaggi ciascuno.=
=0A=0ABlocco casuale che verr=E0 stampato: $block\n\n";=0A=0A=0A=0A#=0A# Pr=
ints out the initial comments, the revision info and the block.=0A#=0A=0A# =
Prints out comments=0Awhile (($_ =3D <>) !~ /^msgid/) {=0A=0A print $_;=0A=
=0A}=0A=0A=0A# Prints revision info=0A$/ =3D ""; # Record separator set to =
multiple empty lines=0A$_ =3D <>;=0Aforeach $line (split(/\n/,$_)) {=0A=0A =
$line =3D~ /\"(Project-Id-Version|PO-Revision-Date|Last-Translator):.*/=0A=
and print "$line\n";=0A=0A}=0A=0A=0A# Prints block=0Aprint "=0ASalto i =
primi $first_msg/$num_msgs messaggi...";=0Afor ($i =3D 0; $i < $first_msg; =
$i++) {}=0Aprint "=0ASeguono $block_size messaggi (blocco " . ($block + 1) =
. "/$num_blocks)\n\n\n";=0Afor ($i =3D 0; $i < $block_size; $i++) {=0A=0A =
print scalar <>;=0A=0A}=0A
--bp/iNruPH9dso1Pn--