react之umi配置國(guó)際化語(yǔ)言locale的踩坑記錄
umi配置國(guó)際化語(yǔ)言locale的踩坑
因?yàn)轫?xiàng)目創(chuàng)建的比較早,用的是umi2+版本,修改默認(rèn)語(yǔ)言是英文,官方說(shuō)直接改配置的defalut,但是我改完并不生效,可能是我的版本呢原因,找了好久,總算找到解決辦法的方法了。
其中我的項(xiàng)目版本使用的umi和國(guó)際化插件如下:
"umi": "^2.4.4", "umi-plugin-react": "^1.7.2"
1 修改默認(rèn)顯示語(yǔ)言,方法如下

2 再在app.js加入一下代碼

小小的問(wèn)題,可能是版本的原因,嘗試了好久,也是挺折騰人的…
react-umi 國(guó)際化 (中英文切換)
.umirc.js國(guó)際化默認(rèn)配置
export default {
? plugins: [
? ? [
? ? ? 'umi-plugin-react',
? ? ? {
? ? ? ? locale: {
? ? ? ? ? default: 'zh-CN', //默認(rèn)語(yǔ)言 zh-CN
? ? ? ? ? baseNavigator: true, // 為true時(shí),用navigator.language的值作為默認(rèn)語(yǔ)言
? ? ? ? ? antd: true // 是否啟用antd的<LocaleProvider />
? ? ? ? }
? ? ? }
? ? ]
? ]
};目錄及約定
```javascript ├── dist/ ? ? ? ? ? ? ? ? ? ? ? ? ? ├── mock/ ? ? ? ? ? ? ? ? ? ? ? ?? └── src/ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ├── layouts/index.js ? ? ? ? ? ? ? ├── pages/ ? ? ? ? ? ? ? ? ? ? ? ? └── locales ? ? ? ? ? ? ? // 多語(yǔ)言文件存放目錄,里面的文件會(huì)被umi自動(dòng)讀取 ? ? ? ? ├── zh-CN.js ? ? ? ? └── en-US.js ? ? ? ? ? ? ?? ├── .umirc.js ? ? ? ? ? ? ? ? ? ?? ├── .env ? ? ? ? ? ? ? ? ? ? ? ? ? └── package.json
多語(yǔ)言文件約定 多語(yǔ)言文件的命名規(guī)范:-.js 多語(yǔ)言文件的內(nèi)容規(guī)范:鍵-值組成的字面量,如下: zh-CN.js
zh-CN.js
export default {
? WELCOME_TO_UMI_WORLD: '{name},歡迎光臨umi的世界',
}en-US.js`
export default {//前面即ID,后面顯示的內(nèi)容
? WELCOME_TO_UMI_WORLD: '{name}, welcome to umi\'s world',
}使用
import { formatMessage, setLocale, getLocale, FormattedMessage } from 'umi/locale'
//setLocale('en-US') 設(shè)置默認(rèn)
//getLocale 獲取當(dāng)前語(yǔ)言
//setLocale 切換語(yǔ)言傳參文件夾名字
//FormattedMessage 通過(guò)id渲染
//標(biāo)簽---主要
// 設(shè)置為 en-US
setLocale('en-US')
// 獲取當(dāng)前語(yǔ)言
console.log(getLocale() === 'en-US')
//使用標(biāo)簽 此處id為en-us文件夾和zh-cn文件夾的id, id后面的內(nèi)容會(huì)自動(dòng)顯示到標(biāo)簽上
<FormattedMessage id="WELCOME_TO_UMI_WORLD" }/>
//------次要了解
// 獲取指定文字的多語(yǔ)言版本
const formatedText = formatMessage({
? id: 'WELCOME_TO_UMI_WORLD'
}, {
? name: '小伙子',
})
console.log(formatedText === '小伙子,歡迎光臨umi的世界')
// 渲染一個(gè)文字標(biāo)簽
function Example() {
? return <FormattedMessage id="WELCOME_TO_UMI_WORLD" values={{ name: '小伙子' }} />
}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
react axios配置代理(proxy),如何解決本地開(kāi)發(fā)時(shí)的跨域問(wèn)題
這篇文章主要介紹了react axios配置代理(proxy),如何解決本地開(kāi)發(fā)時(shí)的跨域問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
React+valtio響應(yīng)式狀態(tài)管理
Valtio是一個(gè)很輕量級(jí)的響應(yīng)式狀態(tài)管理庫(kù),使用外部狀態(tài)代理去驅(qū)動(dòng)React視圖來(lái)更新,本文主要介紹了React+valtio響應(yīng)式狀態(tài)管理,感興趣的可以了解一下2023-12-12
基于React Context實(shí)現(xiàn)一個(gè)簡(jiǎn)單的狀態(tài)管理的示例代碼
本文主要介紹了基于React Context實(shí)現(xiàn)一個(gè)簡(jiǎn)單的狀態(tài)管理的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
React實(shí)現(xiàn)基于Antd密碼強(qiáng)度校驗(yàn)組件示例詳解
這篇文章主要為大家介紹了React實(shí)現(xiàn)基于Antd密碼強(qiáng)度校驗(yàn)組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
React特征Form?單向數(shù)據(jù)流示例詳解
這篇文章主要為大家介紹了React特征Form?單向數(shù)據(jù)流示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
關(guān)于hooks中useEffect()的使用總結(jié)
這篇文章主要介紹了關(guān)于hooks中useEffect()的使用總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
淺談react?16.8版本新特性以及對(duì)react開(kāi)發(fā)的影響
本文主要介紹了react?16.8版本新特性以及對(duì)react開(kāi)發(fā)的影響,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

