Как перевести комментарии в кодовые блоки с помощью Sphinx - PullRequest
0 голосов
/ 16 апреля 2020

Я пишу документацию для проекта, используя Sphinx. У меня есть примеры кода (определены как code-block s, как буквально включены, так и просто напечатаны в строке). В этих примерах кода есть комментарии, но когда я выполняю перевод документации, они не извлекаются в .po файлы и, очевидно, не переводятся.

Как я могу перевести комментарии в примерах кода?

Я нашел другие вопросы о модификации Сфинкса. В ответах предлагалось изменить conf.py (сделать несколько хуков), создать role s или extensions. Я никогда не делал этого раньше, и я не знаю, с чего начать и какое решение было бы лучше. Есть ли какое-либо решение для этой проблемы?

UPD. Вот примеры кода, которые я хочу показать в своей документации:

git clone https://github.com/ynikitenko/lena
# most of requirements are for development only
pip install -r lena/requirements.txt

(здесь я хотел бы перевести комментарий). Более сложный (возможно, не столь необходимый) пример:

class End(object):
    """Stop sequence here."""

    def run(self, flow):
        """Exhaust all preceding flow and stop iteration
        (yield nothing to the following flow).
        """
        for val in flow:
            pass
        return
        # otherwise it won't be a generator
        yield "unreachable"

Эти примеры отформатированы с помощью директивы

.. code-block:: 

1 Ответ

0 голосов
/ 03 мая 2020

Я написал официальной sphinx-users группе Google, и это ответ от Мэтта из Documatt:

Это невозможно. Сфинкс должен понимать комментарии на каждом языке.

Если вы хотите перевести комментарии в кодовом блоке (и буквальных блоках после: :), вы должны перевести их все. Добавьте gettext_additional_targets = ["literal-block"] к вашему conf.py и повторно запустите обновление POT / PO.

Строки кода остаются в «переводах» кода , но теперь проблема для меня решена.

...