Документация Sphinx: перевод (i18n) переменных conf.py - PullRequest
0 голосов
/ 23 апреля 2019

В проекте документации sphinx, как добавить переводы к переменным, определенным в conf.py?

Пример: переменная project равна "<Brand Name> Setup and Configuration Manual", где я хотел бы получить последниечасть переведена.

При использовании стандартных средств i18n эти значения отсутствуют в файлах .pot.Я также не смог выяснить, как добраться до языка, указанного в командной строке, в пределах conf.py (переводить через жестко закодированный словарь).

1 Ответ

0 голосов
/ 24 апреля 2019

Как упомянуто в комментариях выше, это в настоящее время открытая проблема.

Можно передавать информацию в conf.py (только) с помощью тегов.

В командной строкеиспользуйте -t language_de вместо -D language=de, чтобы определить тег, содержащий идентификатор локали.

В conf.py, перехватите тег с помощью:

language = None
for t in tags:
    if t.startswith('language_'):
        language = t[9:]

The -D language=.. командная строка может быть опущена, поскольку переменная language в conf.py имеет тот же эффект.

Как только мы получим значение языка, перевод можно выполнить с помощью словаря:

project = {
    'de': u'<Brand Name> Setup-und Konfigurationshandbuch',
    # ... more translations ...
}.get(language, u'<Brand Name> Setup and Configuration Manual')
...