Vue3中使用vue-i18n实现多语言切换

这篇具有很好参考价值的文章主要介绍了Vue3中使用vue-i18n实现多语言切换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、安装插件【注意Vue3使用9版本,Vue2用的是8版本】

npm install vue-i18n@next 或者 yarn add vue-i18n@next

2、在src在创建lang文件夹,并创建index.js、i18n.js、和 翻译的内容文件

Vue3中使用vue-i18n实现多语言切换

 3、写入翻译内容,举个例子:英文(en)、中文简体(zhCN)、中文繁体(zhTN)

Vue3中使用vue-i18n实现多语言切换

const zhCN = {
  messages: {
    "upload": "上传"
  }
}
export default zhCN

3、编写index.js文件,导出所有翻译内容

import en from './en'
import zhCN from './zh-CN'
import zhCT from './zh-CT'

export default {
  en, zhCN, zhCT
}

4、编写i18n.js文件

import { createApp } from 'vue'
import App from '../App.vue'

import { createI18n } from 'vue-i18n'
import messages from './index'


const app = createApp(App)

const i18n = createI18n({
  legacy: false, //处理报错Uncaught (in promise) SyntaxError: Not available in legacy mode (at message-compiler.esm-bundler.js:54:19)
  locale: localStorage.getItem('lang') || "zhCN", // 注意locale属性~~~~~~~~!
  messages
})

export default function (app) {
  app.use(i18n)
}

5、在main.js中挂载

Vue3中使用vue-i18n实现多语言切换

 至此,就可以使用按需显示语种了。

那么,当我们去改变locale的值为对应的语种时就可以做到多语言切换了~

<template>
  <!-- 国际化页面 -->
  <div>
    <span>通过切换语言按钮,来改变当前内容的语言</span>
    <el-button type="primary" @click="changeLang('en')">英文</el-button>
    <el-button type="primary" @click="changeLang('zhCT')">中文繁体</el-button>
    <div>
      <span>{{ $t("messages.upload") }}</span>
    </div>
  </div>
</template>

<script setup>
import { useI18n } from "vue-i18n";
const { locale } = useI18n();

const changeLang = (val) => {
  locale.value = val;
  localStorage.setItem("lang", val);
};
</script>
<style scoped lang='less'>
</style>

多语言

  • 在vue3 template中使用多语言
<span>{{ $t("messages.upload") }}</span>
  • 在vue3 template中数据绑定使用多语言 
 <el-input type="text" :placeholder="$t('messages.placeholderTips')" />
  • 在vue3 setup语法糖中使用多语言:
import { useI18n } from "vue-i18n";
const { t } = useI18n();

console.log('t("messages.home")', t("messages.home"))
  • 在vue3 中路由里使用多语言(面包屑同理)

Vue3中使用vue-i18n实现多语言切换

    <template #title>{{ $t(item.title) }}</template>

 插件官网:Getting started | Vue I18n 文章来源地址https://www.toymoban.com/news/detail-463811.html

