[LON-CAPA-cvs] cvs: loncom /localize lonlocal.pm
www
www@source.lon-capa.org
Thu, 16 Apr 2009 15:51:42 -0000
www Thu Apr 16 15:51:42 2009 EDT
Modified files:
/loncom/localize lonlocal.pm
Log:
Another attempt at an &mt-cache
Index: loncom/localize/lonlocal.pm
diff -u loncom/localize/lonlocal.pm:1.56 loncom/localize/lonlocal.pm:1.57
--- loncom/localize/lonlocal.pm:1.56 Fri Mar 20 18:26:34 2009
+++ loncom/localize/lonlocal.pm Thu Apr 16 15:51:42 2009
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Localization routines
#
-# $Id: lonlocal.pm,v 1.56 2009/03/20 18:26:34 bisitz Exp $
+# $Id: lonlocal.pm,v 1.57 2009/04/16 15:51:42 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -173,16 +173,14 @@
our @ISA = qw (Exporter);
our @EXPORT = qw(mt mtn ns mt_user);
+my %mtcache=();
+
# ========================================================= The language handle
-use vars qw($lh);
+use vars qw($lh $current_language);
# ===================================================== The "MakeText" function
-# ######### Localize Cache
-# my @localize_cache;
-# #########
-
sub mt (@) {
# open(LOG,'>>/home/www/loncapa/loncom/localize/localize/newphrases.txt');
# print LOG (@_[0]."\n");
@@ -195,19 +193,13 @@
return $_[0];
}
} else {
- return $lh->maketext(@_);
-# ######### Localize Cache
-# foreach my $e (@localize_cache)
-# {
-# if($_[0] eq $$e[0]) { return $$e[1]; }
-# }
-#
-# if($#localize_cache == 100) { pop(@localize_cache); }
-# my $localize_entry = $lh->maketext(@_);
-# unshift(@localize_cache, [ @_, $localize_entry ] );
-# #########
-#
-# return $localize_entry;
+ if ($#_>0) { return $lh->maketext(@_); }
+ if ($mtcache{$current_language.':'.$_[0]}) {
+ return $mtcache{$current_language.':'.$_[0]};
+ }
+ my $translation=$lh->maketext(@_);
+ $mtcache{$current_language.':'.$_[0]}=$translation;
+ return $translation;
}
} else {
if (wantarray) {
@@ -351,6 +343,7 @@
my @languages=&preferred_languages();
$ENV{'HTTP_ACCEPT_LANGUAGE'}='';
$lh=Apache::localize->get_handle(@languages);
+ $current_language=¤t_language();
if ($r) {
$r->content_languages([¤t_language()]);
}