version 1.46, 2008/07/02 21:10:41
|
version 1.49, 2008/09/19 03:27:04
|
Line 166 use locale;
|
Line 166 use locale;
|
use POSIX qw(locale_h strftime); |
use POSIX qw(locale_h strftime); |
use DateTime(); |
use DateTime(); |
use DateTime::TimeZone; |
use DateTime::TimeZone; |
|
use DateTime::Locale; |
|
|
require Exporter; |
require Exporter; |
|
|
our @ISA = qw (Exporter); |
our @ISA = qw (Exporter); |
our @EXPORT = qw(mt mtn ns); |
our @EXPORT = qw(mt mtn ns mt_user); |
|
|
# ========================================================= The language handle |
# ========================================================= The language handle |
|
|
Line 201 sub mt (@) {
|
Line 202 sub mt (@) {
|
} |
} |
} |
} |
|
|
|
sub mt_user { |
|
my ($user_lh,@what) = @_; |
|
if ($user_lh) { |
|
if ($what[0] eq '') { |
|
if (wantarray) { |
|
return @what; |
|
} else { |
|
return $what[0]; |
|
} |
|
} else { |
|
return $user_lh->maketext(@what); |
|
} |
|
} else { |
|
if (wantarray) { |
|
return @what; |
|
} else { |
|
return $what[0]; |
|
} |
|
} |
|
} |
|
|
# ============================================================== What language? |
# ============================================================== What language? |
|
|
sub current_language { |
sub current_language { |
Line 293 sub locallocaltime {
|
Line 315 sub locallocaltime {
|
if (!defined($thistime) || $thistime eq '') { |
if (!defined($thistime) || $thistime eq '') { |
return &mt('Never'); |
return &mt('Never'); |
} |
} |
|
if (($thistime < 0) || ($thistime eq 'NaN')) { |
|
&Apache::lonnet::logthis("Unexpected time (negative or NaN) '$thistime' passed to lonlocal::locallocaltime"); |
|
return &mt('Never'); |
|
} |
|
if ($thistime !~ /^\d+$/) { |
|
&Apache::lonnet::logthis("Unexpected non-numeric time '$thistime' passed to lonlocal::locallocaltime"); |
|
return &mt('Never'); |
|
} |
|
|
my $dt = DateTime->from_epoch(epoch => $thistime) |
my $dt = DateTime->from_epoch(epoch => $thistime) |
->set_time_zone(&gettimezone()); |
->set_time_zone(&gettimezone()); |
Line 337 sub locallocaltime {
|
Line 367 sub locallocaltime {
|
} |
} |
} |
} |
|
|
|
sub getdatelocale { |
|
my ($datelocale,$locale_obj); |
|
if ($Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.datelocale'}) { |
|
$datelocale = $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.datelocale'}; |
|
} elsif ($Apache::lonnet::env{'request.course.id'} ne '') { |
|
my $cdom = $Apache::lonnet::env{'course.'.$Apache::lonnet::env{'request.course.id'}.'.domain'}; |
|
if ($cdom ne '') { |
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($cdom); |
|
if ($domdefaults{'datelocale_def'} ne '') { |
|
$datelocale = $domdefaults{'datelocale_def'}; |
|
} |
|
} |
|
} elsif ($Apache::lonnet::env{'user.domain'} ne '') { |
|
my %udomdefaults = &Apache::lonnet::get_domain_defaults($Apache::lonnet::env{'user.domain'}); |
|
if ($udomdefaults{'datelocale_def'} ne '') { |
|
$datelocale = $udomdefaults{'datelocale_def'}; |
|
} |
|
} |
|
if ($datelocale ne '') { |
|
eval { |
|
$locale_obj = DateTime::Locale->load($datelocale); |
|
}; |
|
if (!$@) { |
|
if ($locale_obj->id() eq $datelocale) { |
|
return $locale_obj; |
|
} |
|
} |
|
} |
|
return $locale_obj; |
|
} |
|
|
|
|
# ==================== Normalize string (reduce fragility in the lexicon files) |
# ==================== Normalize string (reduce fragility in the lexicon files) |
|
|
# This normalizes a string to reduce fragility in the lexicon files of |
# This normalizes a string to reduce fragility in the lexicon files of |