美文网首页
Vue+ElementUI的国际化处理

Vue+ElementUI的国际化处理

作者: _Pana_ | 来源:发表于2018-08-05 21:21 被阅读0次

前言:

一个月前项目应客户需求需要英文版,就此提出了国际化的需求。在以搭建的项目上开始国际化的处理。


准备:

1.安装与引用
npm install vue-i18n

在main.js中引入

import i18n from './i18n/i18n';
Vue.use(i18n);

window.app = new Vue({
    el: '#app',
    router,
    store,
    i18n,
    template: '<App/>',
    components: {
        App
    }
})
2.目录结构
图片1 -- 目录结构图
3.主要文件:

i18n.js:获取本地localStorage中存储的语言,用此存储主要是为了能记住用户选择的语言状态。

import Vue from 'vue';
import locale from 'element-ui/lib/locale';  //elementUI的国际化
import VueI18n from 'vue-i18n';
import languagePack from './langs';
import {
    getLocalStore
} from "@/utils/webstore-utils.js";
import {
    LAGU
} from "../config/webstore";

Vue.use(VueI18n)

const i18n = new VueI18n({    //从localStorage中取,没有就默认的中文
    locale: getLocalStore(LAGU) || 'zh',
    languagePack,
})
locale.i18n((key, value) => i18n.t(key, value)) //elementui多语言切换

export default i18n

index.js

import en from './en';
import zh from './zh';
export default {
    en: en,
    zh: zh
}

en.js 和 zh.js 即自定义的语言包,一下为部分示例。中英对照

import zhLocale from 'element-ui/lib/locale/lang/zh-CN'
const zh = {
    login: {
        'username': '用户名',
        'password': '密码',
        'signin': '登录',
    },
    ...zhLocale
}
export default zh;
import enLocale from 'element-ui/lib/locale/lang/en'
const en = {
login: {
        'username': 'username',
        'password': 'password',
        'signin': 'signin',
    },

    ...enLocale
}
export default en;
4.原项目中语言进行替换,并进行监听用户选择的语言

重点:$t(' ')

<el-input :placeholder="$t('login.username')" ></el-input>
<el-checkbox v-model="language">{{$t('login.selectLanguage')}}</el-checkbox>
//js中 要加上this
export default {
  ...
   message: this.$t("a.b"),
  ...
}
 watch: {
        language: function() {   //此处language对应上方的checkbox进行绑定的数据
            this.$i18n.locale === "zh"     
                ? (this.$i18n.locale = "en")
                : (this.$i18n.locale = "zh");
            getLocalStore(LAGU) === "zh"   //本地存储的进行变化
                ? setLocalStore(LAGU, "en")
                : setLocalStore(LAGU, "zh");
        }
    }
5.遇到切换后data数据没变化

解决:放到computed中

相关文章

  • Vue+ElementUI的国际化处理

    前言: 一个月前项目应客户需求需要英文版,就此提出了国际化的需求。在以搭建的项目上开始国际化的处理。 准备: 1....

  • vue+elementUI的国际化

    安装组件和插件 2.在src中创建语言包 3.在main.js中引用 4.页面中使用$t引用 5.切换语言vuex...

  • iOS【图片国际化处理】python脚本Assets.xcass

    相关国际化处理:iOS【语言国际化处理】python脚本读取Excel内容批量导入国际化语言文件中(一)[http...

  • iOS【语言国际化处理】python脚本将国际化语言文件批量导入

    相关国际化处理:iOS【语言国际化处理】python脚本读取Excel内容批量导入国际化语言文件中(一)[http...

  • iOS国际化

    一. 针对两种文件的国际化处理 代码中即.m文件的国际化 首先在你需要进行国际化处理的字符串外面加一层NSLoca...

  • JSP项目国际化解决方案

    背景介绍 现有项目已上线运营6年了,在项目搭建初期也没有预留国际化处理的相关插口,现在进行国际化处理,由于JSP和...

  • 十八、Spring Boot处理国际化资源

    1、Spring应用程序处理国际化资源的步骤: 1)、编写国际化配置文件; 2)、使用ResourceBundle...

  • iOS国际化处理

    最近被安排处理一下旧项目的国际化处理。写篇文章记录下心得,也希望能为遇到问题的你提供点思路。开始进入正题。 国际化...

  • iOS国际化应用程序的名称国际化

    最近公司把公司产品中的国际化给去掉了,以后就不维护了国际化了,在这里写下国际化的处理,长时间不用怕给忘记了。这里就...

  • iOS14开发- 国际化

    介绍 如果 App 需要给不同语言的用户使用,需要进行国际化处理。如果 App 需要进行国际化,在开发之初就需要考...

网友评论

      本文标题:Vue+ElementUI的国际化处理

      本文链接:https://www.haomeiwen.com/subject/fhkivftx.html