热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue3实现国际化的过程与遇到的问题详解

像很多大型的网址,特别是跨国际等公司网页,访问来自世界各地用户,所以网页的国际化极其重要的需求,这篇文章主要给大家介绍了关于vue3实现国际化的过程与遇到的问题的相关资料,

vue3实现国际化的过程与遇到的问题详解

前言

开发了一个国际化的项目,技术栈是vue3 + TS + vite + vant + pinia, 需要设置多语言,采用的是vue-i18n这一个国际化插件,貌似只看到英文文档,而且网上找的其他教程大部分是针对vue2的,对应vue3的比较少,所以自己整理了一下

安装引入

npm install vue-i18n

在src下新建locals文件夹,包含index.js,en.js,zh.js(只做中英文切换)

// zh.js
export default {
    login: {
        login: "登录",
        userName: "用户名",
        password: "密码"
    }
}
// en.js
export default {
    login: {
        login: "login",
        userName: "userName",
        password: "password"
    }
}
// index.js
import { createI18n } from "vue-i18n"
import zh from "./zh"
import en from "./en"

const messages = {
  en,
  zh,
}
const language = (navigator.language || "en").toLocaleLowerCase() // 这是获取浏览器的语言
const i18n = createI18n({
  locale: localStorage.getItem("lang") || language.split("-")[0] || "en", // 首先从缓存里拿,没有的话就用浏览器语言,
  fallbackLocale: "en", // 设置备用语言
  messages, 
})

export default i18n

有个注意的地方就是上面用了缓存,待会会说到为什么要这样做

最后在main.js引入就好了

import { createApp } from "vue"
import i18n from "./locals"

const app = createApp(App)
app.use(i18n)

app.mount("#app")

至此插件就算配置好了,接下来使用的话基本上就两种场景,一是在