(Translated by https://www.hiragana.jp/)
国际化 | VitePress
Skip to content

くに际化

よう使用しようないおけてき i18n (くに际化) こうのう需要じゅよう创建类似于下めんてき录结构:

docs/
├─ es/
│  ├─ foo.md
├─ fr/
│  ├─ foo.md
├─ foo.md

しかきさきざい docs/.vitepress/config.ts なか

ts
import { defineConfig } from 'vitepress'

export default defineConfig({
  // きょうとおる属性ぞくせい其他顶层内容ないよう...

  locales: {
    root: {
      label: 'English',
      lang: 'en'
    },
    fr: {
      label: 'French',
      lang: 'fr', // 选,しょうさく为 `lang` 属性ぞくせい添加てんかいた `html` 标签ちゅう
      link: '/fr/guide' // だま认 /fr/ -- 显示ざい导航栏翻译菜单上,以是外部がいぶてき

      // 其余 locale 特定とくてい属性ぞくせい...
    }
  }
})

下面かめんてきぞく性能せいのう够被ごと个 locale くつがえ盖 (包括ほうかつ root):

ts
interface LocaleSpecificConfig<ThemeConfig = any> {
  lang?: string
  dir?: string
  title?: string
  titleTemplate?: string | boolean
  description?: string
  head?: HeadConfig[] // はたあずか现有てき头部条目じょうもくあい并,じゅう复的もと标签はた动删じょ
  themeConfig?: ThemeConfig // かい进行あさ层合并,つね内容ないようざい顶层てき themeConfig 属性ぞくせいちゅう
}

ゆう关自てい义默认主题的ぶんほんうらないてきしんいき,请参考さんこう DefaultTheme.Config せっこう不要ふようざい locale 级别覆盖 themeConfig.algolia ある themeConfig.carbonAdsそう获取语言搜索そうさくてきしんいき,请参考さんこう Algolia ぶん

提示ていじ配置はいちぶんけん也可以是 docs/.vitepress/config/index.tsつう过为ごと个语げん环境创建いち配置はいちぶんけんしかきさきindex.ts ごう并并导出它们,以更このみてき组织ぶんけん

为本设置

下面かめん一个组织良好的结构:

docs/
├─ en/
│  ├─ foo.md
├─ es/
│  ├─ foo.md
├─ fr/
   ├─ foo.md

ただし,VitePress だま认不かいはた / 重定しげさだこういた /en/需要じゅよう配置はいちふく务器らい实现这いちてんれい如,ざい使用しよう Netlify 时,添加てんかいちdocs/public/_redirects ぶんけん,如下しょしめせ

/*  /es/:splat  302  Language=es
/*  /fr/:splat  302  Language=fr
/*  /en/:splat  302

提示ていじ 如果使用しよう上述じょうじゅつてき方法ほうほう使用しようnf_lang cookie らい保存ほぞんよう户的语言选择。れい如,以在ぬし题中添加てんか以下いかだい码:

ts
// docs/.vitepress/theme/index.ts
import DefaultTheme from 'vitepress/theme'
import Layout from './Layout.vue'

export default {
  extends: DefaultTheme,
  Layout
}
vue
<!-- docs/.vitepress/theme/Layout.vue -->
<script setup lang="ts">
import DefaultTheme from 'vitepress/theme'
import { useData } from 'vitepress'
import { watchEffect } from 'vue'

const { lang } = useData()
watchEffect(() => {
  if (inBrowser) {
    document.cookie = `nf_lang=${lang.value}; expires=Mon, 1 Jan 2030 00:00:00 UTC; path=/`
  }
})
</script>

<template>
  <DefaultTheme.Layout />
</template>

RTL 支持しじ (实验せいこうのう)

支持しじ RTL 需要じゅようざい配置はいちちゅう指定してい dir: 'rtl' 并且使用しよういち些 RTLCSS PostCSS 插件,れいhttps://github.com/MohammadYounes/rtlcss, https://github.com/vkalinichev/postcss-rtl あるもの https://github.com/elchininet/postcss-rtlcss需要じゅよう配置はいち PostCSS 插件,使用しよう :where([dir="ltr"]) :where([dir="rtl"]) さく为前缀,以防止ぼうし CSS とく异性问题。

もと于 MIT 许可发布