es-grid-template
Version:
es-grid-template
69 lines • 1.86 kB
JavaScript
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;
}
};