sub handler {
my ($session) = @_;
return undef unless $session->form->get('op') eq 'setLanguage';
my $language = $session->form->get('language');
#check whether a language has been given in the url
if (!$language) {
$session->errorHandler->error('There is no language given to this method');
return undef;
}
#make it possible to delete the language scratch variable from the session
if ($language eq 'delete' && $session->scratch->get('language')) {
$session->scratch->delete('language');
return undef;
}
#set a scratch variable language or throw error if language is not installed
my $i = WebGUI::International->new($session);
if($i->getLanguages()->{$language}) {
$session->scratch->set("language",$language);
return undef;
}
else {
$session->errorHandler->error("Language $language is not installed in this site");
return undef;
}
}