iview实现国际化

由于项目需求需要配置国际化,使用的UI框架为iview, vue国际化使用的是vue-i18n组件,按照官方要求下载 vue-i18n(8.14.0),版本大于6.0 按照官方提供的6.0配置方案解决。

第一步:需要先进行安装

npm install vue-i18n

第二步:  创建一个新的目录 language 目录, 在该目录下创建 index.js、en-US.json、zh-CN.json。

   index.js 配置i18n: 按照官方文档引入需要的包,然后配置 (全是按照官方文档一步一步走)这里直接上代码

import Vue from ‘vue‘;
import iView from ‘iview‘;//也可以import iView from ‘view-designer‘;
import VueI18n from ‘vue-i18n‘;
import en from ‘iview/dist/locale/en-US‘;
import zh from ‘iview/dist/locale/zh-CN‘;
import US from ‘./en-US‘;
import CN from ‘./zh-CN‘

Vue.use(VueI18n);
Vue.locale = () => {};

const messages = {
  en: Object.assign(US, en),  //将自己的英文包和iview提供的结合
  zh: Object.assign(CN, zh)  //将自己的中文包和iview提供的结合
};

const i18n = new VueI18n({
 locale:window.localStorage.getItem(‘language‘)===null?‘zh‘:window.localStorage.getItem(‘language‘), // 语言标识,设置默认语言
  messages  // set locale messages
});

Vue.use(iView, {
  i18n: (key, value) => i18n.t(key, value)
})
//上面这个比较重要 按照官网提供的方法 new Vue({ i18n }).$mount(‘#app‘); 运行会出错 提示无法找到  _t 属性。 按照上述方法配置可以解决此问题(网上找的方法,亲测没问题)

//将i18n 导出,在main.js 的 new Vue({}) 中需要配置
export default i18n

   main.js 中只需要导入该文件,就可以正常使用了

import i18n from ‘./language‘

new Vue({
  el: ‘#app‘,
  router,
  i18n, //不配置会不生效的
  components: { App },
  template: ‘<App/>‘
})

   en-US.json 配置英文翻译 这个应该很简单 我随便举了几个例子

{
  "hello" : "Hello",
  "welcome": "Welcome"
}

   zh-CN.json 配置中文翻译 这个也一样

{
  "hello" : "你好",
  "welcome": "欢迎光临"
}

  在vue文件中使用方法:

<template>
    <div class="containt">
        <!--在标签中直接添加元素{{$t(‘home‘)}}-->
      {{ $t(‘welcome‘) }}
    </div>
    <!--在placehold等标签属性中使用-->
    <div :placeholder="$t(‘home‘)">
    </div>
    <!--在js方法中使用-->
    <!--alert( this.$t(‘home‘) )-->
</template>

<script>
    export default {
        name: "index"
    }
</script>

<style scoped>
  .containt{
    height: 100%;
    width: 100%;
    background-color: #15162C;
    color: #fff;
  }
</style>

  结果:

后面就是切换语音:使用的是iview的Dropdown下拉菜单click点击

<Dropdown>
        <span>
          语言
          <Icon type="ios-arrow-down"></Icon>
        </span>
        <DropdownMenu slot="list">
          <DropdownItem @click.native="changeLanguage(‘zh‘)">
            中文
            </DropdownItem>
          <DropdownItem @click.native="changeLanguage(‘en‘)">
            英文
        </DropdownMenu>
      </Dropdown>

下面的切换语言的函数放在index.vue首页里面:

// 切换语言
    changeLanguage(language) {
      if (language == "zh") {
        this.language = "en-US";
        this.$i18n.locale = this.language; //关键语句
        this.addCookie("lang", this.language);
      } else {
        this.language = "en";
        this.$i18n.locale = this.language; //关键语句
        this.addCookie("lang", this.language);
      }
      location.reload();
    },

本文转自:https://www.cnblogs.com/webtaotao/p/11381636.html

原文地址:https://www.cnblogs.com/nizuimeiabc1/p/12173602.html

时间: 2024-10-06 14:25:46

iview实现国际化的相关文章

使用vue-i18n实现项目的国际化 以及iview的国际化

