【问题标题】:Internationalization with multi project sphinx setup多项目 sphinx 设置的国际化
【发布时间】:2018-01-25 10:20:27
【问题描述】:

我有几个 python 项目都依赖于同一个核心项目。我已经使用 sphinx 为所有这些设置了文档,以便所有子项目都包含编写在核心项目中的文档 + 每个子项目自己的文档。

只需将一个符号链接从子项目的文档目录添加到核心项目的文档目录即可:

$ cd /path/to/subproject/a/docs
$ ln -s /path/to/coreproject/docs core
$ make html

只要我只用一种语言编写文档,它就可以很好地工作。现在我正在尝试使用sphinx-intl 以多种语言编写相同的文档。我应该如何配置?

我尝试设置locale_dirs = ['locale/', 'core/locale/'],然后从我的子项目中运行以下命令:

$ make gettext
$ sphinx-intl update -p _build/gettext -l sv
$ make -e SPHINXOPTS="-D language='sv'" html

但它似乎没有在核心项目中的.po 文件中找到我的任何更改。

【问题讨论】:

    标签: internationalization documentation python-sphinx


    【解决方案1】:

    我认为您的项目结构不适用于 i18n 的 sphinx,因为:

    • /path/to/subproject/a/docs 需要语言环境文件,例如:index.pocore.po
    • /path/to/subproject/a/docs/core/locale 提供 index.po 而不是 core.po

    我认为如果您将其设置如下,您可以获得预期的行为:

    1. gettext_compact = True 设置为所有conf.py
    2. 符号链接如下:

      $ cd /path/to/subproject/a/docs/locale/sv/LC_MESSAGES/
      $ ls
      core  index.po
      $ rm -R core
      $ ln -s /path/to/coreproject/docs/locale/ja/LC_MESSAGES core
      

    subproject 期望 core/* 每个 docs/core 文件的消息目录文件,现在有。

    但是,我认为这种解决方案不是正确的方法(也不是正确的方法),但它在我的环境中有效。

    程序是:

    mkdir -p docs/coreproject
    cd docs/coreproject
    sphinx-quickstart -q -p 1 -v 1 -a 1 docs
    cd ..  # go to docs
    mkdir -p subproject/a
    cd subproject/a
    sphinx-quickstart -q -p 2 -v 2 -a 2 docs
    cd docs/
    ln -s ../../../coreproject/docs core
    mkdir locale
    cd ../../../coreproject/docs
    mkdir locale
    make gettext
    sphinx-intl -p _build/gettext -l sv
    sphinx-intl update -p _build/gettext -l sv
    vi locale/sv/LC_MESSAGES/index.po   # modify po
    make html SPHINXOPTS="-D language=sv"
    # confirm 'core' _build/html/index.html 
    cd ../subproject/a/docs/
    make gettext
    sphinx-intl update -p _build/gettext -l sv
    cd locale/sv/LC_MESSAGES/
    ls
    rm -R core
    ln -s ../../../../../../coreproject/docs/locale/sv/LC_MESSAGES core
    vi index.po   # another modify
    cd ../../..
    make html SPHINXOPTS="-D language=sv"
    # confirm 'sub' _build/html/index.html
    

    项目文件:https://www.dropbox.com/s/cd65jt4h0x31cse/sphinx-intl-issue-20-docs.tar.gz?dl=0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-12
      • 2019-08-05
      • 2021-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      相关资源
      最近更新 更多