到了这里,关于Vue3中使用vue-i18n实现多语言切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue-i18n国际化多语言与多套UI组件库使用(Element Plus、Ant Design Vue、Naive UI)

    demo源码:Vue3 UI Lang 因调研需要,需在同一个项目中集成好几种UI组件库的多语言实现,查看各种组件库的表现情况,以便选定组件库。 注意:这只在调研过程中会如此,实际开发项目中极少存在一个项目中集成多个UI组件库的情况。 本demo实际试验阿拉伯语、法语、葡萄牙语

    2024年02月08日
    浏览(41)
  • Vue3中,国际化插件vue-i18n使用记录,配合VSCode自动化翻译插件i18n Ally

    说明文档: vue-i18n 版本说明: vue: 3.0.0+ vue-i18n: 9.x版 src 目录下新建目录 lang ,存放 i18n 的配置。 新建目录名称: lang (语言)、 locales (语系设定)、 i18n ,这些名称都可被VSCode图标插件( vscode-icons )检测到并美化。 lang 目录下,新建 index.js 文件,引入 vue-i18n 。 语言的配置信

    2024年02月12日
    浏览(30)
  • 用i18n 实现vue2+element UI的国际化多语言切换详细步骤及代码

    这个地方要注意自己的vue版本和i1n8的匹配程度,如果是vue2点几,记得安装i18n的@8版本,不然会自动安装的最新版本,后面会报错哦,查询了下资料,好像最新版本是适配的vue3。 在src下面新建i18n文件夹,然后在里面新建index.js,里面的内容如下 新建i18n文件夹里面新建config文

    2024年02月14日
    浏览(39)
  • electron+vue3全家桶+vite项目搭建【六】集成vue-i18n 国际化

    已发现 9.2.2版本的vue-i18n 如果使用cnpm安装,打包会报错,使用npm或者pnpm安装依赖没有问题 如果需要多语言支持,那么最好在项目搭建之初我们就集成好国际化 vue i18n官网 demo项目地址 关于多窗口国际化不同步更新状态的问题解决方案 1.我们现在src下面创建locals目录,里面创

    2023年04月12日
    浏览(64)
  • 【Vue】使用 vue-i18n 报错问题解决(一)

    初始化好前端项目后,准备使用vue中文插件i18n,代码里加载好插件,重启项目发现页面无法跳转至首页,呈空白 a.右击打开检查 b.查看console c.报错信息 具体报错内容: ssage-compiler.esm-bundler.js:54 Uncaught (in promise) SyntaxError: Not available in legacy mode (at message-compiler.esm-bundler.js:54:1)

    2024年02月16日
    浏览(27)
  • Vue 国际化之 vue-i18n 的使用

    目录 一、安装 二、使用 1、准备语言包 2、准备翻译的语言环境 3、实现语言翻译 三、整合 ElementUI 语言包 1、扩展中文 2、扩展英文  3、使用扩展语言翻译 四、问题记录 五、扩展 vue3 中使用 vue-i18n 如果在一个模块系统中使用它,你必须通过  Vue.use()  明确地安装  vue-i18n

    2024年03月14日
    浏览(38)
  • 【chrome扩展开发】vue-i18n使用问题及解决方案

    记录chrome扩展开发时调用vue-i18n的一些问题和解决方法 vue : ^3.3.4 vue-i18n : ^9.2.2 vite : ^4.4.8 Uncaught (in promise) EvalError: Refused to evaluate a string as JavaScript because \\\'unsafe-eval\\\' is not an allowed source of script in the following Content Security Policy directive: \\\"script-src \\\'self\\\' \\\'wasm-unsafe-eval\\\' \\\'inline-speculation-

    2024年02月14日
    浏览(33)
  • Vue实现多语言(i18n)

    安装i18n插件。 在src目录下,创建一个【language】文件夹,并创建两个语言包js文件。 中文语言包:【zh.js】 英文语言包:【en.js】 完善en.js文件和zh.js文件。两个文件的结构要相同。如果用Element-UI,这里导入。 en.js zh.js 在main.js引入插件。 在页面上使用和切换。 使用: 切换

    2024年02月15日
    浏览(39)
  • Vue前端使用I18实现中英文切换

    一、配置vue-i18 1. 进入src/locales/index.js 2. 查看 src/utils/tool.js文件 3. 查看 src/locales/lang/zh-cn.js、src/locales/lang/en.js 二、配置页面 进入需要有翻译功能的页面进行配置,如 login.vue 1. HTML内容 2. JS内容 三、主要步骤 方法一 ① 页面上添加小地球选择语言显示选项 ② 实现添加的小地

    2024年04月25日
    浏览(28)
  • uniapp国际化npm install vue-i18n报错

    在vue2环境下,默认安装 npm install vue-i18n 的版本是 vue-i18n@9.1.9,所以报错。 用以上命令查看版本:  vue2建议5.0版本  

    2024年02月12日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包