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

(-)a/misc/translator/LangInstaller.pm (-19 / +19 lines)
Lines 39-45 sub set_lang { Link Here
39
39
40
40
41
sub new {
41
sub new {
42
    my ($class, $lang, $pref_only) = @_;
42
    my ($class, $lang, $pref_only, $verbose) = @_;
43
43
44
    my $self                 = { };
44
    my $self                 = { };
45
45
Lines 49-56 sub new { Link Here
49
                               '/prog/en/modules/admin/preferences';
49
                               '/prog/en/modules/admin/preferences';
50
    set_lang( $self, $lang ) if $lang;
50
    set_lang( $self, $lang ) if $lang;
51
    $self->{pref_only}       = $pref_only;
51
    $self->{pref_only}       = $pref_only;
52
    $self->{translator_path} = $Bin;
52
    $self->{verbose}         = $verbose;
53
    $self->{path_po}         = $self->{translator_path} . "/po";
53
    $self->{process}         = "$Bin/tmpl_process3.pl " . ($verbose ? '' : '-q');
54
    $self->{path_po}         = "$Bin/po";
54
    $self->{po}              = {};
55
    $self->{po}              = {};
55
56
56
    # Get all .pref file names
57
    # Get all .pref file names
Lines 210-216 sub save_po { Link Here
210
    my $self = shift;
211
    my $self = shift;
211
    # Write .po entries into a file put in Koha standard po directory
212
    # Write .po entries into a file put in Koha standard po directory
212
    Locale::PO->save_file_fromhash( $self->po_filename, $self->{po} );
213
    Locale::PO->save_file_fromhash( $self->po_filename, $self->{po} );
213
    print "Saved in file: ", $self->po_filename, "\n";
214
    print "Saved in file: ", $self->po_filename, "\n" if $self->{verbose};
214
}
215
}
215
216
216
217
Lines 236-242 sub get_po_merged_with_en { Link Here
236
sub update_prefs {
237
sub update_prefs {
237
    my $self = shift;
238
    my $self = shift;
238
    print "Update '", $self->{lang},
239
    print "Update '", $self->{lang},
239
          "' preferences .po file from 'en' .pref files\n";
240
          "' preferences .po file from 'en' .pref files\n" if $self->{verbose};
240
    $self->get_po_merged_with_en();
241
    $self->get_po_merged_with_en();
241
    $self->save_po();
242
    $self->save_po();
242
}
243
}
Lines 281-287 sub install_prefs { Link Here
281
            $pref->{$tab} = $ntab;
282
            $pref->{$tab} = $ntab;
282
        }
283
        }
283
        my $file_trans = $self->{po_path_lang} . "/$file";
284
        my $file_trans = $self->{po_path_lang} . "/$file";
284
        print "Write $file\n";
285
        print "Write $file\n" if $self->{verbose};
285
        open my $fh, ">", $file_trans;
286
        open my $fh, ">", $file_trans;
286
        print $fh Dump($pref);
287
        print $fh Dump($pref);
287
    }
288
    }
Lines 290-308 sub install_prefs { Link Here
290
291
291
sub install_tmpl {
292
sub install_tmpl {
292
    my $self = shift;
293
    my $self = shift;
293
294
    print "Install templates\n" if $self->{verbose};
294
    print
295
        "Install templates\n";
296
    while ( my ($interface, $tmpl) = each %{$self->{interface}} ) {
295
    while ( my ($interface, $tmpl) = each %{$self->{interface}} ) {
297
        print
296
        print
298
            "  Install templates '$interface\n",
297
            "  Install templates '$interface\n",
299
            "    From: $tmpl->{dir}/en/\n",
298
            "    From: $tmpl->{dir}/en/\n",
300
            "    To  : $tmpl->{dir}/$self->{lang}\n",
299
            "    To  : $tmpl->{dir}/$self->{lang}\n",
301
            "    With: $self->{path_po}/$self->{lang}$tmpl->{suffix}\n";
300
            "    With: $self->{path_po}/$self->{lang}$tmpl->{suffix}\n"
301
                if $self->{verbose};
302
        my $lang_dir = "$tmpl->{dir}/$self->{lang}";
302
        my $lang_dir = "$tmpl->{dir}/$self->{lang}";
303
        mkdir $lang_dir unless -d $lang_dir;
303
        mkdir $lang_dir unless -d $lang_dir;
304
        system
304
        system
305
            "$self->{translator_path}/tmpl_process3.pl install " .
305
            "$self->{process} install " .
306
            "-i $tmpl->{dir}/en/ " .
306
            "-i $tmpl->{dir}/en/ " .
307
            "-o $tmpl->{dir}/$self->{lang} ".
307
            "-o $tmpl->{dir}/$self->{lang} ".
308
            "-s $self->{path_po}/$self->{lang}$tmpl->{suffix} -r"
308
            "-s $self->{path_po}/$self->{lang}$tmpl->{suffix} -r"
Lines 313-329 sub install_tmpl { Link Here
313
sub update_tmpl {
313
sub update_tmpl {
314
    my $self = shift;
314
    my $self = shift;
315
315
316
    print
316
    print "Update templates\n" if $self->{verbose};
317
        "Update templates\n";
318
    while ( my ($interface, $tmpl) = each %{$self->{interface}} ) {
317
    while ( my ($interface, $tmpl) = each %{$self->{interface}} ) {
319
        print
318
        print
320
            "  Update templates '$interface'\n",
319
            "  Update templates '$interface'\n",
321
            "    From: $tmpl->{dir}/en/\n",
320
            "    From: $tmpl->{dir}/en/\n",
322
            "    To  : $self->{path_po}/$self->{lang}$tmpl->{suffix}\n";
321
            "    To  : $self->{path_po}/$self->{lang}$tmpl->{suffix}\n"
322
                if $self->{verbose};
323
        my $lang_dir = "$tmpl->{dir}/$self->{lang}";
323
        my $lang_dir = "$tmpl->{dir}/$self->{lang}";
324
        mkdir $lang_dir unless -d $lang_dir;
324
        mkdir $lang_dir unless -d $lang_dir;
325
        system
325
        system
326
            "$self->{translator_path}/tmpl_process3.pl update " .
326
            "$self->{process} update " .
327
            "-i $tmpl->{dir}/en/ " .
327
            "-i $tmpl->{dir}/en/ " .
328
            "-s $self->{path_po}/$self->{lang}$tmpl->{suffix} -r"
328
            "-s $self->{path_po}/$self->{lang}$tmpl->{suffix} -r"
329
    }
329
    }
Lines 341-355 sub create_prefs { Link Here
341
sub create_tmpl {
341
sub create_tmpl {
342
    my $self = shift;
342
    my $self = shift;
343
343
344
    print
344
    print "Create templates\n" if $self->{verbose};
345
        "Create templates\n";
346
    while ( my ($interface, $tmpl) = each %{$self->{interface}} ) {
345
    while ( my ($interface, $tmpl) = each %{$self->{interface}} ) {
347
        print
346
        print
348
            "  Create templates .po files for '$interface'\n",
347
            "  Create templates .po files for '$interface'\n",
349
            "    From: $tmpl->{dir}/en/\n",
348
            "    From: $tmpl->{dir}/en/\n",
350
            "    To  : $self->{path_po}/$self->{lang}$tmpl->{suffix}\n";
349
            "    To  : $self->{path_po}/$self->{lang}$tmpl->{suffix}\n"
350
                if $self->{verbose};
351
        system
351
        system
352
            "$self->{translator_path}/tmpl_process3.pl create " .
352
            "$self->{process} create " .
353
            "-i $tmpl->{dir}/en/ " .
353
            "-i $tmpl->{dir}/en/ " .
354
            "-s $self->{path_po}/$self->{lang}$tmpl->{suffix} -r"
354
            "-s $self->{path_po}/$self->{lang}$tmpl->{suffix} -r"
355
    }
355
    }
(-)a/misc/translator/tmpl_process3.pl (-3 / +2 lines)
Lines 272-278 if (defined $href) { Link Here
272
    die "$str_file: PO file is corrupted, or not a PO file\n" unless defined $href->{'""'};
272
    die "$str_file: PO file is corrupted, or not a PO file\n" unless defined $href->{'""'};
273
    $charset_out = TmplTokenizer::charset_canon $2 if $href->{'""'}->msgstr =~ /\bcharset=(["']?)([^;\s"'\\]+)\1/;
273
    $charset_out = TmplTokenizer::charset_canon $2 if $href->{'""'}->msgstr =~ /\bcharset=(["']?)([^;\s"'\\]+)\1/;
274
    $charset_in = $charset_out;
274
    $charset_in = $charset_out;
275
    warn "Charset in/out: ".$charset_out;
276
#     for my $msgid (keys %$href) {
275
#     for my $msgid (keys %$href) {
277
#   if ($msgid =~ /\bcharset=(["']?)([^;\s"'\\]+)\1/) {
276
#   if ($msgid =~ /\bcharset=(["']?)([^;\s"'\\]+)\1/) {
278
#       my $candidate = TmplTokenizer::charset_canon $2;
277
#       my $candidate = TmplTokenizer::charset_canon $2;
Lines 350-356 if ($action eq 'create') { Link Here
350
        close INPUT;
349
        close INPUT;
351
        close OUTPUT;
350
        close OUTPUT;
352
    }
351
    }
353
    $st = system('msgmerge', '-U', '-s', $str_file, $tmpfile2);
352
    $st = system("msgmerge -U ".($quiet?'-q':'')." -s $str_file $tmpfile2");
354
    } else {
353
    } else {
355
    error_normal "Text extraction failed: $xgettext: $!\n", undef;
354
    error_normal "Text extraction failed: $xgettext: $!\n", undef;
356
    error_additional "Will not run msgmerge\n", undef;
355
    error_additional "Will not run msgmerge\n", undef;
Lines 376-382 if ($action eq 'create') { Link Here
376
    # Merge the temporary "pot file" with the specified po file ($str_file)
375
    # Merge the temporary "pot file" with the specified po file ($str_file)
377
    # FIXME: msgmerge(1) is a Unix dependency
376
    # FIXME: msgmerge(1) is a Unix dependency
378
    # FIXME: need to check the return value
377
    # FIXME: need to check the return value
379
    $st = system('msgmerge', '-U', '-s', $str_file, $tmpfile2);
378
    $st = system("msgmerge -U ".($quiet?'-q':'')." -s $str_file $tmpfile2");
380
    } else {
379
    } else {
381
    error_normal "Text extraction failed: $xgettext: $!\n", undef;
380
    error_normal "Text extraction failed: $xgettext: $!\n", undef;
382
    error_additional "Will not run msgmerge\n", undef;
381
    error_additional "Will not run msgmerge\n", undef;
(-)a/misc/translator/translate (-2 / +1 lines)
Lines 48-54 usage() if $#ARGV != 1 && $#ARGV != 0; Link Here
48
my ($cmd, $lang) = @ARGV;
48
my ($cmd, $lang) = @ARGV;
49
$cmd = lc $cmd;
49
$cmd = lc $cmd;
50
if ( $cmd =~ /create|install|update/ ) {
50
if ( $cmd =~ /create|install|update/ ) {
51
    my $installer = LangInstaller->new( $lang, $pref );
51
    my $installer = LangInstaller->new( $lang, $pref, $verbose );
52
    if ( $cmd !~ /create/ && $lang && not $lang ~~ $installer->{langs} ) {
52
    if ( $cmd !~ /create/ && $lang && not $lang ~~ $installer->{langs} ) {
53
        print "Unsupported language: $lang\n";
53
        print "Unsupported language: $lang\n";
54
        exit;
54
        exit;
55
- 

Return to bug 7780