UNPKG

@tplc/wot

Version:

54 lines (46 loc) 1.21 kB
/* * @Author: weisheng * @Date: 2024-01-25 23:06:48 * @LastEditTime: 2024-03-30 11:30:55 * @LastEditors: weisheng * @Description: * @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/locale/index.ts * 记得注释 */ import { reactive, ref } from 'vue' import zhCN from './lang/zh-CN' import enUs from './lang/en-US' import { deepAssign } from '../components/common/util' type Message = Record<string, any> type Messages = Record<string, Message> export const setLangStorage = (lang: string) => { uni.setStorageSync('lang', lang) } export const getLangStorage = () => { return uni.getStorageSync('lang') || 'zh-CN' } const lang = ref<string>(getLangStorage()) const messages = reactive<Messages>({ 'zh-CN': zhCN, 'en-US': enUs, }) export const Locale = { messages(): Message { return messages[lang.value] }, use(newLang: string, newMessage?: Message) { lang.value = newLang if (newMessage) { this.add({ [newLang]: newMessage }) } setLangStorage(newLang) }, add(newMessages: Messages = {}) { deepAssign(messages, newMessages) }, getLang() { return lang.value }, } export const useCurrentLang = () => lang export default Locale