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 715-723 sub remove_pot { Link Here
715
    unlink "$Bin/$self->{domain}.pot";
719
    unlink "$Bin/$self->{domain}.pot";
716
}
720
}
717
721
722
sub compress {
723
    my ($self, $files) = @_;
724
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
725
    for my $lang ( @langs ) {
726
        $self->set_lang( $lang );
727
        opendir( my $dh, $self->{path_po} );
728
        my @files = grep { $_ =~ /^$self->{lang}.*po$/ } readdir $dh;
729
        foreach my $file ( @files ) {
730
            say "Compress file $file" if $self->{verbose};
731
            system "$self->{gzip} -9 $self->{path_po}/$file";
732
        }
733
    }
734
}
735
736
sub uncompress {
737
    my ($self, $files) = @_;
738
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
739
    for my $lang ( @langs ) {
740
        opendir( my $dh, $self->{path_po} );
741
        $self->set_lang( $lang );
742
        my @files = grep { $_ =~ /^$self->{lang}.*po.gz$/ } readdir $dh;
743
        foreach my $file ( @files ) {
744
            say "Uncompress file $file" if $self->{verbose};
745
            system "$self->{gunzip} $self->{path_po}/$file";
746
        }
747
    }
748
}
749
718
sub install {
750
sub install {
719
    my ($self, $files) = @_;
751
    my ($self, $files) = @_;
720
    return unless $self->{lang};
752
    return unless $self->{lang};
753
    $self->uncompress();
721
    $self->install_tmpl($files) unless $self->{pref_only};
754
    $self->install_tmpl($files) unless $self->{pref_only};
722
    $self->install_prefs();
755
    $self->install_prefs();
723
    $self->install_messages();
756
    $self->install_messages();
Lines 728-736 sub install { Link Here
728
sub get_all_langs {
761
sub get_all_langs {
729
    my $self = shift;
762
    my $self = shift;
730
    opendir( my $dh, $self->{path_po} );
763
    opendir( my $dh, $self->{path_po} );
731
    my @files = grep { $_ =~ /-pref.po$/ }
764
    my @files = grep { $_ =~ /-pref.(po|po.gz)$/ }
732
        readdir $dh;
765
        readdir $dh;
733
    @files = map { $_ =~ s/-pref.po$//; $_ } @files;
766
    @files = map { $_ =~ s/-pref.(po|po.gz)$//; $_ } @files;
734
}
767
}
735
768
736
769
Lines 739-744 sub update { Link Here
739
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
772
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
740
    for my $lang ( @langs ) {
773
    for my $lang ( @langs ) {
741
        $self->set_lang( $lang );
774
        $self->set_lang( $lang );
775
        $self->uncompress();
742
        $self->update_tmpl($files) unless $self->{pref_only};
776
        $self->update_tmpl($files) unless $self->{pref_only};
743
        $self->update_prefs();
777
        $self->update_prefs();
744
        $self->update_messages();
778
        $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