Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 77919bac

Von Sven Schöling vor mehr als 14 Jahren hinzugefügt

  • ID 77919bac9e5a5334630b727eef82098b5dea1676
  • Vorgänger b61f5c3d
  • Nachfolger 79038417

Anpassung locales.pl an neue Situation ohne explizit übersetzte Templates

Conflicts:

locale/de/all

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

Unterschiede anzeigen:

locale/de/all
183 183
  'Ap aging on %s'              => 'Offene Verbindlichkeiten zum %s',
184 184
  'Application Error. No Format given' => 'Fehler in der Anwendung. Das Ausgabeformat fehlt.',
185 185
  'Application Error. Wrong Format' => 'Fehler in der Anwendung. Falsches Format: ',
186
  'Applying #1:'                => 'Führe #1 aus',
186
  'Applying #1:'                => 'F?hre #1 aus:',
187 187
  'Approximately #1 prices will be updated.' => 'Ungef?hr #1 Preise werden aktualisiert.',
188 188
  'Apr'                         => 'Apr',
189 189
  'April'                       => 'April',
......
804 804
  'IV'                          => 'IV',
805 805
  '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 über Mahngebühren und Zinsen für ein Mahnlevel aktiviert ist, so werden die folgenden Konten für die Rechnung benutzt.',
806 806
  '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önnen Sie hier den Namen und das Passwort des Datenbankadministratoraccounts angeben:',
807
  '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 "#1".' => '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.',
807
  '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 "#1".' => '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.',
808 808
  '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ür die Artikelnummer und / oder die Beschreibung etwas eingeben, so werden nur die Lagerplätze angezeigt, in denen Waren eingelagert sind, die Ihre Suchbegriffe enthalten.',
809 809
  '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ü erledigen.',
810 810
  'If you want to change any of these parameters then press the "Back" button, edit the file "config/authentication.pl" and login into the admin module again.' => 'Wenn Sie einen der Parameter ändern wollen, so drücken Sie auf den "Zurück"-Button, bearbeiten Sie die Datei "config/authentication.pl", und melden Sie sich erneut im Administrationsbereich an.',
......
962 962
  'Lx-Office can fix these problems automatically.' => 'Lx-Office kann solche Probleme automatisch beheben.',
963 963
  'Lx-Office has been switched to group-based access restrictions.' => 'Lx-Office wurde auf eine gruppenbasierte Benutzerzugriffsverwaltung umgestellt.',
964 964
  'Lx-Office has found one or more problems in the general ledger.' => 'Lx-Office hat ein oder mehrere Probleme im Hauptbuch gefunden.',
965
  '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.',
965
  'Lx-Office is about to update the database <b>#1</b>.' => 'Lx-Office wird gleich die Datenbank <b>#1</b> aktualisieren.',
966 966
  '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.',
967 967
  'Lx-Office website'           => 'Lx-Office-Webseite',
968 968
  'MAILED'                      => 'Gesendet',
......
1019 1019
  'National Expenses'           => 'Aufwand Inland',
1020 1020
  'National Revenues'           => 'Erl&ouml;se Inland',
1021 1021
  'Netto Terms'                 => 'Zahlungsziel netto',
1022
  'New Buchungsgruppe [% loop.count %]' => 'Neue Buchungsgruppe [% loop.count %]',
1022
  'New Buchungsgruppe #1'       => 'Neue Buchungsgruppe #1',
1023 1023
  'New Templates'               => 'neue Vorlagen',
1024 1024
  'New assembly'                => 'Neues Erzeugnis',
1025 1025
  'New bank account'            => 'Neues Bankkonto',
......
1181 1181
  'Please enter the login for the new user.' => 'Bitte geben Sie das Login f?r den neuen Benutzer ein.',
1182 1182
  '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:',
1183 1183
  '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.',
1184
  'Please enter the taxnumber in the administration menu userpreferences' => 'Bitte bei den Einstellungen des aktuellen Benutzers im Administrationsmodul
1185
  angeben.',
1184
  'Please enter the taxnumber in the administration menu user preferences' => 'Bitte bei den Einstellungen des aktuellen Benutzers im Administrationsmodul angeben.',
