X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/faeeee8ace169bbaf736e44abc271cf472ccbb26..50365526:/scripts/locales.pl?ds=inline diff --git a/scripts/locales.pl b/scripts/locales.pl index dd7c4ca37..25579c3ea 100755 --- a/scripts/locales.pl +++ b/scripts/locales.pl @@ -6,6 +6,7 @@ # this version of locles processes not only all required .pl files # but also all parse_html_templated files. +use utf8; use strict; use Data::Dumper; @@ -23,13 +24,12 @@ $OUTPUT_AUTOFLUSH = 1; my $opt_v = 0; my $opt_n = 0; my $opt_c = 0; -my $lang; my $debug = 0; parse_args(); -my $basedir = "."; -my $locales_dir = "$basedir/locale/$lang"; +my $basedir = "../.."; +my $locales_dir = "."; my $bindir = "$basedir/bin/mozilla"; my $dbupdir = "$basedir/sql/Pg-upgrade"; my $dbupdir2 = "$basedir/sql/Pg-upgrade2"; @@ -86,6 +86,9 @@ if (-f "$locales_dir/lost") { unlink "$locales_dir/lost"; } +my $charset = slurp("$locales_dir/charset") || 'utf-8'; +chomp $charset; + my %old_texts = %{ $self->{texts} || {} }; map({ handle_file($_, $bindir); } @progfiles); @@ -126,7 +129,7 @@ if (scalar @lost) { delim => '()', data_name => '@lost', data_sub => sub { - _print_line($_->{text}, $_->{translation}, @_, template => " { 'text' => %s, 'translation' => %s },") for @lost; + _print_line($_->{text}, $_->{translation}, @_, template => " { 'text' => %s, 'translation' => %s },\n") for @lost; }, ); } @@ -158,8 +161,8 @@ EOL # add the missing texts and run locales.pl to rebuild EOL $LOST_HEADER = <{$plugin} = 1 if (first { $_ eq $plugin } qw(HTML LxERP JavaScript MultiColumnIterator)); + $plugins{needed}->{$plugin} = 1 if (first { $_ eq $plugin } qw(HTML LxERP JavaScript MultiColumnIterator L)); } while ($line =~ m/(?: # Start von Variante 1: LxERP.t8('...'); ohne darumliegende [% ... %]-Tags (LxERP\.t8)\( # LxERP.t8( ::Parameter $1:: - ([\'\"]) # Anfang des zu übersetzenden Strings ::Parameter $2:: - (.*?) # Der zu übersetzende String ::Parameter $3:: - (?', $file or die "$! : $file"; - print $fh "#!/usr/bin/perl\n\n"; + $charset =~ s/\r?\n//g; + my $emacs_charset = lc $charset; + + print $fh "#!/usr/bin/perl\n# -*- coding: $emacs_charset; -*-\n# vim: fenc=$charset\n\n"; print $fh $header, "\n" if $header; print $fh "$data_name = $delim[0]\n" if $data_name; @@ -591,6 +615,11 @@ sub generate_file { close $fh; } +sub slurp { + my $file = shift; + do { local ( @ARGV, $/ ) = $file; <> } +} + __END__ =head1 NAME @@ -599,7 +628,7 @@ locales.pl - Collect strings for translation in Lx-Office =head1 SYNOPSIS -locales.pl [options] +locales.pl [options] lang_code Options: -n, --no-custom-files Do not process files whose name contains "_" @@ -630,7 +659,6 @@ Be more verbose. =head1 DESCRIPTION This script collects strings from Perl files, the menu.ini file and -HTML templates and puts them into the file "all" for translation. It -also distributes those translations back to the individual files. +HTML templates and puts them into the file "all" for translation. =cut