Version main of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot. For up-to-date documentation, see the latest version.

多语言支持

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

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

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

内容和配置

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

contentDir = "content/en"
defaultContentLanguage = "en"
defaultContentLanguageInSubdir = false
...
[languages]
[languages.en]
languageName ="English"

# Weight used for sorting

weight = 1
[languages.en.params]
title = "Goldydocs"
description = "Docsy does docs"
[languages.no]
languageName ="Norsk"
contentDir = "content/no"
[languages.no.params]
title = "Goldydocs"
description = "Docsy er operativsystem for skyen"
time_format_default = "02.01.2006"
time_format_blog = "02.01.2006"
contentDir: content/en
defaultContentLanguage: en
defaultContentLanguageInSubdir: false

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

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

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

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

选择语言

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

国际化 bundles

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

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

创建自定义UI字符串

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


最后修改 July 6, 2024: 修改中文文档 (ae42646)