version 1.62, 2011/03/28 21:10:41
|
version 1.66, 2015/06/09 21:23:15
|
Line 81 Inside might be something like this
|
Line 81 Inside might be something like this
|
if ($status eq 'WON') { |
if ($status eq 'WON') { |
$message='You have won.'; |
$message='You have won.'; |
} elsif ($status eq 'LOST') { |
} elsif ($status eq 'LOST') { |
$message='You are a total looser.'; |
$message='You are a total loser.'; |
} |
} |
return $message; |
return $message; |
} |
} |
Line 103 The first two examples are easy:
|
Line 103 The first two examples are easy:
|
if ($status eq 'WON') { |
if ($status eq 'WON') { |
$message='You have won.'; |
$message='You have won.'; |
} elsif ($status eq 'LOST') { |
} elsif ($status eq 'LOST') { |
$message='You are a total looser.'; |
$message='You are a total loser.'; |
} |
} |
return &mt($message); |
return &mt($message); |
} |
} |
Line 135 like this:
|
Line 135 like this:
|
'You have won.' |
'You have won.' |
=> 'Sie haben gewonnen.', |
=> 'Sie haben gewonnen.', |
|
|
'You are a total looser.' |
'You are a total loser.' |
=> 'Sie sind der totale Verlierer.', |
=> 'Sie sind der totale Verlierer.', |
|
|
'Rules' |
'Rules' |
Line 171 use DateTime::Locale;
|
Line 171 use DateTime::Locale;
|
require Exporter; |
require Exporter; |
|
|
our @ISA = qw (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=(); |
my %mtcache=(); |
|
|
Line 264 sub preferred_languages {
|
Line 264 sub preferred_languages {
|
|
|
my $defdom = &Apache::lonnet::default_login_domain(); |
my $defdom = &Apache::lonnet::default_login_domain(); |
foreach my $domtype ($Apache::lonnet::env{'user.domain'},$Apache::lonnet::env{'request.role.domain'},$defdom) { |
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); |
my %domdefs = &Apache::lonnet::get_domain_defaults($domtype); |
if ($domdefs{'lang_def'} ne '') { |
if ($domdefs{'lang_def'} ne '') { |
push(@languages,$domdefs{'lang_def'}); |
push(@languages,$domdefs{'lang_def'}); |
Line 325 sub current_locale {
|
Line 325 sub current_locale {
|
|
|
sub texthash { |
sub texthash { |
my %hash=@_; |
my %hash=@_; |
foreach (keys %hash) { |
foreach (keys(%hash)) { |
$hash{$_}=&mt($hash{$_}); |
$hash{$_}=&mt($hash{$_}); |
} |
} |
return %hash; |
return %hash; |
Line 382 sub gettimezone {
|
Line 382 sub gettimezone {
|
if ($uroledomdefs{'timezone_def'} ne '') { |
if ($uroledomdefs{'timezone_def'} ne '') { |
$timezone = $uroledomdefs{'timezone_def'}; |
$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 = |
my %udomdefaults = |
&Apache::lonnet::get_domain_defaults($Apache::lonnet::env{'user.domain'}); |
&Apache::lonnet::get_domain_defaults($Apache::lonnet::env{'user.domain'}); |
if ($udomdefaults{'timezone_def'} ne '') { |
if ($udomdefaults{'timezone_def'} ne '') { |
Line 574 sub mt_escape {
|
Line 575 sub mt_escape {
|
$$str_ref =~s/([\[\]])/~$1/g; |
$$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 <script> element. |
|
It replaces all instances of \ by \\, ' by \', " by \" and \n by \\n. |
|
It is typically used with localized strings, which might contain quotes. |
|
|
|
=cut |
|
|
|
sub js_escape { |
|
my ($v) = @_; |
|
my $ref = ref($v); |
|
if ($ref eq 'SCALAR') { |
|
$$v =~ s/\\/\\\\/g; |
|
$$v =~ s/'/\\'/g; |
|
$$v =~ s/"/\\"/g; |
|
$$v =~ s/\n/\\n/g; |
|
} elsif ($ref eq 'HASH') { |
|
foreach my $key (keys %$v) { |
|
$v->{$key} =~ s/\\/\\\\/g; |
|
$v->{$key} =~ s/'/\\'/g; |
|
$v->{$key} =~ s/"/\\"/g; |
|
$v->{$key} =~ s/\n/\\n/g; |
|
} |
|
} else { |
|
$v =~ s/\\/\\\\/g; |
|
$v =~ s/'/\\'/g; |
|
$v =~ s/"/\\"/g; |
|
$v =~ s/\n/\\n/g; |
|
return $v; |
|
} |
|
} |
|
|
|
=pod |
|
|
|
=item * html_escape |
|
|
|
js_escape takes a string, string reference or hash reference, |
|
and escapes the values so that they can be used as HTML. |
|
It encodes <, >, &, ' and ". |
|
|
|
=cut |
|
|
|
sub html_escape { |
|
my ($v) = @_; |
|
my $ref = ref($v); |
|
if ($ref eq 'SCALAR') { |
|
$$v =~ s/&/&/g; |
|
$$v =~ s/</</g; |
|
$$v =~ s/>/>/g; |
|
$$v =~ s/'/'/g; |
|
$$v =~ s/"/"/g; |
|
} elsif ($ref eq 'HASH') { |
|
foreach my $key (keys %$v) { |
|
$v->{$key} =~ s/&/&/g; |
|
$v->{$key} =~ s/</</g; |
|
$v->{$key} =~ s/>/>/g; |
|
$v->{$key} =~ s/'/'/g; |
|
$v->{$key} =~ s/"/"/g; |
|
} |
|
} else { |
|
$v =~ s/&/&/g; |
|
$v =~ s/</</g; |
|
$v =~ s/>/>/g; |
|
$v =~ s/'/'/g; |
|
$v =~ s/"/"/g; |
|
return $v; |
|
} |
|
# NOTE: we could also turn \n into <br> if needed |
|
} |
|
|
=pod |
=pod |
|
|
=item * choose_language |
=item * choose_language |