React国际化——多语言切换

1.安装react-intl-universal:npm install react-intl-universal --save

2.配置语言包,json文件根据需要支持几种语言决定(将新建的语言包json文件放置于项目根目录的./public/locales下):

         

 

 3.引入react-intl-universal:import intl from "react-intl-universal";

           引入axios:import axios from 'axios';

 4.核心代码:

  const SUPPOER_LOCALES = [
  {
    name: "中文",
    value: "zh-CN"
  },
  {
    name: "English",
    value: "en-US"
  },
];

class App extends React.Component {

state = {
    initDone: false,
    language: "zh-CN",
  }

  componentDidMount() {
    this.loadLocales(this.state.language);
  }
 loadLocales(val) {
    let currentLocale = val
    axios.get(`locales/${currentLocale}.json`)
      .then(res => {
        console.log("App locale data", res.data);
        // Init方法将根据当前的本地数据加载本地数据
        return intl.init({
          currentLocale,
          locales: {
            [currentLocale]: res.data
          }
        });
      })
      .then(() => {
        // 在加载locale数据后,开始呈现
        this.setState({ initDone: true });
      });
  }

}

        

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值