Opened 11 years ago
Last modified 10 years ago
#21928 closed Bug
updating .po files with 'django-admin.py makemessages' under windows with russian locale fail — at Initial Version
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Internationalization | Version: | 1.7 |
Severity: | Normal | Keywords: | encoding msgmerge |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
django1.7, python 3.2, windows 7 64 bit russian
---
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']