Opened 11 years ago
Closed 10 years ago
#21928 closed Bug (duplicate)
updating .po files with 'django-admin.py makemessages' under windows with russian locale fail
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 (last modified by )
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']
Change History (8)
comment:1 by , 11 years ago
comment:2 by , 11 years ago
Description: | modified (diff) |
---|---|
Triage Stage: | Unreviewed → Accepted |
comment:3 by , 11 years ago
Might be related to #21991, it also had issues regarding locale. If it is related, then it is not regression.
comment:4 by , 11 years ago
Severity: | Release blocker → Normal |
---|
comment:5 by , 10 years ago
Version: | 1.7-alpha-1 → 1.7 |
---|
comment:6 by , 10 years ago
+1
got this bug (
created .po file contains:
"Content-Type: text/plain; charset=UTF-8\n"
Python 3, Django 1.7.3
any news?
comment:7 by , 10 years ago
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')
Content in django.po, which raise exception:
#: .\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
comment:8 by , 10 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
The regression tests for #23271 now fails for the same reason, so I suggest this discussion should continue there.
Is this a regression from Django 1.6?