【vue-i18n】实现站点国际化

本文详细介绍了如何使用Vue-i18n插件实现网站的国际化,包括安装配置、语言包创建及切换语言的方法。通过示例代码展示了英文和中文语言包的设置,以及在Vue组件中使用$t()函数来获取对应语言的翻译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【vue-i18n】实现站点国际化

1.安装

npm install vue-i18n -D

2.在src目录下新建 lang 文件夹,用于存放语言包

+ src
  - en-us.js // 英文包
  - zh-cn.js // 中文包

en-us 英文包

// filename: en-us.js
module.exports = {
	nav: {
		home: 'Home',
		about: 'About Us',
		contact: 'Contact Us',
		help: 'Help'
	}
}

zh-cn.js 中文包

// filename: zh-cn.js
module.exports = {
	nav: {
		home: '首页',
		about: '关于',
		contact: '联系'
		help: '帮助'
	}
}

3.导入i18n并配置相关配置项

// filename: main.js
// 引入依赖文件
import Vue from 'vue'
import App from './App.vue'
import VueI18n from 'vue-i18n'
import EnLang from '@/lang/en-us.js'
import ZhLang from '@/lang/zh-cn.js'

Vue.config.productionTip = false
// 注册i18n
Vue.use(VueI18n)

// 实例化i18n
const i18n = new VueI18n({
  locale: 'zh-cn',
  message: {
    'en-us': EnLang,
    'zh-cn': ZhLang
  }
})

// 将i18n挂载到Vue实例中
const app = new Vue({
  i18n,
  render: h => h(App)
})
app.$mount('#app')

4.使用

<!-- filename: App.vue -->
<template>
  <div>
    <div class="topBar">
      <a href="javascript:void(0);" @click="changeLanguage">English / 简体中文</a>
    </div>
    <div class="nav">
      <ul>
        <li>{{$t('nav.home')}}</li>
        <li>{{$t('nav.about')}}</li>
        <li>{{$t('nav.contact')}}</li>
        <li>{{$t('nav.help')}}</li>
      </ul>
    </div>
  </div>
</template>

<script>
export default {
  name: 'app',
  methods: {
    // 切换语言
    changeLanguage () {
      if (this.$i18n.locale === 'en-us') {
        this.$i18n.locale = 'zh-cn'
      } else {
        this.$i18n.locale = 'en-us'
      }
    }
  }
}
</script>

<style>
  body,html {
    margin: 0 auto;
  }
  .topBar {
    padding: 5px 20px;
    background: #262626;
    text-align: right
  }
  .topBar a {
    color: #ffffff;
    text-decoration: none;
  }
  .nav {
    background: #333333;
    padding: 15px
  }
  .nav ul{
    margin: 0 auto;
    color: #ffffff;
    list-style: none;
    padding: 0;
  }
  .nav ul li{
    display: inline-block;
    margin-right: 15px;
  }
</style>


效果截图
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值