1186 1185
  'Please enter values'         => 'Bitte Werte eingeben',
1187 1186
  'Please insert object dimensions below.' => 'Bitte geben Sie die Abmessungen unten ein',
1188 1187
  'Please insert your language values below' => 'Bitte die ?bersetzungen unten eintragen',
......
1561 1560
  'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
1562 1561
  'The custom variable has been deleted.' => 'Die benutzerdefinierte Variable wurde gel&ouml;scht.',
1563 1562
  'The custom variable has been saved.' => 'Die benutzerdefinierte Variable wurde gespeichert.',
1564
  'The database #1 has been successfully deleted.' => 'Die Datenbank #1 wurde erfolgreich gelöscht.',
1563
  'The database #1 has been successfully deleted.' => 'Die Datenbank #1 wurde erfolgreich gel?scht.',
1565 1564
  '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:',
1566 1565
  '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:',
1567 1566
  '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 1605
  'The name is missing in row %d.' => 'Der Name fehlt in Zeile %d.',
1607 1606
  'The name is missing.'        => 'Der Name fehlt.',
1608 1607
  '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.',
1609
  '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.',
1608
  '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.',
1610 1609
  'The option field is empty.'  => 'Das Optionsfeld ist leer.',
1611 1610
  'The parts for this delivery order have already been transferred in.' => 'Die Artikel dieses Lieferscheins wurden bereits eingelagert.',
1612 1611
  'The parts for this delivery order have already been transferred out.' => 'Die Artikel dieses Lieferscheins wurden bereits ausgelagert.',
......
1617 1616
  'The pg_dump process could not be started.' => 'Der pg_dump-Prozess konnte nicht gestartet werden.',
1618 1617
  'The pg_restore process could not be started.' => 'Der pg_restore-Prozess konnte nicht gestartet werden.',
1619 1618
  '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).',
1620
  '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).',
1619
  '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).',
1621 1620
  'The project has been added.' => 'Das Projekt wurde erfasst.',
1622 1621
  'The project has been saved.' => 'Das Projekt wurde gespeichert.',
1623 1622
  '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 1691
  'To (email)'                  => 'An',
1693 1692
  'To (time)'                   => 'Bis',
1694 1693
  'To Date'                     => 'Bis',
1695
  '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.',
1694
  '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.',
1696 1695
  'Top'                         => 'Oben',
1697 1696
  'Top (CSS)'                   => 'Oben (mit CSS)',
1698 1697
  'Top (CSS) new'               => 'Oben (mit CSS, neu)',
......
1873 1872
  '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.',
1874 1873
  'You have to specify an execution date for each antry.' => 'Sie m?ssen f?r jeden zu buchenden Eintrag ein Ausf?hrungsdatum angeben.',
1875 1874
  'You must chose a user.'      => 'Sie m&uuml;ssen einen Benutzer ausw&auml;hlen.',
1875
  '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.',
1876 1876
  'You will now be forwarded to the administration panel.' => 'Sie werden nun zum Administrationsbereich weitergeleitet.',
1877 1877
  'You\'re not editing a file.' => 'Sie bearbeiten momentan keine Datei.',
1878 1878
  'You\'ve already chosen the following limitations:' => 'Sie haben bereits die folgenden Einschr&auml;nkungen vorgenommen:',
......
1954 1954
  'logout'                      => 'abmelden',
1955 1955
  'male'                        => 'm?nnlich',
1956 1956
  'mark as paid'                => 'als bezahlt markieren',
1957
  'master'                      => 'de',
1958 1957
  'missing'                     => 'Fehlbestand',
1959 1958
  'month'                       => 'Monatliche Abgabe',
1960 1959
  'new Window'                  => 'neues Fenster',
