欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

react國(guó)際化化插件react-i18n-auto使用詳解

 更新時(shí)間:2020年03月31日 11:32:42   作者:Mr18  
這篇文章主要介紹了react國(guó)際化化插件react-i18n-auto使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

react-i18n-auto專門(mén)為中文國(guó)際化提供的自動(dòng)化方案,快速迭代國(guó)際化開(kāi)發(fā),方法如下

安裝

npm install react-i18n-auto --save-dev

第一步:添加babel插件配置(.babelrc添加方式)

 {
 "plugins": [
  "@babel/plugin-transform-runtime",
  "react-i18n-auto",
  "..."
 ]
 }

第二步:添加自動(dòng)化配置 i18n.config.js

const generator = require('react-i18n-auto/generator')
const path = require('path')

generator.gen({

 excluded: /node_modules|output/, //排除文件選項(xiàng)(默認(rèn)為:/node_modules/)

 src: path.resolve(__dirname, './code'), //源文件目錄(必選)

 outputPath: path.resolve(__dirname, './output'), //國(guó)際化配置輸出目錄(必選)

})

然后運(yùn)行 node i18n.config.js 自動(dòng)生成配置文件,將localePolyfill.js,localeUtils.js,語(yǔ)言包文件自動(dòng)生成到outputPath目錄下

localePolyfill.js暴露全局方法 $AI, $$AI 和全局變量 LOCALE (語(yǔ)言包),LOCALE_VERSION (語(yǔ)言包版本)

更多配置請(qǐng)移步至react-i18n-auto github主頁(yè)

第三步:修改webpack配置,為每一個(gè)entry入口添加localePolyfill.js

