vue3实现语言切换vue-i18n

vue3实现语言切换vue-i18n

1、安装依赖

javascript 复制代码
npm install vue-i18n@next

2、创建配置文件locales

en.json

javascript 复制代码
{
  "num1": "num1",
  "num2": "num2"
}

zh.json

javascript 复制代码
{
  "num1": "数字1",
  "num2": "数字2"
}

i18n.js

javascript 复制代码
import { createI18n } from 'vue-i18n'
import zh from './zh.json'
import en from './en.json'
const messages = {
  zh,
  en,
}
// 默认语言(可从 localStorage 或 navigator.language 获取)
const savedLocale = localStorage.getItem('locale') || 'zh'
const i18n = createI18n({
  locale: savedLocale,
  fallbackLocale: 'en',
  messages,
})

export default i18n

3、main.js引用

javascript 复制代码
import i18n from '@/locales/i18n'
app.use(i18n)

4、组件里使用

javascript 复制代码
<script setup>
import { useI18n } from 'vue-i18n'
const { locale } = useI18n()
const toggleLanguage = () => {
  const newLocale = locale.value === 'zh' ? 'en' : 'zh'
  locale.value = newLocale
  localStorage.setItem('locale', newLocale) // 保存用户偏好
}
</script>

<template>
  <div>
    <button @click="toggleLanguage()">切换语言</button>
    <div>{{ $t('num1') }}</div>
    <div>{{ $t('num2') }}</div>
  </div>
</template>
相关推荐
沙漠之主3 小时前
C++编程教学设计资料:从入门到实战的完整课程方案
java·前端·c++
hasty4 小时前
不上传新包,也能改变用户拿到的版本:npm dist-tag 的 OIDC 权限治理
前端·npm·node.js
Csvn4 小时前
diff 算法(虚拟 DOM Reconciliation)
前端
前端snow5 小时前
ai agent --- 文件存储
前端
Frag0ut5 小时前
Chrome四大版本获取及共存指南:Stable/Beta/Dev/Canary
前端·chrome·浏览器·dev·beta·canary·共存版
IT_陈寒7 小时前
SpringBoot自动配置坑了我一把,原来是这样绕过去的
前端·人工智能·后端
广州华水科技7 小时前
单北斗GNSS变形监测在大坝安全监测中的应用与优势
前端
zeng不错7 小时前
B站 173 个投稿活动看到眼瞎?我写了个扩展,主打一个精准打击
前端
Latchh7 小时前
前端导出的JPEG红字发糊,质量要拉到100才清楚
前端·图像处理·人工智能·计算机视觉
默_笙8 小时前
🚦 请三个 AI 考官给 RAG 打分:量化评估实战(下)
前端·javascript