当前位置:首页 > React

react 如何使用 i18n

2026-01-25 22:51:14React

安装依赖

在React项目中引入i18n功能需要安装react-i18nexti18next库。通过npm或yarn添加依赖:

npm install react-i18next i18next
# 或
yarn add react-i18next i18next

初始化配置

创建i18n配置文件(通常命名为i18n.jsi18n.ts),初始化i18next实例并配置语言资源:

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

i18n.use(initReactI18next).init({
  resources: {
    en: {
      translation: {
        welcome: "Welcome",
        buttonText: "Click me"
      }
    },
    zh: {
      translation: {
        welcome: "欢迎",
        buttonText: "点击我"
      }
    }
  },
  lng: 'en', // 默认语言
  fallbackLng: 'en', // 回退语言
  interpolation: {
    escapeValue: false // React已处理XSS防护
  }
});

export default i18n;

在组件中使用

通过useTranslation钩子或withTranslation高阶组件访问翻译内容:

import React from 'react';
import { useTranslation } from 'react-i18next';

function MyComponent() {
  const { t, i18n } = useTranslation();

  const changeLanguage = (lng) => {
    i18n.changeLanguage(lng);
  };

  return (
    <div>
      <h1>{t('welcome')}</h1>
      <button onClick={() => changeLanguage('zh')}>{t('buttonText')}</button>
    </div>
  );
}

动态加载语言包

对于大型项目,建议按需加载语言文件以避免初始包过大:

// i18n.js配置修改
i18n.use(initReactI18next).init({
  lng: 'en',
  fallbackLng: 'en',
  interpolation: { escapeValue: false },
  backend: {
    loadPath: '/locales/{{lng}}/{{ns}}.json' // 从public/locales加载
  }
});

命名空间管理

通过命名空间分割大型翻译文件:

// 配置多个命名空间
resources: {
  en: {
    common: { /* 通用翻译 */ },
    dashboard: { /* 仪表盘相关 */ }
  }
}

// 组件中使用指定命名空间
const { t } = useTranslation('dashboard');

类型安全(TypeScript)

为翻译键提供类型定义:

react 如何使用 i18n

declare module 'react-i18next' {
  interface CustomTypeOptions {
    resources: {
      translation: typeof enTranslations;
    };
  }
}

分享给朋友:

相关文章

react如何使用

react如何使用

React 的基本使用 React 是一个用于构建用户界面的 JavaScript 库,以下是一些核心概念和使用方法。 安装 React 通过 create-react-app 快速搭建 React…

react架构如何

react架构如何

React 架构核心概念 React 的架构围绕组件化、虚拟 DOM 和单向数据流设计。组件是构建用户界面的独立模块,分为函数组件和类组件。虚拟 DOM 通过高效的 Diff 算法减少直接操作真实 D…

react 如何调试

react 如何调试

调试 React 应用的方法 使用 React Developer Tools 安装 Chrome 或 Firefox 的 React Developer Tools 扩展,可以检查组件树、状态和 p…

react如何迭代

react如何迭代

在 React 中迭代数组或对象 React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法: 使用 map 方法迭代数组 map 是 JavaScript 数组的内置方法,常用于在 Rea…

react 如何操作cookie

react 如何操作cookie

安装依赖 在React项目中操作cookie通常需要第三方库的支持,推荐使用js-cookie。通过npm或yarn安装: npm install js-cookie # 或 yarn add js…

react路由如何使用

react路由如何使用

React 路由的基本使用 React 路由通常通过 react-router-dom 库实现,用于管理单页面应用(SPA)中的页面导航。 安装 react-router-dom: npm ins…