---
I have Windows 7 Rus, default encoding is cp1251.
If i have some translations in .po-file in russian (utf-8 encoding),
and running makemessages again to add new phrases, it uses msgmerge.exe in
function write_po_file,
popen got output in cp1251 encoding instead utf-8 and crashes:
Exception in thread Thread-63:
Traceback (most recent call last):
File "c:\python32\lib\threading.py", line 740, in _bootstrap_inner
self.run()
File "c:\python32\lib\threading.py", line 693, in run
self._target(*self._args, **self._kwargs)
File "c:\python32\lib\subprocess.py", line 1013, in _readerthread
buffer.append(fh.read())
File "c:\python32\lib\encodings\cp1251.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position
1157: character maps to <undefined>
Traceback (most recent call last):
File "c:\python32\Scripts\django-admin-script.py", line 9, in <module>
load_entry_point('Django==1.7a1', 'console_scripts', 'django-admin')()
File "c:\python32\lib\site-
packages\django-1.7a1-py3.2.egg\django\core\management\__init__.py", line
427, in execute_from_command_line
utility.execute()
File "c:\python32\lib\site-
packages\django-1.7a1-py3.2.egg\django\core\management\__init__.py", line
419, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "c:\python32\lib\site-
packages\django-1.7a1-py3.2.egg\django\core\management\base.py", line 288,
in run_from_argv
self.execute(*args, **options.__dict__)
File "c:\python32\lib\site-
packages\django-1.7a1-py3.2.egg\django\core\management\base.py", line 337,
in execute
output = self.handle(*args, **options)
File "c:\python32\lib\site-
packages\django-1.7a1-py3.2.egg\django\core\management\base.py", line 529,
in handle
return self.handle_noargs(**options)
File "c:\python32\lib\site-
packages\django-1.7a1-py3.2.egg\django\core\management\commands\makemessages.py",
line 288, in handle_noargs
self.write_po_file(potfile, locale)
File "c:\python32\lib\site-
packages\django-1.7a1-py3.2.egg\django\core\management\commands\makemessages.py",
line 399, in write_po_file
msgs, errors, status = popen_wrapper(args)
File "c:\python32\lib\site-
packages\django-1.7a1-py3.2.egg\django\core\management\utils.py", line 25,
in popen_wrapper
output, errors = p.communicate()
File "c:\python32\lib\subprocess.py", line 813, in communicate
return self._communicate(input)
File "c:\python32\lib\subprocess.py", line 1050, in _communicate
stdout = stdout[0]
IndexError: list index out of range
popen runs for the following process:
['msgmerge', '-q',
'C:\\temp\\oluch\\oluch\\locale\\ru\\LC_MESSAGES\\django.po',
'C:\\temp\\oluch\\oluch\\locale\\django.pot']
--
Ticket URL: <https://code.djangoproject.com/ticket/21928>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Comment:
Is this a regression from Django 1.6?
--
Ticket URL: <https://code.djangoproject.com/ticket/21928#comment:1>
* stage: Unreviewed => Accepted
Old description:
New description:
--
--
Ticket URL: <https://code.djangoproject.com/ticket/21928#comment:2>
Comment (by bbaja42):
Might be related to https://code.djangoproject.com/ticket/21991, it also
had issues regarding locale. If it is related, then it is not regression.
--
Ticket URL: <https://code.djangoproject.com/ticket/21928#comment:3>
* severity: Release blocker => Normal
--
Ticket URL: <https://code.djangoproject.com/ticket/21928#comment:4>
* version: 1.7-alpha-1 => 1.7
--
Ticket URL: <https://code.djangoproject.com/ticket/21928#comment:5>
Comment (by LennyLip):
+1
got this bug (
created .po file contains:
"Content-Type: text/plain; charset=UTF-8\n"
Python 3, Django 1.7.3
any news?
--
Ticket URL: <https://code.djangoproject.com/ticket/21928#comment:6>
Comment (by martinsvoboda):
I also have this bug. Nowadays is not possible for me runs makemessages on
Windows, if some translations exist. Msgmerge probably works wrong with
encoding on windows.
- On Unix has similar problem solved with setting locale
https://code.djangoproject.com/ticket/22880
- It is not possible to configure Windows this way. Utf8 cannot be default
locale. locale.getdefaultlocale() returns for me:
{{{
>>> locale.getdefaultlocale()
('cs_CZ', 'cp1250')
}}}
in django.po
{{{
#: .\quotes\feeds.py:11
msgid "Domain.tld: Quotes for every day"
msgstr "Citaty-slavnych.sk: Citáty na každý deň"
}}}
Python 3.4.2, Django 1.8, Windows 7 64bit
--
Ticket URL: <https://code.djangoproject.com/ticket/21928#comment:7>
* status: new => closed
* resolution: => duplicate
Comment:
The regression tests for #23271 now fails for the same reason, so I
suggest this discussion should continue there.
--
Ticket URL: <https://code.djangoproject.com/ticket/21928#comment:8>