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>
相关推荐
Highcharts.js2 小时前
如何使用Highcharts Flutter的官方使用文档
javascript·flutter·开发文档·highcharts
东东5162 小时前
资产管理信息系统ssm+vue
前端·javascript·vue.js
森爱。2 小时前
web开发全家桶(django+前端+数据库)
前端·python·django
骆驼爱记录2 小时前
Word侧边页码设置全攻略
前端·自动化·word·excel·wps·新人首发
利刃大大2 小时前
【Vue】声明式导航与传参 && 编程式导航与传参 && 嵌套与守卫
javascript·vue.js·ecmascript
方安乐2 小时前
react笔记之useCallback/useEffect闭包陷阱
前端·笔记·react.js
沐墨染2 小时前
黑词分析前端组件设计:双面板交互与黑词进度监控
前端
运维行者_2 小时前
用Applications Manager监控HAProxy:保障负载均衡高效稳定
运维·开发语言·前端·数据库·tcp/ip·负载均衡·服务器监控
a1117762 小时前
拼图小游戏(HTML5、CSS3、JavaScript)
javascript·css3·html5