@alicloudfe/components
Version:
A react component library for aliyun
57 lines (56 loc) • 1.47 kB
JavaScript
/**
* 国际化相关函数
*/
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;
}
}