美文网首页
vue3使用i18n实现国际化与动态切换语言

vue3使用i18n实现国际化与动态切换语言

作者: 垃圾简书_吃枣药丸 | 来源:发表于2022-03-30 10:57 被阅读0次

https://kazupon.github.io/vue-i18n/zh/started.html#javascript

  • 安装依赖: npm install vue-i18n@next
    "vue-i18n": "^9.2.0-beta.33"

  • 创建i18n/index.js

import { createI18n } from 'vue-i18n'

// 国际化语言资源
const messages = {
  // 英文
  en: {
    login: {
      loginBtn: 'login',
      pwdBtn: 'password'
    }
  },
  // 中文
  zh: {
    login: {
      loginBtn: '登录',
      pwdBtn: '密码'
    }
  }
}

/**
 * 获取
 * @returns {string}
 */
function getLocal () {
  // 如果缓存中存在,则直接返回
  const myLocale = localStorage.getItem('my_locale')
  if (myLocale) {
    return myLocale
  }
  // 否则读取当前网页语言
  const localName = navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en'
  // 设置缓存
  localStorage.setItem('my_locale', localName)
  return localName
}

// 创建i18n实例
export const i18n = createI18n({
  locale: getLocal(),
  messages
})
  • main.js
import { i18n } from '@/i18n'

app.use(i18n)
  • 使用: {{$t('xx.xx')}}
      <el-button type="primary" @click="handleLogin">{{$t('login.loginBtn')}}</el-button>
      <el-button type="info" @click="changeType">{{ tips }}{{$t('login.pwdBtn')}}</el-button>
image.png
image.png
  • 动态变更语言: i18n.global.locale = lang
      <el-button type="success" @click="changeLanguage">变更语言</el-button>


import { i18n } from '@/i18n'

const changeLanguage = () => {
  console.log('i18n.global.locale', i18n.global.locale)
  const lang = i18n.global.locale === 'en' ? 'zh' : 'en'
  localStorage.setItem('my_locale', lang)
  i18n.global.locale = lang
}

  • 把国际化资源文件单独拎出来
  • en.js
export default {
  login: {
    loginBtn: 'login',
    pwdBtn: 'password'
  }
}
  • zh.js
export default {
  login: {
    loginBtn: '登录',
    pwdBtn: '密码'
  }
}
  • i18n/index.js
import zh from '@/i18n/zh'
import en from '@/i18n/en'

// 国际化语言资源
const messages = {
  // 英文
  en: {
    ...en
  },
  // 中文
  zh: {
    ...zh
  }
}

相关文章

  • i18n国际化

    vue中如何使用i18n实现国际化 一、前言 项目中需要实现多语言切换,这时候接触到国际化,前端框架无数,其中几种...

  • vue3使用i18n实现国际化与动态切换语言

    https://kazupon.github.io/vue-i18n/zh/started.html#javasc...

  • Vue3 + Element Plus + i18n 国际化

    1 前言 本篇旨在 Vue3 + Element Plus 国际化配置,支持多语言切换 2 Vue3 国际化 2....

  • iOS国际化支持

    iOS国际化支持 一、背景 最近一个项目中需要使用到不同国家语言的切换,包括UI控件的语言切换,最好是能够实现动态...

  • 超好用!一个基于 jQuery 的轻量级的国际化多语言 (i18

    一个基于jQuery的轻量级的国际化(i18n)插件。 支持根据设置默认语言 支持切换语言 支持使用json文件存...

  • 079-Spring Boot 国际化支持

    很多项目中都需要国际化的支持,这里来使用springboot实现国际化,关于国际化i18n的各个国家语言的编码,大...

  • Grails国际化实例

    Grails实现国际化(中英文切换) 在grails-app/i18n分别配置英文(messages.proper...

  • jquery 使用i8n 的坑点

    最近公司的官网需要做国际化,提出的需求是要实现中英文切换,所以我选择i18n 这个插件 1、先下载i18n 插件 ...

  • Android国际化(多语言)实现,支持8.0

    前言 最近因为项目中使用了国际化,所以正好研究了下实现方法;首先说下项目需求: 可以随着系统切换语言而切换语言,不...

  • Vue I18n实际应用

    最近在实际项目中使用过vue i18n插件实现国际化功能,但是发现网上对于异步加载实现国际化功能的案例不多,总结一...

网友评论

      本文标题:vue3使用i18n实现国际化与动态切换语言

      本文链接:https://www.haomeiwen.com/subject/famijrtx.html