class Messages { private readonly messageStore = {} private locale: string registerLocale(locale: string, messages: Record) { this.messageStore[locale] = messages this.locale = this.locale || locale } setLocale(locale: string) { this.locale = locale } translate(msgId: string) { return this.messageStore[this.locale][msgId] } } const defaultMessages = new Messages() export const registerLocale = defaultMessages.registerLocale.bind(defaultMessages) export const setLocale = defaultMessages.setLocale.bind(defaultMessages) export const _ = defaultMessages.translate.bind(defaultMessages)