React 国际化

在 react 项目中实现国际化的方式有很多种,这篇文章中,我简述一下我平时最常用的国际化的库: react-i18next

依赖安装
// 安装 react-i18next
npm install react-i18next i18next i18next-browser-languagedetector
配置多语言 json

在 src 目录下新建 locales 目录, 并新建 src/locales/en.json 文件和 src/locales/zh.json, 用于配置多种语言。

配置内容示例如下, 您可以根据自己的需求配置:

// src/locales/en.json
{
    "hello":"hello",
    "world":"world"
}
// src/locales/zh.json
{
    "hello":"您好",
    "world":"世界"
}
定义 i18n.js

在 src 目录下新建一个 i18n.js 文件,引入国际化文件

import i18n from "i18next";
import enUsTrans from "./locales/en.json";
import zhCnTrans from "./locales/zh.json";
import {
  initReactI18next
} from 'react-i18next';

i18n
.use(initReactI18next)
.init({
  resources: {
    en: {
      translation: enUsTrans,
    },
    zh: {
      translation: zhCnTrans,
    },
  },
  //默认语言
  fallbackLng: "zh",
  debug: false,
  interpolation: {
    escapeValue: false,
  },
})


export default i18n;

如果想自动根据当前环境设置语言,可以使用 LanguageDetector, 示例如下:

import LanguageDetector from 'i18next-browser-languagedetector';

i18n.use(LanguageDetector)
对内容进行国际化
import './i18n';
import { useTranslation } from 'react-i18next'

function App() {
  const { t } = useTranslation();
  return (
    <div className="App">
      <p>{t('hello')}</p>
	  <p>{t('world')}</p>
    </div>
  );
}

export default App;
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值