mirror of
https://github.com/django/django.git
synced 2025-10-26 15:16:09 +00:00
Decode from UTF-8 explicitly when reading a text file in makemessages.
This shows itself with Python 3 under Windows where UTF-8 usually isn't the default file I/O encoding and caused one failure and three errors in our test suite under that platform setup.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import fnmatch
|
||||
import glob
|
||||
import io
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
@@ -10,6 +11,7 @@ import django
|
||||
from django.core.management.base import CommandError, NoArgsCommand
|
||||
from django.core.management.utils import (handle_extensions, find_command,
|
||||
popen_wrapper)
|
||||
from django.utils.encoding import force_str
|
||||
from django.utils.functional import total_ordering
|
||||
from django.utils.text import get_text_list
|
||||
from django.utils.jslex import prepare_js_for_gettext
|
||||
@@ -402,16 +404,17 @@ class Command(NoArgsCommand):
|
||||
for domain in domains:
|
||||
django_po = os.path.join(django_dir, 'conf', 'locale', locale, 'LC_MESSAGES', '%s.po' % domain)
|
||||
if os.path.exists(django_po):
|
||||
with open(django_po, 'rU') as fp:
|
||||
with io.open(django_po, 'rU', encoding='utf-8') as fp:
|
||||
m = plural_forms_re.search(fp.read())
|
||||
if m:
|
||||
plural_form_line = force_str(m.group('value'))
|
||||
if self.verbosity > 1:
|
||||
self.stdout.write("copying plural forms: %s\n" % m.group('value'))
|
||||
self.stdout.write("copying plural forms: %s\n" % plural_form_line)
|
||||
lines = []
|
||||
found = False
|
||||
for line in msgs.split('\n'):
|
||||
if not found and (not line or plural_forms_re.search(line)):
|
||||
line = '%s\n' % m.group('value')
|
||||
line = '%s\n' % plural_form_line
|
||||
found = True
|
||||
lines.append(line)
|
||||
msgs = '\n'.join(lines)
|
||||
|
||||
Reference in New Issue
Block a user