--- title: 国际化 icon: material-symbols-light:language createTime: 2024/03/05 10:01:26 permalink: /guide/locales/ tags: - 指南 - i18n --- 本指南将帮助您快速为 VuePress 主题配置多语言支持。通过简单的目录结构和配置调整,即可实现专业的国际化站点。 ## 目录结构规划 首先创建符合多语言要求的目录结构。以下示例展示支持中文、英文和法文的项目布局: ::: 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` 中声明默认语言: ```ts title=".vuepress/config.ts" twoslash import { defineUserConfig } from 'vuepress' export default defineUserConfig({ // 设置默认语言代码 lang: 'zh-CN', // [!code ++] // 配置多语言支持 locales: { '/': { lang: 'zh-CN', title: '博客' }, // 简体中文作为默认语言 } }) ``` ### 添加其他语言支持 扩展 `locales` 配置来支持更多语言: ```ts title=".vuepress/config.ts" twoslash import { defineUserConfig } from 'vuepress' export default defineUserConfig({ lang: 'zh-CN', locales: { '/': { lang: 'zh-CN', title: '博客' }, // 简体中文 '/en/': { lang: 'en-US', title: 'Blog' }, // 美式英语 // [!code ++] '/fr/': { lang: 'fr-FR', title: 'Le blog' }, // 法语 // [!code ++] } }) ``` **配置要点**: - `locales` 的键名(如 `/en/`)对应文档目录中的语言文件夹名称 - 这些键名同时作为各语言页面的访问路径前缀 - 每个语言必须设置正确的 `lang` 属性,即使只使用单一语言 ::: tip 语言代码规范 - **路径键名**:遵循 [ISO 639](https://zh.wikipedia.org/wiki/ISO_639-1) 标准(如英语使用 `/en/`) - **语言代码**:使用 [BCP47](https://www.ietf.org/rfc/bcp/bcp47.txt) 标准格式(如英语使用 `en-US`) ::: ## 主题多语言配置 在主题配置中通过 `locales` 字段为每种语言定制化界面元素: ```ts title=".vuepress/config.ts" twoslash import { defineUserConfig } from 'vuepress' import { plumeTheme } from 'vuepress-theme-plume' export default defineUserConfig({ lang: 'zh-CN', // [!code focus:6] locales: { '/': { lang: 'zh-CN', title: '博客' }, '/en/': { lang: 'en-US', title: 'Blog' }, '/fr/': { lang: 'fr-FR', title: 'Le blog' }, }, theme: plumeTheme({ // 主题级多语言配置 locales: { // [!code focus:20] // 简体中文配置 '/': { selectLanguageName: '简体中文', navbar: [ { text: '首页', link: '/' }, { text: '博客', link: '/blog/' }, ] }, // 英文配置 '/en/': { selectLanguageName: 'English', navbar: [ { text: 'Home', link: '/en/' }, { text: 'Blog', link: '/en/blog/' }, ] }, // 法文配置 '/fr/': { // [!code focus:7] selectLanguageName: 'Français', navbar: [ { text: 'Accueil', link: '/fr/' }, { text: 'Le Blog', link: '/fr/blog/' }, ] } } }) }) ``` **关键配置项**: - `selectLanguageName`:在语言选择器中显示的语言名称 - `navbar`:各语言独有的导航栏配置 - 所有主题配置项均支持在 `locales` 中按语言重写 ## 配置一致性要求 确保 VuePress 配置与主题配置的路径键名完全匹配: ```ts export default { // VuePress 配置 locales: { '/': { /* 中文配置 */ }, '/en/': { /* 英文配置 */ }, }, // 主题配置 theme: plumeTheme({ locales: { '/': { /* 中文主题配置 */ }, '/en/': { /* 英文主题配置 */ } } }) } ``` ## 扩展阅读 - [主题 Locales 配置](../../config/theme.md#locale-配置) - 了解各语言专属的主题行为配置 - [多语言文本配置](../../config/locales.md) - 掌握界面文本的国际化定制方法 通过以上配置,您的文档站点将具备完整的多语言支持能力,为用户提供更友好的国际化访问体验。