UNPKG

@alicloudfe/components

Version:

A react component library for aliyun

57 lines (56 loc) 1.47 kB
/** * 国际化相关函数 */ import { ConfigProvider } from '@alifd/next'; import zhCN from './zh-cn'; import enUS from './en-us'; import zhTW from './zh-tw'; var languageMap = { 'zh-cn': zhCN, 'en-us': enUS, 'zh-tw': zhTW, }; var extraLanguageMap = { 'zh-cn': {}, 'en-us': {}, 'zh-tw': {}, }; export function getLanguage() { return ConfigProvider.getLanguage(); } export function setLocale(targetMap) { extraLanguageMap = targetMap; } export function getSourceLocale() { return languageMap; } export function getMessage(id, data) { var language = ConfigProvider.getLanguage(); // const language = ConfigProvider.getLanguage(); return (getDeepValue(id, extraLanguageMap[language]) || getDeepValue(id, languageMap[language]) || getDeepValue(id, zhCN) || id).replace(/\{(\S)*?\}/g, function (key) { return data[key.substr(1, key.length - 2)]; }); } export default function getDeepValue(path, value) { if (typeof path === 'string') { if (path === '_self') { return value; } else { try { var sections = path.split('.'); return sections.reduce(function (pre, cur) { return pre[cur]; }, value); } catch (e) { return undefined; } } } else if (typeof path === 'function') { return path(value); } else { return value; } }