Vue3国际化

本文介绍了如何在Vue项目中集成vue-i18n实现国际化功能,包括安装、设置语言文件、注册和使用i18n组件,以及创建钩子切换语言。重点在于前端静态页面的翻译和动态渲染的区分。
摘要由CSDN通过智能技术生成

前言

想要给我的网盘项目加上国际化的东西

开始

vue

安装

pnpm add vue-i18n@9

基本使用

接着就是创建想要的翻译的语言了

在src目录下面创建一个lang文件夹放一些要翻译的语言,例如:zh.ts,en.ts,kor.ts,jp.ts

export default {
    "首页":"首页"
}
export default {
    "首页":"index"
}

创建一个index.ts来进行初始化

import { createI18n } from 'vue-i18n';
import en from './en-US';
import cn from './zh-CN';

export const LOCALE_OPTIONS = [
  { label: '中文', value: 'zh-CN' },
  { label: 'English', value: 'en-US' },
];
const defaultLocale = localStorage.getItem('arco-locale') || 'zh-CN';

const i18n = createI18n({
  locale: defaultLocale,
  fallbackLocale: 'en-US',
  legacy: false,
  allowComposition: true,
  messages: {
    'en-US': en,
    'zh-CN': cn,
  },
});

export default i18n;

进行注册使用

import { createApp } from 'vue'

const app = createApp({
  // something vue options here ...
})

app.use(i18n)
app.mount('#app')

创建一个hook来进行切换语言

import { computed } from 'vue';
import { useI18n } from 'vue-i18n';
import { Message } from '@arco-design/web-vue';

export default function useLocale() {
  const i18 = useI18n();
  const currentLocale = computed(() => {
    return i18.locale.value;
  });
  const changeLocale = (value: string) => {
    if (i18.locale.value === value) {
      return;
    }
    i18.locale.value = value;
    localStorage.setItem('arco-locale', value);
    Message.success(i18.t('navbar.action.locale'));
  };
  return {
    currentLocale,
    changeLocale,
  };
}

这些就是前端进行静态页面来渲染语言了,对于那些需要动态渲染语言的,翻译数据来自后端。

应用到页面上

<a-link>{{ $t('userInfo.viewAll') }}</a-link>
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值