多项目狮身人面像设置的国际化

时间:2018-01-25 10:20:27

标签: internationalization documentation python-sphinx

我有一些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文件中的任何更改。

1 个答案:

答案 0 :(得分:1)

我认为您的项目结构对于狮身人面像的i18n效果不佳,因为:

  • /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. 符号如下所示
  3. 符号链接:

    $ 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
    
  4. subproject期望每个core/*文件的docs/core个邮件目录文件,现在有。{/ p>

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

    程序是:

    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