vue3中使用i18n国际化插件

4 篇文章 0 订阅

vue3中使用i18n国际化插件

1,下载i18n到项目中
npm install --save vue-i18n
2,在src目录下新建i18n文件夹

在这里插入图片描述

3,然后新建 en.ts index.ts zh.ts

在这里插入图片描述

4,在index.ts中引入i18n插件
// index.ts 文件内容

import { createI18n } from 'vue-i18n';

import ZH from './zh';
import EN from './en';

const message = {
  zh: {
    ...ZH,
  },
  en: {
    ...EN,
  },
};

//当前语言状态
const getCurrentLanguage = () => {
  const UAlang = navigator.language; // zh-CN
  const langCode = UAlang.indexOf('zh') !== -1 ? 'zh' : 'en';
  localStorage.setItem('lang', langCode);
  return langCode;
};

const i18n = createI18n({
  legacy: false,
  globalInjection: true,
  locale: getCurrentLanguage() || 'zh',
  messages: message,
});

export default i18n;

5,en.ts 和 zh.ts 写入需要转化的文字和内容

en.ts

// en.ts 文件内容

export default {
  login: {
    title: 'Sign in',
    ipt_name: 'Username',
    ipt_psd: 'PassWord',
    btn_login: 'Sign in',
    tips_btn: 'Remember me',
    forget_psd: 'Forget Password?',
    btn_bottom: 'Mobile sign in',
    btn_bottom1: 'Qr code sign in',
    btn_bottom2: 'Sign up',
  },
  menuRouter: {
    index: 'index',
    iconsComponents: 'icons/components',
    list: 'list',
    complexList: 'complexList',
    packageList: 'packageList',
    signList: 'signList',
    simpleList: 'simpleList',
    errorPage: 'errorPage',
    fourHundredAndOne: 'fourHundredAndOne',
    fourHundredAndFour: 'fourHundredAndFour',
    dataVisualization: 'dataVisualization',
    trendCharts: 'trendCharts',
  },
  home: {
    card: 'New Visits',
    card1: 'New Messages',
    card2: 'New Purchases',
    card3: 'New Shoppings',
  },
  navBar: {
    index: 'index',
    list: 'list',
    complexList: 'complexList',
    packageList: 'packageList',
    signList: 'signList',
    data: 'data',
    fourHundredAndOne: '401',
    fourHundredAndFour: '404',
  },
};

zh.ts

// zh.ts 文件内容

export default {
  login: {
    title: '登录',
    ipt_name: '账号',
    ipt_psd: '密码',
    btn_login: '登录',
    tips_btn: '记住我',
    forget_psd: '忘记密码?',
    btn_bottom: '手机登录',
    btn_bottom1: '二维码登录',
    btn_bottom2: '注册',
  },
  menuRouter: {
    index: '系统首页',
    iconsComponents: '图标/组件',
    list: '列表',
    complexList: '复杂列表',
    packageList: '封装列表',
    signList: '掘金签到列表',
    simpleList: '简易列表',
    errorPage: '错误页面',
    fourHundredAndOne: '401',
    fourHundredAndFour: '404',
    dataVisualization: '数据可视化',
    trendCharts: '流程图',
  },
  home: {
    card: '最新访问',
    card1: '最新消息',
    card2: '最新购买',
    card3: '最新购物',
  },
  navBar: {
    index: '首页',
    list: '列表',
    complexList: '复杂列表',
    packageList: '封装列表',
    signList: '掘金签到列表',
    data: '流程图',
    fourHundredAndOne: '401',
    fourHundredAndFour: '404',
  },
};

6,然后在main.ts中引入
import i18n from '@/i18n/index';
...
app.use(i18n);
7,使用

在template中直接使用
在这里插入图片描述

8,切换语言

import { useI18n } from 'vue-i18n';
const langT = ref(false);
const { locale } = useI18n();

changeLang() //先进行一次调用
//语言切换函数
function changeLang() {
  let lang = langNum.value ? 'en' : 'zh';
  locale.value = lang;
  localStorage.setItem('lang', lang);
}
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cheng Lucky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值