国际化

为您的 shadcn-nuxt-docs 设置国际化 (i18n) 的指南

配置国际化

添加 i18n 配置

首先,您需要将 i18n 配置添加到您的 Nuxt.js 项目中。打开您的 nuxt.config.ts 文件并添加以下配置:

nuxt.config.ts
export default defineNuxtConfig({
  // Other nuxt configurations ...
  i18n: {
    defaultLocale: 'en',
    locales: [
      {
        code: 'en',
        name: 'English',
        language: 'en-US',
      },
      {
        code: 'xx', // language 2 letters code (e.g. 'fr')
        name: 'Xxxxx', // language name (e.g. 'Français')
        language: 'xx-XX', // language ISO code (e.g. 'fr-FR')
      },
    ],
  },
});

组织您的内容文件

要支持多种语言,您需要按照特定的目录结构组织您的内容文件。遵循以下文件树结构:

  • content 目录包含您的默认语言内容文件。
  • content 内的 xx 目录包含您的内容文件的翻译,xx 是语言代码(例如,法语的 fr/index.md)。

创建 i18n/i18n.config.ts

接下来,创建一个名为 i18n/i18n.config.ts 的新文件。此文件将包含您的 i18n 消息翻译配置。将以下代码添加到文件中:

i18n/i18n.config.ts
import { defineI18nConfig } from '@nuxtjs/i18n';

export default defineI18nConfig(() => ({
  legacy: false,
  locale: 'en',
  messages: {
    en: {
      // Add here all english strings defined in app.config.ts e.g. titles in header.nav or toc.title
      // Default UI strings are already translated out of the box

      shiki: 'shiki', // for example: site title
    },
    xx: {
      // Add here all translation

      shiki: '式', // for example: site title
    },
  },
}));

UI 翻译

UI 语言环境将跟随语言切换器中选择的语言。以下语言提供开箱即用的 UI 翻译:

  • en (English)
  • fr (Français)
  • zh-CN (简体中文)
  • zh-TW (繁體中文)
  • ja (日本語)
  • km (ភាសាខ្មែរ)
  • ru (Русский)
  • ko (한국어)
  • hi (हिन्दी)
  • bn (বাংলা)

或者,如果您想添加自己的翻译,可以按照 i18n/i18n.config.ts 文件中的结构进行操作。只需在相应的语言对象中添加您想要翻译的键的翻译即可。