博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue-element-admin 中使用国际化
阅读量:4163 次
发布时间:2019-05-26

本文共 2179 字,大约阅读时间需要 7 分钟。

1、 安装语言包

npm install vue-i18n

2、安装完成后,在项目中新建文件夹和文件,如下:

在这里插入图片描述
index.js (js-cookie 是在项目中已安装的)

import Vue from 'vue'import VueI18n from 'vue-i18n'import Cookies from 'js-cookie'import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui langimport elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui langimport elementEsLocale from 'element-ui/lib/locale/lang/en'// element-ui langimport enLocale from './en'import zhLocale from './zh'Vue.use(VueI18n)const messages = {
en: {
...enLocale, ...elementEsLocale }, zh: {
...zhLocale, ...elementZhLocale }}export function getLanguage() {
const chooseLanguage = Cookies.get('language') if (chooseLanguage) return chooseLanguage // if has not choose language const language = (navigator.language || navigator.browserLanguage).toLowerCase() const locales = Object.keys(messages) for (const locale of locales) {
if (language.indexOf(locale) > -1) {
return locale } } return 'zh'}const i18n = new VueI18n({
// set locale // options: en | zh | es locale: getLanguage(), // set locale messages messages})export default i18n

zh.js

module.exports = {
sceneHome: {
start: '开始测试' }, login: {
title: '登录' }, content: {
main: 'main' }}

en.js

module.exports = {
sceneHome: {
start: 'start test' }, login: {
title: 'login' }, content: {
main: 'main' }}

3、在main.js 中注入

import i18n from './assets/lang'new Vue({
el: '#app', i18n, // 注入国际化 router, store, render: h => h(App)})

4、在项目中使用

4.1 静态渲染
{
{
$t('sceneHome.start')}}
4.2 动态渲染
 {
{
getTitle(item.name) }}
methods: {
getTitle(title){
let str = 'lang.'+title; return this.$t(str); }}
4.3 js和data 中的渲染
data() {
return{
ruleForm: {
name: '1', }, rules: {
name: [ {
required: true, message: this.$t('sceneEdit.formNameTip'), trigger: 'blur' } ], } } }

5、语言切换

中文
English

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

转载地址:http://xnxxi.baihongyu.com/

你可能感兴趣的文章