Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 1260ff14

Von Moritz Bunkus vor etwa 12 Jahren hinzugefügt

  • ID 1260ff14707708ae886d5054d74e6eeff484b5d3
  • Vorgänger 4bcb4508
  • Nachfolger 3ce13f69

Sorted-Controller-Helper: Spaltentitle nicht direkt in make_sorted() übersetzen

Hintergrund ist der, dass ansonsten die Übersetzung nur einmal
passiert, nämlich dann, wenn das Modul compiliert wird. Für normales
CGI funktioniert das:

- Zuerst wird der Dispatcher geladen und ausgeführt. Der analysiert
zur Laufzeit die GET-/POST-Parameter und lädt erst dann den
erforderlichen Controller mittels "require".
- Sprich Dispatcher hat schon das für den Benutzer notwendige
$::locale-Objekt angelegt, und die Compilezeit des Controller-Moduls
liegt danach.

Für FastCGI würde das kaputt gehen:

- Zuerst wird der Dispatcher geladen und ausgeführt. Der analysiert
zur Laufzeit die GET-/POST-Parameter und lädt erst dann den
erforderlichen Controller mittels "require".
- Nach Beenden des Requests bleibt das Modul aber im Speicher.
- Beim nächsten Request auf denselben Controller wurde dieser bereits
compiliert, und die Titel wären bereits übersetzt -- in der Sprache
des Benutzers, der den Controller seit Start des FastCGI-Prozesses
das erste Mal aufgerufen hat.

Unterschiede anzeigen:

SL/Controller/BackgroundJob.pm
26 26
__PACKAGE__->make_sorted(
27 27
  ONLY         => [ qw(list) ],
28 28

  
29
  package_name => $::locale->text('Package name'),
30
  type         => $::locale->text('Execution type'),
31
  active       => $::locale->text('Active'),
32
  cron_spec    => $::locale->text('Execution schedule'),
33
  last_run_at  => $::locale->text('Last run at'),
34
  next_run_at  => $::locale->text('Next run at'),
29
  package_name => 'Package name',
30
  type         => 'Execution type',
31
  active       => 'Active',
32
  cron_spec    => 'Execution schedule',
33
  last_run_at  => 'Last run at',
34
  next_run_at  => 'Next run at',
35 35
);
36 36

  
37 37
#
SL/Controller/BackgroundJobHistory.pm
26 26
__PACKAGE__->make_sorted(
27 27
  ONLY         => [ qw(list) ],
28 28

  
29
  package_name => $::locale->text('Package name'),
30
  run_at       => $::locale->text('Run at'),
31
  status       => $::locale->text('Execution status'),
32
  result       => $::locale->text('Result'),
33
  error        => $::locale->text('Error'),
29
  package_name => 'Package name',
30
  run_at       => 'Run at',
31
  status       => 'Execution status',
32
  result       => 'Result',
33
  error        => 'Error',
34 34
);
35 35

  
36 36
#
SL/Controller/Helper/Sorted.pm
277 277
layout helper's C<sortable_table_header>. Does not have a default
278 278
value.
279 279

  
280
Note that this string must be the untranslated English version of the
281
string. The titles will be translated whenever they're requested.
282

  
280 283
=item * C<model>
281 284

  
282 285
Optional. The name of a Rose database model this sort index refers
SL/Template/Plugin/L.pm
591 591
  my $by_spec             = $sort_spec->{$by};
592 592
  my %current_sort_params = $controller->get_current_sort_params;
593 593
  my ($image, $new_dir)   = ('', $current_sort_params{dir});
594
  my $title               = delete($params{title}) || $by_spec->{title};
594
  my $title               = delete($params{title}) || $::locale->text($by_spec->{title});
595 595

  
596 596
  if ($current_sort_params{by} eq $by) {
597 597
    my $current_dir = $current_sort_params{dir} ? 'up' : 'down';

Auch abrufbar als: Unified diff