homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: support plurals in pygettext
Type: Stage: resolved
Components: Documentation Versions: Python 2.7
process
Status: closed Resolution: fixed
Dependencies: 13447 Superseder:
Assigned To: Nosy List: eric.araujo, jhg
Priority: normal Keywords: patch

Created on 2010年04月23日 01:09 by jhg, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
gettext.txt.patch jhg, 2010年04月23日 01:09
pygettext.py.patch jhg, 2010年06月12日 04:26
helloworld.py jhg, 2010年06月12日 04:32
patch-8502.txt akuchling, 2013年11月11日 22:13 review
Messages (10)
msg103988 - (view) Author: jhg (jhg) Date: 2010年04月23日 01:09
Wanting to figure out how to support multiple languages in my applications I read the gettext documentation and got to the part saying one should use pygettext.py to create .po files.
After copying that program from the python SVN repository I later found out that it cannot cope with plurals, i.e. ngettext(). xgettext can do that just fine. Since pygettext.py was not modified in 5 years I propose changing the documentation of gettext to encourage xgettext rather than pygettext.py.
My proposed changes are attached (edited as text file; I do not know how to convert it to a webpage and hence did not test that).
I used the 2.7b1 documentation, but the patch appears to apply just as well to the 3.1.2 documentation.
msg107559 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2010年06月11日 16:36
Does the fixing of #5464 solve your problem?
msg107597 - (view) Author: jhg (jhg) Date: 2010年06月11日 22:55
It looks like msgfmt.py now parses 'msgid_plural' but pygettext.py does not produce these. It is still oblivious to plurals as produced by ngettext(). My originally proposed change to the documentation was to point people to the GNU xgettext/msgfmt tools rather than the pygettext.py/msgfmt.py pair because of this limitation.
This has not changed.
msg107599 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2010年06月11日 22:57
What about the more ambitious approach, fixing pygettext?
msg107625 - (view) Author: jhg (jhg) Date: 2010年06月12日 04:26
Since the GNU tools work fine I had no reason to look into pygettext.py.
Now I did it anyway...
I added ngettext to the default keywords.
Any function that is keyworded and supplied more than 2 keywords is treated like ngettext.
Also simple constructs like _("foo" + 10*"bar") are now possible.
Patch attached.
msg107626 - (view) Author: jhg (jhg) Date: 2010年06月12日 04:32
A simple test case for the earlier changes.
run pygettext.py and msgfmt.py and move the .mo file to 
./locale/de/LC_MESSAGES/helloworld.mo 
to see that it prints the localized strings.
msg151387 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012年01月16日 16:36
Thank you for making a patch. I’ve been busy and could not find time to look at it, but after I add a testing machinery for scripts like pygettext I will look into this.
msg202653 - (view) Author: A.M. Kuchling (akuchling) * (Python committer) Date: 2013年11月11日 22:13
Here's an updated version of the documentation patch, that doesn't encourage using pygettext so much. It also updates Barry Warsaw's e-mail address and makes some other small edits.
msg203397 - (view) Author: A.M. Kuchling (akuchling) * (Python committer) Date: 2013年11月19日 16:12
Applied my documentation patch.
New changeset 4fe87b5df2d0 by Andrew Kuchling in branch '3.3':
#1098749: re-word gettext docs to not encourage using pygettext so much.
http://hg.python.org/cpython/rev/4fe87b5df2d0 
msg221023 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2014年06月19日 21:22
Patch has been applied so this can be closed.
History
Date User Action Args
2022年04月11日 14:57:00adminsetgithub: 52748
2020年05月31日 13:46:51serhiy.storchakasetstatus: open -> closed
resolution: fixed
stage: needs patch -> resolved
2019年04月26日 17:24:29BreamoreBoysetnosy: - BreamoreBoy
2014年12月31日 16:22:09akuchlingsetnosy: - akuchling
2014年06月19日 21:22:05BreamoreBoysetnosy: + BreamoreBoy
messages: + msg221023
2013年11月19日 16:12:41akuchlingsetmessages: + msg203397
2013年11月11日 22:13:04akuchlingsetfiles: + patch-8502.txt
nosy: + akuchling
messages: + msg202653

2012年01月16日 16:36:44eric.araujosetassignee: docs@python ->
dependencies: + Add tests for some scripts in Tools/scripts
title: proposal: encourage xgettext rather than pygettext.py in gettext docs -> support plurals in pygettext
nosy: - georg.brandl

messages: + msg151387
stage: needs patch
2010年10月29日 10:07:21adminsetassignee: georg.brandl -> docs@python
2010年06月12日 04:32:47jhgsetfiles: + helloworld.py

messages: + msg107626
2010年06月12日 04:26:50jhgsetfiles: + pygettext.py.patch

messages: + msg107625
2010年06月11日 22:57:49eric.araujosetmessages: + msg107599
2010年06月11日 22:55:26jhgsetmessages: + msg107597
2010年06月11日 16:36:41eric.araujosetnosy: + eric.araujo
messages: + msg107559
2010年04月23日 01:10:05jhgcreate

AltStyle によって変換されたページ (->オリジナル) /