Feature or enhancement
Proposal:
pygettext already allows specifying custom keywords in a limited fashion. For example, specifying --keyword=foo will
look for functions named foo in addition to the default keywords (gettext, etc..).
However, the CLI currently only allows specifying single-argument functions (i.e. gettext('foo')). It is not possible to add
keywords that take msgid_plural or msgctxt or both.
Both xgettext and babel support this with a simple keywordspec syntax that defines the function name and argument positions of msgid, msgid_plural and msgctxt.
For example, --keyword:foo:1c,2 defines a pgettext-like function where the msgctxt is the first argument and msgid is the second argument, e.g. foo('context', 'message').
It is also possible to use t to only match functions with that exact number of arguments. For example, foo:1,1t only matches foo('bar') but not foo('bar', 'baz').
I propose to support this in pygettext as well. For that we will need to:
- Support the keyword spec syntax when specifying keywords. I suggest skipping the
t specifier for now.
- Support specifying multiple
--keyword arguments with the same function name (this will require some internal changes, as those are stored in a dictionary with the function name as the key).
- Support the
t specifier.
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
Linked PRs
Feature or enhancement
Proposal:
pygettext already allows specifying custom keywords in a limited fashion. For example, specifying
--keyword=foowilllook for functions named
fooin addition to the default keywords (gettext, etc..).However, the CLI currently only allows specifying single-argument functions (i.e.
gettext('foo')). It is not possible to addkeywords that take
msgid_pluralormsgctxtor both.Both xgettext and babel support this with a simple keywordspec syntax that defines the function name and argument positions of
msgid,msgid_pluralandmsgctxt.For example,
--keyword:foo:1c,2defines apgettext-like function where themsgctxtis the first argument andmsgidis the second argument, e.g.foo('context', 'message').It is also possible to use
tto only match functions with that exact number of arguments. For example,foo:1,1tonly matchesfoo('bar')but notfoo('bar', 'baz').I propose to support this in pygettext as well. For that we will need to:
tspecifier for now.--keywordarguments with the same function name (this will require some internal changes, as those are stored in a dictionary with the function name as the key).tspecifier.Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
Linked PRs
--keyword#130709