Anpassung locales.pl an neue Situation ohne explizit übersetzte Templates
authorSven Schöling <s.schoeling@linet-services.de>
Mon, 12 Jul 2010 11:24:15 +0000 (13:24 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Mon, 12 Jul 2010 11:37:42 +0000 (13:37 +0200)
Conflicts:

locale/de/all

Zusätzlich einige Templates angepasst, die in den vorherigen Sweeps nicht
mit eingecheckt wurden.

locale/de/all
locale/de/locales.pl
templates/webpages/admin/list_users.html
templates/webpages/admin/restore_dataset_start_footer.html
templates/webpages/dbupgrade/buchungsgruppen_assemblies.html
templates/webpages/dbupgrade/buchungsgruppen_parts.html
templates/webpages/dbupgrade/buchungsgruppen_services.html
templates/webpages/dbupgrade/warning.html
templates/webpages/ustva/config_step2.html

index ca74441..5ba5cd3 100644 (file)
@@ -183,7 +183,7 @@ $self->{texts} = {
   'Ap aging on %s'              => 'Offene Verbindlichkeiten zum %s',
   'Application Error. No Format given' => 'Fehler in der Anwendung. Das Ausgabeformat fehlt.',
   'Application Error. Wrong Format' => 'Fehler in der Anwendung. Falsches Format: ',
-  'Applying #1:'                => 'Führe #1 aus',
+  'Applying #1:'                => 'Führe #1 aus:',
   'Approximately #1 prices will be updated.' => 'Ungefähr #1 Preise werden aktualisiert.',
   'Apr'                         => 'Apr',
   'April'                       => 'April',
@@ -804,7 +804,7 @@ $self->{texts} = {
   'IV'                          => 'IV',
   'If the automatic creation of invoices for fees and interest is switched on for a dunning level then the following accounts will be used for the invoice.' => 'Wenn das automatische Erstellen einer Rechnung &uuml;ber Mahngeb&uuml;hren und Zinsen f&uuml;r ein Mahnlevel aktiviert ist, so werden die folgenden Konten f&uuml;r die Rechnung benutzt.',
   'If the database user listed above does not have the right to create a database then enter the name and password of the superuser below:' => 'Falls der oben genannte Datenbankbenutzer nicht die Berechtigung zum Anlegen neuer Datenbanken hat, so k&ouml;nnen Sie hier den Namen und das Passwort des Datenbankadministratoraccounts angeben:',
-  'If you chose to let Lx-Office do the migration then Lx-Office will also remove the old member file after creating a backup copy of it in the directory &quot;#1&quot;.' => 'Falls Sie sich entscheiden, Lx-Office die Migration durchführen zu lassen, so wird Lx-Office ein Backup der alten Dateien im Verzeichnis "#1" erstellen und die Dateien anschließend löschen.',
+  'If you chose to let Lx-Office do the migration then Lx-Office will also remove the old member file after creating a backup copy of it in the directory &quot;#1&quot;.' => 'Falls Sie sich entscheiden, Lx-Office die Migration durchführen zu lassen, so wird Lx-Office ein Backup der alten Dateien im Verzeichnis "#1" erstellen und die Dateien anschließend löschen.',
   'If you enter values for the part number and / or part description then only those bins containing parts whose part number or part description match your input will be shown.' => 'Wenn Sie f&uuml;r die Artikelnummer und / oder die Beschreibung etwas eingeben, so werden nur die Lagerpl&auml;tze angezeigt, in denen Waren eingelagert sind, die Ihre Suchbegriffe enthalten.',
   'If you see this message, you most likely just setup your LX-Office and haven\'t added any entry types. If this is the case, the option is accessible for administrators in the System menu.' => 'Wenn Sie diese Meldung sehen haben Sie wahrscheinlich ein frisches LX-Office Setup und noch keine Buchungsgruppen eingerichtet. Ein Administrator kann dies im Systemmen&uuml; erledigen.',
   'If you want to change any of these parameters then press the &quot;Back&quot; button, edit the file &quot;config/authentication.pl&quot; and login into the admin module again.' => 'Wenn Sie einen der Parameter &auml;ndern wollen, so dr&uuml;cken Sie auf den &quot;Zur&uuml;ck&quot;-Button, bearbeiten Sie die Datei &quot;config/authentication.pl&quot;, und melden Sie sich erneut im Administrationsbereich an.',
@@ -962,7 +962,7 @@ $self->{texts} = {
   'Lx-Office can fix these problems automatically.' => 'Lx-Office kann solche Probleme automatisch beheben.',
   'Lx-Office has been switched to group-based access restrictions.' => 'Lx-Office wurde auf eine gruppenbasierte Benutzerzugriffsverwaltung umgestellt.',
   'Lx-Office has found one or more problems in the general ledger.' => 'Lx-Office hat ein oder mehrere Probleme im Hauptbuch gefunden.',
-  'Lx-Office is about to update the database <b>#1</b>. You should create a backup of the database before proceeding because the backup might not be reversible.' => 'Lx-Office wird gleich die Datenbank <b>#1</b> aktualisieren.',
+  'Lx-Office is about to update the database <b>#1</b>.' => 'Lx-Office wird gleich die Datenbank <b>#1</b> aktualisieren.',
   'Lx-Office is now able to manage warehouses instead of just tracking the amount of goods in your system.' => 'Lx-Office enth&auml;lt jetzt auch echte Lagerverwaultung anstatt reiner Mengenz&auml;hlung.',
   'Lx-Office website'           => 'Lx-Office-Webseite',
   'MAILED'                      => 'Gesendet',
@@ -1019,7 +1019,7 @@ $self->{texts} = {
   'National Expenses'           => 'Aufwand Inland',
   'National Revenues'           => 'Erl&ouml;se Inland',
   'Netto Terms'                 => 'Zahlungsziel netto',
-  'New Buchungsgruppe [% loop.count %]' => 'Neue Buchungsgruppe [% loop.count %]',
+  'New Buchungsgruppe #1'       => 'Neue Buchungsgruppe #1',
   'New Templates'               => 'neue Vorlagen',
   'New assembly'                => 'Neues Erzeugnis',
   'New bank account'            => 'Neues Bankkonto',
@@ -1181,8 +1181,7 @@ $self->{texts} = {
   'Please enter the login for the new user.' => 'Bitte geben Sie das Login für den neuen Benutzer ein.',
   'Please enter the name of the database that will be used as the template for the new database:' => 'Bitte geben Sie den Namen der Datenbank an, die als Vorlage f&uuml;r die neue Datenbank benutzt wird:',
   'Please enter the name of the dataset you want to restore the backup in.' => 'Bitte geben Sie den Namen der Datenbank ein, in der Sie die Sicherung wiederherstellen wollen.',
-  'Please enter the taxnumber in the administration menu userpreferences' => 'Bitte bei den Einstellungen des aktuellen Benutzers im Administrationsmodul
-  angeben.',
+  'Please enter the taxnumber in the administration menu user preferences' => 'Bitte bei den Einstellungen des aktuellen Benutzers im Administrationsmodul angeben.',
   'Please enter values'         => 'Bitte Werte eingeben',
   'Please insert object dimensions below.' => 'Bitte geben Sie die Abmessungen unten ein',
   'Please insert your language values below' => 'Bitte die Übersetzungen unten eintragen',
@@ -1561,7 +1560,7 @@ $self->{texts} = {
   'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
   'The custom variable has been deleted.' => 'Die benutzerdefinierte Variable wurde gel&ouml;scht.',
   'The custom variable has been saved.' => 'Die benutzerdefinierte Variable wurde gespeichert.',
-  'The database #1 has been successfully deleted.' => 'Die Datenbank #1 wurde erfolgreich gelöscht.',
+  'The database #1 has been successfully deleted.' => 'Die Datenbank #1 wurde erfolgreich gelöscht.',
   'The database for user management and authentication does not exist. You can create let Lx-Office create it with the following parameters:' => 'Die Datenbank zur Verwaltung der Benutzerdaten und zur Authentifizierung existiert nicht. Sie k&ouml;nnen Lx-Office diese Datenbank mit den folgenden Parametern anlegen lassen:',
   'The database update/creation did not succeed. The file #1 contained the following error:' => 'Die Datenbankaktualisierung/erstellung schlug fehl. Die Datei #1 enthielt den folgenden Fehler:',
   'The database upgrade for the introduction of Buchungsgruppen is now complete.' => 'Das Datenbankupgrade f&uuml;r die Einf&uuml;hrung von Buchungsgruppen ist jetzt beendet.',
@@ -1606,7 +1605,7 @@ $self->{texts} = {
   'The name is missing in row %d.' => 'Der Name fehlt in Zeile %d.',
   'The name is missing.'        => 'Der Name fehlt.',
   'The name must only consist of letters, numbers and underscores and start with a letter.' => 'Der Name darf nur aus Buchstaben (keine Umlaute), Ziffern und Unterstrichen bestehen und muss mit einem Buchstaben beginnen.',
-  'The old file containing the user information is still present (&quot;#1&quot;). Do you want to migrate these users into the database? If not then you will not be able to log in with any of the users present in the old file.' => 'Die alte Datei mit den Benutzerdaten existiert in dieser Installation noch immer (&quot;#1&quot;). Wollen Sie diese Benutzer in die neue Authentifizierungsdatenbank migrieren lassen? Falls nicht, so werden Sie sich nicht mehr mit den Benutzerdaten aus der alten Mitgliedsdatei anmelden können.',
+  'The old file containing the user information is still present (&quot;#1&quot;). Do you want to migrate these users into the database? If not then you will not be able to log in with any of the users present in the old file.' => 'Die alte Datei mit den Benutzerdaten existiert in dieser Installation noch immer (&quot;#1&quot;). Wollen Sie diese Benutzer in die neue Authentifizierungsdatenbank migrieren lassen? Falls nicht, so werden Sie sich nicht mehr mit den Benutzerdaten aus der alten Mitgliedsdatei anmelden können.',
   'The option field is empty.'  => 'Das Optionsfeld ist leer.',
   'The parts for this delivery order have already been transferred in.' => 'Die Artikel dieses Lieferscheins wurden bereits eingelagert.',
   'The parts for this delivery order have already been transferred out.' => 'Die Artikel dieses Lieferscheins wurden bereits ausgelagert.',
@@ -1617,7 +1616,7 @@ $self->{texts} = {
   'The pg_dump process could not be started.' => 'Der pg_dump-Prozess konnte nicht gestartet werden.',
   'The pg_restore process could not be started.' => 'Der pg_restore-Prozess konnte nicht gestartet werden.',
   'The preferred one is to install packages provided by your operating system distribution (e.g. Debian or RPM packages).' => 'Die bevorzugte Art, ein Perl-Modul zu installieren, ist durch Installation eines von Ihrem Betriebssystem zur Verf&uuml;gung gestellten Paketes (z.B. Debian-Pakete oder RPM).',
-  'The programs exit code was #1 (&quot;0&quot; usually means that everything went OK).' => 'Der Exitcode des Programms war #1 (&quot;0&quot; bedeutet normalerweise, dass die Wiederherstellung erfolgreich war).',
+  'The program\'s exit code was #1 (&quot;0&quot; usually means that everything went OK).' => 'Der Exitcode des Programms war #1 (&quot;0&quot; bedeutet normalerweise, dass die Wiederherstellung erfolgreich war).',
   'The project has been added.' => 'Das Projekt wurde erfasst.',
   'The project has been saved.' => 'Das Projekt wurde gespeichert.',
   'The restoration process has started. Here\'s the output of the &quot;pg_restore&quot; command:' => 'Der Wiederherstellungsprozess wurde gestartet. Hier ist die Ausgabe des &quot;pg_restore&quot;-Programmes:',
@@ -1692,7 +1691,7 @@ $self->{texts} = {
   'To (email)'                  => 'An',
   'To (time)'                   => 'Bis',
   'To Date'                     => 'Bis',
-  'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzuf&uuml;gen, passen Sie die Daten eines Benutzers an, und drücken Sie "als neu speichern". Unter dem neuen Namen wird dann ein Benutzer mit denselben Gruppenrechten angelegt.',
+  'To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehen den Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
   'Top'                         => 'Oben',
   'Top (CSS)'                   => 'Oben (mit CSS)',
   'Top (CSS) new'               => 'Oben (mit CSS, neu)',
@@ -1873,6 +1872,7 @@ $self->{texts} = {
   'You have to fill in at least an account number, the bank code, the IBAN and the BIC.' => 'Sie müssen zumindest die Kontonummer, die Bankleitzahl, die IBAN und den BIC angeben.',
   'You have to specify an execution date for each antry.' => 'Sie müssen für jeden zu buchenden Eintrag ein Ausführungsdatum angeben.',
   'You must chose a user.'      => 'Sie m&uuml;ssen einen Benutzer ausw&auml;hlen.',
+  'You should create a backup of the database before proceeding because the backup might not be reversible.' => 'Sie sollten eine Sicherungskopie der Datenbank erstellen, bevor Sie fortfahren, da die Aktualisierung unter Umständen nicht umkehrbar ist.',
   'You will now be forwarded to the administration panel.' => 'Sie werden nun zum Administrationsbereich weitergeleitet.',
   'You\'re not editing a file.' => 'Sie bearbeiten momentan keine Datei.',
   'You\'ve already chosen the following limitations:' => 'Sie haben bereits die folgenden Einschr&auml;nkungen vorgenommen:',
@@ -1954,7 +1954,6 @@ $self->{texts} = {
   'logout'                      => 'abmelden',
   'male'                        => 'männlich',
   'mark as paid'                => 'als bezahlt markieren',
-  'master'                      => 'de',
   'missing'                     => 'Fehlbestand',
   'month'                       => 'Monatliche Abgabe',
   'new Window'                  => 'neues Fenster',
index d042be0..324e508 100755 (executable)
@@ -105,13 +105,6 @@ if (-f 'lost') {
 
 my %old_texts = %{ $self->{texts} || {} };
 
-# Read HTML templates.
-#%htmllocale = ();
-#@htmltemplates = <../../templates/webpages/*/*_master.html>;
-#foreach $file (@htmltemplates) {
-#  scanhtmlfile($file);
-#}
-
 map({ handle_file($_, $bindir); } @progfiles);
 map({ handle_file($_, $dbupdir); } @dbplfiles);
 map({ handle_file($_, $dbupdir2); } @dbplfiles2);
@@ -218,10 +211,6 @@ $self->{subs} = {
 
 }
 
-#foreach $file (@htmltemplates) {
-#  converthtmlfile($file);
-#}
-
 # now print out all
 
 open FH, ">all" or die "$! : all";
@@ -318,7 +307,6 @@ chomp $trlanguage;
 
 if ($opt_c) {
   search_unused_htmlfiles();
-  search_translated_htmlfiles_wo_master();
 }
 
 my $per = sprintf("%.1f", ($count - $notext) / $count * 100);
@@ -421,13 +409,12 @@ sub scanfile {
 
       # is this a template call?
       if (/parse_html_template2?\s*\(\s*[\"\']([\w\/]+)\s*[\"\']/) {
-        my $newfile = "$basedir/templates/webpages/$1_master.html";
+        my $newfile = "$basedir/templates/webpages/$1.html";
         if (/parse_html_template2/) {
           print "E: " . strip_base($file) . " is still using 'parse_html_template2' for " . strip_base($newfile) . ".\n";
         }
         if (-f $newfile) {
 #           &scanhtmlfile($newfile);
-#           &converthtmlfile($newfile);
            $cached{$file}{scanh}{$newfile} = 1;
           print "." if $opt_v;
         } elsif ($opt_c) {
@@ -543,13 +530,34 @@ sub scanmenu {
 
 }
 
+sub unescape_template_string {
+  my $in      = shift;
+  my $out     = '';
+  my $escaped = 0;
+
+  foreach my $char (split m//, $in) {
+    if ($escaped) {
+      $out     .= $char;
+      $escaped  = 0;
+    } elsif ($char eq '\\') {
+      $escaped  = 1;
+    } else {
+      $out     .= $char;
+    }
+  }
+
+  return $out;
+}
+
 sub scanhtmlfile {
   local *IN;
 
-  if (!defined $cached{$_[0]}) {
+  my $file = shift;
+
+  if (!defined $cached{$file}) {
     my %plugins = ( 'loaded' => { }, 'needed' => { } );
 
-    open(IN, $_[0]) || die $_[0];
+    open(IN, $file) || die $file;
 
     my $copying  = 0;
     my $issubmit = 0;
@@ -567,72 +575,54 @@ sub scanhtmlfile {
       }
 
       while ($line =~ m/(?:             # Start von Variante 1: LxERP.t8('...'); ohne darumliegende [% ... %]-Tags
-                          (LxERP\.t8)\( #   LxERP.t8(
-                          [\'\"]        #   Anfang des zu übersetzenden Strings
-                          (.*?)         #   Der zu übersetzende String
-                          [\'\"]        #   Ende des zu übersetzenden Strings
+                          (LxERP\.t8)\( #   LxERP.t8(                             ::Parameter $1::
+                          ([\'\"])      #   Anfang des zu übersetzenden Strings   ::Parameter $2::
+                          (.*?)         #   Der zu übersetzende String            ::Parameter $3::
+                          (?<!\\)\2     #   Ende des zu übersetzenden Strings
                         |               # Start von Variante 2: [% '...' | $T8 %]
                           \[\%          #   Template-Start-Tag
                           [\-~#]*       #   Whitespace-Unterdrückung
                           \s*           #   Optional beliebig viele Whitespace
-                          [\'\"]        #   Anfang des zu übersetzenden Strings
-                          (.*?)         #   Der zu übersetzende String
-                          [\'\"]        #   Ende des zu übersetzenden Strings
+                          ([\'\"])      #   Anfang des zu übersetzenden Strings   ::Parameter $4::
+                          (.*?)         #   Der zu übersetzende String            ::Parameter $5::
+                          (?<!\\)\4     #   Ende des zu übersetzenden Strings
                           \s*\|\s*      #   Pipe-Zeichen mit optionalen Whitespace davor und danach
-                          (\$T8)        #   Filteraufruf
+                          (\$T8)        #   Filteraufruf                          ::Parameter $6::
                           .*?           #   Optionale Argumente für den Filter
                           \s*           #   Whitespaces
                           [\-~#]*       #   Whitespace-Unterdrückung
                           \%\]          #   Template-Ende-Tag
                         )
                        /ix) {
-        my $module = $1 || $4;
-        my $string = $2 || $3;
+        my $module = $1 || $6;
+        my $string = $3 || $5;
         print "Found filter >>>$string<<<\n" if $debug;
         substr $line, $LAST_MATCH_START[1], $LAST_MATCH_END[0] - $LAST_MATCH_START[0], '';
 
-        $cached{$_[0]}{all}{$string}    = 1;
-        $cached{$_[0]}{html}{$string}   = 1;
-        $cached{$_[0]}{submit}{$string} = 1 if $PREMATCH =~ /$submitsearch/;
+        $string                         = unescape_template_string($string);
+        $cached{$file}{all}{$string}    = 1;
+        $cached{$file}{html}{$string}   = 1;
+        $cached{$file}{submit}{$string} = 1 if $PREMATCH =~ /$submitsearch/;
         $plugins{needed}->{T8}          = 1 if $module eq '$T8';
+        $plugins{needed}->{LxERP}       = 1 if $module eq 'LxERP.t8';
       }
 
-      while ("" ne $line) {
-        if (!$copying) {
-          if ($line =~ m|<translate>|i) {
-            my $eom = $+[0];
-            if ($` =~ /$submitsearch/) {
-              $issubmit = 1
-            }
-            substr($line, 0, $eom) = "";
-            $copying = 1;
-          } else {
-            $line = "";
-          }
-
-        } else {
-          if ($line =~ m|</translate>|i) {
-            $text .= $`;
-            substr($line, 0, $+[0]) = "";
-            $text =~ s/\s+/ /g;
-
-            $copying = 0;
-            if ($issubmit) {
-  #            $submit{$text} = 1;
-               $cached{$_[0]}{submit}{$text} = 1;
-              $issubmit = 0;
-            }
-  #          $alllocales{$text} = 1;
-             $cached{$_[0]}{all}{$text} = 1;
-  #          $htmllocale{$text} = 1;
-             $cached{$_[0]}{html}{$text} = 1;
-            $text = "";
-
-          } else {
-            $text .= $line;
-            $line = "";
-          }
-        }
+      while ($line =~ m/\[\%          # Template-Start-Tag
+                        [\-~#]?       # Whitespace-Unterdrückung
+                        \s*           # Optional beliebig viele Whitespace
+                        (?:           # Die erkannten Template-Direktiven
+                          PROCESS
+                        |
+                          INCLUDE
+                        )
+                        \s+           # Mindestens ein Whitespace
+                        [\'\"]?       # Anfang des Dateinamens
+                        ([^\s]+)      # Beliebig viele Nicht-Whitespaces -- Dateiname
+                        \.html        # Endung ".html", ansonsten kann es der Name eines Blocks sein
+                       /ix) {
+        my $new_file_name = "$basedir/templates/webpages/$1.html";
+        $cached{$file}{scanh}{$new_file_name} = 1;
+        substr $line, $LAST_MATCH_START[1], $LAST_MATCH_END[0] - $LAST_MATCH_START[0], '';
       }
     }
 
@@ -640,75 +630,18 @@ sub scanhtmlfile {
 
     foreach my $plugin (keys %{ $plugins{needed} }) {
       next if ($plugins{loaded}->{$plugin});
-      print "E: " . strip_base($_[0]) . " requires the Template plugin '$plugin', but is not loaded with '[\% USE $plugin \%]'.\n";
+      print "E: " . strip_base($file) . " requires the Template plugin '$plugin', but is not loaded with '[\% USE $plugin \%]'.\n";
     }
-
-    &converthtmlfile($_[0]);
   }
 
   # copy back into global arrays
-  map { $alllocales{$_} = 1 } keys %{$cached{$_[0]}{all}};
-  map { $htmllocale{$_} = 1 } keys %{$cached{$_[0]}{html}};
-  map { $submit{$_} = 1 }     keys %{$cached{$_[0]}{submit}};
-}
-
-sub converthtmlfile {
-  local *IN;
-  local *OUT;
-
-  my $file = shift;
-
-  open(IN, $file) || die;
+  map { $alllocales{$_} = 1 } keys %{$cached{$file}{all}};
+  map { $htmllocale{$_} = 1 } keys %{$cached{$file}{html}};
+  map { $submit{$_} = 1 }     keys %{$cached{$file}{submit}};
 
-  my $langcode = (split("/", getcwd()))[-1];
-  $file =~ s/_master.html$/_${langcode}.html/;
+  map { scanhtmlfile($_)  }   keys %{$cached{$file}{scanh}};
 
-  open(OUT, ">$file") || die;
-
-  my $copying = 0;
-  my $text = "";
-  while (my $line = <IN>) {
-    chomp($line);
-    if ("" eq $line) {
-      print(OUT "\n");
-      next;
-    }
-
-    while ("" ne $line) {
-      if (!$copying) {
-        if ($line =~ m|<translate>|i) {
-          print(OUT $`);
-          substr($line, 0, $+[0]) = "";
-          $copying = 1;
-          print(OUT "\n") if ("" eq $line);
-
-        } else {
-          print(OUT "${line}\n");
-          $line = "";
-        }
-
-      } else {
-        if ($line =~ m|</translate>|i) {
-          $text .= $`;
-          substr($line, 0, $+[0]) = "";
-          $text =~ s/\s+/ /g;
-          $copying = 0;
-          $alllocales{$text} = 1;
-          $htmllocale{$text} = 1;
-          print(OUT $self->{"texts"}{$text} || $text);
-          print(OUT "\n") if ("" eq $line);
-          $text = "";
-
-        } else {
-          $text .= $line;
-          $line = "";
-        }
-      }
-    }
-  }
-
-  close(IN);
-  close(OUT);
+  @referenced_html_files{keys %{$cached{$file}{scanh}}} = (1) x scalar keys %{$cached{$file}{scanh}};
 }
 
 sub search_unused_htmlfiles {
@@ -729,27 +662,6 @@ sub search_unused_htmlfiles {
   }
 }
 
-sub search_translated_htmlfiles_wo_master {
-  my @unscanned_dirs = ('../../templates/webpages');
-
-  while (scalar @unscanned_dirs) {
-    my $dir = shift @unscanned_dirs;
-
-    foreach my $entry (<$dir/*>) {
-      if (-d $entry) {
-        push @unscanned_dirs, $entry;
-
-      } elsif (($entry =~ /_[a-z]+\.html$/) && ($entry !~ /_master.html$/) && -f $entry) {
-        my $master =  $entry;
-        $master    =~ s/[a-z]+\.html$/master.html/;
-        if (! -f $master) {
-          print "W: translated HTML template without master: " . strip_base($entry) . "\n";
-        }
-      }
-    }
-  }
-}
-
 sub strip_base {
   my $s =  "$_[0]";             # Create a copy of the string.
 
index 6d7309f..9ea6b23 100644 (file)
@@ -46,7 +46,7 @@
 
   <p>[% 'Click on login name to edit!' | $T8 %]</p>
 
-  <p>[% 'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' | $T8 %]</p>
+  <p>[% 'To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.' | $T8 %]</p>
  </form>
 
  <form method="post" action="login.pl">
index c61a55e..0143fb4 100644 (file)
@@ -6,7 +6,7 @@
 
  <p>
   [%- 'The restoration process is complete. Please review &quot;pg_restore&quot;\'s output to find out if the restoration was successful.' | $T8 %]
-  [%- 'The program\'s exit code was [% HTML.escape(retval) %] (&quot;0&quot; usually means that everything went OK).' | $T8 %]
+  [%- LxERP.t8('The program\'s exit code was #1 (&quot;0&quot; usually means that everything went OK).', retval) | html %]
  </p>
 
  <form method="post" action="admin.pl">
index 68abd3b..0f0ce61 100644 (file)
@@ -1,4 +1,5 @@
 [%- USE T8 %]
+[%- USE LxERP %]
 [% USE HTML %]<div class="listtop">[% 'Step 3 of 3: Assemblies' | $T8 %]</div>
 
 <form name="Form" method="post" action="login.pl">
@@ -39,7 +40,7 @@
  </p>
 
  [% FOREACH row = LIST %]
-  <div class="subsubheading">[% 'New Buchungsgruppe [% loop.count %]' | $T8 %]</div>
+  <div class="subsubheading">[% LxERP.t8('New Buchungsgruppe #1', loop.count) | html %]</div>
 
   <table>
    <tr>
index 36ffd37..765a51b 100644 (file)
@@ -1,4 +1,5 @@
 [%- USE T8 %]
+[%- USE LxERP %]
 [% USE HTML %]<div class="listtop">[% 'Step 1 of 3: Parts' | $T8 %]</div>
 
 <form name="Form" method="post" action="login.pl">
@@ -39,7 +40,7 @@
  </p>
 
  [% FOREACH row = LIST %]
-  <div class="subsubheading">[% 'New Buchungsgruppe [% loop.count %]' | $T8 %]</div>
+  <div class="subsubheading">[% LxERP.t8('New Buchungsgruppe #1', loop.count) | html %]</div>
 
   <table>
    <tr>
index dd060bf..101edab 100644 (file)
@@ -1,4 +1,5 @@
 [%- USE T8 %]
+[%- USE LxERP %]
 [% USE HTML %]<div class="listtop">[% 'Step 2 of 3: Services' | $T8 %]</div>
 
 <form name="Form" method="post" action="login.pl">
@@ -39,7 +40,7 @@
  </p>
 
  [% FOREACH row = LIST %]
-  <div class="subsubheading">[% 'New Buchungsgruppe [% loop.count %]' | $T8 %]</div>
+  <div class="subsubheading">[% LxERP.t8('New Buchungsgruppe #1', loop.count) | html %]</div>
 
   <table>
    <tr>
index 6fd0d5e..4e2d780 100644 (file)
@@ -6,7 +6,8 @@
  <input type="hidden" name="action" value="login">
 
  <p>
-  [% LxERP.t8('Lx-Office is about to update the database <b>#1</b>. You should create a backup of the database before proceeding because the backup might not be reversible.', dbname) | html %]
+  [% LxERP.t8('Lx-Office is about to update the database <b>#1</b>.', dbname) | html %]
+  [% 'You should create a backup of the database before proceeding because the backup might not be reversible.' | $T8 %]
  </p>
 
  <input type="submit" name="dummy" value="[% 'Continue' | $T8 %]">
index c8a5a8e..9f4f79d 100644 (file)
 [%- IF COA_Germany %]
            [% input_steuernummer %]
 [%- ELSE %]
-[% 'Please enter the taxnumber in the administration menu userpreferences' | $T8 %]
+[% 'Please enter the taxnumber in the administration menu user preferences' | $T8 %]
 [% 'Current value:' | $T8 %] [% HTML.escape(myconfig_taxnumber) %]
 [%- END %]