From: Moritz Bunkus Date: Wed, 5 Sep 2012 07:18:45 +0000 (+0200) Subject: Sorted-Controller-Helper: Spaltentitle nicht direkt in make_sorted() übersetzen X-Git-Tag: release-3.0.0beta1~249^2~10 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=1260ff14707708ae886d5054d74e6eeff484b5d3;p=kivitendo-erp.git 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. --- diff --git a/SL/Controller/BackgroundJob.pm b/SL/Controller/BackgroundJob.pm index f80f57a1c..bddb30812 100644 --- a/SL/Controller/BackgroundJob.pm +++ b/SL/Controller/BackgroundJob.pm @@ -26,12 +26,12 @@ __PACKAGE__->make_paginated(ONLY => [ qw(list) ]); __PACKAGE__->make_sorted( ONLY => [ qw(list) ], - package_name => $::locale->text('Package name'), - type => $::locale->text('Execution type'), - active => $::locale->text('Active'), - cron_spec => $::locale->text('Execution schedule'), - last_run_at => $::locale->text('Last run at'), - next_run_at => $::locale->text('Next run at'), + package_name => 'Package name', + type => 'Execution type', + active => 'Active', + cron_spec => 'Execution schedule', + last_run_at => 'Last run at', + next_run_at => 'Next run at', ); # diff --git a/SL/Controller/BackgroundJobHistory.pm b/SL/Controller/BackgroundJobHistory.pm index 5992dc00a..3e1110699 100644 --- a/SL/Controller/BackgroundJobHistory.pm +++ b/SL/Controller/BackgroundJobHistory.pm @@ -26,11 +26,11 @@ __PACKAGE__->make_paginated(ONLY => [ qw(list) ]); __PACKAGE__->make_sorted( ONLY => [ qw(list) ], - package_name => $::locale->text('Package name'), - run_at => $::locale->text('Run at'), - status => $::locale->text('Execution status'), - result => $::locale->text('Result'), - error => $::locale->text('Error'), + package_name => 'Package name', + run_at => 'Run at', + status => 'Execution status', + result => 'Result', + error => 'Error', ); # diff --git a/SL/Controller/Helper/Sorted.pm b/SL/Controller/Helper/Sorted.pm index ca8a565a8..d8d333533 100644 --- a/SL/Controller/Helper/Sorted.pm +++ b/SL/Controller/Helper/Sorted.pm @@ -277,6 +277,9 @@ Required. A user-displayable title to be used by functions like the layout helper's C. Does not have a default value. +Note that this string must be the untranslated English version of the +string. The titles will be translated whenever they're requested. + =item * C Optional. The name of a Rose database model this sort index refers diff --git a/SL/Template/Plugin/L.pm b/SL/Template/Plugin/L.pm index b3eaac9e7..fd9961413 100644 --- a/SL/Template/Plugin/L.pm +++ b/SL/Template/Plugin/L.pm @@ -591,7 +591,7 @@ sub sortable_table_header { my $by_spec = $sort_spec->{$by}; my %current_sort_params = $controller->get_current_sort_params; my ($image, $new_dir) = ('', $current_sort_params{dir}); - my $title = delete($params{title}) || $by_spec->{title}; + my $title = delete($params{title}) || $::locale->text($by_spec->{title}); if ($current_sort_params{by} eq $by) { my $current_dir = $current_sort_params{dir} ? 'up' : 'down';