
编辑排版 | 宋大狮
平台运营 | 小唐狮
ONE 问题描述
2023年2月10号记,久违了大家。
今天要和大家分享的是关于web端国际化多语言的问题。
最近这段时间,时不时的接触国际化的项目,于是想借此机会,把有关vue-i18n多语言相关的内容梳理一下。
问题:用vue-i18n实现多语言切换。举例用主流web端技术vue3,vue2可以此为参考。
TWO 问题解决
1、npm命令
npm install vue-i18n@next
2、yarn命令
yarn add vue-i18n@next
1、创建文件
在目录src下,创建lang文件夹,并新建index.js、和 翻译的内容文件

2、编写index.js
import { createApp } from 'vue'import App from '../App.vue'import { createI18n } from 'vue-i18n'import en from './en'import zh from './zh'const app = createApp(App)const i18n = createI18n({ legacy: false,
locale: "zh", // 初始化显示中文 messages: {en,zh} // 这里就是你有几种语言,对象里面就有几个})export default function (app) {
app.use(i18n)
}3、编写zh.js
const zh = { home: { Home: '首页', // 语言变量: 中文字符
},
}export default zh4、编写en.js
const en = { home: { Home: 'Home', // 语言变量: 英语字符
},
}export default en5、编写main.js
import i18n from './lang/index'const app = createApp(App)
app.use(i18n)
app.mount('#app')1、template中
<div class="text">
{{ $t("home.Home") }}
</div>2、script中
引入:
import { useI18n } from "vue-i18n";const { t } = useI18n();一般使用:
ElMessage({ message: t("home.Home"),
type: "success",
});特殊使用:
// 多语言不生效时,请借用计算属性const userTypeList = computed(() => {
const rules = [
{ value: "1", label: t("home.Home"),
}
]; return rules;
});<el-button type="primary" @click="changeLang('en')">英文</el-button>import { useI18n } from "vue-i18n";const { locale } = useI18n();const changeLang = (val) => {
locale.value = val;
localStorage.setItem("lang", val);
}- END -
¥4.90
PC中文正版 steam平台 国区 游戏 宝石争霸 寒霜之怒 GemCraft Frostborn Wrath 激活码 cdkey
¥16.20
steam pc正版 英雄连2 大师版 特权版 合集 Company of Heroes 2 国区激活码
¥44.80
DLC 乌托邦 Utopia 扩展包 资料片 steam平台 正版 群星 Stellaris 激活码
¥78.00
【骑砍中文站】骑马与砍杀 原版+战团 正版 Steam 双CDKEY/序列号/激活码
¥69.80
PC中文正版 steam平台 国区 联机游戏 喋血复仇 Back 4 Blood 标准 豪华 终极版 季票 全DLC 激活码
¥17.80
Steam 橘子 Origin PC正版 游戏 泰坦陨落2 Titanfall® 2 激活码 成品号