国际化#

此主题包含可本地化(可翻译)的字符串。此主题中有两种类型的字符串,每种字符串的翻译步骤不同

  • 内置字符串硬编码在主题的模板中。如果该语言 受支持,它们将由志愿者翻译。要添加另一种语言,请参考文档中的 本地化主题添加新语言 部分。

  • 可配置字符串是使用 html_theme_options 变量在 conf.py 文件中定义的(有关这些可配置字符串的示例,请参阅 用户指南 中的其他部分)。要翻译这些字符串,请参阅本页中的 翻译可配置字符串 部分。

翻译可配置字符串#

这些说明用于翻译可配置字符串(即在 conf.py 文件中的 html_theme_options 中可自定义的字符串)。

这些说明假设您将翻译存储在文档目录下的 locale 目录中,并且您要使用 messages 作为这些字符串的消息目录的名称(如果需要,您可以更改此名称)。

请注意,您还需要安装 pybabel 来处理文档翻译。

  1. 在您的 conf.py 文件中

    import os.path
    from sphinx.locale import get_translation
    
    catalog = "messages"
    _ = get_translation(catalog)
    
    html_theme_options = {
        "search_bar_text": _("Search the docs..."),
    
        # You only need to translate the following if you use these features.
        "icon_links_label": _("Quick Links"),
        "icon_links": [
            {
                "name": _("GitHub"),
                "url": "https://github.com/<your-org>/<your-repo>",
                "icon": "fab fa-github-square",
            },
        ],
        "external_links": [
            {
                "name": _("link-one-name"),
                "url": "https://<link-one>",
            },
        ],
    }
    
    def setup(app):
       locale_dir = os.path.join(os.path.abspath(os.path.dirname(__file__), "locale")
    
       app.add_message_catalog(catalog, locale_dir)
    
  2. 提取要本地化的字符串

    pybabel extract . -o locale/messages.pot
    
  3. 通过指定新语言的 ISO 639-1 代码(使用 --locale 标志)来创建消息目录

    # for example, to add French (ISO 639-1 code: fr)
    pybabel init --input-file=locale/messages.pot --domain=messages --output-dir=locale --locale=fr
    
  4. 通过编辑文件来翻译消息目录。

  5. 编译消息目录

    pybabel compile --directory=locale --domain=messages
    

完成!您的可配置字符串现在已本地化。