diff babel/messages/catalog.py @ 97:debd9ac3bb4d

Fix for #11 (use local timezone in timestamps of generated POT).
author cmlenz
date Tue, 12 Jun 2007 18:40:39 +0000
parents 31519c52c0fe
children b6b5992daa6c
line wrap: on
line diff
--- a/babel/messages/catalog.py
+++ b/babel/messages/catalog.py
@@ -24,7 +24,7 @@
 from babel import __version__ as VERSION
 from babel.core import Locale
 from babel.messages.plurals import PLURALS
-from babel.util import odict, UTC
+from babel.util import odict, LOCAL, UTC
 
 __all__ = ['Message', 'Catalog']
 __docformat__ = 'restructuredtext en'
@@ -132,23 +132,19 @@
         self.project = project or 'PROJECT' #: the project name
         self.version = version or 'VERSION' #: the project version
         self.msgid_bugs_address = msgid_bugs_address or 'EMAIL@ADDRESS'
+        self.last_translator = last_translator #: last translator name + email
+        self.charset = charset or 'utf-8'
 
         if creation_date is None:
-            creation_date = time.localtime()
-        elif isinstance(creation_date, datetime):
-            if creation_date.tzinfo is None:
-                creation_date = creation_date.replace(tzinfo=UTC)
-            creation_date = creation_date.timetuple()
+            creation_date = datetime.now(LOCAL)
+        elif isinstance(creation_date, datetime) and not creation_date.tzinfo:
+            creation_date = creation_date.replace(tzinfo=LOCAL)
         self.creation_date = creation_date #: creation date of the template
         if revision_date is None:
-            revision_date = time.localtime()
-        elif isinstance(revision_date, datetime):
-            if revision_date.tzinfo is None:
-                revision_date = revision_date.replace(tzinfo=UTC)
-            revision_date = revision_date.timetuple()
+            revision_date = datetime.now(LOCAL)
+        elif isinstance(revision_date, datetime) and not revision_date.tzinfo:
+            revision_date = revision_date.replace(tzinfo=LOCAL)
         self.revision_date = revision_date #: last revision date of the catalog
-        self.last_translator = last_translator #: last translator name + email
-        self.charset = charset or 'utf-8'
 
     def headers(self):
         headers = []
@@ -156,14 +152,14 @@
                         '%s %s' % (self.project, self.version)))
         headers.append(('Report-Msgid-Bugs-To', self.msgid_bugs_address))
         headers.append(('POT-Creation-Date',
-                        time.strftime('%Y-%m-%d %H:%M%z', self.creation_date)))
+                        self.creation_date.strftime('%Y-%m-%d %H:%M%z')))
         if self.locale is None:
             headers.append(('PO-Revision-Date', 'YEAR-MO-DA HO:MI+ZONE'))
             headers.append(('Last-Translator', 'FULL NAME <EMAIL@ADDRESS>'))
             headers.append(('Language-Team', 'LANGUAGE <LL@li.org>'))
         else:
             headers.append(('PO-Revision-Date',
-                            time.strftime('%Y-%m-%d %H:%M%z', self.revision_date)))
+                            self.revision_date.strftime('%Y-%m-%d %H:%M%z')))
             headers.append(('Last-Translator', self.last_translator))
             headers.append(('Language-Team', '%s <LL@li.org>' % self.locale))
             headers.append(('Plural-Forms', self.plural_forms))
@@ -182,8 +178,9 @@
     
     Here's an example of the output for such a catalog template:
     
+    >>> created = datetime(1990, 4, 1, 15, 30, tzinfo=UTC)
     >>> catalog = Catalog(project='Foobar', version='1.0',
-    ...                   creation_date=datetime(1990, 4, 1, 15, 30))
+    ...                   creation_date=created)
     >>> for name, value in catalog.headers:
     ...     print '%s: %s' % (name, value)
     Project-Id-Version: Foobar 1.0
@@ -199,9 +196,9 @@
     
     And here's an example of the output when the locale is set:
     
+    >>> revised = datetime(1990, 8, 3, 12, 0, tzinfo=UTC)
     >>> catalog = Catalog(locale='de_DE', project='Foobar', version='1.0',
-    ...                   creation_date=datetime(1990, 4, 1, 15, 30),
-    ...                   revision_date=datetime(1990, 8, 3, 12, 0),
+    ...                   creation_date=created, revision_date=revised,
     ...                   last_translator='John Doe <jd@example.com>')
     >>> for name, value in catalog.headers:
     ...     print '%s: %s' % (name, value)
Copyright (C) 2012-2017 Edgewall Software