From 3810590867a59bab1a4b65d9b4ae67b19038fd19 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Fri, 7 Oct 2005 13:47:24 +0000 Subject: [PATCH] Perltidy ueber locales.pl laufen lassen. Den Parser in locaes.pl so erweitert, dass er auch $text->locale(...)-Funktionsaufrufe auswertet, die ueber mehrere Zeilen gehen. Das wurde durch die Verwendung von perltidy akut, das bei sehr langen Zeilen das Argument zu $text->locale() in eine eigene Zeile schreibt. Einige der dadurch neu/wieder gefundenen Ausdruecke uebersetzt bzw. deren urspruengliche Uebersetzung wiederhergestellt. Merge von 570:573 aus unstable. --- locale/de/all | 14 +++- locale/de/am | 2 +- locale/de/ct | 2 + locale/de/gl | 4 +- locale/de/ic | 5 +- locale/de/io | 1 + locale/de/ir | 1 + locale/de/is | 1 + locale/de/locales.pl | 165 ++++++++++++++++++++++++++++--------------- locale/de/oe | 2 + locale/de/ustva | 5 ++ 11 files changed, 138 insertions(+), 64 deletions(-) diff --git a/locale/de/all b/locale/de/all index 756192e0e..f98de79a4 100644 --- a/locale/de/all +++ b/locale/de/all @@ -4,6 +4,10 @@ # run locales.pl from this directory to rebuild the translation files $self{texts} = { + ' Date missing!' => ' Datum fehlt!', + ' Number' => '', + ' Part Number missing!' => ' Artikelnummer fehlt!', + ' missing!' => ' fehlt!', 'AP' => 'Einkauf', 'AP Aging' => 'Offene Verbindlichkeiten', 'AP Transaction' => 'Kreditorenbuchung', @@ -27,6 +31,7 @@ $self{texts} = { 'Accrual' => 'Bilanzierung', 'Active' => 'Aktiv', 'Add' => 'Erfassen', + 'Add ' => '', 'Add AP Transaction' => 'Kreditorenbuchung', 'Add AR Transaction' => 'Debitorenbuchung', 'Add Account' => 'Konto erfassen', @@ -270,6 +275,7 @@ $self{texts} = { 'ELSTER-Steuernummer: ' => 'ELSTER-Steuernummer: ', 'EUR' => 'E/Ü-Rechnung', 'Edit' => 'Bearbeiten', + 'Edit ' => '', 'Edit Account' => 'Kontodaten bearbeiten', 'Edit Accounts Payables Transaction' => 'Kreditorenbuchung bearbeiten', 'Edit Accounts Receivables Transaction' => 'Debitorenbuchung bearbeiten', @@ -297,8 +303,11 @@ $self{texts} = { 'Edit Warehouse' => 'Lager bearbeiten', 'Employee' => 'Bearbeiter', 'Enforce transaction reversal for all dates' => 'Gegenbuchungen für jeden Zeitraum aktualisieren', - 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; Ihre eigene LandesWährung zuerst (z.B. EUR:USD:CAD)', + 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Geben Sie Ihre und weitere Währungen mit bis zu drei Buchstaben pro Währung und Währungen durch Doppelpunkte getrennt ein (z.B. EUR:USD:CAD)', 'Equity' => 'Passiva', + 'Es fehlen Angaben zur Versteuerung. + Wenn Sie Ist Versteuert sind, wählen Sie die Einnahmen/Überschuß-Rechnung aus. + Sind Sie Soll-Versteuert und Bilanzverpflichtet, dann wählen Sie Bilanz aus.' => '', 'Exch' => 'Wechselkurs.', 'Exchangerate' => 'Wechselkurs', 'Exchangerate Difference' => 'Wechselkursunterschied', @@ -462,7 +471,7 @@ $self{texts} = { 'N/A' => 'N.Z.', 'Name' => 'Name', 'Name missing!' => 'Name fehlt!', - 'New Account' => '', + 'New Account' => 'Neues Konto', 'New Templates' => 'neue Vorlagen', 'No' => 'Nein', 'No Database Drivers available!' => 'Kein Datenbanktreiber verfügbar!', @@ -790,6 +799,7 @@ $self{texts} = { 'number' => 'Nummer', 'posted!' => 'gebucht', 'quarter' => 'vierteljährliche (quartalsweise) Abgabe', + 's' => '', 'save' => 'speichern', 'saved' => 'gespeichert', 'saved!' => 'gespeichert', diff --git a/locale/de/am b/locale/de/am index 82d698b97..92e0ed5f8 100644 --- a/locale/de/am +++ b/locale/de/am @@ -64,7 +64,7 @@ $self{texts} = { 'Edit Template' => 'Vorlage bearbeiten', 'Edit Warehouse' => 'Lager bearbeiten', 'Enforce transaction reversal for all dates' => 'Gegenbuchungen für jeden Zeitraum aktualisieren', - 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; Ihre eigene LandesWährung zuerst (z.B. EUR:USD:CAD)', + 'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Geben Sie Ihre und weitere Währungen mit bis zu drei Buchstaben pro Währung und Währungen durch Doppelpunkte getrennt ein (z.B. EUR:USD:CAD)', 'Equity' => 'Passiva', 'Expense' => 'Aufwandskonto', 'Expense Account' => 'Aufwandskonto', diff --git a/locale/de/ct b/locale/de/ct index 5ddd86b12..f83cc9ae8 100644 --- a/locale/de/ct +++ b/locale/de/ct @@ -1,4 +1,5 @@ $self{texts} = { + ' Number' => ' Number', 'Abteilung' => 'Abteilung', 'Account Number' => 'Kontonummer', 'Accounting Menu' => 'Kontoverwaltung', @@ -87,6 +88,7 @@ $self{texts} = { 'Vendors' => 'Lieferanten', 'Zipcode' => 'PLZ', 'days' => 'Tage', + 's' => 's', }; $self{subs} = { diff --git a/locale/de/gl b/locale/de/gl index 15d75107f..1cdbe7143 100644 --- a/locale/de/gl +++ b/locale/de/gl @@ -69,7 +69,7 @@ $self{texts} = { 'May ' => 'Mai', 'Mitarbeiter' => 'Mitarbeiter', 'MwSt. inkl.' => 'MwSt. inkl.', - 'New Account' => 'New Account', + 'New Account' => 'Neues Konto', 'Notes' => 'Bemerkungen', 'Nov' => 'Nov', 'November' => 'November', @@ -147,7 +147,7 @@ $self{subs} = { 'weiter' => 'continue', 'löschen' => 'delete', 'dialogbuchung' => 'gl_transaction', - 'new_account' => 'new_account', + 'neues_konto' => 'new_account', 'buchen' => 'post', 'neu_buchen' => 'post_as_new', 'rechnung' => 'sales_invoice', diff --git a/locale/de/ic b/locale/de/ic index 205ec85e9..31937beec 100644 --- a/locale/de/ic +++ b/locale/de/ic @@ -1,7 +1,10 @@ $self{texts} = { + ' Date missing!' => ' Datum fehlt!', + ' Part Number missing!' => ' Artikelnummer fehlt!', 'Accounting Menu' => 'Kontoverwaltung', 'Active' => 'Aktiv', 'Add' => 'Erfassen', + 'Add ' => 'Add ', 'Add Assembly' => 'Erzeugnis erfassen', 'Add Part' => 'Ware erfassen', 'Add Purchase Order' => 'Lieferantenauftrag erfassen', @@ -44,6 +47,7 @@ $self{texts} = { 'E-mail' => 'eMail', 'E-mail address missing!' => 'eMailadresse fehlt!', 'E-mailed' => 'eMail gesendet.', + 'Edit ' => 'Edit ', 'Edit Assembly' => 'Erzeugnis bearbeiten', 'Edit Part' => 'Ware bearbeiten', 'Edit Service' => 'Dienstleistung bearbeiten', @@ -177,7 +181,6 @@ $self{texts} = { 'button' => '?', 'choice' => 'auswählen', 'choice part' => 'Artikel auswählen', - 'ea' => 'Stk', 'emailed to' => 'gemailt an', 'hr' => 'Stunde', 'list' => 'auflisten', diff --git a/locale/de/io b/locale/de/io index 2d0408501..733b4da9d 100644 --- a/locale/de/io +++ b/locale/de/io @@ -1,4 +1,5 @@ $self{texts} = { + ' Date missing!' => ' Datum fehlt!', 'Add Purchase Order' => 'Lieferantenauftrag erfassen', 'Add Quotation' => 'Angebot erfassen', 'Add Request for Quotation' => 'Anfrage erfassen', diff --git a/locale/de/ir b/locale/de/ir index 86c1984f4..9711484f1 100644 --- a/locale/de/ir +++ b/locale/de/ir @@ -1,4 +1,5 @@ $self{texts} = { + ' Date missing!' => ' Datum fehlt!', 'Account' => 'Konto', 'Accounting Menu' => 'Kontoverwaltung', 'Add Purchase Order' => 'Lieferantenauftrag erfassen', diff --git a/locale/de/is b/locale/de/is index 463636b8c..b4b541bbb 100644 --- a/locale/de/is +++ b/locale/de/is @@ -1,4 +1,5 @@ $self{texts} = { + ' Date missing!' => ' Datum fehlt!', 'Account' => 'Konto', 'Accounting Menu' => 'Kontoverwaltung', 'Add Purchase Order' => 'Lieferantenauftrag erfassen', diff --git a/locale/de/locales.pl b/locale/de/locales.pl index 8981e5aeb..9e132c99b 100755 --- a/locale/de/locales.pl +++ b/locale/de/locales.pl @@ -4,9 +4,8 @@ use FileHandle; - -$basedir = "../.."; -$bindir = "$basedir/bin/mozilla"; +$basedir = "../.."; +$bindir = "$basedir/bin/mozilla"; $menufile = "menu.ini"; foreach $item (@ARGV) { @@ -32,30 +31,28 @@ if ($arg{n}) { unshift @menufiles, $menufile; } - # slurp the translations in if (-f 'all') { require "all"; } - foreach $file (@progfiles) { - + %locale = (); %submit = (); - %subrt = (); - + %subrt = (); + &scanfile("$bindir/$file"); # scan custom_{module}.pl or {login}_{module}.pl files foreach $customfile (@customfiles) { if ($customfile =~ /_$file/) { if (-f "$bindir/$customfile") { - &scanfile("$bindir/$customfile"); + &scanfile("$bindir/$customfile"); } } } - + # if this is the menu.pl file if ($file eq 'menu.pl') { foreach $item (@menufiles) { @@ -65,19 +62,17 @@ foreach $file (@progfiles) { $file =~ s/\.pl//; - eval { require 'missing'; }; unlink 'missing'; foreach $text (keys %$missing) { if ($locale{$text}) { unless ($self{texts}{$text}) { - $self{texts}{$text} = $missing->{$text}; + $self{texts}{$text} = $missing->{$text}; } } } - open FH, ">$file" or die "$! : $file"; print FH q|$self{texts} = { @@ -95,20 +90,22 @@ foreach $file (@progfiles) { $keytext = $key; $keytext =~ s/'/\\'/g; $keytext =~ s/\\$/\\\\/; - - print FH qq| '$keytext'|.(' ' x (27-length($keytext))).qq| => '$text',\n|; + + print FH qq| '$keytext'| + . (' ' x (27 - length($keytext))) + . qq| => '$text',\n|; } print FH q|}; $self{subs} = { |; - + foreach $key (sort keys %subrt) { $text = $key; $text =~ s/'/\\'/g; $text =~ s/\\$/\\\\/; - print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '$text',\n|; + print FH qq| '$text'| . (' ' x (27 - length($text))) . qq| => '$text',\n|; } foreach $key (sort keys %submit) { @@ -120,13 +117,15 @@ $self{subs} = { $english_sub =~ s/'/\\'/g; $english_sub =~ s/\\$/\\\\/; $english_sub = lc $key; - + $translated_sub = lc $text; - $english_sub =~ s/( |-|,)/_/g; + $english_sub =~ s/( |-|,)/_/g; $translated_sub =~ s/( |-|,)/_/g; - print FH qq| '$translated_sub'|.(' ' x (27-length($translated_sub))).qq| => '$english_sub',\n|; + print FH qq| '$translated_sub'| + . (' ' x (27 - length($translated_sub))) + . qq| => '$english_sub',\n|; } - + print FH q|}; 1; @@ -135,7 +134,6 @@ $self{subs} = { close FH; } - # now print out all open FH, ">all" or die "$! : all"; @@ -148,23 +146,22 @@ print FH q|# These are all the texts to build the translations files. $self{texts} = { |; - foreach $key (sort keys %alllocales) { $text = $self{texts}{$key}; $count++; - + $text =~ s/'/\\'/g; $text =~ s/\\$/\\\\/; - $key =~ s/'/\\'/g; - $key =~ s/\\$/\\\\/; + $key =~ s/'/\\'/g; + $key =~ s/\\$/\\\\/; unless ($text) { $notext++; push @missing, $key; } - print FH qq| '$key'|.(' ' x (27-length($key))).qq| => '$text',\n|; + print FH qq| '$key'| . (' ' x (27 - length($key))) . qq| => '$text',\n|; } @@ -175,7 +172,6 @@ print FH q|}; close FH; - if (@missing) { open FH, ">missing" or die "$! : missing"; @@ -185,7 +181,7 @@ $missing = { |; foreach $text (@missing) { - print FH qq| '$text'|.(' ' x (27-length($text))).qq| => '',\n|; + print FH qq| '$text'| . (' ' x (27 - length($text))) . qq| => '',\n|; } print FH q|}; @@ -194,7 +190,7 @@ $missing = { |; close FH; - + } open(FH, "LANGUAGE"); @@ -207,21 +203,73 @@ $per = sprintf("%.1f", ($count - $notext) / $count * 100); print "\n$trlanguage - ${per}%\n"; exit; + # eom +sub extract_text_between_parenthesis { + my ($fh, $line) = @_; + my ($inside_string, $pos, $text, $quote_next) = (undef, 0, "", 0); + + while (1) { + if (length($line) <= $pos) { + $line = <$fh>; + return ($text, "") unless ($line); + $pos = 0; + } + + my $cur_char = substr($line, $pos, 1); + + if (!$inside_string) { + if ((length($line) >= ($pos + 3)) && (substr($line, $pos, 2)) eq "qq") { + $inside_string = substr($line, $pos + 2, 1); + $pos += 2; + + } elsif ((length($line) >= ($pos + 2)) && + (substr($line, $pos, 1) eq "q")) { + $inside_string = substr($line, $pos + 1, 1); + $pos++; + + } elsif (($cur_char eq '"') || ($cur_char eq '\'')) { + $inside_string = $cur_char; + + } elsif ($cur_char eq ")") { + return ($text, substr($line, $pos + 1)); + } + + } else { + if ($quote_next) { + $text .= $cur_char; + $quote_next = 0; + + } elsif ($cur_char eq '\\') { + $text .= $cur_char; + $quote_next = 1; + + } elsif ($cur_char eq $inside_string) { + undef($inside_string); + + } else { + $text .= $cur_char; + + } + } + $pos++; + } +} sub scanfile { my $file = shift; return unless (-f "$file"); - + my $fh = new FileHandle; open $fh, "$file" or die "$! : $file"; my ($is_submit, $line_no, $sub_line_no) = (0, 0, 0); - + while (<$fh>) { $line_no++; + # is this another file if (/require\s+\W.*\.pl/) { my $newfile = $&; @@ -229,67 +277,70 @@ sub scanfile { $newfile =~ s/\$form->{path}\///; &scanfile("$bindir/$newfile"); } - + # is this a sub ? if (/^sub /) { ($null, $subrt) = split / +/; $subrt{$subrt} = 1; next; } - + my $rc = 1; - + while ($rc) { if (/Locale/) { - unless (/^use /) { - my ($null, $country) = split /,/; - $country =~ s/^ +[\"\']//; - $country =~ s/[\"\'].*//; - } + unless (/^use /) { + my ($null, $country) = split /,/; + $country =~ s/^ +[\"\']//; + $country =~ s/[\"\'].*//; + } } my $postmatch = ""; + # is it a submit button before $locale-> if (/type\s*=\s*submit/i) { $postmatch = $'; if ($` !~ /\$locale->text/) { - $is_submit = 1; + $is_submit = 1; $sub_line_no = $line_no; } } - my ($found) = /\$locale->text.*?\W\)/; + my ($found) = /\$locale->text.*?\(/; my $postmatch = $'; if ($found) { - my $string = $&; - $string =~ s/\$locale->text\(\s*[\'\"(q|qq)][\'\/\\\|~]*//; - $string =~ s/\W\)+.*$//; + my $string; + ($string, $_) = extract_text_between_parenthesis($fh, $postmatch); + $postmatch = $_; # if there is no $ in the string record it - unless ($string =~ /\$\D.*/) { - # this guarantees one instance of string - $locale{$string} = 1; + unless (($string =~ /\$\D.*/) || ("" eq $string)) { + + # this guarantees one instance of string + $locale{$string} = 1; # this one is for all the locales - $alllocales{$string} = 1; + $alllocales{$string} = 1; # is it a submit button before $locale-> if ($is_submit) { - $submit{$string} = 1; + $submit{$string} = 1; } - } + } } elsif ($postmatch =~ />/) { $is_submit = 0; } # exit loop if there are no more locales on this line ($rc) = ($postmatch =~ /\$locale->text/); + # strip text s/^.*?\$locale->text.*?\)//; - if (($postmatch =~ />/) || - (!$found && ($sub_line_no != $line_no) && />/)) { + if ( ($postmatch =~ />/) + || (!$found && ($sub_line_no != $line_no) && />/)) { $is_submit = 0; } } @@ -299,7 +350,6 @@ sub scanfile { } - sub scanmenu { my $file = shift; @@ -311,16 +361,15 @@ sub scanmenu { # strip [] grep { s/(\[|\])//g } @a; - + foreach my $item (@a) { @b = split /--/, $item; foreach $string (@b) { chomp $string; - $locale{$string} = 1; + $locale{$string} = 1; $alllocales{$string} = 1; } } - -} +} diff --git a/locale/de/oe b/locale/de/oe index 2cbec01bc..fe47cc9e0 100644 --- a/locale/de/oe +++ b/locale/de/oe @@ -1,4 +1,6 @@ $self{texts} = { + ' Date missing!' => ' Datum fehlt!', + ' missing!' => ' fehlt!', 'Accounting Menu' => 'Kontoverwaltung', 'Add' => 'Erfassen', 'Add Exchangerate' => 'Wechselkurs erfassen', diff --git a/locale/de/ustva b/locale/de/ustva index 595ad6c71..9989f69a5 100644 --- a/locale/de/ustva +++ b/locale/de/ustva @@ -30,6 +30,11 @@ $self{texts} = { 'Description' => 'Beschreibung', 'ELSTER Export nach Winston' => 'ELSTER Export nach Winston', 'ELSTER-Steuernummer: ' => 'ELSTER-Steuernummer: ', + 'Es fehlen Angaben zur Versteuerung. + Wenn Sie Ist Versteuert sind, wählen Sie die Einnahmen/Überschuß-Rechnung aus. + Sind Sie Soll-Versteuert und Bilanzverpflichtet, dann wählen Sie Bilanz aus.' => 'Es fehlen Angaben zur Versteuerung. + Wenn Sie Ist Versteuert sind, wählen Sie die Einnahmen/Überschuß-Rechnung aus. + Sind Sie Soll-Versteuert und Bilanzverpflichtet, dann wählen Sie Bilanz aus.', 'Fax' => 'Fax', 'Fax. : ' => 'Fax. : ', 'Fax.: ' => 'Fax.: ', -- 2.20.1