JavaScript @umijs/plugin-locale插件使用教程
介紹
plugin-locale是一個(gè)國際化的插件,用于解決i18n問題,約定式的多語言支持,可以進(jìn)行多個(gè)國際語言的切換
啟用方式
在umirc.ts文件中配置locale:{}開啟
使用
在src下創(chuàng)建一個(gè)locales文件夾,在文件夾下配置我們的語言文件
中文語言文件:zh-CN.js
export default { WELCOME_TO_UMI_WORLD: '{name},歡迎光臨umi的世界', };
英文語言文件:en-US.js
export default { WELCOME_TO_UMI_WORLD: "{name}, welcome to umi's world", };
注意:如果項(xiàng)目配置了singular: true
,locales
要改成locale
App.ts配置
import zhTW from 'antd/es/locale/zh_TW'; import {addLocale} from 'umi' // 動(dòng)態(tài)增加新語言 addLocale( 'zh-TW', { // id 列表 name: '妳好,{name}', }, { momentLocale: 'zh-tw', antd: zhTW, }, );
動(dòng)態(tài)的增加語言,增加語言之后可以通過getAllLocales獲取列表
addLocale 三個(gè)參數(shù)。
name
語言的 key。例如 zh-TWmessage
語言的 id 列表。 例如:{// id 列表 name: '妳好,{name}',}- 相應(yīng)的
momentLocale
和antd
配置
配置完以上代碼之后,我們需要重新運(yùn)行一下項(xiàng)目,頁面可能會(huì)報(bào)一些紅色波浪線錯(cuò)誤,但不影響使用,原因是ts類型問題,如果不想報(bào)紅色波浪線,可以在后面加上:any,這是最快的解決方案,但是一般不推薦使用
在組件中使用
getAllLocales
獲取當(dāng)前獲得所有國際化文件的列表,默認(rèn)會(huì)在locales
文件夾下尋找類似en-US.(js|json|ts)
文件
import { getAllLocales } from 'umi'; console.log(getAllLocales()); // [en-US,zh-CN,...]
getLocale
獲取當(dāng)前選擇的語言
import { getLocale } from 'umi'; console.log(getLocale()); // en-US | zh-CN
useIntl
useIntl
是最常用的 api,它可以獲得formatMessage
等 api 來進(jìn)行具體的值綁定
import styles from './index.less'; import { getAllLocales } from 'umi'; import { useIntl} from 'umi'; export default function IndexPage() { const intl = useIntl(); console.log(intl); return ( <div className={styles.title}> <h1>Page index</h1> <div>{intl.messages.WELCOME_TO_UMI_WORLD}</div> </div> ); }
通過useIntl可以把我們的語言文件中內(nèi)容渲染到頁面
setLocale
設(shè)置切換語言,默認(rèn)會(huì)刷新頁面,可以通過設(shè)置第二個(gè)參數(shù)為false
,來實(shí)現(xiàn)無刷新動(dòng)態(tài)切換
import styles from './index.less'; import { getAllLocales } from 'umi'; import { useIntl, setLocale } from 'umi'; export default function IndexPage() { const intl = useIntl(); console.log(intl); console.log(getAllLocales()); // [en-US,zh-CN,...] return ( <div className={styles.title}> <h1>Page index</h1> <div>{intl.messages.WELCOME_TO_UMI_WORLD}</div> <button onClick={() => { setLocale('zh-CN', false); }} > 切換中文 </button> <button onClick={() => { setLocale('en-US', false); }}>切換英文</button> </div> ); }
給定了兩個(gè)button按鈕,可以做語言的切換
以上是plugin-locale的簡單操作,詳情請(qǐng)查看umi官網(wǎng)@umijs/plugin-locale
到此這篇關(guān)于JavaScript @umijs/plugin-locale插件使用教程的文章就介紹到這了,更多相關(guān)JS @umijs/plugin-locale內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- umi插件開發(fā)仿dumi項(xiàng)目自動(dòng)生成導(dǎo)航欄實(shí)現(xiàn)詳解
- umi插件開發(fā)仿dumi項(xiàng)目加載markdown文件實(shí)現(xiàn)詳解
- umi插件開發(fā)仿dumi項(xiàng)目實(shí)現(xiàn)markdown文件轉(zhuǎn)為頁面
- 獨(dú)立使用umi的核心插件模塊示例詳解
- Umi4集成阿里低代碼框架lowcode-engine實(shí)現(xiàn)
- 如何在Laravel之外使用illuminate組件詳解
- umi插件開發(fā)仿dumi項(xiàng)目實(shí)現(xiàn)頁面布局詳解
相關(guān)文章
JavaScript 經(jīng)典實(shí)例日常收集整理(常用經(jīng)典)
本文是小編日常收集整理些js經(jīng)典實(shí)例,非常具有參考借鑒價(jià)值,需要的朋友一起了解了解吧2016-03-03分享javascript計(jì)算時(shí)間差的示例代碼
這篇文章主要為大家介紹了javascript計(jì)算時(shí)間差的示例代碼,,一般來說都是計(jì)算當(dāng)前時(shí)間和一個(gè)指定時(shí)間點(diǎn)之間的差距,感興趣的小伙伴們可以參考一下2016-01-01奉獻(xiàn)給JavaScript初學(xué)者的編寫開發(fā)的七個(gè)細(xì)節(jié)
每種語言都有它特別的地方,對(duì)于JavaScript來說,使用var就可以聲明任意類型的變量,這門腳本語言看起來很簡單,然而想要寫出優(yōu)雅的代碼卻是需要不斷積累經(jīng)驗(yàn)的。本文利列舉了JavaScript初學(xué)者應(yīng)該注意的七個(gè)細(xì)節(jié),與大家分享。2011-01-01js實(shí)現(xiàn)復(fù)制功能(多種方法集合)
這篇文章主要介紹了js實(shí)現(xiàn)復(fù)制功能(多種方法集合),需要的朋友可以參考下2018-01-01異步j(luò)avascript的原理和實(shí)現(xiàn)技巧介紹
因?yàn)楣ぷ鞯男枰?,我要在網(wǎng)頁端編寫一段腳本,把數(shù)據(jù)通過網(wǎng)頁批量提交到系統(tǒng)中去。所以我就想到了Greasemonkey插件,于是就開始動(dòng)手寫,發(fā)現(xiàn)問題解決得很順利2012-11-11js替換字符串中所有指定的字符(實(shí)現(xiàn)代碼)
下面小編就為大家?guī)硪黄猨s替換字符串中所有指定的字符(實(shí)現(xiàn)代碼)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08