|
|
|
@ -9,6 +9,8 @@ export interface LocaleErrorHandlerData { |
|
|
|
locale: string; |
|
|
|
} |
|
|
|
|
|
|
|
let localeMap = {}; |
|
|
|
|
|
|
|
export interface RegisterLocaleData { |
|
|
|
cultureNameLocaleFileMap: Record<string, string>; |
|
|
|
errorHandlerFn: (data: LocaleErrorHandlerData) => any; |
|
|
|
@ -21,27 +23,22 @@ export function registerLocale( |
|
|
|
} = {} as RegisterLocaleData, |
|
|
|
) { |
|
|
|
return (locale: string): Promise<any> => { |
|
|
|
cultureNameLocaleFileMap = { ...differentLocales, ...cultureNameLocaleFileMap }; |
|
|
|
localeMap = { ...differentLocales, ...cultureNameLocaleFileMap }; |
|
|
|
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
return import( |
|
|
|
/* webpackChunkName: "_locale-[request]"*/ |
|
|
|
/* webpackInclude: /[/\\](ar|cs|en|fr|pt|tr|ru|hu|sl|zh-Hans|zh-Hant).js/ */ |
|
|
|
/* webpackExclude: /[/\\]global|extra/ */ |
|
|
|
`@angular/common/locales/${cultureNameLocaleFileMap[locale] || locale}.js` |
|
|
|
) |
|
|
|
.then(module => { |
|
|
|
registerLocaleData(module.default, locale); |
|
|
|
resolve(module.default); |
|
|
|
}) |
|
|
|
.catch(error => { |
|
|
|
errorHandlerFn({ |
|
|
|
resolve, |
|
|
|
reject, |
|
|
|
error, |
|
|
|
locale, |
|
|
|
}); |
|
|
|
`@angular/common/locales/${localeMap[locale] || locale}.js` |
|
|
|
).catch(error => { |
|
|
|
errorHandlerFn({ |
|
|
|
resolve, |
|
|
|
reject, |
|
|
|
error, |
|
|
|
locale, |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}; |
|
|
|
} |
|
|
|
@ -53,8 +50,7 @@ export function storeLocaleData(data: any, localeId: string) { |
|
|
|
|
|
|
|
export async function defaultLocalErrorHandlerFn({ locale, resolve }: LocaleErrorHandlerData) { |
|
|
|
if (extraLocales[locale]) { |
|
|
|
registerLocaleData(extraLocales[locale], locale); |
|
|
|
resolve(); |
|
|
|
resolve({ default: extraLocales[localeMap[locale] || locale] }); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
|