--- loncom/localize/lonlocal.pm 2003/09/22 18:16:43 1.10
+++ loncom/localize/lonlocal.pm 2003/09/29 13:24:49 1.16
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Localization routines
#
-# $Id: lonlocal.pm,v 1.10 2003/09/22 18:16:43 bowersj2 Exp $
+# $Id: lonlocal.pm,v 1.16 2003/09/29 13:24:49 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -144,11 +144,6 @@ like this:
'No purchase necessary. Illegal where not allowed.'
=> 'Es ist erlaubt, einfach zu verlieren, und das ist Ihre Schuld.'
-The German translation lexicon is in pretty okay shape, but not
-complete yet. Portuguese currently only covers the login screen.
-Russian is purely experimental. Looks like UTF-8 is the way to encode
-this, at least for latin/greek-based languages, but we still have to
-learn a lot.
Comments may be added with the # symbol, which outside of a string
(the things with the apostrophe surrounding them, which are the
@@ -168,6 +163,8 @@ package Apache::lonlocal;
use strict;
use Apache::localize;
use Apache::File;
+use locale;
+use POSIX qw(locale_h);
require Exporter;
@@ -184,20 +181,28 @@ use vars qw($lh);
sub mt (@) {
unless ($ENV{'environment.translator'}) {
- return $lh->maketext(@_);
+ if ($lh) {
+ return $lh->maketext(@_);
+ } else {
+ return @_;
+ }
} else {
- my $trans=$lh->maketext(@_);
- my $link='[['.$trans.']]';
- if ($ENV{'transreroute'}) {
- $reroute.=$link;
- return $trans;
+ if ($lh) {
+ my $trans=$lh->maketext(@_);
+ my $link='[['.$trans.']]';
+ if ($ENV{'transreroute'}) {
+ $reroute.=$link;
+ return $trans;
+ } else {
+ return $link;
+ }
} else {
- return $link;
+ return @_;
}
}
}
@@ -205,14 +210,31 @@ sub mt (@) {
# ============================================================== What language?
sub current_language {
- return $lh->language_tag();
+ my $lang=$lh->maketext('language_code');
+ return ($lang eq 'language_code'?'en':$lang);
}
# ============================================================== 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;
+ }
+}
+
+# =============================================================== Which locale?
+# Refer to locale -a
+#
+sub current_locale {
+ if ($lh) {
+ my $enc=$lh->maketext('lang_locale');
+ return ($enc eq 'lang_locale'?'':$enc);
+ } else {
+ return undef;
+ }
}
# ============================================================== Translate hash
@@ -252,11 +274,10 @@ sub endreroutetrans {
sub get_language_handle {
my $r=shift;
$lh=Apache::localize->get_handle(&Apache::loncommon::preferred_languages);
- $r->content_languages(["¤t_language()"]);
- my $enc=¤t_encoding();
- if ($enc) {
-
+ if (&Apache::lonnet::mod_perl_version == 1) {
+ $r->content_languages([¤t_language()]);
}
+### setlocale(LC_ALL,¤t_locale);
}
1;