Annotation of loncom/localize/lonlocal.pm, revision 1.9

1.1       www         1: # The LearningOnline Network with CAPA
                      2: # Localization routines
                      3: #
1.9     ! www         4: # $Id: lonlocal.pm,v 1.8 2003/09/20 17:04:02 www Exp $
1.1       www         5: #
                      6: # Copyright Michigan State University Board of Trustees
                      7: #
                      8: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
                      9: #
                     10: # LON-CAPA is free software; you can redistribute it and/or modify
                     11: # it under the terms of the GNU General Public License as published by
                     12: # the Free Software Foundation; either version 2 of the License, or
                     13: # (at your option) any later version.
                     14: #
                     15: # LON-CAPA is distributed in the hope that it will be useful,
                     16: # but WITHOUT ANY WARRANTY; without even the implied warranty of
                     17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     18: # GNU General Public License for more details.
                     19: #
                     20: # You should have received a copy of the GNU General Public License
                     21: # along with LON-CAPA; if not, write to the Free Software
                     22: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
                     23: #
                     24: # /home/httpd/html/adm/gpl.txt
                     25: #
                     26: # http://www.lon-capa.org/
                     27: #
                     28: ######################################################################
                     29: ######################################################################
                     30: 
                     31: package Apache::lonlocal;
                     32: 
                     33: use strict;
                     34: use Apache::localize;
1.3       www        35: use Apache::File;
1.1       www        36: 
                     37: require Exporter;
                     38: 
                     39: our @ISA = qw (Exporter);
                     40: our @EXPORT = qw(mt);
                     41: 
1.4       www        42: my $reroute;
                     43: 
1.1       www        44: # ========================================================= The language handle
                     45: 
                     46: use vars qw($lh);
                     47: 
                     48: # ===================================================== The "MakeText" function
                     49: 
                     50: sub mt (@) {
1.3       www        51:     unless ($ENV{'environment.translator'}) {
                     52: 	return $lh->maketext(@_);
                     53:     } else {
1.4       www        54: 	my $trans=$lh->maketext(@_);
                     55: 	my $link='<a target="trans" href="/cgi-bin/translator.pl?arg1='.
1.3       www        56: 	    &Apache::lonnet::escape($_[0]).'&arg2='.
                     57: 	    &Apache::lonnet::escape($_[1]).'&arg3='.
                     58: 	    &Apache::lonnet::escape($_[2]).'&lang='.
                     59: 	    $ENV{'environment.translator'}.
1.4       www        60: 	    '">[['.$trans.']]</a>';
                     61: 	if ($ENV{'transreroute'}) {
                     62: 	    $reroute.=$link;
                     63: 	    return $trans;
                     64: 	} else {
                     65: 	    return $link;
                     66: 	}
                     67:     }
                     68: }
                     69: 
1.6       www        70: # ============================================================== What language?
                     71: 
                     72: sub current_language {
                     73:     return $lh->language_tag();
                     74: }
                     75: 
1.8       www        76: # ============================================================== What encoding?
                     77: 
                     78: sub current_encoding {
                     79:     my $enc=$lh->maketext('char_encoding');
                     80:     return ($enc eq 'char_encoding'?'':$enc);
                     81: }
                     82: 
1.4       www        83: # ============================================================== Translate hash
                     84: 
                     85: sub texthash {
                     86:     my %hash=@_;
                     87:     foreach (keys %hash) {
                     88: 	$hash{$_}=&mt($hash{$_});
                     89:     }
                     90:     return %hash;
                     91: }
1.5       www        92: # ======================================================== Re-route translation
                     93: 
                     94: sub clearreroutetrans {
                     95:     &reroutetrans();
                     96:     $reroute='';
                     97: }
1.4       www        98: 
                     99: # ======================================================== Re-route translation
                    100: 
                    101: sub reroutetrans {
                    102:     $ENV{'transreroute'}=1;
                    103: }
1.5       www       104: 
1.4       www       105: # ==================================================== End re-route translation
                    106: sub endreroutetrans {
                    107:     $ENV{'transreroute'}=0;
                    108:     if ($ENV{'environment.translator'}) {
                    109: 	return $reroute;
                    110:     } else {
                    111: 	return '';
1.3       www       112:     }
1.1       www       113: }
                    114: 
                    115: # ========= Get a handle (do not invoke in vain, leave this to access handlers)
                    116: 
                    117: sub get_language_handle {
1.9     ! www       118:     my $r=shift;
1.2       www       119:     $lh=Apache::localize->get_handle(&Apache::loncommon::preferred_languages);
1.8       www       120:     $r->content_languages(["&current_language()"]);
                    121:     my $enc=&current_encoding();
                    122:     if ($enc) {
                    123: 
                    124:     }
1.1       www       125: }
                    126: 
                    127: 1;
                    128: 
                    129: __END__

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>