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

(-)a/C4/Installer/PerlDependencies.pm (+10 lines)
Lines 679-684 our $PERL_DEPS = { Link Here
679
        'required' => '0',
679
        'required' => '0',
680
        'min_ver'  => '9999.13',
680
        'min_ver'  => '9999.13',
681
    },
681
    },
682
    'Locale::Maketext' => {
683
        'usage'    => 'Core',
684
        'required' => '1',
685
        'min_ver'  => '1.19',
686
    },
687
    'Locale::Maketext::Lexicon' => {
688
        'usage'    => 'Core',
689
        'required' => '1',
690
        'min_ver'  => '0.91',
691
    },
682
};
692
};
683
693
684
1;
694
1;
(-)a/misc/translator/LangInstaller.pm (-11 / +31 lines)
Lines 57-65 sub new { Link Here
57
    $self->{cp}              = `which cp`;
57
    $self->{cp}              = `which cp`;
58
    $self->{msgmerge}        = `which msgmerge`;
58
    $self->{msgmerge}        = `which msgmerge`;
59
    $self->{xgettext}        = `which xgettext`;
59
    $self->{xgettext}        = `which xgettext`;
60
    $self->{sed}             = `which sed`;
60
    chomp $self->{cp};
61
    chomp $self->{cp};
61
    chomp $self->{msgmerge};
62
    chomp $self->{msgmerge};
62
    chomp $self->{xgettext};
63
    chomp $self->{xgettext};
64
    chomp $self->{sed};
63
65
64
    # Get all .pref file names
66
    # Get all .pref file names
65
    opendir my $fh, $self->{path_pref_en};
67
    opendir my $fh, $self->{path_pref_en};
Lines 382-387 sub create_tmpl { Link Here
382
sub create_messages {
384
sub create_messages {
383
    my $self = shift;
385
    my $self = shift;
384
386
387
    print "Create messages ($self->{lang})\n" if $self->{verbose};
385
    system
388
    system
386
        "$self->{cp} $self->{domain}.pot " .
389
        "$self->{cp} $self->{domain}.pot " .
387
        "$self->{path_po}/$self->{lang}-$self->{domain}.po";
390
        "$self->{path_po}/$self->{lang}-$self->{domain}.po";
Lines 390-399 sub create_messages { Link Here
390
sub update_messages {
393
sub update_messages {
391
    my $self = shift;
394
    my $self = shift;
392
395
393
    system
396
    my $pofile = "$self->{path_po}/$self->{lang}-$self->{domain}.po";
394
        "$self->{msgmerge} -U " .
397
    print "Update messages ($self->{lang})\n" if $self->{verbose};
395
        "$self->{path_po}/$self->{lang}-$self->{domain}.po " .
398
    if ( not -f $pofile ) {
396
        "$self->{domain}.pot";
399
        print "File $pofile does not exist\n" if $self->{verbose};
400
        $self->create_messages();
401
    }
402
    system "$self->{msgmerge} -U $pofile $self->{domain}.pot";
403
397
}
404
}
398
405
399
sub extract_messages {
406
sub extract_messages {
Lines 425-430 sub extract_messages { Link Here
425
    if (system($xgettext_cmd) != 0) {
432
    if (system($xgettext_cmd) != 0) {
426
        die "system call failed: $xgettext_cmd";
433
        die "system call failed: $xgettext_cmd";
427
    }
434
    }
435
436
    if ( -f "$Bin/$self->{domain}.pot" ) {
437
        my $replace_charset_cmd = "$self->{sed} --in-place " .
438
            "$Bin/$self->{domain}.pot " .
439
            "--expression='s/charset=CHARSET/charset=UTF-8/'";
440
        if (system($replace_charset_cmd) != 0) {
441
            die "system call failed: $replace_charset_cmd";
442
        }
443
    } else {
444
        print "No messages found\n" if $self->{verbose};
445
        return;
446
    }
447
    return 1;
428
}
448
}
429
449
430
sub remove_pot {
450
sub remove_pot {
Lines 453-466 sub get_all_langs { Link Here
453
sub update {
473
sub update {
454
    my $self = shift;
474
    my $self = shift;
455
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
475
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
456
    $self->extract_messages();
476
    my $extract_ok = $self->extract_messages();
457
    for my $lang ( @langs ) {
477
    for my $lang ( @langs ) {
458
        $self->set_lang( $lang );
478
        $self->set_lang( $lang );
459
        $self->update_tmpl() unless $self->{pref_only};
479
        $self->update_tmpl() unless $self->{pref_only};
460
        $self->update_prefs();
480
        $self->update_prefs();
461
        $self->update_messages();
481
        $self->update_messages() if $extract_ok;
462
    }
482
    }
463
    $self->remove_pot();
483
    $self->remove_pot() if $extract_ok;
464
}
484
}
465
485
466
486
Lines 469-477 sub create { Link Here
469
    return unless $self->{lang};
489
    return unless $self->{lang};
470
    $self->create_tmpl() unless $self->{pref_only};
490
    $self->create_tmpl() unless $self->{pref_only};
471
    $self->create_prefs();
491
    $self->create_prefs();
472
    $self->extract_messages();
492
    if ($self->extract_messages()) {
473
    $self->create_messages();
493
        $self->create_messages();
474
    $self->remove_pot();
494
        $self->remove_pot();
495
    }
475
}
496
}
476
497
477
498
478
- 

Return to bug 8044