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(); |