/* * @Description: * @Version: 1.0 * @Autor: yongqing * @Date: 2022-03-16 10:46:50 * @LastEditors: yongqing * @LastEditTime: 2022-03-21 18:23:15 */ import {reactive, ref} from "vue" import { deepAssign } from '../Utils/deepAssign'; import defaultLang from './lang/zh-CN'; export type Message = Record; type Messages = Record; const lang = ref('zh-CN'); const messages = reactive({ 'zh-CN': defaultLang, }); export const Locale = { messages(): Message { return messages[lang.value]; }, use(newLang: string, newMessages?: Message) { lang.value = newLang; this.merge({ [newLang]: newMessages }); }, merge(newMessages: Message = {}) { deepAssign(messages, newMessages); }, getLocale():string{ return lang.value } }; export default Locale;