Description
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
Metadata
Metadata
Assignees
Labels
Projects
Status