[issue32087] deprecated-removed directive generates overlapping msgids in .pot files

KINEBUCHI Tomohiko report at bugs.python.org
Mon Nov 20 09:24:41 EST 2017


New submission from KINEBUCHI Tomohiko <cocoatomo77 at gmail.com>:

When gettext builder is invoked, deprecated-removed directive which is defined in Doc/tools/extensions/pyspecific.py generates overlapping msgids in .pot files.

For example, the following .rst source (taken from Doc/library/dmb.rst L354)::

   .. deprecated-removed:: 3.6 3.8
      Creating database in ``'r'`` and ``'w'`` modes.  Modifying database in
      ``'r'`` mode.

results to following .pot file entries::

   #: ../../library/dbm.rst:357
   msgid "Deprecated since version 3.6, will be removed in version 3.8: Creating database in 'r' and 'w' modes.  Modifying database in 'r' mode."
   msgstr ""

   #: ../../library/dbm.rst:357
   msgid "Creating database in ``'r'`` and ``'w'`` modes.  Modifying database in ``'r'`` mode."
   msgstr ""

using the command::

   sphinx-build -E -b gettext -D gettext_compact=0  -w warnings.txt -d build/.doctrees . locale/pot


The root cause is deprecated-removed directive constructs inappropriate sub-doctree for translation.
First, above .rst source is compiled into following tree structure::

   <versionmodified type="deprecated-removed" version="('3.6', '3.8')">
     <paragraph>
       <inline classes="versionmodified">
         Deprecated since version 3.6, will be removed in version 3.8:
       <inline translatable="True">
         Creating database in...

and gettext builder picks up paragraph node and the second inline node as translation targets.

Expected result is that two inline nodes are picked up as translation targets and the paragraph node is not, and expected .pot file entries are such as following::

   #: ../../library/dbm.rst:357
   msgid "Deprecated since version 3.6, will be removed in version 3.8:"
   msgstr ""

   #: ../../library/dbm.rst:357
   msgid "Creating database in ``'r'`` and ``'w'`` modes.  Modifying database in ``'r'`` mode."
   msgstr ""

----------
assignee: docs at python
components: Documentation
messages: 306546
nosy: cocoatomo, docs at python
priority: normal
severity: normal
status: open
title: deprecated-removed directive generates overlapping msgids in .pot files
versions: Python 3.6, Python 3.7

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue32087>
_______________________________________


More information about the Python-bugs-list mailing list