一:项目的国际化 vue-i18n官网 1. 在src中新建一个language文件夹(包含index.js.US.js.CN.js) (1)US.js 保存变量的英文,内容: export default { name: "I am english!!" } (2)CN.js 保存变量的中文,内容: export default { name: "我是中文!!" } (3)index.js vue-i18n配置,内容: import Vue from 'vue';

iview国际化问题(iview官方提供的兼容[email&#160;protected]+使用组件报错)

问题描述: 按照iview官方的说法配置i18n发现在使用组件的时候会报错. 兼容 [email protected]+的配置如下图 报错如下图 解决方法: 经过参考element-ui的国际化配置终于解决问题. 解决方法如下图 原文地址:https://www.cnblogs.com/guojikun/p/9146084.html

给iview项目加一个i18n国际化翻译

看了上一篇博客吗?我们就根据那一篇博客来,用里面的项目,进行我们接下来国际化翻译项目. 我们安装vue-i18n和js-cookie npm install vue-i18n npm install js-cookie --save 第一步在main.js的js引入i18n 第二步建立src/locale文件夹, //en-US.js export default { "components": { // "langChange": 'Language switch

iOS10权限声明国际化

1.xCode8权限 xCode8.0开始苹果对隐私权限的控制更加严格,并且在隐私权限对应的描述不能为空,否则提交时在活动里面并看不到你提交的二进制文件,并给开发者邮箱发送以下邮件 2.权限描述国际化 解决办法是在Info.plist中添加Privacy - Camera Usage Description和Privacy - Photo Library Usage Description. 如果直接写在Info.plist中,则不能多语言显示提示,想要多语言提示,可以选中Info.plist文

Django1.9开发博客(12)- i18n国际化

国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页. Django能完美支持文本翻译.日期时间和数字的格式化.时区. 另外,Django还有两点优势: 允许开发者和模板作者指定他们哪些app应该被翻译或被格式化为本地形式. 允许用户根据自己的偏好来实现本地化显示.翻译依据语言,格式化依据国家, 这些信息由浏览器中的Accept-Language头来决定.不过目前为止时区还未能实现. 参考官方文档:https://docs.djangoproject.com/en/1.9

AngularJS 国际化——Angular-translate

对于一个用户群面向全球的的应用来说,不得不考虑国际化的问题.当然,即便是刚刚起步的小应用,如果有心搞大,也应该提前设计国际化的方案. 本篇讲述使用AngularJS构建的应用的简单国际化方案,准确的说,是国际化服务.... i18n与l10n i18n是Internationalization得缩写,取第一个字母和最后一个字母,以及中间省略的字母数目,即i18n,类似的l10n是Localization得意思. 通常i18n是国际化的意思,就是在不改变源码的情况下,通过某些简单的配置就能适应不同

JAVA国际化

大家好,我是成都[LD],今天给大家带来的是JAVA国际化.如果您用过Struts,那您对国际化应该并不陌生. 通常来说,在代码中我们会夹杂一些字符串,这样其实并不好看,维护起来也不是特别方便.举个例子:假设你开发系统是中文版本,突然来了个需求,需要英文版本,如果你将字符串写在代码里面,这样你又不得不将所有的中文字符替换成英文字符.为了减少这种需求下重复劳动,我们通常会自己去写一个配置文件,然后将所有字符串放在配置文件里面,然后去读这个配置文件等等一系列的操作.当然这属于我们自己的一种解决问题的

iview中使用Tag时进行数据的变化和实现将输入内容转化为标签输出数组

上代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>iview example</title> <link rel="stylesheet" type="text/css" href="http://unpkg.com/iview/dist/styles/iview.css"

Spring boot 国际化自动加载资源文件问题

Spring boot 国际化自动加载资源文件问题 最近在做基于Spring boot配置的项目.中间遇到一个国际化资源加载的问题,正常来说只要在application.properties文件中定义正确的资源文件路径,Spring boot就启动时就会自动加载资源. spring.messages.basename=i18n/message 但是我的项目修改后获取消息时系统报错,找不到对应语言的资源配置.于是试图找到原因.Google好久都没找到,简直好像就我一个人遇到这鬼问题一样??.只好自