Hexo 配置 i18n
运营个人博客时,可能会遇到这样的需求:希望网站能够支持多语言,让来自不同地区的读者都能便捷地阅读我们的内容。
这就需要用到网站的国际化(也就是 i18n)功能。
对于使用 Hexo 搭建的博客而言,实现国际化不仅需要考虑内容的翻译,还要处理模板渲染等问题。
基础配置
为了避免困扰:
- Hexo 根目录下的
_config.yml将被称呼为 Hexo 配置项themes/**/_config.yml将被称呼为 主题配置项
首先,我们需要在 Hexo 的配置文件中进行一些基本设置。这些设置将决定网站的语言选项和 URL 结构。
language: [zh, en] # 支持的语言列表,第一个为默认语言new_post_name: :title.md # 新文章的命名方式# 如果你安装了 hexo-abbrlinkpermalink: posts/:abbrlink.html # 文章的永久链接格式abbrlink: rep: hex # 使用十六进制作为文章的唯一标识# hexo-generator-plus 的配置项generator_plus: language: [zh, en] # 生成器支持的语言列表 pagination_dir: 'page' # 分页目录 generator: ["index", "archive", "category", "tag"] # 需要生成的页面类型 # 首页生成器配置 index_generator: per_page: 10 # 这些数字和顺序可以自定义 order_by: -date # 归档页面配置 archive_generator: per_page: 25 order_by: -date # 分类页面配置 category_generator: per_page: 25 order_by: -date enable_index_page: true # 如果你想要分类列表页的话 # 标签页面配置 tag_generator: per_page: 25 order_by: name enable_index_page: true # 如果你想要标签列表页的话接着在主题配置项里配置想要的菜单链接:
menu: home: / archive: /archives categories: /categories tags: /tags about: /about GitHub: https://github.com/cytrogen RSS: /atom.xml目录结构
以下是必需的目录结构:
source/├── _posts/ # 默认语言的所有博文│ └── *.md # 不能有子目录├── en/ # 英文版特定内容│ └── 与 source 目录结构相同├── archives/ # 归档页面│ └── index.md # layout: archive├── categories/ # 分类页面│ └── index.md # layout: category-index└── tags/ # 标签页面 └── index.md # layout: tag-index当然,你也可以选择其他语言,但其他语言的目录需要和对应的
themes/**/languages/*.yml的名称相同。
请确保每个 *.md 的 Front-Matter 中都有 lang: **。
语言文件配置
网站的固定文本(如导航菜单、按钮文字等)需要通过语言文件来实现国际化。这些文件需要放在 themes/**/languages/ 目录下。
这是我的例子:
zh.yml:menu:home: 首页archive: 归档tags: 标签categories: 分类about: 关于friendlinks: 友情链接archive_title: 归档tags_title: 标签categories_title: 分类prev: 上一页next: 下一页prev_post: 上一篇next_post: 下一篇more: ...阅读全文translated: 翻译 · 原文地址...
剩余内容已隐藏