New submission from STINNER Victor <[email protected]>:
When a translation .po file contains a comment in headers, it's kept when
compiled as .mo by msgfmt.
Example with test.po:
---
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"#-#-#-#-# plo.po (PACKAGE VERSION) #-#-#-#-#\n"
---
Compile it with "msgfmt". Parse the output file messages.mo using test.py
script:
---
import gettext, pprint
with open("messages.mo", "rb") as fp:
t = gettext.GNUTranslations()
t._parse(fp)
pprint.pprint(t._info)
---
Output on Python 3.7.2:
---
{'content-type': 'text/plain; charset=UTF-8',
'plural-forms': 'nplurals=2; plural=(n != 1);\n'
'#-#-#-#-# plo.po (PACKAGE VERSION) #-#-#-#-#'}
---
Output of Fedora Python 2.7.15 which contains a fix:
---
{'content-type': 'text/plain; charset=UTF-8',
'plural-forms': 'nplurals=2; plural=(n != 1);'}
---
I'm not sure that keeping the comment as part of plural forms is correct.
Comments should not be ignored?
I made my test on Fedora 29: msgfmt 0.19.8.1, Python 3.7.2.
Links:
* https://bugs.python.org/issue1448060#msg27754
* https://bugs.python.org/issue1475523
* https://bugzilla.redhat.com/show_bug.cgi?id=252136
Fedora has a patch since 2007 to ignore comments:
https://src.fedoraproject.org/rpms/python2/blob/master/f/python-2.5.1-plural-fix.patch
I can easily convert the patch to a PR, maybe with a test. The question is more
if the fix is correct or not.
----------
components: Library (Lib)
messages: 337476
nosy: mdk, vstinner
priority: normal
severity: normal
status: open
title: gettext: GNUTranslations doesn't parse properly comments in description
versions: Python 2.7, Python 3.7, Python 3.8
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue36239>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com