在 React 中使用 i18next支持多语言

基本用法

安装依赖包
bash 复制代码
npm i i18next react-i18next i18next-browser-languagedetector --save

i18next 提供了翻译的基本能力;
react-i18next 是 i18next 的一个插件,用来降低 react 的使用成本;
i18next-browser-languagedetector 是用来检测浏览器语言的插件。

创建项目目录

在项目入口文件同级,创建如下目录和文件

封装配置插件

i18n.tsx代码

bash 复制代码
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import enUsTrans from './en-us.json'
import zhCnTrans from './zh-cn.json'

i18n
  // 检测用户当前使用的语言
  // 文档: https://github.com/i18next/i18next-browser-languageDetector
  .use(LanguageDetector)
  // 注入 react-i18next 实例
  .use(initReactI18next)
  // 初始化 i18next
  // 配置参数的文档: https://www.i18next.com/overview/configuration-options
  .init({
    debug: true,
    // supportedLngs: ['zh', 'en'],
    //选择默认语言,选择内容为上述配置中的key,即en/zh
    fallbackLng: 'en',
    interpolation: {
   	  // not needed for react as it escapes by default
      escapeValue: false,
    },
    resources: {
      en: {
      	// 这里是我们的翻译文本
        translation: enUsTrans
      },
      zh: {
        translation: zhCnTrans
      }
    }
  });

export default i18n;

en-us.json是经过专业人士的翻译JSON文件,列举部分代码

bash 复制代码
{ 
  "Dashboard": "Dashboard",
  "Guide": "Guide",
  "FAQ": "FAQ",
  ...
}

zh-cn.json是对应的中文JSON文件,列举部分代码

bash 复制代码
{ 
  "Dashboard": "看板",
  "Guide": "操作指南",
  "FAQ": "常见问题",
  ...
}
在入口文件中引入插件
bash 复制代码
import './locales/i18n.tsx'
在组件中使用时
bash 复制代码
import { useTranslation, Trans } from 'react-i18next';

const Component = () => {
  const { t } = useTranslation();
  return (
    <div> 
        {t('Dashboard')} 
    </div>
  );
}

export default Component;
相关推荐
默_笙2 小时前
😋 我让爬虫终于看到了我的网站,后端同事说"这也行?"(上):SEO 与渲染模式
前端·javascript
feixing_fx2 小时前
告别枯燥字体:Web 字体加载策略与 font-display 最佳实践
前端·css·前端框架·交互·css3
Liora_Yvonne2 小时前
不懂后端,只会 TypeScript,想独立做完整项目?这套全栈底座就是给前端准备的
前端·后端·全栈
前端Hardy2 小时前
GitHub 爆火!236K+ Star!一套 Skills 让 AI 按工程师方式写代码
前端·后端
烬羽2 小时前
AI Coding 全流程实战:从需求到上线,我用 AI 开发了一个 NPM 包
前端·react.js·ai编程
前进的程序员2 小时前
Codex破局:前端组件秒级生成|提速React/Vue开发,可复用提示词+实战调试经验
前端·vue.js·react.js·codex
前端snow3 小时前
ai agent ---output汇总
前端
4311媒体网3 小时前
帝国CMS网站自定义搭建技巧
服务器·开发语言·前端
JunjunZ3 小时前
Vue 3 文件预览的通用设计与实现
前端·vue.js
CappuccinoRose3 小时前
ES6+ 核心语法糖
前端·es6·解构·可选链·空值合并