--- loncom/localize/lonlocal.pm 2011/03/28 21:10:41 1.62 +++ loncom/localize/lonlocal.pm 2015/06/09 21:23:15 1.66 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Localization routines # -# $Id: lonlocal.pm,v 1.62 2011/03/28 21:10:41 raeburn Exp $ +# $Id: lonlocal.pm,v 1.66 2015/06/09 21:23:15 damieng Exp $ # # Copyright Michigan State University Board of Trustees # @@ -81,7 +81,7 @@ Inside might be something like this if ($status eq 'WON') { $message='You have won.'; } elsif ($status eq 'LOST') { - $message='You are a total looser.'; + $message='You are a total loser.'; } return $message; } @@ -103,7 +103,7 @@ The first two examples are easy: if ($status eq 'WON') { $message='You have won.'; } elsif ($status eq 'LOST') { - $message='You are a total looser.'; + $message='You are a total loser.'; } return &mt($message); } @@ -135,7 +135,7 @@ like this: 'You have won.' => 'Sie haben gewonnen.', - 'You are a total looser.' + 'You are a total loser.' => 'Sie sind der totale Verlierer.', 'Rules' @@ -171,7 +171,7 @@ use DateTime::Locale; require Exporter; our @ISA = qw (Exporter); -our @EXPORT = qw(mt mtn ns mt_user); +our @EXPORT = qw(mt mtn ns mt_user js_escape html_escape); my %mtcache=(); @@ -264,7 +264,7 @@ sub preferred_languages { my $defdom = &Apache::lonnet::default_login_domain(); foreach my $domtype ($Apache::lonnet::env{'user.domain'},$Apache::lonnet::env{'request.role.domain'},$defdom) { - if ($domtype ne '') { + if (($domtype ne '') && ($domtype ne 'public')) { my %domdefs = &Apache::lonnet::get_domain_defaults($domtype); if ($domdefs{'lang_def'} ne '') { push(@languages,$domdefs{'lang_def'}); @@ -325,7 +325,7 @@ sub current_locale { sub texthash { my %hash=@_; - foreach (keys %hash) { + foreach (keys(%hash)) { $hash{$_}=&mt($hash{$_}); } return %hash; @@ -382,7 +382,8 @@ sub gettimezone { if ($uroledomdefs{'timezone_def'} ne '') { $timezone = $uroledomdefs{'timezone_def'}; } - } elsif ($Apache::lonnet::env{'user.domain'} ne '') { + } elsif (($Apache::lonnet::env{'user.domain'} ne '') && + ($Apache::lonnet::env{'user.domain'} ne 'public')) { my %udomdefaults = &Apache::lonnet::get_domain_defaults($Apache::lonnet::env{'user.domain'}); if ($udomdefaults{'timezone_def'} ne '') { @@ -574,6 +575,79 @@ sub mt_escape { $$str_ref =~s/([\[\]])/~$1/g; } +=pod + +=item * js_escape + +js_escape takes a string, string reference or hash reference, +and escapes the values so that they can be used within a