diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index e54727d32..1ddc29762 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -10,6 +10,7 @@ - fixed #11580: Date not populated for Story Archive RSS feed - fixed #11587: Thingy, no fields and undefined statement handles - fixed #11589: Syndicated Content: Return raw text for sentence and word template variables + - fixed #11573: user has no way of knowing what they are currently using 7.9.5 - Asset->www_copy now has a progress bar diff --git a/lib/WebGUI/Macro/PickLanguage.pm b/lib/WebGUI/Macro/PickLanguage.pm index a1af2a40b..8e69dbd57 100644 --- a/lib/WebGUI/Macro/PickLanguage.pm +++ b/lib/WebGUI/Macro/PickLanguage.pm @@ -45,17 +45,22 @@ sub process { my $session = shift; my $templateId = shift || "_aE16Rr1-bXBf8SIaLZjCg"; my $template = WebGUI::Asset::Template->new($session, $templateId); - return "Could not instanciate template with id [$templateId]" unless $template; - my $i18n = WebGUI::International->new($session); + return "Could not instanciate template with id [$templateId]" unless $template; + my $i18n = WebGUI::International->new($session); my $languages = $i18n->getLanguages(); + my $currentLanguage = $session->scratch->get('language') + ? $session->scratch->get('language') + : $session->user->profileField('language'); my @lang_loop = (); foreach my $language ( keys %$languages ) { + my $isCurrentLanguage = $currentLanguage eq $language ? 1 : 0; 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, + language_isCurrent => $isCurrentLanguage, }; } my %vars = ( diff --git a/lib/WebGUI/i18n/English/Macro_PickLanguage.pm b/lib/WebGUI/i18n/English/Macro_PickLanguage.pm index 99458355a..3c6eabb1d 100644 --- a/lib/WebGUI/i18n/English/Macro_PickLanguage.pm +++ b/lib/WebGUI/i18n/English/Macro_PickLanguage.pm @@ -34,7 +34,12 @@ our $I18N = { ##hashref of hashes message => q|The English name of the language.|, lastUpdated => 1131394072, context => q|A label of the language to use in the template| - }, + }, + 'language_isCurrent' => { + message => q|A boolean which is true if this language is the current language.|, + lastUpdated => 1131394072, + context => q|A label of the language to use in the template| + }, 'language_url' => { message => q|The url that sets the WebGUI language to the selected language.|, lastUpdated => 1131394072, diff --git a/t/Macro/PickLanguage.t b/t/Macro/PickLanguage.t index bc7feaf71..5c8761539 100644 --- a/t/Macro/PickLanguage.t +++ b/t/Macro/PickLanguage.t @@ -50,11 +50,12 @@ $templateMock->mock('process', sub { $templateVars = $_[1]; } ); $templateVars, { lang_loop => [ - { 'language_url' => '?op=setLanguage;language=English', - 'language_lang' => 'English', + { 'language_url' => '?op=setLanguage;language=English', + 'language_lang' => 'English', 'language_langAbbr' => 'en', 'language_langAbbrLoc' => 'US', - 'language_langEng' => 'English' + 'language_langEng' => 'English', + 'language_isCurrent' => 1, }, ], delete_url => '?op=setLanguage;language=delete;', @@ -85,7 +86,8 @@ $templateMock->mock('process', sub { $templateVars = $_[1]; } ); 'language_lang' => 'English', 'language_langAbbr' => 'en', 'language_langAbbrLoc' => 'US', - 'language_langEng' => 'English' + 'language_langEng' => 'English', + 'language_isCurrent' => 1, }, ], delete_url => '?op=setLanguage;language=delete;',