locale/de/locales.pl
105 105

  
106 106
my %old_texts = %{ $self->{texts} || {} };
107 107

  
108
# Read HTML templates.
109
#%htmllocale = ();
110
#@htmltemplates = <../../templates/webpages/*/*_master.html>;
111
#foreach $file (@htmltemplates) {
112
#  scanhtmlfile($file);
113
#}
114

  
115 108
map({ handle_file($_, $bindir); } @progfiles);
116 109
map({ handle_file($_, $dbupdir); } @dbplfiles);
117 110
map({ handle_file($_, $dbupdir2); } @dbplfiles2);
......
218 211

  
219 212
}
220 213

  
221
#foreach $file (@htmltemplates) {
222
#  converthtmlfile($file);
223
#}
224

  
225 214
# now print out all
226 215

  
227 216
open FH, ">all" or die "$! : all";
......
318 307

  
319 308
if ($opt_c) {
320 309
  search_unused_htmlfiles();
321
  search_translated_htmlfiles_wo_master();
322 310
}
323 311

  
324 312
my $per = sprintf("%.1f", ($count - $notext) / $count * 100);
......
421 409

  
422 410
      # is this a template call?
423 411
      if (/parse_html_template2?\s*\(\s*[\"\']([\w\/]+)\s*[\"\']/) {
424
        my $newfile = "$basedir/templates/webpages/$1_master.html";
412
        my $newfile = "$basedir/templates/webpages/$1.html";
425 413
        if (/parse_html_template2/) {
426 414
          print "E: " . strip_base($file) . " is still using 'parse_html_template2' for " . strip_base($newfile) . ".\n";
427 415
        }
428 416
        if (-f $newfile) {
429 417
#           &scanhtmlfile($newfile);
430
#           &converthtmlfile($newfile);
431 418
           $cached{$file}{scanh}{$newfile} = 1;
432 419
          print "." if $opt_v;
433 420
        } elsif ($opt_c) {
......
543 530

  
544 531
}
545 532

  
533
sub unescape_template_string {
534
  my $in      = shift;
535
  my $out     = '';
536
  my $escaped = 0;
537

  
538
  foreach my $char (split m//, $in) {
539
    if ($escaped) {
540
      $out     .= $char;
541
      $escaped  = 0;
542
    } elsif ($char eq '\\') {
543
      $escaped  = 1;
544
    } else {
545
      $out     .= $char;
546
    }
547
  }
548

  
549
  return $out;
550
}
551

  
546 552
sub scanhtmlfile {
547 553
  local *IN;
548 554

  
549
  if (!defined $cached{$_[0]}) {
555
  my $file = shift;
556

  
557
  if (!defined $cached{$file}) {
550 558
    my %plugins = ( 'loaded' => { }, 'needed' => { } );
551 559

  
552
    open(IN, $_[0]) || die $_[0];
560
    open(IN, $file) || die $file;
553 561

  
554 562
    my $copying  = 0;
555 563
    my $issubmit = 0;
......
567 575
      }
568 576

  
569 577
      while ($line =~ m/(?:             # Start von Variante 1: LxERP.t8('...'); ohne darumliegende [% ... %]-Tags
570
                          (LxERP\.t8)\( #   LxERP.t8(
571
                          [\'\"]        #   Anfang des zu ?bersetzenden Strings
572
                          (.*?)         #   Der zu ?bersetzende String
573
                          [\'\"]        #   Ende des zu ?bersetzenden Strings
578
                          (LxERP\.t8)\( #   LxERP.t8(                             ::Parameter $1::
579
                          ([\'\"])      #   Anfang des zu ?bersetzenden Strings   ::Parameter $2::
580
                          (.*?)         #   Der zu ?bersetzende String            ::Parameter $3::
581
                          (?<!\\)\2     #   Ende des zu ?bersetzenden Strings
574 582
                        |               # Start von Variante 2: [% '...' | $T8 %]
575 583
                          \[\%          #   Template-Start-Tag
576 584
                          [\-~#]*       #   Whitespace-Unterdr?ckung
577 585
                          \s*           #   Optional beliebig viele Whitespace
578
                          [\'\"]        #   Anfang des zu ?bersetzenden Strings
579
                          (.*?)         #   Der zu ?bersetzende String
580
                          [\'\"]        #   Ende des zu ?bersetzenden Strings
586
                          ([\'\"])      #   Anfang des zu ?bersetzenden Strings   ::Parameter $4::
587
                          (.*?)         #   Der zu ?bersetzende String            ::Parameter $5::
588
                          (?<!\\)\4     #   Ende des zu ?bersetzenden Strings
581 589
                          \s*\|\s*      #   Pipe-Zeichen mit optionalen Whitespace davor und danach
582
                          (\$T8)        #   Filteraufruf
590
                          (\$T8)        #   Filteraufruf                          ::Parameter $6::
583 591
                          .*?           #   Optionale Argumente f?r den Filter
584 592
                          \s*           #   Whitespaces
585 593
                          [\-~#]*       #   Whitespace-Unterdr?ckung
586 594
                          \%\]          #   Template-Ende-Tag
587 595
                        )
588 596
                       /ix) {
589
        my $module = $1 || $4;
590
        my $string = $2 || $3;
597
        my $module = $1 || $6;
598
        my $string = $3 || $5;
591 599
        print "Found filter >>>$string<<<\n" if $debug;
592 600
        substr $line, $LAST_MATCH_START[1], $LAST_MATCH_END[0] - $LAST_MATCH_START[0], '';
593 601

  
594
        $cached{$_[0]}{all}{$string}    = 1;
595
        $cached{$_[0]}{html}{$string}   = 1;
596
        $cached{$_[0]}{submit}{$string} = 1 if $PREMATCH =~ /$submitsearch/;
602
        $string                         = unescape_template_string($string);
603
        $cached{$file}{all}{$string}    = 1;
604
        $cached{$file}{html}{$string}   = 1;
605
        $cached{$file}{submit}{$string} = 1 if $PREMATCH =~ /$submitsearch/;
597 606
        $plugins{needed}->{T8}          = 1 if $module eq '$T8';
607
        $plugins{needed}->{LxERP}       = 1 if $module eq 'LxERP.t8';
598 608
      }
599 609

  
600
      while ("" ne $line) {
601
        if (!$copying) {
602
          if ($line =~ m|<translate>|i) {
603
            my $eom = $+[0];
604
            if ($` =~ /$submitsearch/) {
605
              $issubmit = 1
606
            }
607
            substr($line, 0, $eom) = "";
608
            $copying = 1;
609
          } else {
610
            $line = "";
611
          }
612

  
613
        } else {
614
          if ($line =~ m|</translate>|i) {
615
            $text .= $`;
616
            substr($line, 0, $+[0]) = "";
617
            $text =~ s/\s+/ /g;
618

  
619
            $copying = 0;
620
            if ($issubmit) {
621
  #            $submit{$text} = 1;
622
               $cached{$_[0]}{submit}{$text} = 1;
623
              $issubmit = 0;
624
            }
625
  #          $alllocales{$text} = 1;
626
             $cached{$_[0]}{all}{$text} = 1;
627
  #          $htmllocale{$text} = 1;
628
             $cached{$_[0]}{html}{$text} = 1;
629
            $text = "";
630

  
631
          } else {
632
            $text .= $line;
633
            $line = "";
634
          }
635
        }
610
      while ($line =~ m/\[\%          # Template-Start-Tag
611
                        [\-~#]?       # Whitespace-Unterdr?ckung
612
                        \s*           # Optional beliebig viele Whitespace
613
                        (?:           # Die erkannten Template-Direktiven
614
                          PROCESS
615
                        |
616
                          INCLUDE
617
                        )
618
                        \s+           # Mindestens ein Whitespace
619
                        [\'\"]?       # Anfang des Dateinamens
620
                        ([^\s]+)      # Beliebig viele Nicht-Whitespaces -- Dateiname
621
                        \.html        # Endung ".html", ansonsten kann es der Name eines Blocks sein
622
                       /ix) {
623
        my $new_file_name = "$basedir/templates/webpages/$1.html";
624
        $cached{$file}{scanh}{$new_file_name} = 1;
625
        substr $line, $LAST_MATCH_START[1], $LAST_MATCH_END[0] - $LAST_MATCH_START[0], '';
636 626
      }
637 627
    }
638 628

  
......
640 630

  
641 631
    foreach my $plugin (keys %{ $plugins{needed} }) {
642 632
      next if ($plugins{loaded}->{$plugin});
643
      print "E: " . strip_base($_[0]) . " requires the Template plugin '$plugin', but is not loaded with '[\% USE $plugin \%]'.\n";
633
      print "E: " . strip_base($file) . " requires the Template plugin '$plugin', but is not loaded with '[\% USE $plugin \%]'.\n";
644 634
    }
645

  
646
    &converthtmlfile($_[0]);
647 635
  }
648 636

  
649 637
  # copy back into global arrays
650
  map { $alllocales{$_} = 1 } keys %{$cached{$_[0]}{all}};
651
  map { $htmllocale{$_} = 1 } keys %{$cached{$_[0]}{html}};
652
  map { $submit{$_} = 1 }     keys %{$cached{$_[0]}{submit}};
653
}
654

  
655
sub converthtmlfile {
656
  local *IN;
657
  local *OUT;
658

  
659
  my $file = shift;
660

  
661
  open(IN, $file) || die;
638
  map { $alllocales{$_} = 1 } keys %{$cached{$file}{all}};
639
  map { $htmllocale{$_} = 1 } keys %{$cached{$file}{html}};
640
  map { $submit{$_} = 1 }     keys %{$cached{$file}{submit}};
662 641

  
663
  my $langcode = (split("/", getcwd()))[-1];
664
  $file =~ s/_master.html$/_${langcode}.html/;
642
  map { scanhtmlfile($_)  }   keys %{$cached{$file}{scanh}};
665 643

  
666
  open(OUT, ">$file") || die;
667

  
668
  my $copying = 0;
669
  my $text = "";
670
  while (my $line = <IN>) {
671
    chomp($line);
672
    if ("" eq $line) {
673
      print(OUT "\n");
674
      next;
675
    }
676

  
677
    while ("" ne $line) {
678
      if (!$copying) {
679
        if ($line =~ m|<translate>|i) {
680
          print(OUT $`);
681
          substr($line, 0, $+[0]) = "";
682
          $copying = 1;
683
          print(OUT "\n") if ("" eq $line);
684

  
685
        } else {
686
          print(OUT "${line}\n");
687
          $line = "";
688
        }
689

  
690
      } else {
691
        if ($line =~ m|</translate>|i) {
692
          $text .= $`;
693
          substr($line, 0, $+[0]) = "";
694
          $text =~ s/\s+/ /g;
695
          $copying = 0;
696
          $alllocales{$text} = 1;
697
          $htmllocale{$text} = 1;
698
          print(OUT $self->{"texts"}{$text} || $text);
699
          print(OUT "\n") if ("" eq $line);
700
          $text = "";
701

  
702
        } else {
703
          $text .= $line;
704
          $line = "";
705
        }
706
      }
707
    }
708
  }
709

  
710
  close(IN);
711
  close(OUT);
644
  @referenced_html_files{keys %{$cached{$file}{scanh}}} = (1) x scalar keys %{$cached{$file}{scanh}};
712 645
}
713 646

  
714 647
sub search_unused_htmlfiles {
......
729 662
  }
730 663
}
731 664

  
732
sub search_translated_htmlfiles_wo_master {
733
  my @unscanned_dirs = ('../../templates/webpages');
734

  
735
  while (scalar @unscanned_dirs) {
736
    my $dir = shift @unscanned_dirs;
737

  
738
    foreach my $entry (<$dir/*>) {
739
      if (-d $entry) {
740
        push @unscanned_dirs, $entry;
741

  
742
      } elsif (($entry =~ /_[a-z]+\.html$/) && ($entry !~ /_master.html$/) && -f $entry) {
743
        my $master =  $entry;
744
        $master    =~ s/[a-z]+\.html$/master.html/;
745
        if (! -f $master) {
746
          print "W: translated HTML template without master: " . strip_base($entry) . "\n";
747
        }
748
      }
749
    }
750
  }
751
}
752

  
753 665
sub strip_base {
754 666
  my $s =  "$_[0]";             # Create a copy of the string.
755 667

  
templates/webpages/admin/list_users.html
46 46

  
47 47
  <p>[% 'Click on login name to edit!' | $T8 %]</p>
48 48

  
49
  <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>
49
  <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>
50 50
 </form>
51 51

  
52 52
 <form method="post" action="login.pl">
templates/webpages/admin/restore_dataset_start_footer.html
6 6

  
7 7
 <p>
8 8
  [%- 'The restoration process is complete. Please review &quot;pg_restore&quot;\'s output to find out if the restoration was successful.' | $T8 %]
9
  [%- 'The program\'s exit code was [% HTML.escape(retval) %] (&quot;0&quot; usually means that everything went OK).' | $T8 %]
9
  [%- LxERP.t8('The program\'s exit code was #1 (&quot;0&quot; usually means that everything went OK).', retval) | html %]
10 10
 </p>
11 11

  
12 12
 <form method="post" action="admin.pl">
templates/webpages/dbupgrade/buchungsgruppen_assemblies.html
1 1
[%- USE T8 %]
2
[%- USE LxERP %]
2 3
[% USE HTML %]<div class="listtop">[% 'Step 3 of 3: Assemblies' | $T8 %]</div>
3 4

  
4 5
<form name="Form" method="post" action="login.pl">
......
39 40
 </p>
40 41

  
41 42
 [% FOREACH row = LIST %]
42
  <div class="subsubheading">[% 'New Buchungsgruppe [% loop.count %]' | $T8 %]</div>
43
  <div class="subsubheading">[% LxERP.t8('New Buchungsgruppe #1', loop.count) | html %]</div>
43 44

  
44 45
  <table>
45 46
   <tr>
templates/webpages/dbupgrade/buchungsgruppen_parts.html
1 1
[%- USE T8 %]
2
[%- USE LxERP %]
2 3
[% USE HTML %]<div class="listtop">[% 'Step 1 of 3: Parts' | $T8 %]</div>
3 4

  
4 5
<form name="Form" method="post" action="login.pl">
......
39 40
 </p>
40 41

  
41 42
 [% FOREACH row = LIST %]
42
  <div class="subsubheading">[% 'New Buchungsgruppe [% loop.count %]' | $T8 %]</div>
43
  <div class="subsubheading">[% LxERP.t8('New Buchungsgruppe #1', loop.count) | html %]</div>
43 44

  
44 45
  <table>
45 46
   <tr>
templates/webpages/dbupgrade/buchungsgruppen_services.html
1 1
[%- USE T8 %]
2
[%- USE LxERP %]
2 3
[% USE HTML %]<div class="listtop">[% 'Step 2 of 3: Services' | $T8 %]</div>
3 4

  
4 5
<form name="Form" method="post" action="login.pl">
......
39 40
 </p>
40 41

  
41 42
 [% FOREACH row = LIST %]
42
  <div class="subsubheading">[% 'New Buchungsgruppe [% loop.count %]' | $T8 %]</div>
43
  <div class="subsubheading">[% LxERP.t8('New Buchungsgruppe #1', loop.count) | html %]</div>
43 44

  
44 45
  <table>
45 46
   <tr>
templates/webpages/dbupgrade/warning.html
6 6
 <input type="hidden" name="action" value="login">
7 7

  
8 8
 <p>
9
  [% 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 %]
9
  [% LxERP.t8('Lx-Office is about to update the database <b>#1</b>.', dbname) | html %]
10
  [% 'You should create a backup of the database before proceeding because the backup might not be reversible.' | $T8 %]
10 11
 </p>
11 12

  
12 13
 <input type="submit" name="dummy" value="[% 'Continue' | $T8 %]">
templates/webpages/ustva/config_step2.html
159 159
[%- IF COA_Germany %]
160 160
           [% input_steuernummer %]
161 161
[%- ELSE %]
162
[% 'Please enter the taxnumber in the administration menu userpreferences' | $T8 %]
162
[% 'Please enter the taxnumber in the administration menu user preferences' | $T8 %]
163 163
[% 'Current value:' | $T8 %] [% HTML.escape(myconfig_taxnumber) %]
164 164
[%- END %]
165 165

  

Auch abrufbar als: Unified diff