You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React项目中如何通过select下拉选项切换项目显示语言

React 全局语言切换实现方案

直接用React生态最成熟的react-i18next实现即可,不需要手动写全局状态维护当前语言,自带用户选择缓存、浏览器默认语言检测能力,落地步骤如下:

  • 安装依赖包
npm install i18next react-i18next i18next-browser-languagedetector
  • 编写i18n初始化配置
    在src目录下新建i18n.js文件,写入基础配置:
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';

// 多语言文案映射,文案量大时可以拆成独立JSON文件维护
const resources = {
  en: {
    translation: {
      pageTitle: "My React App",
      langLabel: "Language"
      // 补全所有页面对应的英文文案
    }
  },
  zh: {
    translation: {
      pageTitle: "我的React应用",
      langLabel: "语言"
      // 补全所有页面对应的中文文案
    }
  }
};

i18n
  .use(LanguageDetector) // 自动检测浏览器默认语言、缓存用户手动选择的语言
  .use(initReactI18next)
  .init({
    resources,
    fallbackLng: "en", // 找不到对应翻译时默认回退到英文
    interpolation: {
      escapeValue: false // React自带XSS防护,不需要重复转义
    }
  });

export default i18n;
  • 全局生效配置
    在项目入口文件(src/main.jsx/src/index.js)的最顶部引入配置文件,保证全项目组件都能拿到多语言能力:
import './i18n'
  • 实现下拉语言切换组件
import { useTranslation } from 'react-i18next';

export default function LangSwitch() {
  const { i18n } = useTranslation();
  return (
    <select
      defaultValue={i18n.language}
      onChange={(e) => i18n.changeLanguage(e.target.value)}
    >
      <option value="en">English</option>
      <option value="zh">中文</option>
      {/* 需要新增其他语言直接追加option即可 */}
    </select>
  )
}
  • 业务页面使用多语言文案
    所有需要跟随语言切换更新的文本,都用t()函数包裹即可:
import { useTranslation } from 'react-i18next';
import LangSwitch from './LangSwitch';

export default function Home() {
  const { t } = useTranslation();
  return (
    <div>
      <h1>{t('pageTitle')}</h1>
      <LangSwitch />
    </div>
  )
}

实现效果参考:
语言切换下拉示例

补充说明:

  • 用户手动选择的语言会自动存储在localStorage中,下次访问会默认加载上次选择的语言,不需要额外写存储逻辑
  • 项目文案量大时可以按页面拆分不同语言的JSON文件,做按需加载减少首屏体积
  • 后续扩展其他语言,只需要在resources配置里加对应语言包、下拉组件追加对应选项即可,不需要修改业务代码

内容的提问来源于stack exchange,提问作者Sohaib Ashraf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:27:33