国际化
国际化目前只支持
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;
}