这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

多语言支持

    Multi-language Support - 多语言支持

    https://www.docsy.dev/docs/language/

    ​ 在您的站点中支持多种语言。

    ​ 如果您想提供多种语言的站点内容,Docsy主题和Hugo可以轻松添加已翻译的内容,并使用户可以在语言版本之间导航。

    内容和配置

    ​ 要添加多语言内容,您首先需要在站点配置中的languages部分中定义可用语言。每种语言都可以有自己的语言特定配置。例如,Docsy示例站点配置指定它提供英语和挪威语的内容,并且访问者默认看到的语言版本是英语:

    Configuration file:

    === “hugo.yaml”

    ```yaml
    contentDir: content/en
    defaultContentLanguage: en
    defaultContentLanguageInSubdir: false
    …
    languages:
      en:
        title: Docsy
        description: Docsy does docs
        languageName: English
        weight: 1 # used for sorting
      'no':
        title: Docsy
        description: Docsy er operativsystem for skyen
        languageName: Norsk
        contentDir: content/no
        time_format_default: 02.01.2006
        time_format_blog: 02.01.2006
    ```
    

    === “hugo.toml”

    ```toml
    contentDir = "content/en"
    defaultContentLanguage = "en"
    defaultContentLanguageInSubdir = false
    ...
    [languages]
    [languages.en]
    title = "Docsy"
    description = "Docsy does docs"
    languageName ="English"
    # Weight used for sorting.
    weight = 1
    [languages.no]
    title = "Docsy"
    description = "Docsy er operativsystem for skyen"
    languageName ="Norsk"
    contentDir = "content/no"
    time_format_default = "02.01.2006"
    time_format_blog = "02.01.2006"
    ```
    

    === “hugo.json”

    ```json
    {
      "contentDir": "content/en",
      "defaultContentLanguage": "en",
      "defaultContentLanguageInSubdir": false,
      "languages": {
        "en": {
          "title": "Docsy",
          "description": "Docsy does docs",
          "languageName": "English",
          "weight": 1
        },
        "no": {
          "title": "Docsy",
          "description": "Docsy er operativsystem for skyen",
          "languageName": "Norsk",
          "contentDir": "content/no",
          "time_format_default": "02.01.2006",
          "time_format_blog": "02.01.2006"
        }
      }
    }
    ```
    

    ​ 在[languages]块中未定义的任何设置都将回退到该设置的全局值。例如,上述站点所使用的内容目录将是content/en,除非用户选择了挪威语选项。

    ​ 更新站点配置后,在源代码库中为每个语言版本创建一个内容根目录,例如英文文本的content/en,然后像平常一样添加内容。有关多语言支持的更多信息,请参阅Hugo Docs

    注意事项(仅在使用docsy作为hugo模块时)

    ​ 如果您使用的是多语言安装,请确保在模块导入的[module]部分之前声明配置文件中的[languages]部分。否则,您将会遇到麻烦!

    提示

    ​ 如果您的站点可能会被翻译成其他语言,请考虑使用语言特定的子目录创建您的站点,因为这意味着如果您添加另一种语言,您不需要移动它。

    ​ 如果要添加其他站点元素的多个语言版本,例如按钮文本,请参见下面的国际化包章节。

    选择语言

    ​ 如果在配置文件中配置了多个语言,则Docsy主题将在顶级菜单中添加一个语言选择器下拉菜单。选择语言会将用户带到当前页面的翻译版本,或给定语言的主页。

    国际化 bundles

    ​ 所有UI字符串(按钮文本、存储库链接等)都打包在主题的/i18n目录中,每种语言有一个.toml文件。

    ​ 如果您选择的语言当前未包含在主题中,并且为所有通用UI字符串创建了自己的.toml文件(例如,如果您将UI文本翻译成Esperanto,并创建了一个名为eo.tomlen.toml副本),我们建议您在本主题中执行此操作而不是在自己的项目中。然后,您可以打开pull request将您的翻译贡献给Docsy社区。

    Hugo提示

    ​ 在进行翻译工作时运行hugo server --printI18nWarnings,因为它会提示您缺少哪些字符串。

    创建自定义UI字符串

    ​ 如果你选择的语言中 Docsy 主题的某些用户界面字符串不适合你的项目,或者你需要其他字符串来满足你的网站需求,你可以在你的项目的 /i18n 目录下创建一个专门的项目国际化文件。例如,如果你想覆盖 Docsy 的英语字符串中的任何内容,只需创建你自己的 /i18n/en.toml 文件并添加自定义字符串。你在此文件中指定的任何值都将覆盖本主题版本,而其余的字符串将来自本主题的对应国际化包。