UNPKG

es-grid-template

Version:

es-grid-template

69 lines 1.86 kB
import * as React from 'react'; import LocaleContext from "./context"; import defaultLocaleData from "./en_US"; import vi_VN from "./vi_VN"; import en_US from "./en_US"; import ja_JP from "./ja_JP"; import de_DE from "./de_DE"; import zh_CN from "./zh_CN"; import vi from 'rc-master-ui/es/locales/vi_VN'; import en from 'rc-master-ui/es/locales/en_US'; import ja from 'rc-master-ui/es/locales/ja_JP'; import de from 'rc-master-ui/es/locales/de_DE'; import zh from 'rc-master-ui/es/locales/zh_CN'; const useLocale = (componentName, defaultLocale) => { const fullLocale = React.useContext(LocaleContext); const getLocale = React.useMemo(() => { const locale = defaultLocale || defaultLocaleData[componentName]; const localeFromContext = fullLocale?.[componentName] ?? {}; return { // @ts-ignore ...(typeof locale === 'function' ? locale() : locale), ...(localeFromContext || {}) }; }, [componentName, defaultLocale, fullLocale]); const getLocaleCode = React.useMemo(() => { const localeCode = fullLocale?.locale; // Had use LocaleProvide but didn't set locale if (fullLocale?.exist && !localeCode) { return defaultLocaleData.locale; } return localeCode; }, [fullLocale]); return [getLocale, getLocaleCode]; }; export default useLocale; export const getLocale = lang => { // folder locale switch (lang) { case 'vi': return vi_VN; case 'en': return en_US; case 'ja': return ja_JP; case 'de': return de_DE; case 'zh': return zh_CN; default: return vi_VN; } }; export const getLocales = lang => { // folder locales switch (lang) { case 'vi': return vi; case 'en': return en; case 'ja': return ja; case 'de': return de; case 'zh': return zh; default: return vi; } };