跳转到内容

国际化(i18n)

ShokaX 内置了完整的国际化(i18n)支持,基于 i18next 实现。你可以在 src/theme.config.ts 中轻松切换网站界面语言。

ShokaX 目前支持 4 种语言,覆盖了 244 个翻译条目

语言代码语言名称翻译文件
zh-CN简体中文src/i18n/locales/zh-CN.json (默认)
zh-TW繁体中文src/i18n/locales/zh-TW.json
ja日语src/i18n/locales/ja.json
en英语src/i18n/locales/en.json

src/theme.config.ts 中设置 locale 字段:

src/theme.config.ts
export default defineConfig({
siteName: "My Blog",
locale: "en", // 切换为英语
});
src/theme.config.ts
export default defineConfig({
siteName: "私のブログ",
locale: "ja", // 切换为日语
});

如果不配置 locale,默认使用简体中文(zh-CN)。

i18n 系统覆盖了网站界面的所有文字,包括:

区域翻译内容
导航栏菜单项文字
文章相关字数统计、阅读时间、作者、链接、版权声明、置顶标识、加密提示
分类/标签/归档页面标题、标签云说明
统计KPI 标签、图表标题、月度汇总
侧边栏目录、概览、作者信息、搜索、动态、随机文章、标签云、公告
页脚版权信息、驱动声明、评论提示
搜索搜索提示、开发模式提示
评论Waline 未配置提示、匿名用户
瞬间分页、图片标题
加密文章密码输入提示
图片缩放操作提示
关于弹窗对话提示

如果你需要修改某个翻译文本或添加新的语言,可以直接编辑 src/i18n/locales/ 目录下的 JSON 文件。

以修改英文版的”阅读时间”为例,编辑 src/i18n/locales/en.json

src/i18n/locales/en.json
{
"post": {
"readingTime": "Estimated reading time",
"minutes": "minutes",
"words": "words"
}
}
  1. 复制 src/i18n/locales/en.json 并重命名(如 fr.json
  2. 翻译所有文本
  3. src/toolkit/themeConfig.tsLocale 类型和 src/i18n/index.ts 中添加新语言的支持

ShokaX 的语言解析在 src/toolkit/i18n/resolveLocale.ts 中实现:

  1. 优先使用 theme.config.ts 中配置的 locale
  2. 如果配置无效或缺失,回退到默认值 zh-CN
  3. 有效语言列表:zh-CN, zh-TW, ja, en

Q: 切换语言后,文章内容会翻译吗?

Section titled “Q: 切换语言后,文章内容会翻译吗?”

不会。i18n 只控制网站界面元素(导航栏、侧边栏、页脚、提示文字等),不翻译文章正文内容。

Q: 可以同时支持多语言内容(如中英文文章)吗?

Section titled “Q: 可以同时支持多语言内容(如中英文文章)吗?”

ShokaX 当前版本不内置多语言内容管理。如果你需要发布多语言文章,可以使用以下方式:

  • src/posts/ 下创建 zh/en/ 子目录
  • 在文章 frontmatter 中添加 lang 字段标记
  • 自行处理多语言路由和内容展示

Q: 为什么有些文字没有被翻译?

Section titled “Q: 为什么有些文字没有被翻译?”

可能的原因:

  1. 翻译文件中缺少对应的条目(可以自行添加)
  2. 某些硬编码的文字可能没有通过 i18n 系统

如果你遇到翻译遗漏,可以通过 GitHub 反馈或提 PR 补充。

津 ICP 备2022001375 号
津公网安备 12011402001353 号