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

(-)a/C4/Installer/PerlDependencies.pm (+10 lines)
Lines 689-694 our $PERL_DEPS = { Link Here
689
        'required' => '1',
689
        'required' => '1',
690
        'min_ver'  => '0.22',
690
        'min_ver'  => '0.22',
691
    },
691
    },
692
    'Locale::Maketext' => {
693
        'usage'    => 'Core',
694
        'required' => '1',
695
        'min_ver'  => '1.19',
696
    },
697
    'Locale::Maketext::Lexicon' => {
698
        'usage'    => 'Core',
699
        'required' => '1',
700
        'min_ver'  => '0.91',
701
    },
692
};
702
};
693
703
694
1;
704
1;
(-)a/misc/translator/LangInstaller.pm (-11 / +31 lines)
Lines 70-78 sub new { Link Here
70
    $self->{cp}              = `which cp`;
70
    $self->{cp}              = `which cp`;
71
    $self->{msgmerge}        = `which msgmerge`;
71
    $self->{msgmerge}        = `which msgmerge`;
72
    $self->{xgettext}        = `which xgettext`;
72
    $self->{xgettext}        = `which xgettext`;
73
    $self->{sed}             = `which sed`;
73
    chomp $self->{cp};
74
    chomp $self->{cp};
74
    chomp $self->{msgmerge};
75
    chomp $self->{msgmerge};
75
    chomp $self->{xgettext};
76
    chomp $self->{xgettext};
77
    chomp $self->{sed};
76
78
77
    # Get all .pref file names
79
    # Get all .pref file names
78
    opendir my $fh, $self->{path_pref_en};
80
    opendir my $fh, $self->{path_pref_en};
Lines 415-420 sub create_tmpl { Link Here
415
sub create_messages {
417
sub create_messages {
416
    my $self = shift;
418
    my $self = shift;
417
419
420
    print "Create messages ($self->{lang})\n" if $self->{verbose};
418
    system
421
    system
419
        "$self->{cp} $self->{domain}.pot " .
422
        "$self->{cp} $self->{domain}.pot " .
420
        "$self->{path_po}/$self->{lang}-$self->{domain}.po";
423
        "$self->{path_po}/$self->{lang}-$self->{domain}.po";
Lines 423-432 sub create_messages { Link Here
423
sub update_messages {
426
sub update_messages {
424
    my $self = shift;
427
    my $self = shift;
425
428
426
    system
429
    my $pofile = "$self->{path_po}/$self->{lang}-$self->{domain}.po";
427
        "$self->{msgmerge} -U " .
430
    print "Update messages ($self->{lang})\n" if $self->{verbose};
428
        "$self->{path_po}/$self->{lang}-$self->{domain}.po " .
431
    if ( not -f $pofile ) {
429
        "$self->{domain}.pot";
432
        print "File $pofile does not exist\n" if $self->{verbose};
433
        $self->create_messages();
434
    }
435
    system "$self->{msgmerge} -U $pofile $self->{domain}.pot";
436
430
}
437
}
431
438
432
sub extract_messages {
439
sub extract_messages {
Lines 458-463 sub extract_messages { Link Here
458
    if (system($xgettext_cmd) != 0) {
465
    if (system($xgettext_cmd) != 0) {
459
        die "system call failed: $xgettext_cmd";
466
        die "system call failed: $xgettext_cmd";
460
    }
467
    }
468
469
    if ( -f "$Bin/$self->{domain}.pot" ) {
470
        my $replace_charset_cmd = "$self->{sed} --in-place " .
471
            "$Bin/$self->{domain}.pot " .
472
            "--expression='s/charset=CHARSET/charset=UTF-8/'";
473
        if (system($replace_charset_cmd) != 0) {
474
            die "system call failed: $replace_charset_cmd";
475
        }
476
    } else {
477
        print "No messages found\n" if $self->{verbose};
478
        return;
479
    }
480
    return 1;
461
}
481
}
462
482
463
sub remove_pot {
483
sub remove_pot {
Lines 486-499 sub get_all_langs { Link Here
486
sub update {
506
sub update {
487
    my ($self, $files) = @_;
507
    my ($self, $files) = @_;
488
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
508
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
489
    $self->extract_messages();
509
    my $extract_ok = $self->extract_messages();
490
    for my $lang ( @langs ) {
510
    for my $lang ( @langs ) {
491
        $self->set_lang( $lang );
511
        $self->set_lang( $lang );
492
        $self->update_tmpl($files) unless $self->{pref_only};
512
        $self->update_tmpl($files) unless $self->{pref_only};
493
        $self->update_prefs();
513
        $self->update_prefs();
494
        $self->update_messages();
514
        $self->update_messages() if $extract_ok;
495
    }
515
    }
496
    $self->remove_pot();
516
    $self->remove_pot() if $extract_ok;
497
}
517
}
498
518
499
519
Lines 502-510 sub create { Link Here
502
    return unless $self->{lang};
522
    return unless $self->{lang};
503
    $self->create_tmpl($files) unless $self->{pref_only};
523
    $self->create_tmpl($files) unless $self->{pref_only};
504
    $self->create_prefs();
524
    $self->create_prefs();
505
    $self->extract_messages();
525
    if ($self->extract_messages()) {
506
    $self->create_messages();
526
        $self->create_messages();
507
    $self->remove_pot();
527
        $self->remove_pot();
528
    }
508
}
529
}
509
530
510
531
511
- 

Return to bug 8044