import { reactive, ref } from 'vue' import zhCN from './lang/zh-CN' import { deepMerge } from '../index' type Message = Record type Messages = Record const lang = ref('zh-CN') const messages = reactive({ 'zh-CN': zhCN }) export const Locale = { messages(): Message { return messages[lang.value] }, use(newLang: string, newMessage?: Message) { lang.value = newLang if (newMessage) { this.add({ [newLang]: newMessage }) } }, add(newMessages: Messages = {}) { deepMerge(messages, newMessages) } } export const useCurrentLang = () => lang export default Locale