[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=&current_language();
     if ($r) {
 	$r->content_languages([&current_language()]);
     }