opental-checkins
[Top][All Lists]
Advanced

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

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


From: Fernando Lalo Martins
Subject: [OpenTAL-checkins] opental/PlacelessTranslationService GettextMess...
Date: Wed, 26 Mar 2003 07:38:39 -0500

CVSROOT:        /cvsroot/opental
Module name:    opental
Changes by:     Fernando Lalo Martins <address@hidden>  03/03/26 07:38:39

Modified files:
        PlacelessTranslationService: GettextMessageCatalog.py 
                                     PlacelessTranslationService.py 

Log message:
        when a catalog was reloaded, if it changed language or domain, the 
service wouldn't know about it

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/opental/opental/PlacelessTranslationService/GettextMessageCatalog.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/opental/opental/PlacelessTranslationService/PlacelessTranslationService.py.diff?tr1=1.16&tr2=1.17&r1=text&r2=text

Patches:
Index: opental/PlacelessTranslationService/GettextMessageCatalog.py
diff -u opental/PlacelessTranslationService/GettextMessageCatalog.py:1.9 
opental/PlacelessTranslationService/GettextMessageCatalog.py:1.10
--- opental/PlacelessTranslationService/GettextMessageCatalog.py:1.9    Wed Mar 
 5 10:28:47 2003
+++ opental/PlacelessTranslationService/GettextMessageCatalog.py        Wed Mar 
26 07:38:39 2003
@@ -17,7 +17,7 @@
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA
 """A simple implementation of a Message Catalog. 
 
-$Id: GettextMessageCatalog.py,v 1.9 2003/03/05 15:28:47 lalo Exp $
+$Id: GettextMessageCatalog.py,v 1.10 2003/03/26 12:38:39 lalo Exp $
 """
 
 from gettext import GNUTranslations
@@ -102,8 +102,13 @@
 
     def reload(self, REQUEST=None):
         "Forcibly re-read the file"
+        old_domain = self._domain
+        old_language = self._language
         self.__translation_object = None
         self._prepareTranslations()
+        if self._domain != old_domain or self._language != old_language:
+            # trouble
+            self.aq_parent.catalogChanged(self, old_language, old_domain)
         log('reloading %s: %s' % (self.id, self.title))
         if hasattr(REQUEST, 'RESPONSE'):
             REQUEST.RESPONSE.redirect(self.absolute_url())
Index: opental/PlacelessTranslationService/PlacelessTranslationService.py
diff -u opental/PlacelessTranslationService/PlacelessTranslationService.py:1.16 
opental/PlacelessTranslationService/PlacelessTranslationService.py:1.17
--- opental/PlacelessTranslationService/PlacelessTranslationService.py:1.16     
Wed Mar  5 15:30:53 2003
+++ opental/PlacelessTranslationService/PlacelessTranslationService.py  Wed Mar 
26 07:38: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.16 2003/03/05 20:30:53 lalo Exp $
+$Id: PlacelessTranslationService.py,v 1.17 2003/03/26 12:38:39 lalo Exp $
 """
 
 import sys, re, zLOG, Globals
@@ -95,11 +95,18 @@
     manage_editProperties=None
     manage_delProperties=None
 
-    def _registerMessageCatalog(self, language, domain, catalog_name):
-        http_language = language.lower().replace('_', '-')
-        key = (http_language, domain)
-        mc = self._catalogs.setdefault(key, [])
-        mc.append(catalog_name)
+    def _registerMessageCatalog(self, catalog):
+        key = (catalog.getLanguage(), catalog.getDomain())
+        self._catalogs.setdefault(key, []).append(catalog.getIdentifier())
+        self._p_changed = 1
+
+    def catalogChanged(self, catalog, old_language, old_domain):
+        # trigger an exception if we don't know anything about it
+        self._getOb(catalog.id)
+        # unregister
+        self._catalogs[(old_language, 
old_domain)].remove(catalog.getIdentifier())
+        # re-register
+        self._registerMessageCatalog(catalog)
 
     def addCatalog(self, catalog):
         try:
@@ -108,9 +115,7 @@
             pass
         self._setObject(catalog.id, catalog, set_owner=False)
         log('adding %s: %s' % (catalog.id, catalog.title))
-        self._registerMessageCatalog(catalog.getLanguage(),
-                                     catalog.getDomain(),
-                                     catalog.getIdentifier())
+        self._registerMessageCatalog(catalog)
 
     def setLanguageFallbacks(self, fallbacks=None):
         if fallbacks is None:




reply via email to

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