Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 37a84d92

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

  • ID 37a84d92f0b0981aa6a8b9ec249baad97f4c0a5f
  • Vorgänger f393137f
  • Nachfolger 71f55f78

Funktion LxERP.t8() analog zum Filter [% ... | $T8 %] implementiert.

Hintergrund: Will man einen zu übersetzenden Begriff an eine Funktion
übergeben, so geht das mit der Filtersyntax leider
nicht. Beispielsweise geht weder

[% JavaScript.confirm('Are you sure?' | $T8) %]

(Syntaxfehler vom Template-Modul), noch geht

[% SET t8='Are you sure?' | $T8; JavaScript.confirm(t8) %]

(hier steht in t8 der unübersetzte Begriff, und es ist
hässlich). Jetzt kann man aber optional folgendes schreiben:

[% JavaScript.confirm(LxERP.t8('Are you sure?')) %]

Conflicts:

locale/de/locales.pl

Unterschiede anzeigen:

SL/Template/Plugin/LxERP.pm
106 106
  return $var < 0 ? $var * -1 : $var;
107 107
}
108 108

  
109
sub t8 {
110
  my ($self, $text, $args) = @_;
111
  $self->{locale} ||= Locale->new($::myconfig{countrycode}, 'all');
112
  return $self->{locale}->text($text, @{ $args || [] });
113
}
114

  
109 115
1;
locale/de/locales.pl
566 566
        $plugins{needed}->{$plugin} = 1 if (first { $_ eq $plugin } qw(HTML LxERP JavaScript MultiColumnIterator));
567 567
      }
568 568

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

  

Auch abrufbar als: Unified diff