JavaScript @umijs/plugin-locale插件使用教程
介紹
plugin-locale是一個(gè)國(guó)際化的插件,用于解決i18n問題,約定式的多語言支持,可以進(jìn)行多個(gè)國(guó)際語言的切換
啟用方式
在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)前獲得所有國(guó)際化文件的列表,默認(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-CNuseIntl
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的簡(jiǎn)單操作,詳情請(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就可以聲明任意類型的變量,這門腳本語言看起來很簡(jiǎn)單,然而想要寫出優(yōu)雅的代碼卻是需要不斷積累經(jīng)驗(yàn)的。本文利列舉了JavaScript初學(xué)者應(yīng)該注意的七個(gè)細(xì)節(jié),與大家分享。2011-01-01
js實(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-11
js替換字符串中所有指定的字符(實(shí)現(xiàn)代碼)
下面小編就為大家?guī)硪黄猨s替換字符串中所有指定的字符(實(shí)現(xiàn)代碼)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08