// webpack.config.js
const path = require('path')
module.exports = {
 entry: {
 main: [
  path.resolve(__dirname, './output/localePolyfill.js'),
  path.resolve(__dirname, './src/index.js')
 ],
 ...
 },

第四步:修改當(dāng)前語(yǔ)言(中文無(wú)需加載語(yǔ)言包)

import React from 'react'
import en_US from '../output/en_US/locale'
import localeUtils from '../output/localeUtils'

localeUtils.locale(en_US)
// lolale.js
module.exports = {
 'I_2gaaanh': 'Student',
 'I_2aq02r1': 'Teacher'
}

第五步:唯一的額外的工作,動(dòng)態(tài)加載語(yǔ)言包時(shí)(如果語(yǔ)言包已提前加載則無(wú)需此操作)

修改前

// const.js 
export default Const = {
 SelectOptions:[
 {
  name:'學(xué)生',
  value:'student',
 },
 {
  name:'教師',
  value:'teacher',
 },
 ]
}
// app.js
import React from 'react'
import Const from './const'

export default class App extends React.Component {
 render () {
 return <select>
  {
  Const.selectOptions.map(item => {
   return <option key={item.value} value={item.value}>
    {item.name}
   </option>
  })
  }
 </select>
 }
}

由于const為常量,當(dāng)語(yǔ)言包LOCALE更新時(shí),const并不會(huì)得到更新,需要手動(dòng)調(diào)用$AI,類似的情況都需要手動(dòng)更新

修改后

import React from 'react'
import Const from './const'

export default class App extends React.Component {
 render () {
 return <select>
  {
  Const.selectOptions.map(item => {
   return <option key={item.value} value={item.value}>
   {$AI(item.$_name, item.name)} {/*唯一需要修改的地方*/}
   </option>
  })
  }
 </select>
 }
}

// 編譯后的const.js
// 所有的中文對(duì)應(yīng)的字段,自動(dòng)添加$_前綴,值為對(duì)應(yīng)中文的uuidKey

export default Const = {
 selectOptions: [{
 name: '學(xué)生',
 $_name: "I_2gaaanh",
 value: 'student'
 }, {
 name: '教師',
 $_name: "I_2aq02r1",
 value: 'teacher'
 }]
};

ps :通過(guò)代理getter,或提前加載語(yǔ)言包則可跳過(guò)步驟5,具體方法可自行嘗試

結(jié)束

編譯前后代碼對(duì)照,不污染源碼,無(wú)痕開(kāi)發(fā)

import React from 'react'
export default class App extends React.Component {
 render () {
 return <div>
  <header>這是標(biāo)題</header>
  <div title='這是提示文字'>
  <p>這是內(nèi)容</p>
  </div>
  <footer>{this.state.title}</footer>
 </div>
 }
}
import React from 'react'
export default class App extends React.Component {
 render () {
 return <div>
  <header>{$AI('I_5wtgbv1', '這是標(biāo)題')}</header>
  <div title={$AI('I_7reuhi4', '這是提示文字')}>
  <p>{$AI('I_4ximl4b', '這是內(nèi)容')}</p>
  </div>
  <footer>{this.state.title}</footer>
 </div>
 }
}

到此這篇關(guān)于react國(guó)際化化插件react-i18n-auto使用詳解的文章就介紹到這了,更多相關(guān)react i18n auto 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用React手寫(xiě)一個(gè)對(duì)話框或模態(tài)框的方法示例

    使用React手寫(xiě)一個(gè)對(duì)話框或模態(tài)框的方法示例

    這篇文章主要介紹了使用React手寫(xiě)一個(gè)對(duì)話框或模態(tài)框的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • React特征Form?單向數(shù)據(jù)流示例詳解

    React特征Form?單向數(shù)據(jù)流示例詳解

    這篇文章主要為大家介紹了React特征Form?單向數(shù)據(jù)流示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 路由react-router-dom的基本使用教程

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

    在React中,路由是一套映射規(guī)則,是URL路徑與組件的對(duì)應(yīng)關(guān)系。使用React路由,就是配置路徑和組件的對(duì)應(yīng)關(guān)系,這篇文章主要介紹了路由react-router-dom的使用,需要的朋友可以參考下
    2023-02-02
  • React-Native 橋接iOS原生開(kāi)發(fā)詳解

    React-Native 橋接iOS原生開(kāi)發(fā)詳解

    本篇文章主要介紹了React-Native 橋接iOS原生開(kāi)發(fā)詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • react echarts刷新不顯示問(wèn)題的解決方法

    react echarts刷新不顯示問(wèn)題的解決方法

    最近在寫(xiě)項(xiàng)目的時(shí)候遇到了一個(gè)問(wèn)題,當(dāng)編輯完代碼后echarts圖正常展示 , 可再次刷新頁(yè)面 , echarts會(huì)消失,所以本文給大家介紹了react echarts刷新不顯示問(wèn)題原因和解決方法,需要的朋友可以參考下
    2024-02-02
  • Ant Design中使用css切換的問(wèn)題及解決

    Ant Design中使用css切換的問(wèn)題及解決

    這篇文章主要介紹了Ant Design中使用css切換的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • React實(shí)現(xiàn)頁(yè)面狀態(tài)緩存(keep-alive)的示例代碼

    React實(shí)現(xiàn)頁(yè)面狀態(tài)緩存(keep-alive)的示例代碼

    因?yàn)?react、vue都是單頁(yè)面應(yīng)用,路由跳轉(zhuǎn)時(shí),就會(huì)銷毀上一個(gè)頁(yè)面的組件,但是有些項(xiàng)目不想被銷毀,想保存狀態(tài),本文給大家介紹了React實(shí)現(xiàn)頁(yè)面狀態(tài)緩存(keep-alive)的代碼示例,需要的朋友可以參考下
    2024-01-01
  • React 高階組件HOC用法歸納

    React 高階組件HOC用法歸納

    高階組件就是接受一個(gè)組件作為參數(shù)并返回一個(gè)新組件(功能增強(qiáng)的組件)的函數(shù)。這里需要注意高階組件是一個(gè)函數(shù),并不是組件,這一點(diǎn)一定要注意,本文給大家分享React 高階組件HOC使用小結(jié),一起看看吧
    2021-06-06
  • React構(gòu)建組件的幾種方式及區(qū)別

    React構(gòu)建組件的幾種方式及區(qū)別

    這篇文章主要介紹了React構(gòu)建組件的幾種方式及區(qū)別,組件就是把圖形、非圖形的各種邏輯均抽象為一個(gè)統(tǒng)一的概念來(lái)實(shí)現(xiàn)開(kāi)發(fā)的模式文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-08-08
  • React?TypeScript?應(yīng)用中便捷使用Redux?Toolkit方法詳解

    React?TypeScript?應(yīng)用中便捷使用Redux?Toolkit方法詳解

    這篇文章主要為大家介紹了React?TypeScript?應(yīng)用中便捷使用Redux?Toolkit方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評(píng)論