Index: lib/Locale/Po4a/Html.pm
===================================================================
RCS file: /cvsroot/po4a/po4a/lib/Locale/Po4a/Html.pm,v
retrieving revision 1.8
diff -u -r1.8 Html.pm
--- lib/Locale/Po4a/Html.pm 27 Aug 2004 10:31:53 -0000 1.8
+++ lib/Locale/Po4a/Html.pm 24 Nov 2004 17:26:36 -0000
@@ -80,6 +80,8 @@
my ($self,$filename)=@_;
my $stream = HTML::TokeParser->new($filename)
|| die "Couldn't read HTML file $filename : $!";
+
+ $stream->unbroken_text( [1] );
my @type=();
NEXT : while (my $token = $stream->get_token) {
@@ -97,14 +99,36 @@
# $encoded = HTML::Entities::encode($a);
# $decoded = HTML::Entities::decode($a);
#print STDERR $token->[0];
- $self->pushline( " ".$self->translate($text,
+ $self->pushline( $self->translate($text,
"FIXME:0",
(scalar @type ? $type[scalar @type-1]: "NOTYPE")
- )." " );
+ ),
+ 'wrap' => 1
+ );
next NEXT;
} elsif ($token->[0] eq 'S') {
push @type,$token->[1];
- $self->pushline( get_tag( $token ) );
+ my $text = get_tag( $token );
+ if ( $token->[1] eq 'img' ) {
+ my %foo = %{$token->[2]};
+ my $title = (exists $foo{"title"}?$foo{"title"}:"")."\n";
+ my $alt = (exists $foo{"alt"}?$foo{"alt"}:"")."\n";
+ for my $attr ($title, $alt) {
+ if (defined $attr) {
+ $attr = trim($attr),
+ my $translated = $self->translate(
+ $attr,
+ "FIXME:0",
+ (scalar @type?
+ $type[scalar @type-1]:
+ "NOTYPE")
+ );
+ $attr = quotemeta $attr;
+ $text =~ s/$attr/$translated/;
+ }
+ }
+ }
+ $self->pushline( $text );
} elsif ($token->[0] eq 'E') {
pop @type;
$self->pushline( get_tag( $token ) );
@@ -136,9 +160,10 @@
sub trim {
my $s=shift;
- $s =~ s/\n//g; # remove \n in text
- $s =~ s/\r//g; # remove \r in text
- $s =~ s/\t//g; # remove tabulations
+ $s =~ s/\n/ /g; # remove \n in text
+ $s =~ s/\r/ /g; # remove \r in text
+ $s =~ s/\t/ /g; # remove tabulations
+ $s =~ s/\s+/ /g; # remove multiple spaces
$s =~ s/^\s+//; # remove leading spaces
$s =~ s/\s+$//; # remove trailing spaces
return $s;