Pagic

国际化

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