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>
相关推荐
小小19923 分钟前
idea 配置less转化为css
前端·css·less
hhb_6186 分钟前
Less嵌套避坑:优先级冲突实战解析
前端·css·less
快乐的哈士奇9 分钟前
【Next.js实战①】Gmail API 按柜号检索邮件:OAuth 双 Cookie 与搜索 Fallback
开发语言·javascript·ecmascript
云水一下16 分钟前
Vue.js从零到精通系列(五):全局状态管理——Pinia 核心与实践
前端·javascript·vue.js
我不是外星人24 分钟前
浅谈我对 AI 发展的看法
前端·ai编程·claude
kmblack11 小时前
javascript计算年龄
开发语言·javascript·ecmascript
老马聊技术1 小时前
AI对话功能之SpringBoot整合Vue3
vue.js·人工智能·spring boot·后端
甲维斯1 小时前
测一波Kimi K2.7,消耗一周配额!
前端·人工智能·游戏开发
Dick5071 小时前
ROS2 多机器人通用 Driver 层复盘:BaseRobotDriver 到多平台 Mock 切换实现
前端·javascript·机器人
英勇无比的消炎药2 小时前
一站式汇总TinyVue工具案例与真实落地经验
vue.js·前端框架