diff --git a/docs/upgrades/packages-7.8.3/root_import_macro_picklanguage.wgpkg b/docs/upgrades/packages-7.8.3/root_import_macro_picklanguage.wgpkg index 30ba71727..da20e143f 100644 Binary files a/docs/upgrades/packages-7.8.3/root_import_macro_picklanguage.wgpkg and b/docs/upgrades/packages-7.8.3/root_import_macro_picklanguage.wgpkg differ diff --git a/lib/WebGUI/Help/Macro_PickLanguage.pm b/lib/WebGUI/Help/Macro_PickLanguage.pm index f5bb02f61..a97371655 100644 --- a/lib/WebGUI/Help/Macro_PickLanguage.pm +++ b/lib/WebGUI/Help/Macro_PickLanguage.pm @@ -26,6 +26,12 @@ our $HELP = { }, ], }, + { + name => "delete_url", + }, + { + name => "delete_label", + }, ], related => [ ], diff --git a/lib/WebGUI/Macro/PickLanguage.pm b/lib/WebGUI/Macro/PickLanguage.pm index 306f4f183..a1af2a40b 100644 --- a/lib/WebGUI/Macro/PickLanguage.pm +++ b/lib/WebGUI/Macro/PickLanguage.pm @@ -11,6 +11,7 @@ package WebGUI::Macro::PickLanguage; # edit this line to match your own macro na #------------------------------------------------------------------- use strict; +use WebGUI::Asset::Template; =head1 NAME @@ -47,17 +48,23 @@ sub process { return "Could not instanciate template with id [$templateId]" unless $template; my $i18n = WebGUI::International->new($session); my $languages = $i18n->getLanguages(); - my $vars = {'lang_loop' => []}; + my @lang_loop = (); foreach my $language ( keys %$languages ) { - my $langVars = {}; - $langVars->{ 'language_url' } = '?op=setLanguage;language=' . $language ; - $langVars->{ 'language_lang' } = $i18n->getLanguage($language , 'label'); - $langVars->{ 'language_langAbbr' } = $i18n->getLanguage($language, 'languageAbbreviation'); - $langVars->{ 'language_langAbbrLoc' } = $i18n->getLanguage($language, 'locale'); - $langVars->{ 'language_langEng' } = $language; - push(@{$vars->{lang_loop}}, $langVars); + push @lang_loop, { + language_url => '?op=setLanguage;language=' . $language, + language_lang => $i18n->getLanguage($language , 'label'), + language_langAbbr => $i18n->getLanguage($language, 'languageAbbreviation'), + language_langAbbrLoc => $i18n->getLanguage($language, 'locale'), + language_langEng => $language, + }; } - return $template->process($vars); + my %vars = ( + lang_loop => \@lang_loop, + delete_url => '?op=setLanguage;language=delete;', + delete_label => $i18n->get('delete',"Macro_PickLanguage"), + ); + + return $template->process(\%vars); } 1; diff --git a/lib/WebGUI/i18n/English/Macro_PickLanguage.pm b/lib/WebGUI/i18n/English/Macro_PickLanguage.pm index a4f1cc78c..99458355a 100644 --- a/lib/WebGUI/i18n/English/Macro_PickLanguage.pm +++ b/lib/WebGUI/i18n/English/Macro_PickLanguage.pm @@ -40,6 +40,21 @@ our $I18N = { ##hashref of hashes lastUpdated => 1131394072, context => q|The url to change languages| }, + 'delete_url' => { + message => q|The url that deletes the scratch language from the session.|, + lastUpdated => 1131394072, + context => q|A template var to remove the scratch language| + }, + 'delete' => { + message => q|Go back to profile language.|, + lastUpdated => 1131394072, + context => q|An internationalized label to go back to the profile language| + }, + 'delete_label' => { + message => q|A label for the link to go back to the profile language.|, + lastUpdated => 1131394072, + context => q|Help for delete_label| + }, }; diff --git a/t/Macro/PickLanguage.t b/t/Macro/PickLanguage.t index ad93afb6a..3f7fc3de1 100644 --- a/t/Macro/PickLanguage.t +++ b/t/Macro/PickLanguage.t @@ -61,6 +61,8 @@ $templateMock->mock('process', sub { $templateVars = $_[1]; } ); 'language_langEng' => 'English' }, ], + delete_url => '?op=setLanguage;language=delete;', + delete_label => 'Go back to profile language.', }, 'some template variables are created' ); @@ -90,6 +92,8 @@ $templateMock->mock('process', sub { $templateVars = $_[1]; } ); 'language_langEng' => 'English' }, ], + delete_url => '?op=setLanguage;language=delete;', + delete_label => "Go back to profile language.", }, 'some template variables are created, when no templateId is passed on with the macro' );