Skip to content

Commit 0dbc0ab

Browse files
committed
Fixed #4734 -- Changed message extraction to permit non-ACSII msgid strings.
Thanks, krzysiek.pawlik@silvermedia.pl. This is slightly backwards-incompatible for translators: PO files are now assumed to be in UTF-8 encoding. git-svn-id: http://code.djangoproject.com/svn/django/trunk@5708 bcc190cf-cafb-0310-a4f2-bffc1f526a37
1 parent 5fbc589 commit 0dbc0ab

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

django/bin/make-messages.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ def make_messages():
103103
open(os.path.join(dirpath, '%s.py' % file), "wb").write(templatize(src))
104104
thefile = '%s.py' % file
105105
if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath))
106-
cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --keyword=ugettext_noop --keyword=ugettext_lazy --keyword=ungettext_lazy:1,2 --from-code UTF-8 -o - "%s"' % (
107-
os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile))
106+
cmd = 'xgettext -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --keyword=ugettext_noop --keyword=ugettext_lazy --keyword=ungettext_lazy:1,2 --from-code UTF-8 -o - "%s"' % (
107+
domain, os.path.join(dirpath, thefile))
108108
(stdin, stdout, stderr) = os.popen3(cmd, 'b')
109109
msgs = stdout.read()
110110
errors = stderr.read()
@@ -116,13 +116,18 @@ def make_messages():
116116
old = '#: '+os.path.join(dirpath, thefile)[2:]
117117
new = '#: '+os.path.join(dirpath, file)[2:]
118118
msgs = msgs.replace(old, new)
119+
if os.path.exists(potfile):
120+
# Strip the header
121+
msgs = '\n'.join(msgs.split('\n')[17:])
122+
else:
123+
msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8')
119124
if msgs:
120125
open(potfile, 'ab').write(msgs)
121126
if thefile != file:
122127
os.unlink(os.path.join(dirpath, thefile))
123128

124129
if os.path.exists(potfile):
125-
(stdin, stdout, stderr) = os.popen3('msguniq "%s"' % potfile, 'b')
130+
(stdin, stdout, stderr) = os.popen3('msguniq --to-code=utf-8 "%s"' % potfile, 'b')
126131
msgs = stdout.read()
127132
errors = stderr.read()
128133
if errors:

0 commit comments

Comments
 (0)