@@ -, +, @@ translate.pl + add some verbosity + add Locale::Maketext and Locale::Maketext::Lexicon to Koha --- C4/Installer/PerlDependencies.pm | 10 ++++++++++ misc/translator/LangInstaller.pm | 22 ++++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) --- a/C4/Installer/PerlDependencies.pm +++ a/C4/Installer/PerlDependencies.pm @@ -590,6 +590,16 @@ our $PERL_DEPS = { 'required' => '1', 'min_ver' => '1.23', }, + 'Locale::Maketext' => { + 'usage' => 'Core', + 'required' => '1', + 'min_ver' => '1.19', + }, + 'Locale::Maketext::Lexicon' => { + 'usage' => 'Core', + 'required' => '1', + 'min_ver' => '0.91', + }, }; 1; --- a/misc/translator/LangInstaller.pm +++ a/misc/translator/LangInstaller.pm @@ -57,9 +57,11 @@ sub new { $self->{cp} = `which cp`; $self->{msgmerge} = `which msgmerge`; $self->{xgettext} = `which xgettext`; + $self->{sed} = `which sed`; chomp $self->{cp}; chomp $self->{msgmerge}; chomp $self->{xgettext}; + chomp $self->{sed}; # Get all .pref file names opendir my $fh, $self->{path_pref_en}; @@ -365,6 +367,7 @@ sub create_tmpl { sub create_messages { my $self = shift; + print "Create messages ($self->{lang})\n" if $self->{verbose}; system "$self->{cp} $self->{domain}.pot " . "$self->{path_po}/$self->{lang}-$self->{domain}.po"; @@ -373,10 +376,14 @@ sub create_messages { sub update_messages { my $self = shift; - system - "$self->{msgmerge} -U " . - "$self->{path_po}/$self->{lang}-$self->{domain}.po " . - "$self->{domain}.pot"; + my $pofile = "$self->{path_po}/$self->{lang}-$self->{domain}.po"; + print "Update messages ($self->{lang})\n" if $self->{verbose}; + if ( not -f $pofile ) { + print "File $pofile does not exist\n" if $self->{verbose}; + $self->create_messages(); + } + system "$self->{msgmerge} -U $pofile $self->{domain}.pot"; + } sub extract_messages { @@ -408,6 +415,13 @@ sub extract_messages { if (system($xgettext_cmd) != 0) { die "system call failed: $xgettext_cmd"; } + + my $replace_charset_cmd = "$self->{sed} --in-place " . + "$Bin/$self->{domain}.pot " . + "--expression='s/charset=CHARSET/charset=UTF-8/'"; + if (system($replace_charset_cmd) != 0) { + die "system call failed: $replace_charset_cmd"; + } } sub remove_pot { --