nuxt3+vue3+vite+TS实现国际化

news2024/11/25 4:52:17

前言

博主最近打算用Nuxt3重构了自己SSR博客,打算添加国际化功能,众所周知,实现国际化已是一个很常见的功能。用户可以根据自己的喜好,设置页面的自己合适的语言,从而实现国际化浏览。这样用户体验度会大大提升。博客用的nuxt3+vue3+vite+TS实现国际化,国际化用的vue-i18n,下面我给大家详细介绍。 

一、安装依赖

#npm安装依赖
npm i vue-i18n 
npm i @nuxtjs/i18n@next -D

#或者yarn安装
yarn add vue-i18n 
yarn add @nuxtjs/i18n@next -D

二、配置nuxt.config.ts

//nuxt.config.ts
export default defineNuxtConfig({
  modules: [
    '@nuxtjs/i18n',
  ],
  i18n: {
    strategy: 'no_prefix', // 添加路由前缀的方式
    locales: ["en","zh"], //配置语种
    defaultLocale: 'zh', // 默认语种
    vueI18n: './i18n/config.ts', // 通过vueI18n配置
  }
})

三、i18n配置 

创建i18n文件件用来存放语种文件,以及语种的json翻译字典

config.ts配置

import en from './lang/en_us.json'
import zh from './lang/zh_cn.json'
export default defineI18nConfig(() => ({
  legacy: false, // 是否兼容之前
  fallbackLocale: 'en', // 区配不到的语言就用en
  messages: {
    en,
    zh,
  },
}))

 en_us.json

{
  "name": "chaoyang",
  "messages": "how are you!"
}

zh_cn.json

{
  "name": "朝阳",
  "messages": "你好吗!"
}

四、如何使用

<template>
  <div>
    <n-button tertiary type="primary" @click="setLocale('en')">
      英文
    </n-button>
    <n-button tertiary type="primary" @click="setLocale('zh')">
      中文
    </n-button>
    <p>{{ $t('name') }}</p>
    <p>{{ $t('messages') }}</p>
  </div>
</template>

<script lang="ts">
import { defineComponent } from 'vue'
import { NButton } from 'naive-ui'
export default defineComponent({
  setup () {
    const {locale, setLocale} = useI18n()
    return {
      locale,
      setLocale
    }
  }
})
</script>

效果展示

如果你到了这一步,那代表你已经语言切换功能完美实现啦!恭喜恭喜!

用户体验度又上升啦!YYDS!

欢迎在评论区交流。

如果文章对你有所帮助,❤️关注+点赞❤️鼓励一下博主会持续更新。。。。

主题切换功能在线体验链接:https://code-nav.top

往期回顾

  vue3中使用prismjs或者highlight.js实现代码高亮

 vue中粘贴板clipboard的使用方法

图片懒加载vue3-lazy

Vite4.2 +Vue3.2+Less实现主题切换功能

vue3.x使用prerender-spa-plugin预渲染达到SEO优化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1830678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Laravel 高级版:鲜为人知但实用的 Composer 命令

Composer 是 PHP 的首选依赖项管理器,如果您使用 Laravel,那么您已经熟悉常用的命令,例如composer install和composer update。 Composer 还提供了一些鲜为人知但在使用 Laravel 应用程序时很有用的命令。 以下是五个您可能不知道但很想使用的 Composer 命令。 1.composer …

Linux初识地址空间

前言 上一期我们对进程优先级、命令行参数以及环境和变量做了介绍&#xff01;以前我们就提到过一个问题有了运行队列为什么还要有优先级&#xff1f;本期将带你揭晓&#xff01; 本期内容介绍 虚拟地址空间的引入 虚拟地址空间的介绍 如何理解地址空间 为什么要有地址空间 如…

这些话术怎么我准备面试的时候没有刷到过!

“金三银四"过半&#xff0c;打算趁此转岗、跳槽的你还顺利吗...... 最近收到很多关于面试的咨询&#xff0c;小伙伴表示找工作真的太难了&#xff0c; 一个比一个卷&#xff0c;甚至到了怀疑自己的地步&#xff1a;自己是不是不够优秀&#xff1f; 有时候不是自己不够优…

一文入门gcc

今天我们来玩玩gcc。 是因为突然发现ESP-IDF用的是CMake&#xff0c;要了解CMake最好就要先学习Makefile有个基础&#xff0c;学习Makefile最好就要先熟悉gcc&#xff0c;所以就有了今天这篇文章。 首先我们要明确一个问题&#xff0c;那就是gcc/g是什么&#xff0c;它们有什…

IntelliJ IDEA 使用 Maven 时不加载本地私服的最新版本快照(snapshot)JAR 包

IntelliJ IDEA 使用 Maven 时不加载本地私服的最新版本快照&#xff08;snapshot&#xff09;JAR 包 目录 IntelliJ IDEA 使用 Maven 时不加载本地私服的最新版本快照&#xff08;snapshot&#xff09;JAR 包1. 检查 settings.xml2. IDEA Maven 配置3. 强制更新 Snapshot4. 使用…

