import defaultLocale from '../locale/en_US'; export interface ModalLocale { okText: string; cancelText: string; justOkText: string; } let runtimeLocale: ModalLocale = { ...(defaultLocale.Modal as ModalLocale), }; let localeList: ModalLocale[] = []; const generateLocale = () => localeList.reduce<ModalLocale>( (merged, locale) => ({ ...merged, ...locale }), defaultLocale.Modal!, ); export function changeConfirmLocale(newLocale?: ModalLocale) { if (newLocale) { const cloneLocale = { ...newLocale }; localeList.push(cloneLocale); runtimeLocale = generateLocale(); return () => { localeList = localeList.filter((locale) => locale !== cloneLocale); runtimeLocale = generateLocale(); }; } runtimeLocale = { ...(defaultLocale.Modal as ModalLocale), }; } export function getConfirmLocale() { return runtimeLocale; }