当前位置: 首页 > news >正文

【插件】vue-i18n的安装和使用全解

        vue-i18n是Vue.js的国际化插件,它提供了丰富的API和配置选项,支持多种语言切换、语言资源管理、日期时间格式化等功能,能够满足不同场景下的国际化需求。

1.  项目准备

在开始之前,请确保已经具备以下条件:

Vue.js项目环境:已搭建好的Vue.js项目,建议使用Vue CLI创建。

Node.js环境:已安装Node.js和npm。

2. 安装vue-i18n

使用npm安装vue-i18n

npm install vue-i18n

3. 配置并使用vue-i18n

3.1. 创建语言资源文件

        在项目中创建一个locales文件夹,用于存放不同语言的资源文件。例如,创建en-US.jsonzh-CN.json分别存放英文和中文的语言资源。(你也可以使用js文件存储)

//  /locales/zh-CN.json
{"hello":"你好","farewell":"再见","welcomeMessage": "你好, {name}! 你有{count}条新信息."
}//  /locales/en-US.json
{"hello":"Hello","farewell":"Goodbye","welcomeMessage": "Welcome, {name}! You have {count} new messages."
}

3.2. 创建i18n实例

        在main.js或单独的配置文件中创建vue-i18n实例,并配置语言资源和默认语言:

// main.tsimport zhCN from '@/components/locales/zh-CN.json'
import enUS from '@/components/locales/en-US.json'
import App from './App.vue'const i18n = createI18n({legacy: false, // 使用vue3的组合式apilocale: 'zhCN', // 默认语言fallbackLocale: 'enUS', // 回退语言messages: {zhCN,enUS}
})export const app = createApp(App)
app.use(i18n)
app.mount('#app')

3.3. 在template中使用     

        在 template 中,通过t函数来获取翻译文本。

        t函数来获取翻译文本。t函数来获取翻译文本。t函数的第一个参数是翻译键,第二个参数是一个包含变量的对象(如果有变量需要传递)。

(1)基础用法

<template><div><!-- 使用$t函数获取翻译文本 --><p>{{ $t('hello') }}</p></div>
</template>

(2)使用变量

<template><div><!-- 使用$t函数并传递变量 --><p>{{ $t('welcomeMessage', { name: '苏西', count: 2 }) }}</p></div>
</template>

3.4. 在 script 中使用

        在 script 中,无论是组合式 API 还是选项式 API,都可以通过相应的方式获取$t函数(或useI18n获取的t函数)来进行翻译操作,并传入变量以得到带有动态内容的翻译文本。

        以vue3的组合式 API为例:

<template><div><!-- 显示翻译后的文本 --><p>{{ translatedMessage }}</p></div>
</template><script setup>
import { useI18n } from 'vue-i18n';
const { t } = useI18n();// 定义传递信息的变量
const nameInfo = { name: '苏西', count: 2 }
// 获取翻译文本并传入变量
const translatedMessage = t('welcomeMessage', nameInfo)</script>

4. 动态切换语言

        通过修改locale的值,可以实现语言的切换。

<template><div><button @click="changeLanguage('zhCN')">中文</button><button @click="changeLanguage('enUS')">English</button></div>
</template><script setup>
import { useI18n } from 'vue-i18n'
const { locale } = useI18n()function changeLanguage(lang) {locale.value = langconsole.log('locale.value', locale.value)
}
</script>

Tips:若使用中有问题,注意看控制台是否有报错,根据报错做对应的修改。


文章转载自:
http://bidialectal.wsgyq.cn
http://carlist.wsgyq.cn
http://briolette.wsgyq.cn
http://alkanet.wsgyq.cn
http://calcrete.wsgyq.cn
http://affined.wsgyq.cn
http://arkansan.wsgyq.cn
http://africa.wsgyq.cn
http://advancement.wsgyq.cn
http://aerolith.wsgyq.cn
http://carioca.wsgyq.cn
http://aetiological.wsgyq.cn
http://atrato.wsgyq.cn
http://analeptic.wsgyq.cn
http://calamographer.wsgyq.cn
http://carmelite.wsgyq.cn
http://auscultation.wsgyq.cn
http://alterne.wsgyq.cn
http://beanpole.wsgyq.cn
http://beneath.wsgyq.cn
http://achromat.wsgyq.cn
http://astrobotany.wsgyq.cn
http://adenitis.wsgyq.cn
http://amish.wsgyq.cn
http://antichristian.wsgyq.cn
http://achlorhydria.wsgyq.cn
http://calumniatory.wsgyq.cn
http://abrupt.wsgyq.cn
http://bastioned.wsgyq.cn
http://cataract.wsgyq.cn
http://www.dtcms.com/a/281504.html

相关文章:

  • Nvidia服务器备份指南 (数据+环境)
  • 高防CDN与普通CDN的核心区别
  • DevOps落地的终极实践:8大关键路径揭秘!
  • Python 字典 (Dictionary) 详解
  • AI产品经理面试宝典第18天:AI思维矩阵构建与实战应用面试题与答法
  • 2HDMI/1DP转EDP/LVDS,支持4K,144HZ和240HZ.
  • zynq分频的例子
  • python学智能算法(十九)|SVM基础概念-超平面
  • Python语法入门之装饰器的基本用法
  • 硬件设计学习DAY1——电源的分类
  • js运算符
  • Java线程池深度解析与Spring Boot实战指南
  • 文献阅读 250715-Atmospheric rivers cause warm winters and extreme heat events
  • 服务器数据恢复—光纤存储硬盘扇区不稳定导致业务中断如何恢复数据?
  • 【物联网】基于树莓派的物联网开发【9】——树莓派修正系统时间五种解决方案
  • next.js 登录认证:使用 github 账号授权登录。
  • Postgresql源码(147)Nestloop流程与Instrumentation简单分析
  • 24.找到列表中最大或最小值的索引
  • 什么是私有化部署企业即时通讯?吱吱企业即时通讯安全吗?
  • frp内网穿透(二)
  • 【实时Linux实战系列】实时嵌入式系统开发基础
  • Java的stream流其一
  • 美图RoboNeo发布:一句话修图建站 | AI早报
  • Rembg开源项目全面解析:从原理到实践应用
  • 银河麒麟(Kylin) - V10 GFB高级服务器操作系统ARM64部署昇腾910b训练机以及Docker安装
  • AiPy+豆包:数据分析可视化,一键生成GUI工具
  • 复习笔记 39
  • 2025牛客暑期多校训练记录
  • 1688图片搜索逆向工程与多模态搜索融合实践——基于CLIP模型的特征向量检索优化
  • 4-Nodejs模块化