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

(-)a/C4/Installer/PerlDependencies.pm (+10 lines)
Lines 699-704 our $PERL_DEPS = { Link Here
699
        'required' => '0',
699
        'required' => '0',
700
        'min_ver'  => '0.73',
700
        'min_ver'  => '0.73',
701
    },
701
    },
702
    'Locale::Maketext' => {
703
        'usage'    => 'Core',
704
        'required' => '1',
705
        'min_ver'  => '1.19',
706
    },
707
    'Locale::Maketext::Lexicon' => {
708
        'usage'    => 'Core',
709
        'required' => '1',
710
        'min_ver'  => '0.91',
711
    },
702
};
712
};
703
713
704
1;
714
1;
(-)a/misc/translator/LangInstaller.pm (-11 / +30 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 433-438 sub create_tmpl { Link Here
433
sub create_messages {
435
sub create_messages {
434
    my $self = shift;
436
    my $self = shift;
435
437
438
    print "Create messages ($self->{lang})\n" if $self->{verbose};
436
    system
439
    system
437
        "$self->{cp} $self->{domain}.pot " .
440
        "$self->{cp} $self->{domain}.pot " .
438
        "$self->{path_po}/$self->{lang}-$self->{domain}.po";
441
        "$self->{path_po}/$self->{lang}-$self->{domain}.po";
Lines 441-450 sub create_messages { Link Here
441
sub update_messages {
444
sub update_messages {
442
    my $self = shift;
445
    my $self = shift;
443
446
444
    system
447
    my $pofile = "$self->{path_po}/$self->{lang}-$self->{domain}.po";
445
        "$self->{msgmerge} -U " .
448
    print "Update messages ($self->{lang})\n" if $self->{verbose};
446
        "$self->{path_po}/$self->{lang}-$self->{domain}.po " .
449
    if ( not -f $pofile ) {
447
        "$self->{domain}.pot";
450
        print "File $pofile does not exist\n" if $self->{verbose};
451
        $self->create_messages();
452
    }
453
    system "$self->{msgmerge} -U $pofile $self->{domain}.pot";
448
}
454
}
449
455
450
sub extract_messages {
456
sub extract_messages {
Lines 476-481 sub extract_messages { Link Here
476
    if (system($xgettext_cmd) != 0) {
482
    if (system($xgettext_cmd) != 0) {
477
        die "system call failed: $xgettext_cmd";
483
        die "system call failed: $xgettext_cmd";
478
    }
484
    }
485
486
    if ( -f "$Bin/$self->{domain}.pot" ) {
487
        my $replace_charset_cmd = "$self->{sed} --in-place " .
488
            "$Bin/$self->{domain}.pot " .
489
            "--expression='s/charset=CHARSET/charset=UTF-8/'";
490
        if (system($replace_charset_cmd) != 0) {
491
            die "system call failed: $replace_charset_cmd";
492
        }
493
    } else {
494
        print "No messages found\n" if $self->{verbose};
495
        return;
496
    }
497
    return 1;
479
}
498
}
480
499
481
sub remove_pot {
500
sub remove_pot {
Lines 504-517 sub get_all_langs { Link Here
504
sub update {
523
sub update {
505
    my ($self, $files) = @_;
524
    my ($self, $files) = @_;
506
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
525
    my @langs = $self->{lang} ? ($self->{lang}) : $self->get_all_langs();
507
    $self->extract_messages();
526
    my $extract_ok = $self->extract_messages();
508
    for my $lang ( @langs ) {
527
    for my $lang ( @langs ) {
509
        $self->set_lang( $lang );
528
        $self->set_lang( $lang );
510
        $self->update_tmpl($files) unless $self->{pref_only};
529
        $self->update_tmpl($files) unless $self->{pref_only};
511
        $self->update_prefs();
530
        $self->update_prefs();
512
        $self->update_messages();
531
        $self->update_messages() if $extract_ok;
513
    }
532
    }
514
    $self->remove_pot();
533
    $self->remove_pot() if $extract_ok;
515
}
534
}
516
535
517
536
Lines 520-528 sub create { Link Here
520
    return unless $self->{lang};
539
    return unless $self->{lang};
521
    $self->create_tmpl($files) unless $self->{pref_only};
540
    $self->create_tmpl($files) unless $self->{pref_only};
522
    $self->create_prefs();
541
    $self->create_prefs();
523
    $self->extract_messages();
542
    if ($self->extract_messages()) {
524
    $self->create_messages();
543
        $self->create_messages();
525
    $self->remove_pot();
544
        $self->remove_pot();
545
    }
526
}
546
}
527
547
528
548
529
- 

Return to bug 8044