version 1.50.2.1, 2008/12/12 04:29:35
|
version 1.56, 2009/03/20 18:26:34
|
Line 179 use vars qw($lh);
|
Line 179 use vars qw($lh);
|
|
|
# ===================================================== The "MakeText" function |
# ===================================================== The "MakeText" function |
|
|
|
# ######### Localize Cache |
|
# my @localize_cache; |
|
# ######### |
|
|
sub mt (@) { |
sub mt (@) { |
# open(LOG,'>>/home/www/loncapa/loncom/localize/localize/newphrases.txt'); |
# open(LOG,'>>/home/www/loncapa/loncom/localize/localize/newphrases.txt'); |
# print LOG (@_[0]."\n"); |
# print LOG (@_[0]."\n"); |
Line 192 sub mt (@) {
|
Line 196 sub mt (@) {
|
} |
} |
} else { |
} else { |
return $lh->maketext(@_); |
return $lh->maketext(@_); |
|
# ######### Localize Cache |
|
# foreach my $e (@localize_cache) |
|
# { |
|
# if($_[0] eq $$e[0]) { return $$e[1]; } |
|
# } |
|
# |
|
# if($#localize_cache == 100) { pop(@localize_cache); } |
|
# my $localize_entry = $lh->maketext(@_); |
|
# unshift(@localize_cache, [ @_, $localize_entry ] ); |
|
# ######### |
|
# |
|
# return $localize_entry; |
} |
} |
} else { |
} else { |
if (wantarray) { |
if (wantarray) { |
Line 287 sub get_genlanguages {
|
Line 303 sub get_genlanguages {
|
|
|
sub current_encoding { |
sub current_encoding { |
my $default='UTF-8'; |
my $default='UTF-8'; |
if ($Apache::lonnet::env{'browser.os'} eq 'win' && |
# UTF-8 character encoding needed for the whole LON-CAPA system |
$Apache::lonnet::env{'browser.type'} eq 'explorer') { |
# (interface language and homework problem content) |
$default='ISO-8859-1'; |
# See Bugzilla 5702 vs. 2189 and 4067 |
} |
# if ($Apache::lonnet::env{'browser.os'} eq 'win' && |
|
# $Apache::lonnet::env{'browser.type'} eq 'explorer') { |
|
# $default='ISO-8859-1'; |
|
# } |
if ($lh) { |
if ($lh) { |
my $enc=$lh->maketext('char_encoding'); |
my $enc=$lh->maketext('char_encoding'); |
return ($enc eq 'char_encoding'?$default:$enc); |
return ($enc eq 'char_encoding'?$default:$enc); |
Line 340 sub get_language_handle {
|
Line 359 sub get_language_handle {
|
|
|
# ========================================================== Localize localtime |
# ========================================================== Localize localtime |
sub gettimezone { |
sub gettimezone { |
my $timezone; |
my ($timezone) = @_; |
if ($Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.timezone'}) { |
if ($timezone ne '') { |
$timezone = $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.timezone'}; |
if (!DateTime::TimeZone->is_valid_name($timezone)) { |
} elsif ($Apache::lonnet::env{'request.course.id'} ne '') { |
$timezone = 'local'; |
my $cdom = $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.domain'}; |
} |
if ($cdom ne '') { |
return $timezone; |
my %domdefaults = &Apache::lonnet::get_domain_defaults($cdom); |
} |
if ($domdefaults{'timezone_def'} ne '') { |
my $cid = $Apache::lonnet::env{'request.course.id'}; |
$timezone = $domdefaults{'timezone_def'}; |
if ($cid ne '') { |
|
if ($Apache::lonnet::env{'course.'.$cid.'.timezone'}) { |
|
$timezone = $Apache::lonnet::env{'course.'.$cid.'.timezone'}; |
|
} else { |
|
my $cdom = $Apache::lonnet::env{'course.'.$cid.'.domain'}; |
|
if ($cdom ne '') { |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($cdom); |
|
if ($domdefaults{'timezone_def'} ne '') { |
|
$timezone = $domdefaults{'timezone_def'}; |
|
} |
} |
} |
} |
} |
} elsif ($Apache::lonnet::env{'request.role.domain'} ne '') { |
} elsif ($Apache::lonnet::env{'request.role.domain'} ne '') { |
Line 373 sub gettimezone {
|
Line 401 sub gettimezone {
|
} |
} |
|
|
sub locallocaltime { |
sub locallocaltime { |
my $thistime=shift; |
my ($thistime,$timezone) = @_; |
if (!defined($thistime) || $thistime eq '') { |
if (!defined($thistime) || $thistime eq '') { |
return &mt('Never'); |
return &mt('Never'); |
} |
} |
Line 387 sub locallocaltime {
|
Line 415 sub locallocaltime {
|
} |
} |
|
|
my $dt = DateTime->from_epoch(epoch => $thistime) |
my $dt = DateTime->from_epoch(epoch => $thistime) |
->set_time_zone(&gettimezone()); |
->set_time_zone(&gettimezone($timezone)); |
if ((¤t_language=~/^en/) || (!$lh)) { |
if ((¤t_language=~/^en/) || (!$lh)) { |
|
|
return $dt->strftime("%a %b %e %I:%M:%S %P %Y (%Z)"); |
return $dt->strftime("%a %b %e %I:%M:%S %P %Y (%Z)"); |
Line 460 sub getdatelocale {
|
Line 488 sub getdatelocale {
|
return $locale_obj; |
return $locale_obj; |
} |
} |
|
|
|
=pod |
|
|
# ==================== Normalize string (reduce fragility in the lexicon files) |
=item * normalize_string |
|
|
|
Normalize string (reduce fragility in the lexicon files) |
|
|
|
This normalizes a string to reduce fragility in the lexicon files of |
|
huge messages (such as are used by the helper), and allow useful |
|
formatting: reduce all consecutive whitespace to a single space, |
|
and remove all HTML |
|
|
|
=cut |
|
|
# This normalizes a string to reduce fragility in the lexicon files of |
|
# huge messages (such as are used by the helper), and allow useful |
|
# formatting: reduce all consecutive whitespace to a single space, |
|
# and remove all HTML |
|
sub normalize_string { |
sub normalize_string { |
my $s = shift; |
my $s = shift; |
$s =~ s/\s+/ /g; |
$s =~ s/\s+/ /g; |
Line 477 sub normalize_string {
|
Line 511 sub normalize_string {
|
return $s; |
return $s; |
} |
} |
|
|
# alias for normalize_string; recommend using it only in the lexicon |
=pod |
|
|
|
=item * ns |
|
|
|
alias for normalize_string; recommend using it only in the lexicon |
|
|
|
=cut |
|
|
sub ns { |
sub ns { |
return normalize_string(@_); |
return normalize_string(@_); |
} |
} |
|
|
# mtn: call the mt function and the normalization function easily. |
=pod |
# Returns original non-normalized string if there was no translation |
|
|
=item * mtn |
|
|
|
mtn: call the mt function and the normalization function easily. |
|
Returns original non-normalized string if there was no translation |
|
|
|
=cut |
|
|
sub mtn (@) { |
sub mtn (@) { |
my @args = @_; # don't want to modify caller's string; if we |
my @args = @_; # don't want to modify caller's string; if we |
# didn't care about that we could set $_[0] |
# didn't care about that we could set $_[0] |