VUE3+Ant Design Vue+TS实现当前语言切换组件

8 篇文章 0 订阅
本文介绍了如何在Vue3项目中结合TypeScript和AntDesignVue实现国际化功能,包括使用v-model绑定语言选择器,TS逻辑处理语言切换,以及利用interface和configData管理多语言选项。
摘要由CSDN通过智能技术生成

技术栈:Vue3+TypeScript+Ant Design Vue

简介

当涉及到国际化的内容时,系统往往需要配有多套语言翻译文件,并支持当前语言环境的获取和切换当前语言功能,随之整个系统将切换成对应的多语言。

Vue布局

<template>
  <a-select v-model:value="lang" @change="changeLang" class="lang-select">
      <a-select-option v-for="option in  LangOptions" :key="option.value"  :value="option.value">{{  option.label }}</a-select-option>
    </a-select>
</template>

TS逻辑

主要逻辑文件

<script setup lang=ts>
import { ref } from 'vue'
import { LangOption } from '@/config/interface'
import { langOptions } from '@/config/configData'
import { getCurrLang } from "@/utils/common"

const lang = ref(getCurrLang());
const LangOptions = langOptions;
/*
* 切换语言时修改session并刷新页面
*/
const changeLang = (val: LangOption) => {
  lang.value = val;
  sessionStorage.setItem("language", val);
  window.location.reload();
}
</script>

其他文件

interface 接口定义
// 语言
export enum LangOption {
  EN = 'en',
  ZH = 'zh'
}
configData 语言可选项
import { LangOption } from './interface'

// 语言可选项
export const langOptions = [
  { label: "English", value: LangOption.EN},
  { label: "中文", value: LangOption.ZH},
]
common 通用方法
/** 获取当前环境语言 */
export const getCurrLang = () => {
  const localLang: string = navigator.language.split('-')[0]; // 浏览器语言
  const storageLang: string | null = sessionStorage.getItem("language"); // 本地存储语言
  return storageLang || localLang || 'en';
}

scss样式

.lang-select {
  width: 100px;
}

应用效果

直接在需要应用的地方引入并使用就可以,不需要传任何参数,组件自身会根据当前语言环境自动获取当前语言。
语言环境切换组件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值