Perltidy ueber locales.pl laufen lassen. Den Parser in locaes.pl so erweitert, dass...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 7 Oct 2005 13:47:24 +0000 (13:47 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 7 Oct 2005 13:47:24 +0000 (13:47 +0000)
locale/de/all
locale/de/am
locale/de/ct
locale/de/gl
locale/de/ic
locale/de/io
locale/de/ir
locale/de/is
locale/de/locales.pl
locale/de/oe
locale/de/ustva

index 756192e..f98de79 100644 (file)
@@ -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',
index 82d698b..92e0ed5 100644 (file)
@@ -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',
index 5ddd86b..f83cc9a 100644 (file)
@@ -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} = {
index 15d7510..1cdbe71 100644 (file)
@@ -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',
index 205ec85..31937be 100644 (file)
@@ -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',
index 2d04085..733b4da 100644 (file)
@@ -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',
index 86c1984..9711484 100644 (file)
@@ -1,4 +1,5 @@
 $self{texts} = {
+  ' Date missing!'              => ' Datum fehlt!',
   'Account'                     => 'Konto',
   'Accounting Menu'             => 'Kontoverwaltung',
   'Add Purchase Order'          => 'Lieferantenauftrag erfassen',
index 463636b..b4b541b 100644 (file)
@@ -1,4 +1,5 @@
 $self{texts} = {
+  ' Date missing!'              => ' Datum fehlt!',
   'Account'                     => 'Konto',
   'Accounting Menu'             => 'Kontoverwaltung',
   'Add Purchase Order'          => 'Lieferantenauftrag erfassen',
index 8981e5a..9e132c9 100755 (executable)
@@ -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;
     }
   }
-  
-}
 
+}
 
index 2cbec01..fe47cc9 100644 (file)
@@ -1,4 +1,6 @@
 $self{texts} = {
+  ' Date missing!'              => ' Datum fehlt!',
+  ' missing!'                   => ' fehlt!',
   'Accounting Menu'             => 'Kontoverwaltung',
   'Add'                         => 'Erfassen',
   'Add Exchangerate'            => 'Wechselkurs erfassen',
index 595ad6c..9989f69 100644 (file)
@@ -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.: ',