在Vue中加入国际化(i18n)中英文功能
1.npm安装方法
npm install vue-i18n --save
2.在src资源文件下创建文件夹i18n,i18n下面创建index.js文件,引入VueI18n和导入语言包(按开发需求可添加多种语言)
具体代码:
import Vue from 'vue'
import VueI18n from 'vue-i18n' Vue.use(VueI18n) // 注册i18n实例并引入语言文件
const i18n = new VueI18n({
locale: 'zh_cn',
messages: {
'zh_cn': require('@/assets/languages/zh_cn.json'),
'en_us': require('@/assets/languages/en_us.json')
}
}) export default i18n
3.在mian.js文件中:
import i18n from './i18n';
new Vue({
el: '#app',
i18n,
router,
store,
components: { App },
template: '<App/>'
})
4.接在assets文件下新建languages包:

语言JSON包:
//zh_cn.json
{
"SYS": {
"confirmButtonText": "确认",
"cancelButtonText": "取消"
},
"user": {
"title": "个人中心",
"Exit": "退出系统",
"Processing": "代办工作",
"initiated": "我发起的",
"transferring": "办结工作",
"phoneService": "电话客服",
"Accounts": "账号中心",
"modifyPassword": "修改密码",
"Language": "切换中英文",
"about": "关于",
"confirmExit": "确定退出?",
"confirmChangeLanguage": "是否切换语言?",
"ScExit": "退出成功",
"loadingtext": "退出账号中..."
}
}
//en_us.json
{
"SYS": {
"confirmButtonText": "Comfirm",
"cancelButtonText": "Cancel"
},
"user": {
"title": "Personal center",
"Exit": "Exit system",
"Processing": "to-do list",
"initiated": "I initiated",
"transferring": "transferring work",
"phoneService": "Telephone customer service",
"Accounts": "Account center",
"modifyPassword": "change Password",
"Language": "CH/EN",
"about": "about",
"confirmExit":"Confirm Exit ?",
"confirmChangeLanguage":"Whether to switch languages",
"ScExit":"exit successfully",
"loadingtext":"Exiting..."
}
}
5.组件使用(语言切换)
<van-cell
icon="setting-o"
@click="changeLanguage"
:title="$t('user.Language')"
:value="Languagevalue"
is-link
/>
展示语言切换弹窗:(注意一定要使用$t())
//选择语言
changeLanguage() {
this.$dialog
.confirm({
message: this.$t("user.confirmChangeLanguage"),
confirmButtonText: this.$t("SYS.confirmButtonText"),
cancelButtonText: this.$t("SYS.cancelButtonText")
})
.then(() => {
this.Language = !this.Language;
if (this.Language == false) {
this.CHLanguage("zh_cn");
this.Languagevalue = "English";
} else {
this.CHLanguage("en_us");
this.Languagevalue = "Chinese";
}
});
},
// 语言切换
CHLanguage(lang) {
lang === "" ? "zh_cn" : lang;
this.$i18n.locale = lang;
},
效果:


在Vue中加入国际化(i18n)中英文功能的更多相关文章
- vue中axios 配置请求拦截功能 及请求方式如何封装
main.js 中: import axios from '................/axios' axios.js 中: //axios.js import Vue from 'vue' i ...
- 019——VUE中v-for与computer结合功能实例讲解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue中element 的上传功能
element 的上传功能 最近有个需求,需要在上传文件前,可以进行弹窗控制是否上传upload 看完文档后,感觉有两种思路可以实现 基于before-upload :上传文件之前的钩子,参数为上传的 ...
- vue中实现国际化--语言切换(转载)
https://segmentfault.com/a/1190000011800593
- VUE中使用canvas做签名功能,兼容IE
<template> <div> <div class="msgInput"> &l ...
- 在vue中实现锚点定位功能
场景如下: 今天早上看到需求方新提的一个需求,这是一份网上答卷,点击题数要实现滚动到对应题目的位置: 注意点:每题题目的高度是不受控制的,你可以取到想跳转的index:(我再循环题目时做了index+ ...
- VueJS 使用i18n做国际化切换中英文
1.安装 npm install vue-i18n --save 2.创建存放语言包和i18n入口文件 a.在src下创建i18n目录 b.在src/i18n/创建i18n.js (入口) c.在s ...
- vue-i18n vue-cli项目中实现国际化 多语言切换功能 一
vue-cli项目中引入vue-i18n 安装: npm install vue-i18n可参考vue-i18n官网文档 main.js中引入: import Vue from 'vue' impor ...
- vue中使用vue-i18n 一个简单的国际化操作
1.安装:npm install vue-i18n --save-dev 2.在main.js文件中引入: import VueI18n from 'vue-i18n' Vue.use(VueI18n ...
随机推荐
- Cortex_m7内核cache深入了解和应用
一,cache概述 从下图可以看出,从M7内核才开始有的cache,这对于从M0,M3,M4一路走来的小伙伴来说,多了一个cache就多了一个障碍. Cortex-M7 core with 32K/3 ...
- 约会II
#include <stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b)!=EOF& ...
- java 线程并发(生产者、消费者模式)
线程并发协作(生产者/消费者模式) 多线程环境下,我们经常需要多个线程的并发和协作.这个时候,就需要了解一个重要的多线程并发协作模型“生产者/消费者模式”. Ø 什么是生产者? 生产者指的是负责生产数 ...
- SVN_06导入项目文档
把这个项目的文档迁入到SVN Server上的库中 [1]首先右键点击projectAdmin目录,这时候的右键菜单例如以下图看到的:选择copy URL toCLipboard,就是复制统一资源定位 ...
- 2..net core 和.net framework 版本
同一台机器上可以安装多个版本的.net core runtime.比如: 每个.net core项目都可以指定自己所用的版本,所以改变某个项目的target version不会影响到其他的.安装新的r ...
- rabbitmd
一.前期准备 (1)条件:准备3台linux系统,确保能连到download.yunwei.edu (2)编写yum源下载脚本: vim yum-repo.sh wget -O /etc/yu ...
- 基于【 bug解决】一 || mysql的ONLY_FULL_GROUP_BY导致的sql语句错误
一.Mysql错误: In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated ...
- Fortify漏洞之Access Control: Database(数据越权)
继续对Fortify的漏洞进行总结,本篇主要针对 Access Control: Database(数据越权)的漏洞进行总结,如下: 1.Access Control: Database(数据越权) ...
- Javascript的异步与单线程
一.前言 我们都知道,javasript是一个单线程的语言:所谓单线程就是同一时间不能做两件事情,两段代码不能同时执行:因为这种机制,才避免了两段js同时对一个DOM节点进行渲染的冲突.但是也会因此产 ...
- 七年开发小结MyBatis 在 Spring 环境下的事务管理
MyBatis的设计思想很简单,可以看做是对JDBC的一次封装,并提供强大的动态SQL映射功能.但是由于它本身也有一些缓存.事务管理等功能,所以实际使用中还是会碰到一些问题——另外,最近接触了JFin ...