• i18n 中英文翻译


    执行以下命令安装vue 国际化插件vue-i18n

    1 npm install vue-i18n --save

    执行以下命令安装 js-cookie

    npm install js-cookie --save

    在src目录下 新建lang文件夹 在lang文件夹下存放 语言脚本 如下:

     en.js

     1 export default {
     2     // 导航栏
     3     linkArr: [
     4         {content: 'Homepage', id: 'HomePage'},
     5         {content: 'Product', id: 'Product'},
     6         {content: 'information', id: 'InforMation'},
     7         {content: 'AboutUs', id: 'About'},
     8         {content: 'JoinUs', id: 'Join'}
     9         // {content: 'English', id: 'English'}
    10     ]
    11 }

    zh.js

     1 export default {
     2     // 导航栏
     3     linkArr: [
     4         {content: '首页', id: 'HomePage'},
     5         {content: '产品', id: 'Product'},
     6         {content: '资讯', id: 'InforMation'},
     7         {content: '关于我们', id: 'About'},
     8         {content: '加入我们', id: 'Join'}
     9         // {content: 'English', id: 'English'}
    10     ]
    11 }

    index.js

     1 import Vue from 'vue'
     2 import VueI18n from 'vue-i18n'
     3 import Cookies from 'js-cookie'
     4 // import locale from 'element-ui/lib/locale';
     5 import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
     6 import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
     7 import enLocale from './en'
     8 import zhLocale from './zh'
     9  
    10 Vue.use(VueI18n);
    11  
    12 const messages = {
    13   en: {
    14     ...enLocale,
    15     ...elementEnLocale
    16   },
    17   zh: {
    18     ...zhLocale,
    19     ...elementZhLocale
    20   }
    21 };
    22 const i18n = new VueI18n({
    23     locale: Cookies.get('language') || 'en',
    24     messages
    25 })
    26 export default i18n

    main.js

     1 import Vue from 'vue'
     2 import App from './App'
     3 import router from './router'
     4 import ElementUI from 'element-ui'
     5 import 'element-ui/lib/theme-chalk/index.css'
     6 import i18n from './lang'
     7  
     8 Vue.use(ElementUI, {
     9     size: 'medium',
    10     i18n: (key, value) => i18n.t(key, value)
    11 });
    12  
    13 new Vue({
    14     router,
    15     store,
    16     i18n,
    17     render: h => h(App)
    18 }).$mount("#app");

    xxx.vue

     1 <template>
     2    <ul>
     3       <router-link :to="{path: '/' + item.id}" v-for="(item,index) in $t('linkArr')" :key="index">
     4           <div class="line" v-if="5===index"></div>
     5       </router-link>
     6       <li @click="liClick1">
     7           <span>English</span>
     8       </li>
     9    </ul>
    10 </template>
    11  
    12 methods: {
    13     liClick1() {
    14        if (this.$i18n.locale === 'zh') {
    15           this.$i18n.locale = 'en';
    16           // 将新语言保存到全局状态管理
    17           this.$store.dispatch('update_current_lang', 'en');
    18           cookie.set('language', 'en');
    19         }else {
    20           this.$i18n.locale = 'zh';
    21           // 将新语言保存到全局状态管理
    22           this.$store.dispatch('update_current_lang', 'zh');
    23           cookie.set('language', 'zh');
    24         }
    25     }
    26 }

  • 相关阅读:
    SQL Server学习之路:建立数据库、建立表
    tomcat访问的重定向问题
    PAT A1107——并查集
    ^-^
    JSON.parse()和JSON.stringify()的用法
    Android——ViewHolder的作用与用法
    题解-Atcoder_agc005D ~K Perm Counting
    题解-bzoj2560 串珠子
    题解-Codeforces710F String Set Queries
    游记-NOIP2018
  • 原文地址:https://www.cnblogs.com/xiaozhu-zhu/p/11946870.html
Copyright © 2020-2023  润新知