国际化
国际化目前只支持
docs主题
配置§
示例如下:
export default {
i18n: {
languages: [
{ code: 'en', name: 'English', root: '/' },
{ code: 'zh-CN', name: '简体中文', root: '/zh-CN/' },
],
overrides: {
'zh-CN': {
sidebar: {
'/zh-CN/docs/': [
'zh-CN/docs/introduction.md',
'zh-CN/docs/usage.md',
'zh-CN/docs/config.md',
'zh-CN/docs/content.md',
'zh-CN/docs/layout.md',
'zh-CN/docs/themes.md',
'zh-CN/docs/plugins.md',
'zh-CN/docs/blog.md',
'zh-CN/docs/i18n.md',
'zh-CN/docs/deployment.md',
'zh-CN/docs/demos.md',
'zh-CN/docs/limitations.md',
],
},
blog: {
root: '/zh-CN/blog/',
},
},
},
resources: {
'zh-CN': {
translation: {
'A static site generator powered by Deno + React': 'Deno + React 驱动的静态网站生成器',
'Get Started': '开始使用',
Demos: '示例网站',
'Render <1>md/tsx</1> to static HTML page': '支持将 <1>md/tsx</1> 文件渲染成静态页面',
},
},
},
},
};
i18n.language§
i18n.language 表示你的网站支持的语言列表数组,数组的每一项都需要符合 { code:string, name:string, root:string } 的格式,其中:
code是该语言的 ISO Language Code,可以参考这个网站来设置name是该语言展示在语言切换组件中的选项root是该语言所在的根目录,它的值应当总是以斜杠开始,并以斜杠结束
注意,i18n.language 的第一项是网站的默认语言,它的 root 必须是 /。
i18n.overrides§
i18n.overrides 是一个特殊的配置项,它可以允许特定语言下覆盖 pagic.config.ts 中的字段,它的类型是 Record<string, PagicConfig>,其中键必须是 i18n.language 中的 code 字段,值的类型是整个 pagic.config.ts 的类型。当访问该语言的页面时,读取的 pagic.config 会是合并后的结果。
i18n.resources§
i18n.resources 描述了各语言的翻译,tsx 文件中使用的 t('Get Started') 或 <Trans>Render <code>md/tsx</code> to static HTML page</Trans> 将会使用这里配置的翻译资源。t() 和 <Trans> 的具体语法请参考 react-i18next。
props§
i18n 插件会给页面的 props 增加以下几项:
language§
language 表示当前页面的语言,它取自 pagic.config.ts 中的 i18n.languages 中的某一项,故它的类型如下:
interface Language {
code: string;
name: string;
root: string;
}