react中使用i18n中英文转换

本文介绍了如何在React项目中实现i18n功能,包括下载依赖、配置locale文件、设置i18n实例并切换语言。关键步骤包括创建locale.json文件存储翻译内容,以及在组件中使用`react-i18next`进行本地化展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、下载对应的依赖包

npm i i18next
npm i react-i18next

2、在项目的public下创建一个locale的文件,在local文件中添加locale.json文件

注意:这个locale.json文件里面存储的就是对应的中英文,内容格式如下

{
    "en":{
        "common":{
            "name":"Name"
        }
    },
    "cn":{
        "common":{
            "name":"名字"
        }
    }
}

3、在layouts文件下引入下面的代码

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
// 初始化i18n
const initI18n = locale => {
    const resources = {
        zh_CN: {
            translation: locale.cn,
        },
        en_US: {
            translation: locale.en,
        },
    };
    i18n.use(initReactI18next) // passes i18n down to react-i18next
        .init({
            resources,
            lng: language ? language : 'zh_CN',
            debug: false,
            // keySeparator: false, // we do not use keys in form messages.welcome
            interpolation: {
                escapeValue: false, // react already safes from xss
            },
        });
};
fetch('/locale/locale.json')
    .then(res => res && res.json())
    .then(data => {
        data && initI18n(data);
    })
    .catch(initI18n({ cn: {}, en: {} }));
export default i18n;

4、使用方法如下

4.1、在需要转换的文件中引入依赖包

import { useTranslation } from 'react-i18next';
const { t } = useTranslation();

 4.2、如果“名字”需要对应的中英文切换,这样做即可

<li>{t('common.name')}</li>

4.3、改变语言状态使用的方法

i18n.changeLanguage()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值