[PATCH 1 of 9 STABLE?] gendoc: make commnd __doc__ and extension __doc__ as translatable
martin at geisler.net
Tue May 14 05:55:14 CDT 2013
Takumi IINO <trot.thunder at gmail.com> writes:
> # HG changeset patch
> # User Takumi IINO <trot.thunder at gmail.com>
> # Date 1368513072 -32400
> # Tue May 14 15:31:12 2013 +0900
> # Branch stable
> # Node ID 8fcb89ec61775279bcecf73cd839c29991fbab4c
> # Parent 12dbdd348bb0977366200bf96cb6d2afa85faf13
> gendoc: make commnd __doc__ and extension __doc__ as translatable
> Before this patch, commnd __doc__ and extension __doc__ are not translatable.
> But other messages, like doc of helptalbe, section headers, are translatable.
> This patch makes commnd __doc__ and extension __doc__ translatable.
> diff --git a/doc/gendoc.py b/doc/gendoc.py
> --- a/doc/gendoc.py
> +++ b/doc/gendoc.py
> @@ -51,7 +51,7 @@
> d['cmd'] = cmds
> d['aliases'] = cmd.split("|")[1:]
> - d['desc'] = get_desc(attr.__doc__)
> + d['desc'] = get_desc(_(attr.__doc__))
You should not use _(...) around anything else than literal strings. So
translated = _("hello")
is okay, but
msg = "hello"
translated = _(msg)
is not okay. The reason is that _(...) is used by xgettext to find and
extract translateable strings and so the argument to _ must be a literal
You should instead use the i18n.gettext function to translate something
that isn't a string at runtime. The thing you translate must then
somehow have been extracted into the message catalogs. For Mercurial,
this is done by the i18n/hggettext script which is what puts command
docstrings into the hg.pot file so that translators can work on them and
so i18n.gettext can find them later.
More information about the Mercurial-devel