多语言支持

站点多语言配置

要启用 VuePress 的多语言支持,首先需要使用如下的文件结构:

  1. docs
  2. ├─ README.md
  3. ├─ foo.md
  4. ├─ nested
  5. └─ README.md
  6. └─ zh
  7. ├─ README.md
  8. ├─ foo.md
  9. └─ nested
  10. └─ README.md

然后,在 .vuepress/config.js 中提供 locales 选项:

  1. module.exports = {
  2. locales: {
  3. // 键名是该语言所属的子路径
  4. // 作为特例,默认语言可以使用 '/' 作为其路径。
  5. '/': {
  6. lang: 'en-US', // 将会被设置为 <html> 的 lang 属性
  7. title: 'VuePress',
  8. description: 'Vue-powered Static Site Generator'
  9. },
  10. '/zh/': {
  11. lang: 'zh-CN',
  12. title: 'VuePress',
  13. description: 'Vue 驱动的静态网站生成器'
  14. }
  15. }
  16. }

如果一个语言没有声明 title 或者 description,VuePress 将会尝试使用配置顶层的对应值。如果每个语言都声明了 titledescription,则顶层的这两个值可以被省略。

默认主题多语言配置

默认主题也内置了多语言支持,可以通过 themeConfig.locales 来配置。该选项接受同样的 { path: config } 格式的值。每个语言除了可以配置一些站点中用到的文字之外,还可以拥有自己的 导航栏侧边栏 配置:

  1. module.exports = {
  2. locales: { /* ... */ },
  3. themeConfig: {
  4. locales: {
  5. '/': {
  6. selectText: 'Languages',
  7. label: 'English',
  8. editLinkText: 'Edit this page on GitHub',
  9. serviceWorker: {
  10. updatePopup: {
  11. message: "New content is available.",
  12. buttonText: "Refresh"
  13. }
  14. },
  15. algolia: {},
  16. nav: [
  17. { text: 'Nested', link: '/nested/' }
  18. ],
  19. sidebar: {
  20. '/': [/* ... */],
  21. '/nested/': [/* ... */]
  22. }
  23. },
  24. '/zh/': {
  25. // 多语言下拉菜单的标题
  26. selectText: '选择语言',
  27. // 该语言在下拉菜单中的标签
  28. label: '简体中文',
  29. // 编辑链接文字
  30. editLinkText: '在 GitHub 上编辑此页',
  31. // Service Worker 的配置
  32. serviceWorker: {
  33. updatePopup: {
  34. message: "发现新内容可用.",
  35. buttonText: "刷新"
  36. }
  37. },
  38. // 当前 locale 的 algolia docsearch 选项
  39. algolia: {},
  40. nav: [
  41. { text: '嵌套', link: '/zh/nested/' }
  42. ],
  43. sidebar: {
  44. '/zh/': [/* ... */],
  45. '/zh/nested/': [/* ... */]
  46. }
  47. }
  48. }
  49. }
  50. }