Vue3的国际化i18n

因为项目是vue2向vue3兼容的,所以npm和node版本比较低,安装最新的i18n没有效果,所以安装8.27版本的

npm install --save vue-i18n@8.27.1

 安装完以后新建一个i18n的文件夹,包含一个index.js,以及其他的国际化的文件。

 index.js:

import Vue from 'vue'
import VueI18n from 'vue-i18n'
import localeLib from 'element-ui/lib/locale'
import commonEn from './common/en'
import commonZh from './common/zh'
Vue.use(VueI18n)
const messages = {
    en: {
        ...commonEn
    },
    zh: {
        ...commonZh
    },
}

const i18n = new VueI18n({
    locale: localStorage.getItem('language') || 'en', // 设置语种
    messages, // 设置全局当地语言包,
    fallbackLocale: 'zh',
    numberFormats: { //设置 数字本地化
        'en': {
            currency: { //添加 $
                style: 'currency', currency: 'USD'
            }
        },
        'zh': {
            currency: { //添加 ¥
                style: 'currency', currency: 'JPY', currencyDisplay: 'symbol'
            }
        }
    },
    dateTimeFormats: {//设置 日期时间本地化
        'en': {
            short: {
                year: 'numeric', month: 'short', day: 'numeric'
            },
            long: {
                year: 'numeric', month: 'short', day: 'numeric',
                weekday: 'short', hour: 'numeric', minute: 'numeric'
            }
        },
        'zh': {
            short: {
                year: 'numeric', month: 'short', day: 'numeric'
            },
            long: {
                year: 'numeric', month: 'short', day: 'numeric',
                weekday: 'short', hour: 'numeric', minute: 'numeric'
            }
        }
    }
})
// localeLib.i18n((key, value) => i18n.t(key, value))
export default i18n

其中有关于elementui的国际化暂时不考虑就先注释了,放开的话elementui的组件会有问题。

这个语言的选择是保存在localStorage里面的,也就是说如果切换语言只要修改localStorage里面的值就可以了。

具体的en.js

let common = {
    'title.no': 'no'
}
export default common

main.js

添加i18n

用法:

<template>
  <div class="wrap">
    {{ $t('title.no') }}
  </div>
</template>

模板里面直接使用

setup(props,{root}) {
    onMounted(()=>{
      console.log(root.$t('title.no'))
    })
    return {};
  }

js里面在setup里面用root.$t()

注:结构$t会报错

先使用起来,后期可能会优化或者升级。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue-i18n-next是Vue3版本的国际化插件,用于支持多语言的开发。你可以通过以下步骤来使用它: 第一步是下载Vue-i18n-next插件。你可以使用npm或yarn来进行下载。使用npm的命令是:npm install vue-i18n@next,而使用yarn的命令是:yarn add vue-i18n@next。 第二步是安装@intlify/vue-i18n-loader插件,这个插件用于自定义块的Vue-i18n加载程序,可以用于i18n资源的预编译。你可以使用npm或yarn来进行安装。使用npm的命令是:npm i --save-dev @intlify/vue-i18n-loader@next,而使用yarn的命令是:yarn add -D @intlify/vue-i18n-loader@next。 第三步是创建语言文件夹并在其中创建js或ts文件。在你的项目的src目录下创建一个名为language的文件夹,并在其中创建你的语言文件,可以使用js或ts格式。 通过以上步骤,你就可以开始在Vue3项目中使用Vue-i18n-next进行国际化开发了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue3多语言插件 vue-i18n使用](https://blog.csdn.net/qq_42859450/article/details/126103422)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vue-i18n-loader:用于自定义块的vue-i18n-loader](https://download.csdn.net/download/weixin_42131628/15097221)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vue3中多语言切换vue-i18n@next](https://blog.csdn.net/m0_59818968/article/details/119381340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值