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;