120 lines
2.9 KiB
Markdown
120 lines
2.9 KiB
Markdown
---
|
|
title: 国际化
|
|
author: pengzhanbo
|
|
icon: material-symbols-light:language
|
|
createTime: 2024/03/05 10:01:26
|
|
permalink: /guide/international/
|
|
tags:
|
|
- 指南
|
|
- i18n
|
|
---
|
|
|
|
在主题内实现 ==国际化== 只需要进行一些简单的配置。
|
|
|
|
举一个例子,创建一个 默认语言为 **中文**,并包含 **英语** 和 **法语** 的项目。
|
|
|
|
## 目录
|
|
|
|
首先,需要创建类似于下面的目录结构:
|
|
|
|
::: file-tree
|
|
|
|
- docs
|
|
- en
|
|
- foo.md
|
|
- README.md \# 英文首页
|
|
- fr
|
|
- foo.md
|
|
- README.md \# 法文首页
|
|
- foo.md
|
|
- README.md \# 中文首页
|
|
:::
|
|
|
|
其中,`docs/en/` 用于保存 **英文** 文档,`docs/fr/` 保存 **法文** 文档,而 **中文** 则直接保存在 `docs/` 下。
|
|
|
|
::: important
|
|
在不同的语言目录下,请尽量保持文件名和目录名的一致。这有助于在 切换语言时,主题能够正确的导航到 文章
|
|
的不同的语言版本。
|
|
:::
|
|
|
|
## vuepress 配置
|
|
|
|
接下来,在 `.vuepress/config.ts` 中配置:
|
|
|
|
::: code-tabs
|
|
@tab .vuepress/config.ts
|
|
|
|
```js
|
|
import { defineUserConfig } from 'vuepress'
|
|
|
|
export default defineUserConfig({
|
|
// 声明默认的语言
|
|
lang: 'zh-CN',
|
|
// 多语言下支持的各种语言 locales
|
|
locales: {
|
|
// 配置 不同 path 下的语言
|
|
'/': { lang: 'zh-CN', title: '博客' }, // 默认语言 为 简体中文
|
|
'/en/': { lang: 'en-US', title: 'Blog' }, // 英文
|
|
'/fr/': { lang: 'fr-FR', title: 'Le blog' }, // 法语
|
|
}
|
|
})
|
|
```
|
|
|
|
:::
|
|
|
|
`locales` 中的 `key` 对应着 `docs` 目录下的语言路径,同时,`key` 也将作为 不同语言的页面访问链接的前缀。
|
|
|
|
## 主题配置
|
|
|
|
在主题配置中,同样使用 `locales` 配置项进行多语言配置。
|
|
|
|
`locales` 支持 所有主题配置项。
|
|
|
|
::: code-tabs
|
|
@tab .vuepress/config.ts
|
|
|
|
```js
|
|
import { plumeTheme } from '@vuepress-plume/vuepress-theme-plume'
|
|
import { defineUserConfig } from 'vuepress'
|
|
|
|
export default defineUserConfig({
|
|
lang: 'zh-CN',
|
|
locales: {
|
|
'/': { lang: 'zh-CN', title: '博客' }, // 默认语言 为 简体中文
|
|
'/en/': { lang: 'en-US', title: 'Blog' }, // 英文
|
|
'/fr/': { lang: 'fr-FR', title: 'Le blog' }, // 法语
|
|
},
|
|
theme: plumeTheme({
|
|
// 主题内的多语言配置
|
|
locales: {
|
|
'/': {
|
|
// 当前语言显示在导航栏多语言下拉菜单的文本
|
|
selectLanguageName: '简体中文',
|
|
navbar: [
|
|
{ text: '首页', link: '/' },
|
|
{ text: '博客', link: '/blog/' },
|
|
]
|
|
},
|
|
'/en/': {
|
|
selectLanguageName: 'English',
|
|
navbar: [
|
|
{ text: 'Home', link: '/en/' },
|
|
{ text: 'Blog', link: '/en/blog/' },
|
|
]
|
|
},
|
|
'/fr/': {
|
|
selectLanguageName: 'Français',
|
|
navbar: [
|
|
{ text: 'Accueil', link: '/fr/' },
|
|
{ text: 'Le Blog', link: '/fr/blog/' },
|
|
]
|
|
}
|
|
}
|
|
})
|
|
})
|
|
```
|
|
|
|
:::
|
|
|
|
更多 `locales` 配置请查看 [主题配置 > Locales 配置](../config/主题配置.md#locale-配置)
|