File:  [LON-CAPA] / loncom / localize / lonlocal.pm
Revision 1.7: download - view: text, annotated - select for diffs
Sat Sep 20 14:16:09 2003 UTC (20 years, 8 months ago) by www
Branches: MAIN
CVS tags: HEAD
Store character encoding in lexicon.

    1: # The LearningOnline Network with CAPA
    2: # Localization routines
    3: #
    4: # $Id: lonlocal.pm,v 1.7 2003/09/20 14:16:09 www Exp $
    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;
   35: use Apache::File;
   36: 
   37: require Exporter;
   38: 
   39: our @ISA = qw (Exporter);
   40: our @EXPORT = qw(mt);
   41: 
   42: my $reroute;
   43: 
   44: # ========================================================= The language handle
   45: 
   46: use vars qw($lh);
   47: 
   48: # ===================================================== The "MakeText" function
   49: 
   50: sub mt (@) {
   51:     unless ($ENV{'environment.translator'}) {
   52: 	return $lh->maketext(@_);
   53:     } else {
   54: 	my $trans=$lh->maketext(@_);
   55: 	my $link='<a target="trans" href="/cgi-bin/translator.pl?arg1='.
   56: 	    &Apache::lonnet::escape($_[0]).'&arg2='.
   57: 	    &Apache::lonnet::escape($_[1]).'&arg3='.
   58: 	    &Apache::lonnet::escape($_[2]).'&lang='.
   59: 	    $ENV{'environment.translator'}.
   60: 	    '">[['.$trans.']]</a>';
   61: 	if ($ENV{'transreroute'}) {
   62: 	    $reroute.=$link;
   63: 	    return $trans;
   64: 	} else {
   65: 	    return $link;
   66: 	}
   67:     }
   68: }
   69: 
   70: # ============================================================== What language?
   71: 
   72: sub current_language {
   73:     return $lh->language_tag();
   74: }
   75: 
   76: # ============================================================== Translate hash
   77: 
   78: sub texthash {
   79:     my %hash=@_;
   80:     foreach (keys %hash) {
   81: 	$hash{$_}=&mt($hash{$_});
   82:     }
   83:     return %hash;
   84: }
   85: # ======================================================== Re-route translation
   86: 
   87: sub clearreroutetrans {
   88:     &reroutetrans();
   89:     $reroute='';
   90: }
   91: 
   92: # ======================================================== Re-route translation
   93: 
   94: sub reroutetrans {
   95:     $ENV{'transreroute'}=1;
   96: }
   97: 
   98: # ==================================================== End re-route translation
   99: sub endreroutetrans {
  100:     $ENV{'transreroute'}=0;
  101:     if ($ENV{'environment.translator'}) {
  102: 	return $reroute;
  103:     } else {
  104: 	return '';
  105:     }
  106: }
  107: 
  108: # ========= Get a handle (do not invoke in vain, leave this to access handlers)
  109: 
  110: sub get_language_handle {
  111:     $lh=Apache::localize->get_handle(&Apache::loncommon::preferred_languages);
  112: }
  113: 
  114: 1;
  115: 
  116: __END__

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