version 1.36, 2005/11/14 19:53:03
|
version 1.41, 2006/08/28 14:26:25
|
Line 161 but for most purposes, we do not have to
|
Line 161 but for most purposes, we do not have to
|
package Apache::lonlocal; |
package Apache::lonlocal; |
|
|
use strict; |
use strict; |
use Apache::Constants qw(:common); |
|
use Apache::localize; |
use Apache::localize; |
use locale; |
use locale; |
use POSIX qw(locale_h); |
use POSIX qw(locale_h strftime); |
|
|
require Exporter; |
require Exporter; |
|
|
Line 251 sub get_language_handle {
|
Line 250 sub get_language_handle {
|
my @languages=&Apache::loncommon::preferred_languages; |
my @languages=&Apache::loncommon::preferred_languages; |
$ENV{'HTTP_ACCEPT_LANGUAGE'}=''; |
$ENV{'HTTP_ACCEPT_LANGUAGE'}=''; |
$lh=Apache::localize->get_handle(@languages); |
$lh=Apache::localize->get_handle(@languages); |
if ($r && &Apache::lonnet::mod_perl_version == 1) { |
if ($r) { |
$r->content_languages([¤t_language()]); |
$r->content_languages([¤t_language()]); |
} |
} |
### setlocale(LC_ALL,¤t_locale); |
### setlocale(LC_ALL,¤t_locale); |
Line 259 sub get_language_handle {
|
Line 258 sub get_language_handle {
|
|
|
# ========================================================== Localize localtime |
# ========================================================== Localize localtime |
sub gettimezone { |
sub gettimezone { |
return ' ('.$Apache::lonnet::env{'server.timezone'}.')'; |
my ($time) = @_; |
|
return ' ('.&strftime("%Z",localtime($time)).')'; |
} |
} |
|
|
sub locallocaltime { |
sub locallocaltime { |
my $thistime=shift; |
my $thistime=shift; |
|
if (!defined($thistime) || $thistime eq '') { |
|
return &mt('Never'); |
|
} |
if ((¤t_language=~/^en/) || (!$lh)) { |
if ((¤t_language=~/^en/) || (!$lh)) { |
return ''.localtime($thistime).&gettimezone(); |
return ''.localtime($thistime).&gettimezone($thistime); |
} else { |
} else { |
my $format=$lh->maketext('date_locale'); |
my $format=$lh->maketext('date_locale'); |
if ($format eq 'date_locale') { |
if ($format eq 'date_locale') { |
Line 295 sub locallocaltime {
|
Line 298 sub locallocaltime {
|
'month','weekday','ampm') { |
'month','weekday','ampm') { |
$format=~s/\$$_/eval('$'.$_)/gse; |
$format=~s/\$$_/eval('$'.$_)/gse; |
} |
} |
return $format.&gettimezone(); |
return $format.&gettimezone($thistime); |
} |
} |
} |
} |
|
|
Line 342 sub transstatic {
|
Line 345 sub transstatic {
|
$$strptr=~s/MT\{([^\}]*)\}/&mt($1)/gse; |
$$strptr=~s/MT\{([^\}]*)\}/&mt($1)/gse; |
} |
} |
|
|
# ----------------------------------------------- Handler Routine /adm/localize |
=pod |
sub handler { |
|
my $r=shift; |
=item * mt_escape |
&Apache::lonlocal::get_language_handle($r); |
|
&Apache::loncommon::content_type($r,'text/html'); |
mt_escape takes a string reference and escape the [] in there so mt |
$r->send_http_header; |
will leave them as is and not try to expand them |
return OK if $r->header_only; |
|
|
=cut |
my $uri=$r->uri; |
|
$uri=~s/^\/adm\/localize//; |
sub mt_escape { |
my $fn=$Apache::lonnet::perlvar{'lonDocRoot'}.$uri; |
my ($str_ref) = @_; |
|
$$str_ref =~s/~/~~/g; |
my $file=&Apache::lonnet::getfile($fn); |
$$str_ref =~s/([\[\]])/~$1/g; |
&transstatic(\$file); |
|
$r->print($file); |
|
return OK; |
|
} |
} |
|
|
1; |
1; |