解锁5G新营销:视频短信的优势与全方位推广策略

随着5G时代的全面来临&#xff0c;企业的数字化转型步伐日益加快&#xff0c;视频短信作为新兴的数字营销工具&#xff0c;正逐步展现出其巨大的潜力。视频短信群发以其独特的形式和内容&#xff0c;将图片、文字、视频、声音融为一体&#xff0c;为用户带来全新的直观感受&…

6月17号直播预告 | 认识XPCIE1032H控制卡以及单轴PSO视觉飞拍和精准输出知识分享

在智能装备领域&#xff0c;精度、效率和产能是关键的竞争力指标&#xff0c;大多数都面临备货排产要求高、需要调度协同生产和更高的加工精度等问题&#xff0c;特别是在3C电子、半导体设备、锂电光伏等高速高精制造领域。 运动控制系统的性能直接影响生产质量和效率&#xf…

Vue54-浏览器的本地存储webStorage

一、本地存储localStorage的作用 二、本地存储的代码实现 2-1、存储数据 注意&#xff1a; localStorage是window上的函数&#xff0c;所以&#xff0c;可以把window.localStorage直接写成localStorage&#xff08;直接调用&#xff01;&#xff09; 默认调了p.toString()方…

充电宝什么牌子耐用?2024年四大品牌推荐!这四款值得入!

在现代生活中&#xff0c;充电宝已经成为我们日常必备的数码配件之一。无论是旅行、出差还是日常通勤&#xff0c;拥有一款耐用且高效的充电宝&#xff0c;能够为我们的电子设备提供源源不断的电力支持。然而&#xff0c;市场上充电宝品牌众多&#xff0c;质量参差不齐&#xf…

Redis 7.x 系列【3】多种连接方式

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. Redis Cli3. 可视化管理工具3.1 Redis Insight3.2 RedisDesktopManager 4. …

AI图书推荐:用ChatGPT按需DIY定制来赚钱

《用ChatGPT按需DIY定制来赚钱》ChatGPT Print Money Method &#xff0c;作者是Cindy Donovan 。 下面是图书概要&#xff1a; ### 第一章&#xff1a;什么是按需印刷以及ChatGPT如何使其变得简单易行&#xff1f; 本章介绍了按需印刷的商业模式&#xff0c;即仅在收到订单时…

解析工业制氮机的应用特点

工业制氮机&#xff0c;作为现代工业生产中不可或缺的重要设备&#xff0c;以其独特的工作原理和广泛的应用领域&#xff0c;为众多行业提供了高效、便捷的氮气制取方案。本文将详细探讨工业制氮机的应用特点&#xff0c;以便更好地了解其在工业生产中的重要作用。 工业制氮机具…

「51媒体」媒体邀约如何高效沟通?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 企业在做活动会议时&#xff0c;往往希望对活动信息或者公司品牌进行一个报道和曝光&#xff0c;那么如何有效且高效的完成与媒体的沟通呢&#xff1f;今天胡老师就来分享下这方面的一些…

【Spring】1. Maven项目管理

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

centos7 离线安装zip和unzip

解压的时候发现不能解压,报-bash: unzip: command not found 1、访问https://www.rpmfind.net/linux/rpm2html/search.php?query=zip&submit=Search+…&system=centos&arch=#/ 2、输入zip和centos搜索,选择el7下载 3、输入unzip和centos搜索,选择el7下载: 安…

【LLM之RAG】RAT论文阅读笔记

研究背景 近年来&#xff0c;大型语言模型&#xff08;LLMs&#xff09;在各种自然语言推理任务上取得了显著进展&#xff0c;尤其是在结合大规模模型和复杂提示策略&#xff08;如链式思维提示&#xff08;CoT&#xff09;&#xff09;时。然而&#xff0c;LLMs 在推理的事实…

小程序简单版音乐播放器

小程序简单版音乐播放器 结构 先来看看页面结构 <!-- wxml --><!-- 标签页标题 --> <view class"tab"><view class"tab-item {{tab0?active:}}" bindtap"changeItem" data-item"0">音乐推荐</view><…

DAY5-力扣刷题

1.两两交换链表中的节点 24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换…

ElasticSearch + kibana:类型声明

当我们使用 kibana 创建索引时&#xff0c;如果不申明数据类型&#xff0c;默认字符串赋予 text类型&#xff0c;如下图所示 接下来我们继续创建多条数据如下&#xff1a; 下面我们来检索下&#xff1a; 通过以上两个案例我们发现&#xff0c;使用 match 模糊查询 li-3 明明…

亚马逊、速卖通等跨境平台测评自养号有哪些好处?

测评自养号顾名思义就是自己用国外真实环境养出来的买家账号&#xff0c;通过国外的手机号、邮箱、真实收货地址&#xff0c;设备环境、当地的住宅IP注册和养出来的买手号 很多卖家都了解过自养号&#xff0c;注册一个账号成本就几块钱&#xff0c;账号又可以长期使用&#xf…