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, 7 months ago) by www
Branches: MAIN
CVS tags: HEAD
Setting content language in headers.

# The LearningOnline Network with CAPA
# Localization routines
#
# $Id: lonlocal.pm,v 1.9 2003/09/20 17:44:22 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# /home/httpd/html/adm/gpl.txt
#
# http://www.lon-capa.org/
#
######################################################################
######################################################################

package Apache::lonlocal;

use strict;
use Apache::localize;
use Apache::File;

require Exporter;

our @ISA = qw (Exporter);
our @EXPORT = qw(mt);

my $reroute;

# ========================================================= The language handle

use vars qw($lh);

# ===================================================== The "MakeText" function

sub mt (@) {
    unless ($ENV{'environment.translator'}) {
	return $lh->maketext(@_);
    } 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;
	} else {
	    return $link;
	}
    }
}

# ============================================================== What language?

sub current_language {
    return $lh->language_tag();
}

# ============================================================== What encoding?

sub current_encoding {
    my $enc=$lh->maketext('char_encoding');
    return ($enc eq 'char_encoding'?'':$enc);
}

# ============================================================== Translate hash

sub texthash {
    my %hash=@_;
    foreach (keys %hash) {
	$hash{$_}=&mt($hash{$_});
    }
    return %hash;
}
# ======================================================== Re-route translation

sub clearreroutetrans {
    &reroutetrans();
    $reroute='';
}

# ======================================================== Re-route translation

sub reroutetrans {
    $ENV{'transreroute'}=1;
}

# ==================================================== End re-route translation
sub endreroutetrans {
    $ENV{'transreroute'}=0;
    if ($ENV{'environment.translator'}) {
	return $reroute;
    } else {
	return '';
    }
}

# ========= Get a handle (do not invoke in vain, leave this to access handlers)

sub get_language_handle {
    my $r=shift;
    $lh=Apache::localize->get_handle(&Apache::loncommon::preferred_languages);
    $r->content_languages(["&current_language()"]);
    my $enc=&current_encoding();
    if ($enc) {

    }
}

1;

__END__

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