i18next国际化语言的使用

安装

npm install react-i18next i18next --save

创建文件夹与文件
在这里插入图片描述
以下只展示了三个文件的语言例子
中文(zh_CN.json):

{
		"text":"测试",
		"day":"天"
}

白俄罗斯(be_BY.json):

{ 
	"text":"Праверка",
	"day":"дзень"
}

韩语(ko_KR.json):

{
	"text":"테스트 하 다.",
	"day":"하늘."
}

引入
在src目录下创建i18n.ts(项目是react+typescript来写的)
npm安装一下 i18next-browser-languagedetector
然后下面是这个文件的所有结构

import LanguageDetector from 'i18next-browser-languagedetector';
import i18n from 'i18next';
import en_US from './locales/en_US.json';
import zh_CN from './locales/zh_CN.json';
import ko_KR from './locales/ko_KR.json';
import ja_JP from './locales/ja_JP.json';
import be_BY from './locales/be_BY.json';

import {initReactI18next} from 'react-i18next';

let lang = localStorage.getItem("language");
if (!lang) {
    lang = 'zh_CN';
    localStorage.setItem("language", 'zh_CN');
}
i18n
    .use(LanguageDetector)
    .use(initReactI18next)
    .init({
        resources: {
            en_US: {
                translation: en_US,
            },
            zh_CN: {
                translation: zh_CN,
            },
            ko_KR: {
                translation: ko_KR,
            },
            ja_JP: {
                translation: ja_JP,
            },
            be_BY: {
                translation: be_BY,
            },
        },
        fallbackLng: lang,
        debug: false,
        interpolation: {
            escapeValue: false,
        },
    });

export default i18n;

使用
在要使用的文件里使用

import i18n from './i18n'
<div>{i18n.t("day")}</div>  //天
<button onClick={()=>alert(i18n.t("text"))}>测试一下</button>
//如果要切换其他语言,需要去设置更改
  • 23
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
i18next是一个用于国际化的JavaScript库,可以帮助我们在HTML页面上进行国际化。它提供了一种简单而灵活的方式来实现多语言网站。 首先,我们需要引入i18next的脚本文件,并初始化i18next。在初始化时,我们需要指定一些设置,比如默认语言、加载语言文件的路径等。 然后,我们需要创建语言文件,每个语言对应一个json文件。这些文件包含了相应语言的翻译文本。例如,如果我们支持英语和中文,那么就需要创建两个文件,一个是en.json,另一个是zh.json。 在HTML页面中,我们可以使用特定的HTML标记来标识需要翻译的文本。使用i18next提供的API,我们可以将这些文本实时地翻译成当前选择的语言。 例如,我们可以在需要翻译的文本周围添加data-i18n属性,并将其值设置为对应的翻译键。通过调用i18next的t()函数,我们可以将翻译键转换为实际文字。 同时,我们还可以在JavaScript代码中使用i18next来动态地翻译文本。比如,我们可以通过调用i18n.t()函数,根据当前语言环境来生成动态的文本。 在页面加载时,我们可以通过设置语言选择器来允许用户切换不同的语言i18next提供了一些功能,比如自动检测浏览器语言、持久化语言选择等。 总的来说,通过使用i18next,我们可以实现HTML页面的国际化,让用户可以选择他们习惯使用语言,使网站具有更好的用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值