import { ref, reactive } from 'vue'; import { deepAssign } from '../utils/deep-assign'; import defaultMessages from './lang/zh-CN'; type Message = Record; type Messages = Record; const lang = ref('zh-CN'); const messages = reactive({ 'zh-CN': defaultMessages, }); export default { messages(): Message { return messages[lang.value]; }, use(newLang: string, newMessages?: Message) { lang.value = newLang; this.add({ [newLang]: newMessages }); }, add(newMessages: Message = {}) { deepAssign(messages, newMessages); }, };