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

前言

博主最近打算用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优化

相关推荐

  1. ViteVue 3的SSR实践

    2024-06-18 14:30:01       14 阅读
  2. vue3 + vite 实用依赖与配置

    2024-06-18 14:30:01       6 阅读
  3. vue3+vite

    2024-06-18 14:30:01       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 14:30:01       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 14:30:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 14:30:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 14:30:01       18 阅读

热门阅读

  1. 数据库分库分表

    2024-06-18 14:30:01       6 阅读
  2. MySQL触发器基本结构

    2024-06-18 14:30:01       6 阅读
  3. Cesium4Unreal - # 011A Http通信

    2024-06-18 14:30:01       5 阅读
  4. windows11 ssh 无法连接问题解决方法

    2024-06-18 14:30:01       6 阅读
  5. C语言、C++和C#的区别在什么地方?

    2024-06-18 14:30:01       7 阅读
  6. HTML 事件

    2024-06-18 14:30:01       6 阅读
  7. 云端数据保护的挑战与对策

    2024-06-18 14:30:01       8 阅读
  8. 【C/C++】工业级别的日志文件轮转策略原理

    2024-06-18 14:30:01       6 阅读
  9. VO 和 DO

    2024-06-18 14:30:01       7 阅读
  10. 8D错漏件分析改进

    2024-06-18 14:30:01       5 阅读
  11. 编程连接主板:深入探索与实践的技术之旅

    2024-06-18 14:30:01       7 阅读
  12. 程序员做电子书产品变现的复盘(5)

    2024-06-18 14:30:01       5 阅读