vue3 简单使用 vue-i18n 插件

769 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

Vue I18n 是 Vue.js 的国际化插件,本文介绍它的简单使用

1、创建 vue3 项目

项目名为 vue-i18n-project

vue create vue-i18n-project

1.png

2、安装 vue-i18n

进入项目目录,执行安装命令

npm install vue-i18n@9

2.png

3、配置 vue-i18n

在 main.js 文件中配置 vue-i18n

main.js 文件内容

import { createApp } from 'vue'
import { createI18n } from 'vue-i18n'
const messages = {
  en: {
    message: {
      hello: 'hello world'
    }
  },
  cn: {
    message: {
      hello: '你好 世界'
    }
  }
}

const i18n = createI18n({
  // something vue-i18n options here ...
  locale: 'cn', // set locale
  fallbackLocale: 'cn', // set fallback locale
  messages, // set locale messages
})
import App from './App.vue'

createApp(App).use(i18n).mount('#app')

4、使用

App.vue 内容

<template>
  <div>
    <p>{{ $t("message.hello") }}</p>
    <br>
    <select  @change="change($event)">
      <option value ="cn">中文</option>
      <option value ="en">英文</option>
    </select>
  </div>
</template>

<script>
import { getCurrentInstance } from "vue";
export default {
  name: 'App',
  setup() {
   const { proxy } = getCurrentInstance();
    function change(v) {
      proxy.$i18n.locale = v.target.value
    }
    return {
      change
    }
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

5、运行效果

GIF.gif

至此完