当前位置:首页 > 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实例并配置语言资源:

react 如何使用 i18n

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>
  );
}

动态加载语言包

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

react 如何使用 i18n

// 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)

为翻译键提供类型定义:

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

分享给朋友:

相关文章

react moment如何使用

react moment如何使用

安装 react-moment 通过 npm 或 yarn 安装 react-moment 包。确保项目中已安装 moment.js,因为 react-moment 依赖它。 npm install…

react native如何启动

react native如何启动

如何启动 React Native 项目 安装 Node.js 和 npm 确保已安装 Node.js(建议版本 16 或更高)和 npm(Node.js 自带)。可通过以下命令检查版本: nod…

react 如何执行

react 如何执行

安装 Node.js 和 npm React 开发需要 Node.js 环境,因为它提供了 npm(或 yarn)包管理工具。从 Node.js 官网 下载并安装最新 LTS 版本。安装完成后,在终端…

java如何使用

java如何使用

Java 基本使用方法 Java 是一种广泛使用的编程语言,适用于开发各种类型的应用程序。以下是 Java 的基本使用方法,包括环境配置、语法基础和常用操作。 安装 Java 开发环境 下载并安装…

如何react页面

如何react页面

创建 React 页面 使用 create-react-app 快速初始化项目: npx create-react-app my-app cd my-app npm start 基础页面结构 在…

如何优化react

如何优化react

优化 React 性能的方法 使用 React.memo 或 PureComponent 对于函数组件,使用 React.memo 进行记忆化,避免不必要的重新渲染。类组件可以使用 PureCompo…