gpt4 book ai didi

多项目 sphinx 设置的国际化

转载 作者:行者123 更新时间:2023-12-04 08:21:05 24 4
gpt4 key购买 nike

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

这是通过简单地从子项目的文档目录添加一个符号链接(symbolic link)到核心项目文档目录来完成的:

$ 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 中找到我的任何更改位于核心项目中的文件。

最佳答案

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

  • /path/to/subproject/a/docs需要像这样的语言环境文件:index.pocore.po .
  • /path/to/subproject/a/docs/core/locale提供index.po而不是 core.po

  • 我认为如果您将其设置如下,您可以获得预期的行为:
  • 设置 gettext_compact = True致所有conf.py .
  • 符号链接(symbolic link)如下:
    $ 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

    关于多项目 sphinx 设置的国际化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48440506/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com