我的编程空间,编程开发者的网络收藏夹
学习永远不晚

React 中使用 react-i18next 国际化的过程(react-i18next 的基本用法)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

React 中使用 react-i18next 国际化的过程(react-i18next 的基本用法)

本文使用 React-i18next 库结合 React, 介绍如何在 React 中配置使用国际化。
官方地址:i18next | react-i18next

简介

react-i18next 是基于 i18next 的一款强大的国际化框架,可以用于 react 和 react-native 应用;
react-i18next 特点:

  • 提供多种组件可以在hoc, hook 和 class 的情况下进行国际化操作;
  • 基于 i18next 不仅限于react,学一次就可以用在其它地方;
  • 适合服务器的渲染;
  • 有许多插件的支持,比如可以用插件检测当前系统的语言环境,从服务器或者文件系统加载翻译资源;

安装与使用

安装

# npm
npm install react-i18next i18next --save
# 如果需要检测当前浏览器的语言或者从服务器获取配置资源可以安装下面依赖
npm install i18next-http-backend i18next-browser-languagedetector --save

准备新建一个 React 项目,安装依赖包;

npm install react-i18next i18next --save

2.新建文件 en.jsonzh.json;

class="lazy" data-src\react-i18next\locales\en.json

{
	title: "Hello Word"
}

class="lazy" data-src\react-i18next\locales\zh.json

{
	title: "你好 世界"
}

3.新建 resources.jsi18n.js;

class="lazy" data-src\react-i18next\locales\resources.js

import ja from "./ja.json";
import en from "./en.json";
import zh from "./zh.json";

export const resources = {
	"ja": {
		translation: ja
	},
	"en": {
		translation: en
	},
	"zh": {
		translation: zh
	}
}

class="lazy" data-src\react-i18next\i18n.js

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import { resources } from './locales/resources';

i18n
	// 将 i18n 实例传递给 react-i18next
	.use(initReactI18next)
	// 初始化 i18next
	// 所有配置选项: https://www.i18next.com/overview/configuration-options
	.init({
		resources,
		fallbackLng: "zh",
		lng: "zh",
		debug: true,
		interpolation: {
			escapeValue: false, // not needed for react as it escapes by default
		}
	});

export default i18n;

使用

1.在程序入口引入 i118n;

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import "./react-i18next/i18n";

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
	<App />
  </React.StrictMode>
);

2.在 Hooks 中使用国际化;

import { useTranslation } from "react-i18next";

function App() {
  const { t } = useTranslation();
  return (
	<div className="App">
	  {t("title")}
	</div>
  );
}

export default App;

3.在 class 组件中使用国际化;

import React from "react";
import { withTranslation } from "react-i18next";

class App extends React.Component {

  render() {
	const { t } = this.props;
	return (<div className="App">
	  {t("title")}
	</div>);
  }
}

export default withTranslation()(App);

检测当前浏览器语言国际化组件

1.安装依赖

npm install i18next-browser-languagedetector --save

2.配置使用插件

// class="lazy" data-src\react-i18next\i18n.js
import i18n from 'i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import { initReactI18next } from 'react-i18next';
import { resources } from './locales/resources';

i18n
	// 检测用户语言
	// 操作文档: https://github.com/i18next/i18next-browser-languageDetector
	.use(LanguageDetector)
	// 将 i18n 实例传递给 react-i18next
	.use(initReactI18next)
	// 初始化 i18next
	// 所有配置选项: https://www.i18next.com/overview/configuration-options
	.init({
		resources,
		fallbackLng: "en",
		lng: navigator.language,
		debug: true,
		interpolation: {
			escapeValue: false, // not needed for react as it escapes by default
		}
	});

export default i18n;

上面代码,首先导入 LanguageDetector,其次 use(LanguageDetector), 使用插件,最终在 init 配置项里配置 lng: navigator.language, 至此切换浏览器语言国际化组件完成;

手动切换国际化语言

// class 组件
const { t, i18n } = this.props;
i18n.changeLanguage("en"); 		// 手动切换到英文

// Hooks 组件
const { t, i18n } = useTranslation();
i18n.changeLanguage("zh"); 		// 手动切换到中文

总结

i18next 是一款强大的国际化框架,react-i18next 是基于 i18next 适用于 React 的框架,另外 i18next 还和很多的前端框架可以结合,所以只需要学习一次,学习成本低;
本文介绍了 react-i18next 的基本用法,如果更特殊的需求,文章开头的官方地址可以找到答案;

到此这篇关于React 中使用 react-i18next 国际化的文章就介绍到这了,更多相关React 使用 react-i18next 国际化内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

React 中使用 react-i18next 国际化的过程(react-i18next 的基本用法)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

React 中使用 react-i18next 国际化的过程(react-i18next 的基本用法)

i18next 是一款强大的国际化框架,react-i18next 是基于 i18next 适用于 React 的框架,本文介绍了 react-i18next 的基本用法,如果更特殊的需求,文章开头的官方地址可以找到答案
2023-01-06

在 React 中使用 i18next的示例

react-i18next是i18next的一个插件,用来降低react的使用成本,i18next-browser-languagedetector是用来检测浏览器语言的插件,这篇文章主要介绍了在 React 中使用 i18next的示例,需要的朋友可以参考下
2023-01-06

路由react-router-dom的基本使用教程

在React中,路由是一套映射规则,是URL路径与组件的对应关系。使用React路由,就是配置路径和组件的对应关系,这篇文章主要介绍了路由react-router-dom的使用,需要的朋友可以参考下
2023-02-02

react-navigation6.x路由库的基本使用方法是什么

这篇文章主要讲解了“react-navigation6.x路由库的基本使用方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react-navigation6.x路由库的基本使用方法是
2023-06-25

面试官:说说你在使用React 过程中遇到的常见问题?解决方案?

在使用react开发项目过程中,每个人或多或少都会遇到一些\"奇怪\"的问题,本质上都是我们对其理解的不够透彻。

Python格式化字符串在实际操作过程中的使用方法

这篇文章主要讲解了“Python格式化字符串在实际操作过程中的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python格式化字符串在实际操作过程中的使用方法”吧!Python格式化
2023-06-17

编程热搜

目录