即时通信 IM Vue3(国际化语言)

UIKit Vue3 组件库提供了完整的国际化(i18n)解决方案,基于 i18next 构建,支持多语言切换,默认支持以下语言。

相关产品
即时通信 IM 产品页,含版本规格、价格与购买入口。

一、概述

·en-US – 英语(美国)默认为英语

·zh-CN – 简体中文

二、基础配置

请使用 UIKitProvider 包装你的应用,并配置语言选项:

<template> <UIKitProvider language="zh-CN"> <YourApp /> </UIKitProvider></template><script setup lang="ts">import { UIKitProvider } from '@tencentcloud/chat-uikit-vue3';import YourApp from './YourApp.vue';</script>

三、在组件外切换语言

<template> <div> <button @click="setLang('zh-CN')">中文</button> <button @click="setLang('en-US')">English</button> <div>当前的语言是: {{ lang }}</div> <UIKitProvider :language="lang" theme="light" > <YourApp /> </UIKitProvider> </div></template><script setup lang="ts">import { ref } from 'vue';import { UIKitProvider, ConversationList } from '@tencentcloud/chat-uikit-vue3';import YourApp from './YourApp.vue';type Language = 'en-US' | 'zh-CN';const lang = ref<Language>('zh-CN');const setLang = (language: Language) => { lang.value = language;};</script>

四、在组件内切换语言

在组件内可以使用 useUIKit Hook 访问国际化功能。

<template> <div> <div>当前的语言是: {{ language }}</div> <div>{{ t('MessageInput.enter') }}</div> <button @click="setLanguage('en-US')">English</button> <button @click="setLanguage('zh-CN')">中文</button> </div></template><script setup lang="ts">import { useUIKit } from '@tencentcloud/chat-uikit-vue3';const { t, language, setLanguage } = useUIKit();</script>

五、多语言支持/修改语言词条/新增语言

展示如何使用多语言功能:

<script lang="ts" setup>import { UIKitProvider, useUIKit } from '@tencentcloud/chat-uikit-vue3';import YourApp from './YourApp.vue';const customLanguageResources = [ // 替换现有词条 { lng: 'zh-CN', translation: { MessageInput: { send: '我要发送', // 默认是"发送" }, }, }, // 新增一种语言 { lng: 'fr', translation: { MessageInput: { send: 'Je veux envoyer', }, }, },];</script><template> <UIKitProvider language="fr" theme="light"> <YourApp /> </UIKitProvider></template>

六、实践示例 —— 语言检测与持久化

<template> <UIKitProvider :language="language" :language-resources="customResources" > <YourApp /> </UIKitProvider></template><script setup lang="ts">import { ref, watch } from 'vue';import { UIKitProvider } from '@tencentcloud/chat-uikit-vue3';import YourApp from './YourApp.vue';type SupportedLanguage = 'en-US' | 'zh-CN';// 智能语言检测函数const detectLanguage = (): SupportedLanguage => { // 1. 优先使用保存的语言设置 const saved = localStorage.getItem('language') as SupportedLanguage; if (saved) return saved; // 2. 自动检测浏览器语言 const browserLang = navigator.language; if (browserLang.startsWith('zh')) return 'zh-CN'; else return 'en-US'; // 3. 默认回退 return 'auto';};// 初始化语言const language = ref<SupportedLanguage>(detectLanguage());// 监听语言变化并持久化watch(language, (newLang) => { localStorage.setItem('language', newLang); console.log(`语言已切换为: ${newLang}`);}, { immediate: true });</script>

七、注意事项

1. 提供者位置:UIKitProvider 建议用于即时通信所有组件的上层。

2. 语言资源:自定义语言资源会与内置资源合并,相同 key 会覆盖内置资源。

3. 类型安全:使用 TypeScript 时,确保传入的配置符合类型定义。

八、相关文档

·自定义组件 – UIKitProvider

·自定义组件 – ConversationList

·自定义组件 – Chat

·自定义组件 – MessageInput

·自定义组件 – MessageList

·自定义组件 – ChatSetting

·自定义组件 – C2CSetting State

·自定义组件 – GroupSetting State

·自定义组件 – ContactList

·自定义组件 – Search

·chat-uikit-vue3 npm

·GitHub Demo

九、交流与反馈

如遇任何问题,可联系 页面售后 反馈,享有专业工程师的支持,解决你的难题。

赞 (0)
上一篇 4天前
下一篇 4天前