国际化i18n

国际化i18n

  1. 下载

    npm install vue-i18n
    
  2. 准备多语言数据,可以单独创建一个文件夹lang,里面包含多语言文件

    //zh.js
    export default {
      tip: '提示',
      submitText: '确定',
      cancelText: '取消',
    }
    
    //en.js
    export default {
      tip: 'tip',
      submitText: 'submit',
      cancelText: 'cancel',
    }
    
    //ja.js
    export default {
      tip: 'ヒント',
      submitText: 'を選択します',
      cancelText: 'キャンセル',
    }
    
  3. 配置

    // index.js
    import { createI18n } from 'vue-i18n';
    import en from './en.js';
    import zh from './zh.js';
    import ja from './ja.js';
     
    const messages = {
      en,
      zh,
      ja
    };
     
    const i18n = createI18n({
      locale: localStorage.getItem('lang') || 'zh', // 设置默认语言
      fallbackLocale: 'zh', // 设置回退语言
      globalInjection:true, // 全局注入,可以直接使用$t
      messages, // 设置语言文件
    });
     
    export default i18n;
    
  4. 引入

    //main.js
    import { createApp } from "vue";
    import App from "./App.vue";
    
    import i18n from "./lang/index"; // 导入i18n配置
     
    const app = createApp(App);
    app.use(i18n); // 注册i18n插件
    app.mount("#app");
    
  5. 使用和切换

    //组件.vue
    <template>
      <p>{{ $t('title') }}</p>
      <button>{{ $t('submitText') }}</button>
      <button>{{ $t('cancelText') }}</button>
      <button @click='changeLange(lang)' v-for="lang in langs" :key="lang">切换语言为:{{lang}}</button>
    </template>
    <script setup>
    import { ref } from 'vue';
    const langs = ref([
      'zh','en','ja'
    ])
    const changeLange = (lang)=>{
      localStorage.setItem('lang',lang) // 利用本地存储,每次加载项目的时候,获取lang的值去设置对应语言数据
      window.location.reload()
    }
    </script>
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值