Commit graph

96 commits

Author SHA1 Message Date
Tomas R.
7ea6e88eb4
gh-85012: Properly reset msgctxt when compiling messages with msgfmt (GH-130525)
Add also human-readable snapshots for tests.
2025-03-13 20:40:40 +02:00
Tomas R.
321bf59512
gh-130453: pygettext: Allow overriding default keywords when using --keyword (GH-130709) 2025-03-03 18:57:01 +02:00
Tomas R.
44213bc57c
gh-130453: pygettext: Extend support for specifying custom keywords (GH-130463) 2025-02-25 12:10:54 +02:00
Stan Ulbrych
01ba7df499
gh-44827: Improve error if BOM on first line of .po file (GH-130187) 2025-02-18 15:59:34 +02:00
Stan Ulbrych
4374e1de87
gh-130195: Remove unimplemented option from pygettext (#130196)
Co-authored-by: Tomas R. <tomas.roun8@gmail.com>
2025-02-17 19:01:36 -08:00
Tomas R.
aa845af9bb
gh-130057: Pygettext: Support translator comments (GH-130061) 2025-02-17 12:41:28 +02:00
Tomas R.
9d1e668e6f
gh-129911: pygettext: Fix the keyword entry in help output (GH-129914) 2025-02-14 11:34:09 +02:00
Tomas R.
374abded07
gh-104400: pygettext: use an AST parser instead of a tokenizer (GH-104402)
This greatly simplifies the code and fixes many corner cases.
2025-02-11 13:51:42 +02:00
Tomas R.
e41ec8e18b
gh-104400: pygettext: Prepare to replace TokenEater with a NodeVisitor (#129672)
* Update the module docstring
* Move ``key_for`` inside the class
* Move ``write_pot_file`` outside the class
2025-02-04 22:59:23 +00:00
Adam Turner
237f186da4
gh-104400: Remove `fintl.gettext` from pygettext (#129580)
The ``fintl`` module is never installed or tested, meaning that the
fallback identity function is unconditionally used for ``_()``.
This means we can simplify, converting the docstring to a real
docstring, and converting some other strings to f-strings.

We also convert the module to UTF-8, sort imports,
and remove the history comment, which was last updated in 2002.
Consult the git history for a more accurate summary of changes.
2025-02-02 14:30:34 +00:00
Tomas R.
0a1944cda8
gh-126700: pygettext: Support more gettext functions (GH-126912)
Support multi-argument gettext functions: ngettext(), pgettext(), dgettext(), etc.
2024-11-22 16:52:16 +02:00
Tomas R.
9a456383be
gh-126807: pygettext: Do not attempt to extract messages from function definitions. (GH-126808)
Fixes a bug where pygettext would attempt
to extract a message from a code like this:

def _(x): pass

This is because pygettext only looks at one
token at a time and '_(x)' looks like a
function call.

However, since 'x' is not a string literal,
it would erroneously issue a warning.
2024-11-14 22:17:42 +00:00
JosephSBoyle
b097925858
gh-102507 Remove invisible pagebreak characters (#102531)
Co-authored-by: AlexWaygood <alex.waygood@gmail.com>
2023-03-08 13:58:14 +00:00
Jakub Kuczys
120b4ab2b6
gh-95731: Fix module docstring extraction in pygettext (#95732) 2022-10-15 07:57:53 -07:00
Noah Kantrowitz
be42c06bb0
Update URLs in comments and metadata to use HTTPS (GH-27458) 2021-07-30 15:54:46 +02:00
jack1142
bfc6b63102
bpo-36310: Allow pygettext.py to detect calls to gettext in f-strings. (GH-19875)
Adds support to Tools/i18n/pygettext.py for gettext calls in f-strings. This process is done by parsing the f-strings, processing each value, and flagging the ones which contain a gettext call.

Co-authored-by: Batuhan Taskaya <batuhanosmantaskaya@gmail.com>
2020-11-10 01:50:45 +03:00
Serhiy Storchaka
172bb39452
bpo-22831: Use "with" to avoid possible fd leaks in tools (part 2). (GH-10927) 2019-03-30 08:33:02 +02:00
Cheryl Sabella
637a33b996 bpo-2504: Add pgettext() and variants to gettext. (GH-7253) 2018-11-07 16:12:20 +02:00
Xtreak
a692efe473 bpo-34166: Fix warnings in Tools/msgfmt.py. (GH-8367) 2018-07-21 09:22:12 +03:00
Serhiy Storchaka
a3f19c3f52
Remove mojibake in the locale aliases mapping. (GH-6716) 2018-05-06 10:52:38 +03:00
Serhiy Storchaka
69524821a8
bpo-33189: pygettext.py now accepts only literal strings (GH-6364)
as docstrings and translatable strings, and rejects
bytes literals and f-string expressions.
2018-04-19 09:23:03 +03:00
Serhiy Storchaka
c93938b5be
bpo-31920: Fixed handling directories as arguments in the `pygettext` script. (GH-6259)
Based on patch by Oleg Krasnikov.
2018-04-09 20:09:17 +03:00
Tobotimus
eee72d4778 bpo-32222: Fix pygettext skipping docstrings for funcs with arg typehints (GH-4745) 2018-02-27 00:48:14 +02:00
Benjamin Peterson
df8280838f bpo-20087: Revert "make the glibc alias table take precedence over the X11 one (#422)" (#713)
This reverts commit 02371e0ed1.
2017-03-19 23:49:43 -07:00
Benjamin Peterson
02371e0ed1 make the glibc alias table take precedence over the X11 one (#422)
bpo-20087
2017-03-07 22:03:13 -08:00
Martin Panter
02b75abf73 Merge spelling and grammar fixes from 3.5 2016-08-05 01:51:39 +00:00
Martin Panter
69332c1a64 Fix spelling and grammar in documentation and code comments 2016-08-04 13:07:31 +00:00
Victor Stinner
328cb1fed0 Update pygettext.py to get ride of imp
Issue #26639: Replace imp with importlib in Tools/i18n/pygettext.py.

Remove _get_modpkg_path(), replaced with importlib.util.find_spec().
2016-04-12 18:46:10 +02:00
R David Murray
2b78129b3a #18128: use standard +NNNN timezone format in POT-Creation-Date header.
Patch by Michael McFadden, with a few small style tweaks.
2015-04-16 12:15:09 -04:00
Serhiy Storchaka
8276d87f5a Issue #20079: makelocalealias.py now supports installed SUPPORTED file,
not only source SUPPORTED file in glibc sources tree.
2014-10-02 10:38:12 +03:00
Serhiy Storchaka
5189ee54cf Issue #20076: Apply optimization in makelocalealias.py repeatedly.
Remove just added the sr_rs.utf8@latn alias because it is
derived from sr_rs@latin.
2014-10-02 10:21:43 +03:00
Serhiy Storchaka
c383ad8d9c Issue #20076: Added non derived UTF-8 aliases to locale aliases table.
The makelocalealias.py script no longer ignores UTF-8 mapping.
2014-10-02 00:11:21 +03:00
Serhiy Storchaka
ea4f0573b4 Issue #20079: Added locales supported in glibc 2.18 to locale alias table.
The makelocalealias.py script now can parse the SUPPORTED file
from glibc sources and supports command line options for source paths.
2014-10-01 23:42:30 +03:00
Serhiy Storchaka
8f8ec92de8 Issue #19936: Added executable bits or shebang lines to Python scripts which
requires them.  Disable executable bits and shebang lines in test and
benchmark files in order to prevent using a random system python, and in
source files of modules which don't provide command line interface.  Fixed
shebang lines in the unittestgui and checkpip scripts.
2014-01-16 17:33:23 +02:00
Serhiy Storchaka
b992a0e102 Issue #19936: Added executable bits or shebang lines to Python scripts which
requires them.  Disable executable bits and shebang lines in test and
benchmark files in order to prevent using a random system python, and in
source files of modules which don't provide command line interface.  Fixed
shebang line to use python3 executable in the unittestgui script.
2014-01-16 17:15:49 +02:00
Serhiy Storchaka
8c4f57d1d5 Issue #20046: Locale alias table no longer contains entities which can be
calculated.  Generalized support of the euro modifier.
2013-12-27 00:56:53 +02:00
Serhiy Storchaka
e190fac5f9 Issue #20027: Fixed locale aliases for devanagari locales. 2013-12-26 21:21:52 +02:00
Serhiy Storchaka
5eb01530b2 Issue #20027: Fixed locale aliases for devanagari locales. 2013-12-26 21:20:59 +02:00
Serhiy Storchaka
a3409489b7 Issue #20033: makelocalealias.py now works with non-ASCII locales and produces
the same result as in 2.x.
2013-12-23 18:56:31 +02:00
Serhiy Storchaka
55c6cc408c Issue #20033: makelocalealias.py now works with non-ASCII locales and produces
the same result as in 2.x.
2013-12-23 18:56:08 +02:00
Benjamin Peterson
eaedaeccf2 update Barry's email (#19563) 2013-12-22 19:45:38 -06:00
Benjamin Peterson
8fb007f329 merge 3.3 (#19563) 2013-12-22 19:45:53 -06:00
Serhiy Storchaka
c56894d305 Issue #18922: Now The Lib/smtpd.py and Tools/i18n/msgfmt.py scripts write
their version strings to stdout, and not to sderr.
2013-09-05 17:44:53 +03:00
Ezio Melotti
7c4a7e6f3c #18803: fix more typos. Patch by Févry Thibault. 2013-08-26 01:32:56 +03:00
Serhiy Storchaka
859cd4723f Issue #17156: pygettext.py now uses an encoding of source file and correctly
writes and escapes non-ascii characters.
2013-02-09 22:38:12 +02:00
Serhiy Storchaka
b6ed17344b Issue #17156: pygettext.py now uses an encoding of source file and correctly
writes and escapes non-ascii characters.
2013-02-09 22:37:22 +02:00
Ezio Melotti
956c6c2dab #13301: merge with 3.2. 2012-11-09 11:51:03 +01:00
Ezio Melotti
9bf379e9fb #13301: use ast.literal_eval() instead of eval() in Tools/i18n/msgfmt.py. Patch by Serhiy Storchaka. 2012-11-09 11:46:19 +01:00
Florent Xicluna
c20740109d Some cleanup in the Tools directory. 2012-07-07 17:03:54 +02:00
Alexander Belopolsky
e8f583244a Issue #9308: Removed redundant coding cookies. Added tests for
importing encoded modules that do not depend on specific stdlib
modules being encoded in a certain way.
2010-10-15 16:28:20 +00:00