File:  [LON-CAPA] / loncom / localize / lonlocal.pm
Revision 1.9: download - view: text, annotated - select for diffs
Sat Sep 20 17:44:22 2003 UTC (20 years, 8 months ago) by www
Branches: MAIN
CVS tags: HEAD
Setting content language in headers.

    1: # The LearningOnline Network with CAPA
    2: # Localization routines
    3: #
    4: # $Id: lonlocal.pm,v 1.9 2003/09/20 17:44:22 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: # ============================================================== What encoding?
   77: 
   78: sub current_encoding {
   79:     my $enc=$lh->maketext('char_encoding');
   80:     return ($enc eq 'char_encoding'?'':$enc);
   81: }
   82: 
   83: # ============================================================== Translate hash
   84: 
   85: sub texthash {
   86:     my %hash=@_;
   87:     foreach (keys %hash) {
   88: 	$hash{$_}=&mt($hash{$_});
   89:     }
   90:     return %hash;
   91: }
   92: # ======================================================== Re-route translation
   93: 
   94: sub clearreroutetrans {
   95:     &reroutetrans();
   96:     $reroute='';
   97: }
   98: 
   99: # ======================================================== Re-route translation
  100: 
  101: sub reroutetrans {
  102:     $ENV{'transreroute'}=1;
  103: }
  104: 
  105: # ==================================================== End re-route translation
  106: sub endreroutetrans {
  107:     $ENV{'transreroute'}=0;
  108:     if ($ENV{'environment.translator'}) {
  109: 	return $reroute;
  110:     } else {
  111: 	return '';
  112:     }
  113: }
  114: 
  115: # ========= Get a handle (do not invoke in vain, leave this to access handlers)
  116: 
  117: sub get_language_handle {
  118:     my $r=shift;
  119:     $lh=Apache::localize->get_handle(&Apache::loncommon::preferred_languages);
  120:     $r->content_languages(["&current_language()"]);
  121:     my $enc=&current_encoding();
  122:     if ($enc) {
  123: 
  124:     }
  125: }
  126: 
  127: 1;
  128: 
  129: __END__

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