前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue项目i18n国际化语言切换

Vue项目i18n国际化语言切换

作者头像
RtyXmd
发布2019-04-23 17:12:43
2.7K0
发布2019-04-23 17:12:43
举报
文章被收录于专栏:前端vue前端vue

本篇分两部分,第一部分为vue+i18n国际化,第二部分是怎样适配element的国际化,第三部分为使用方法 效果预览 源码参考

第一部分:Vue+i18n

1.安装依赖
代码语言:javascript
复制
npm install vue-i18n
2.创建语言目录及文件

在src目录下创建所需文件

目录结构

3.编辑中英文语言

中文:src/i18n/langs/cn.js

代码语言:javascript
复制
const cn = {
  header: {
    logo: "标志",
    router: {
      index: "首页",
      about: "关于"
    }
  },
  user: {
    login: "登录",
    register: "注册",
    hasCount: "已有账号?",
    noCount: "没有账号?",
    logOut: "退出登录",
    logSucc: "登录成功",
    place: {
      userName: "请输入用户名",
      passWord: "请输入密码",
      passWordAgain: "请再次输入密码",
      passNotMatch: "两次输入密码不一致"
    }
  },
  code: {
    error: "错误"
  }
};
export default cn;

英文:src/i18n/langs/cn.js

代码语言:javascript
复制
const en = {
  header: {
    logo: "Logo",
    router: {
      index: "Index",
      about: "About"
    }
  },
  user: {
    login: "Sign in",
    register: "Sign up",
    hasCount: "Already have an account?",
    noCount: "New user?",
    logOut: "Sign out",
    logSucc: "Sign in Success",
    place: {
      userName: "Please enter a user name",
      passWord: "Please enter your password",
      passWordAgain: "Please enter your password again",
      passNotMatch: "The two passwords do not match"
    }
  },
  code: {
    error: "error"
  }
};
export default en;
4.引入对应语言包
代码语言:javascript
复制
// i18n/langs/index.js
import en from "./en";
import cn from "./cn";
export default {
  en: en,
  cn: cn
};
5.编辑i18n.js文件
代码语言:javascript
复制
//引入vue
import Vue from "vue";
//引入i18n语言包
import VueI18n from "vue-i18n";
//引入定义好的中英文语言
import messages from "./langs";
//在vue中使用i18n
Vue.use(VueI18n);

//初始化设置默认语言
const i18n = new VueI18n({
  locale: "en",
  messages
});

export default i18n;
6.main.js中引入i18n
代码语言:javascript
复制
//main.js
import i18n from "./i18n/i18n";

new Vue({
  router,
  store,
  i18n,
  render: h => h(App)
}).$mount("#app");

第二部分:Vue+element+i18n

这里主要是为了在切换语言的时候让element自身也能同时切换

1.在语言文件中引入element默认语言

中文:src/i18n/langs/cn.js

代码语言:javascript
复制
import cnLocale from "element-ui/lib/locale/lang/zh-CN";
const cn = {
  //其他语言参数
  ...cnLocale
};

英文:src/i18n/langs/en.js

代码语言:javascript
复制
import enLocale from "element-ui/lib/locale/lang/en";
const en = {
  //其他语言参数
  ...enLocale
};
2.引入element语言切换
代码语言:javascript
复制
// src/i18n/i18n.js
import locale from "element-ui/lib/locale";

locale.i18n((key, value) => i18n.t(key, value));

第三部分:如何使用

1.插值使用

插值使用

2.属性绑定

属性绑定

3.变量使用

变量使用

4.实现切换
代码语言:javascript
复制
//切换语言
methods: {
    switchLang() {
      this.$i18n.locale == "cn"
        ? (this.$i18n.locale = "en")
        : (this.$i18n.locale = "cn");
    }
}

效果预览 源码参考

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.04.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一部分:Vue+i18n
  • 第二部分:Vue+element+i18n
  • 第三部分:如何使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档