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

(-)a/misc/translator/LangInstaller.pm (-2 / +36 lines)
Lines 82-93 sub new { Link Here
82
    $self->{xgettext}        = `which xgettext`;
82
    $self->{xgettext}        = `which xgettext`;
83
    $self->{sed}             = `which sed`;
83
    $self->{sed}             = `which sed`;
84
    $self->{po2json}         = "$Bin/po2json";
84
    $self->{po2json}         = "$Bin/po2json";
85
    $self->{gzip}            = `which gzip`;
86
    $self->{gunzip}          = `which gunzip`;
85
    chomp $self->{cp};
87
    chomp $self->{cp};
86
    chomp $self->{msgmerge};
88
    chomp $self->{msgmerge};
87
    chomp $self->{msgfmt};
89
    chomp $self->{msgfmt};
88
    chomp $self->{msginit};
90
    chomp $self->{msginit};
89
    chomp $self->{xgettext};
91
    chomp $self->{xgettext};
90
    chomp $self->{sed};
92
    chomp $self->{sed};
93
    chomp $self->{gzip};
94
    chomp $self->{gunzip};
91
95
92
    unless ($self->{xgettext}) {
96
    unless ($self->{xgettext}) {
93
        die "Missing 'xgettext' executable. Have you installed the gettext package?\n";
97
        die "Missing 'xgettext' executable. Have you installed the gettext package?\n";
Lines 766-774 sub remove_pot { Link Here
766
    unlink "$Bin/$self->{domain}-js.pot";
770
    unlink "$Bin/$self->{domain}-js.pot";
767
}
771
}
768
772
773
sub compress {
774
    my ($self, $files) = @_;
775
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
776
    for my $lang ( @langs ) {
777
        $self->set_lang( $lang );
778
        opendir( my $dh, $self->{path_po} );
779
        my @files = grep { $_ =~ /^$self->{lang}.*po$/ } readdir $dh;
780
        foreach my $file ( @files ) {
781
            say "Compress file $file" if $self->{verbose};
782
            system "$self->{gzip} -9 $self->{path_po}/$file";
783
        }
784
    }
785
}
786
787
sub uncompress {
788
    my ($self, $files) = @_;
789
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
790
    for my $lang ( @langs ) {
791
        opendir( my $dh, $self->{path_po} );
792
        $self->set_lang( $lang );
793
        my @files = grep { $_ =~ /^$self->{lang}.*po.gz$/ } readdir $dh;
794
        foreach my $file ( @files ) {
795
            say "Uncompress file $file" if $self->{verbose};
796
            system "$self->{gunzip} $self->{path_po}/$file";
797
        }
798
    }
799
}
800
769
sub install {
801
sub install {
770
    my ($self, $files) = @_;
802
    my ($self, $files) = @_;
771
    return unless $self->{lang};
803
    return unless $self->{lang};
804
    $self->uncompress();
772
    $self->install_tmpl($files) unless $self->{pref_only};
805
    $self->install_tmpl($files) unless $self->{pref_only};
773
    $self->install_prefs();
806
    $self->install_prefs();
774
    $self->install_messages();
807
    $self->install_messages();
Lines 779-787 sub install { Link Here
779
sub get_all_langs {
812
sub get_all_langs {
780
    my $self = shift;
813
    my $self = shift;
781
    opendir( my $dh, $self->{path_po} );
814
    opendir( my $dh, $self->{path_po} );
782
    my @files = grep { $_ =~ /-pref.po$/ }
815
    my @files = grep { $_ =~ /-pref.(po|po.gz)$/ }
783
        readdir $dh;
816
        readdir $dh;
784
    @files = map { $_ =~ s/-pref.po$//; $_ } @files;
817
    @files = map { $_ =~ s/-pref.(po|po.gz)$//; $_ } @files;
785
}
818
}
786
819
787
820
Lines 790-795 sub update { Link Here
790
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
823
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
791
    for my $lang ( @langs ) {
824
    for my $lang ( @langs ) {
792
        $self->set_lang( $lang );
825
        $self->set_lang( $lang );
826
        $self->uncompress();
793
        $self->update_tmpl($files) unless $self->{pref_only};
827
        $self->update_tmpl($files) unless $self->{pref_only};
794
        $self->update_prefs();
828
        $self->update_prefs();
795
        $self->update_messages();
829
        $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( {$_ eq $lang} @{ $installer->{langs} } ) ) {
57
    if ( $cmd ne 'create' and $lang and not grep( {$_ eq $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