opental-checkins
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[OpenTAL-checkins] opental/PlacelessTranslationService PlacelessTr...


From: Fernando Lalo Martins
Subject: [OpenTAL-checkins] opental/PlacelessTranslationService PlacelessTr...
Date: Tue, 29 Jul 2003 17:33:39 -0400

CVSROOT:        /cvsroot/opental
Module name:    opental
Branch:         
Changes by:     Fernando Lalo Martins <address@hidden>  03/07/29 17:33:39

Modified files:
        PlacelessTranslationService: PlacelessTranslationService.py 

Log message:
        this should kill the dependency on PAX and make it work better and 
faster with ZPT

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/opental/opental/PlacelessTranslationService/PlacelessTranslationService.py.diff?tr1=1.22&tr2=1.23&r1=text&r2=text

Patches:
Index: opental/PlacelessTranslationService/PlacelessTranslationService.py
diff -u opental/PlacelessTranslationService/PlacelessTranslationService.py:1.22 
opental/PlacelessTranslationService/PlacelessTranslationService.py:1.23
--- opental/PlacelessTranslationService/PlacelessTranslationService.py:1.22     
Tue Jul 29 17:31:35 2003
+++ opental/PlacelessTranslationService/PlacelessTranslationService.py  Tue Jul 
29 17:33:39 2003
@@ -17,7 +17,7 @@
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
 """Placeless Translation Service for providing I18n to file-based code.
 
-$Id: PlacelessTranslationService.py,v 1.22 2003/07/29 21:31:35 lalo Exp $
+$Id: PlacelessTranslationService.py,v 1.23 2003/07/29 21:33:39 lalo Exp $
 """
 
 import sys, re, zLOG, Globals
@@ -32,11 +32,6 @@
 except:
     def XML(v):
         return str(v)
-try:
-    True
-except NameError:
-    True=1
-    False=0
 
 def log(msg, severity=zLOG.INFO, detail='', error=None):
     if type(msg) is UnicodeType:
@@ -130,7 +125,7 @@
             self._delObject(catalog.id)
         except:
             pass
-        self._setObject(catalog.id, catalog, set_owner=False)
+        self._setObject(catalog.id, catalog, set_owner=0)
         log('adding %s: %s' % (catalog.id, catalog.title))
         self._registerMessageCatalog(catalog)
 
@@ -183,14 +178,7 @@
             pass
         
         if target_language is None:
-            if context is None:
-                raise TypeError, 'No destination language'
-            else:
-                langs = [m[0] for m in self._catalogs.keys() if m[1] == domain]
-                for fallback in self._fallbacks:
-                    if fallback not in langs:
-                        langs.append(fallback)
-                target_language = self.negotiate(langs, context)
+            target_language = self.negotiate_language(context, domain)
 
         # Get the translation. Use the specified fallbacks if this fails
         catalog_names = self._catalogs.get((target_language, domain), ())
@@ -228,6 +216,17 @@
         text = self.interpolate(text, mapping)
         return text
 
+    def negotiate_language(self, context, domain):
+        if context is None:
+            raise TypeError, 'No destination language'
+        else:
+            langs = [m[0] for m in self._catalogs.keys() if m[1] == domain]
+            for fallback in self._fallbacks:
+                if fallback not in langs:
+                    langs.append(fallback)
+            target_language = self.negotiate(langs, context)
+        return target_language
+
     def getDomain(self, domain):
         """
         """
@@ -252,6 +251,12 @@
         # Find all the spots we want to substitute
         to_replace = _interp_regex.findall(text)
 
+        # ZPT (string) or OpenPT (unicode)?
+        if type(text) is StringType:
+            conv = str
+        else:
+            conv = XML
+
         # Now substitute with the variables in mapping
         for string in to_replace:
             var = _get_var_regex.findall(string)[0]
@@ -266,7 +271,7 @@
                 # FIXME: we shouldn't do this. We should instead
                 # return a list. But i'm not sure about how to use
                 # the regex to split the text.
-                value = XML(value)
+                value = conv(value)
             text = text.replace(string, value)
 
         return text




reply via email to

[Prev in Thread] Current Thread [Next in Thread]