Merge remote branch 'kc/master'
[koha_fer] / misc / translator / xgettext.pl
index b793867..031f9ba 100755 (executable)
@@ -7,6 +7,7 @@ xgettext.pl - xgettext(1)-like interface for .tmpl strings extraction
 =cut
 
 use strict;
+use warnings;
 use Getopt::Long;
 use POSIX;
 use Locale::PO;
@@ -97,11 +98,12 @@ sub text_extract (*) {
        } elsif ($kind eq TmplTokenType::TAG && %$attr) {
            # value [tag=input], meta
            my $tag = lc($1) if $t =~ /^<(\S+)/s;
-           for my $a ('alt', 'content', 'title', 'value') {
+           for my $a ('alt', 'content', 'title', 'value','label') {
                if ($attr->{$a}) {
+            next if $a eq 'label' && $tag ne 'optgroup';
                    next if $a eq 'content' && $tag ne 'meta';
                    next if $a eq 'value' && ($tag ne 'input'
-                       || (ref $attr->{'type'} && $attr->{'type'}->[1] =~ /^(?:hidden|radio)$/)); # FIXME
+                       || (ref $attr->{'type'} && $attr->{'type'}->[1] =~ /^(?:hidden|radio|checkbox)$/)); # FIXME
                    my($key, $val, $val_orig, $order) = @{$attr->{$a}}; #FIXME
                    $val = TmplTokenizer::trim $val;
                    remember( $s, $val ) if $val =~ /\S/s;
@@ -258,7 +260,7 @@ sub convert_translation_file () {
     }
     # The following assumption is correct; that's what HTML::Template assumes
     if (!defined $charset_in) {
-       $charset_in = $charset_out = TmplTokenizer::charset_canon 'iso8859-1';
+       $charset_in = $charset_out = TmplTokenizer::charset_canon 'utf-8';
        warn "Warning: Can't determine original templates' charset, defaulting to $charset_in\n";
     }
 }