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>
相关推荐
旷世奇才李先生1 天前
065智慧农业专家远程指导系统-springboot+vue
java·vue.js·spring boot
六元七角八分1 天前
学习笔记一《JavaScript基础语法》
javascript·笔记·学习
有一个好名字1 天前
claude code安装
linux·运维·前端
BIBABULALA1 天前
Mini Virtual Machine — 可视化虚拟机模拟器(91行)
前端·css·css3
筱璦1 天前
期货软件开发「启动加载页 / 初始化窗口」
前端·c#·策略模式·期货
只与明月听1 天前
RAG深入学习之Emabedding
前端·python·面试
We་ct1 天前
React Scheduler & Lane 详解
前端·react.js·前端框架·reactjs·个人开发·任务调度·优先
小道士写程序1 天前
Babylon.js WebGPU Ocean Demo — 完整踩坑记录
开发语言·javascript·ecmascript
kgduu1 天前
js之json处理
前端·javascript·json
@木尘1 天前
前端面试【 八股文篇】
前端·面试·职场和发展