[LON-CAPA-cvs] cvs: loncom /localize lonlocal.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Tue, 23 Sep 2003 02:19:10 -0000
albertel Mon Sep 22 22:19:10 2003 EDT
Modified files:
/loncom/localize lonlocal.pm
Log:
- I keep getting crashes without these checks on $lh
I haven't yet tracked down who was causing these.
- $r->content_laguages([¤t_language]);
keeps throwing:
[Mon Sep 22 14:16:50 2003] [error] [client 127.0.0.1] val is not of type APR::ArrayHeader at /home/httpd/lib/perl/Apache/lonlocal.pm line 128.
I am working around it by ignoring it for now
Index: loncom/localize/lonlocal.pm
diff -u loncom/localize/lonlocal.pm:1.11 loncom/localize/lonlocal.pm:1.12
--- loncom/localize/lonlocal.pm:1.11 Mon Sep 22 18:53:21 2003
+++ loncom/localize/lonlocal.pm Mon Sep 22 22:19:09 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Localization routines
#
-# $Id: lonlocal.pm,v 1.11 2003/09/22 22:53:21 www Exp $
+# $Id: lonlocal.pm,v 1.12 2003/09/23 02:19:09 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -184,20 +184,28 @@
sub mt (@) {
unless ($ENV{'environment.translator'}) {
- return $lh->maketext(@_);
+ if ($lh) {
+ return $lh->maketext(@_);
+ } else {
+ return @_;
+ }
} else {
- my $trans=$lh->maketext(@_);
- my $link='<a target="trans" href="/cgi-bin/translator.pl?arg1='.
- &Apache::lonnet::escape($_[0]).'&arg2='.
- &Apache::lonnet::escape($_[1]).'&arg3='.
- &Apache::lonnet::escape($_[2]).'&lang='.
- $ENV{'environment.translator'}.
- '">[['.$trans.']]</a>';
- if ($ENV{'transreroute'}) {
- $reroute.=$link;
- return $trans;
+ if ($lh) {
+ my $trans=$lh->maketext(@_);
+ my $link='<a target="trans" href="/cgi-bin/translator.pl?arg1='.
+ &Apache::lonnet::escape($_[0]).'&arg2='.
+ &Apache::lonnet::escape($_[1]).'&arg3='.
+ &Apache::lonnet::escape($_[2]).'&lang='.
+ $ENV{'environment.translator'}.
+ '">[['.$trans.']]</a>';
+ if ($ENV{'transreroute'}) {
+ $reroute.=$link;
+ return $trans;
+ } else {
+ return $link;
+ }
} else {
- return $link;
+ return @_;
}
}
}
@@ -212,8 +220,12 @@
# ============================================================== What encoding?
sub current_encoding {
- my $enc=$lh->maketext('char_encoding');
- return ($enc eq 'char_encoding'?'':$enc);
+ if ($lh) {
+ my $enc=$lh->maketext('char_encoding');
+ return ($enc eq 'char_encoding'?'':$enc);
+ } else {
+ return undef;
+ }
}
# ============================================================== Translate hash
@@ -253,7 +265,9 @@
sub get_language_handle {
my $r=shift;
$lh=Apache::localize->get_handle(&Apache::loncommon::preferred_languages);
- $r->content_languages(["¤t_language()"]);
+ if (&Apache::lonnet::mod_perl_version == 1) {
+ $r->content_languages([¤t_language()]);
+ }
my $enc=¤t_encoding();
if ($enc) {