]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
When parsing catalog headers, look for the content-type first, to be able to use...
authorChristopher Lenz <cmlenz@gmail.com>
Thu, 5 Jul 2007 17:25:13 +0000 (17:25 +0000)
committerChristopher Lenz <cmlenz@gmail.com>
Thu, 5 Jul 2007 17:25:13 +0000 (17:25 +0000)
babel/messages/catalog.py
babel/messages/frontend.py

index e836abf8463bfba16f0608db0abac74db0e7a633..ab4beba75a7c16d95120030e6395b3744507be41 100644 (file)
@@ -267,10 +267,17 @@ class Catalog(object):
 
     def _set_mime_headers(self, headers):
         for name, value in headers:
-            name = name.lower()
+            if name == 'content-type':
+                mimetype, params = parse_header(value)
+                if 'charset' in params:
+                    self.charset = params['charset'].lower()
+                break
+        for name, value in headers:
+            name = name.lower().decode(self.charset)
+            value = value.decode(self.charset)
             if name == 'project-id-version':
                 parts = value.split(' ')
-                self.project = ' '.join(parts[:-1])
+                self.project = u' '.join(parts[:-1])
                 self.version = parts[-1]
             elif name == 'report-msgid-bugs-to':
                 self.msgid_bugs_address = value
@@ -288,10 +295,6 @@ class Catalog(object):
                                                int(tzoffset[2:]))
                 dt = datetime.fromtimestamp(ts)
                 self.creation_date = dt.replace(tzinfo=tzoffset)
-            elif name == 'content-type':
-                mimetype, params = parse_header(value)
-                if 'charset' in params:
-                    self.charset = params['charset'].lower()
 
     mime_headers = property(_get_mime_headers, _set_mime_headers, doc="""\
     The MIME headers of the catalog, used for the special ``msgid ""`` entry.
@@ -403,7 +406,7 @@ class Catalog(object):
         flags = set()
         if self.fuzzy:
             flags |= set(['fuzzy'])
-        yield Message(u'', u'\n'.join(buf), flags=flags)
+        yield Message(u'', '\n'.join(buf), flags=flags)
         for key in self._messages:
             yield self._messages[key]
 
index 3ee9c1a14cbb40228be2e0a740523fe868876bf6..877a0641faa2eee1e93ace5062345d076d989794 100755 (executable)
@@ -605,7 +605,7 @@ class CommandLineInterface(object):
         if options.list_locales:
             identifiers = localedata.list()
             longest = max([len(identifier) for identifier in identifiers])
-            format = '%%-%ds %%s' % (longest + 1)
+            format = u'%%-%ds %%s' % (longest + 1)
             for identifier in localedata.list():
                 locale = Locale.parse(identifier)
                 print format % (identifier, locale.english_name)