View | Details | Raw Unified | Return to bug 24211
Collapse All | Expand All

(-)a/misc/translator/LangInstaller.pm (-2 / +36 lines)
Lines 81-92 sub new { Link Here
81
    $self->{msginit}         = `which msginit`;
81
    $self->{msginit}         = `which msginit`;
82
    $self->{xgettext}        = `which xgettext`;
82
    $self->{xgettext}        = `which xgettext`;
83
    $self->{sed}             = `which sed`;
83
    $self->{sed}             = `which sed`;
84
    $self->{gzip}            = `which gzip`;
85
    $self->{gunzip}          = `which gunzip`;
84
    chomp $self->{cp};
86
    chomp $self->{cp};
85
    chomp $self->{msgmerge};
87
    chomp $self->{msgmerge};
86
    chomp $self->{msgfmt};
88
    chomp $self->{msgfmt};
87
    chomp $self->{msginit};
89
    chomp $self->{msginit};
88
    chomp $self->{xgettext};
90
    chomp $self->{xgettext};
89
    chomp $self->{sed};
91
    chomp $self->{sed};
92
    chomp $self->{gzip};
93
    chomp $self->{gunzip};
90
94
91
    unless ($self->{xgettext}) {
95
    unless ($self->{xgettext}) {
92
        die "Missing 'xgettext' executable. Have you installed the gettext package?\n";
96
        die "Missing 'xgettext' executable. Have you installed the gettext package?\n";
Lines 716-724 sub remove_pot { Link Here
716
    unlink "$Bin/$self->{domain}.pot";
720
    unlink "$Bin/$self->{domain}.pot";
717
}
721
}
718
722
723
sub compress {
724
    my ($self, $files) = @_;
725
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
726
    for my $lang ( @langs ) {
727
        $self->set_lang( $lang );
728
        opendir( my $dh, $self->{path_po} );
729
        my @files = grep { $_ =~ /^$self->{lang}.*po$/ } readdir $dh;
730
        foreach my $file ( @files ) {
731
            say "Compress file $file" if $self->{verbose};
732
            system "$self->{gzip} -9 $self->{path_po}/$file";
733
        }
734
    }
735
}
736
737
sub uncompress {
738
    my ($self, $files) = @_;
739
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
740
    for my $lang ( @langs ) {
741
        opendir( my $dh, $self->{path_po} );
742
        $self->set_lang( $lang );
743
        my @files = grep { $_ =~ /^$self->{lang}.*po.gz$/ } readdir $dh;
744
        foreach my $file ( @files ) {
745
            say "Uncompress file $file" if $self->{verbose};
746
            system "$self->{gunzip} $self->{path_po}/$file";
747
        }
748
    }
749
}
750
719
sub install {
751
sub install {
720
    my ($self, $files) = @_;
752
    my ($self, $files) = @_;
721
    return unless $self->{lang};
753
    return unless $self->{lang};
754
    $self->uncompress();
722
    $self->install_tmpl($files) unless $self->{pref_only};
755
    $self->install_tmpl($files) unless $self->{pref_only};
723
    $self->install_prefs();
756
    $self->install_prefs();
724
    $self->install_messages();
757
    $self->install_messages();
Lines 729-737 sub install { Link Here
729
sub get_all_langs {
762
sub get_all_langs {
730
    my $self = shift;
763
    my $self = shift;
731
    opendir( my $dh, $self->{path_po} );
764
    opendir( my $dh, $self->{path_po} );
732
    my @files = grep { $_ =~ /-pref.po$/ }
765
    my @files = grep { $_ =~ /-pref.(po|po.gz)$/ }
733
        readdir $dh;
766
        readdir $dh;
734
    @files = map { $_ =~ s/-pref.po$//; $_ } @files;
767
    @files = map { $_ =~ s/-pref.(po|po.gz)$//; $_ } @files;
735
}
768
}
736
769
737
770
Lines 740-745 sub update { Link Here
740
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
773
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
741
    for my $lang ( @langs ) {
774
    for my $lang ( @langs ) {
742
        $self->set_lang( $lang );
775
        $self->set_lang( $lang );
776
        $self->uncompress();
743
        $self->update_tmpl($files) unless $self->{pref_only};
777
        $self->update_tmpl($files) unless $self->{pref_only};
744
        $self->update_prefs();
778
        $self->update_prefs();
745
        $self->update_messages();
779
        $self->update_messages();
(-)a/misc/translator/translate (-2 / +14 lines)
Lines 52-58 usage() if $#ARGV != 1 && $#ARGV != 0; Link Here
52
52
53
my ($cmd, $lang) = @ARGV;
53
my ($cmd, $lang) = @ARGV;
54
$cmd = lc $cmd;
54
$cmd = lc $cmd;
55
if ( $cmd =~ /create|install|update/ ) {
55
if ( $cmd =~ /^(create|install|update|compress|uncompress)$/ ) {
56
    my $installer = LangInstaller->new( $lang, $pref, $verbose );
56
    my $installer = LangInstaller->new( $lang, $pref, $verbose );
57
    if ( $cmd ne 'create' and $lang and not grep( /^$lang$/, @{ $installer->{langs} } ) ) {
57
    if ( $cmd ne 'create' and $lang and not grep( /^$lang$/, @{ $installer->{langs} } ) ) {
58
        print "Unsupported language: $lang\n";
58
        print "Unsupported language: $lang\n";
Lines 87-92 translate - Handle templates and preferences translation Link Here
87
  translate install fr-FR -f search -f memberentry
87
  translate install fr-FR -f search -f memberentry
88
  translate -p install fr-FR
88
  translate -p install fr-FR
89
  translate install
89
  translate install
90
  translate compress [fr-FR]
91
  translate uncompress [fr-FR]
90
92
91
=head1 DESCRIPTION
93
=head1 DESCRIPTION
92
94
Lines 143-148 updated. Link Here
143
With -f parameter (repeatable) you can specify specific files to translate. For
145
With -f parameter (repeatable) you can specify specific files to translate. For
144
example, -f search will translate all templates containing 'search'.
146
example, -f search will translate all templates containing 'search'.
145
147
148
=item translate compress F<lang>
149
150
Compress .po files in F<po> directory, named F<lang>-*.po. Without F<lang>, files
151
from all available languages are compressed.
152
153
=item translate uncompress F<lang>
154
155
Uncompress .po.gz files in F<po> directory, named F<lang>-*.po.gz. Without F<lang>,
156
files from all available languages are uncompressed.
157
158
146
=back
159
=back
147
160
148
=cut
161
=cut
149
- 

Return to bug 24211