@alicloud/cloud-charts
Version:

74 lines (58 loc) • 3.12 kB
JavaScript
import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose";
import React, { Component } from 'react';
import LanguageMap from '../locales';
import eventBus from '../common/eventBus';
import { FullLanguageName, FullLanguageEventName } from '../constants';
export var ChartContext = /*#__PURE__*/React.createContext({
language: 'zh-cn'
});
var currentLanguage; // 函数
export function setLanguage(language) {
currentLanguage = language;
eventBus.emit('setLanguage', {
language: language
});
} // 获取当前语言,仅用于通过setLanguage、事件与全局变量方式设置的语言,不支持图表组件内部设置的语言
export function getLanguage() {
return currentLanguage;
} // 全局变量
if (window[FullLanguageName]) {
setLanguage(window[FullLanguageName]);
} // 事件
document.addEventListener(FullLanguageEventName, function (e) {
if (e.detail) {
setLanguage(e.detail);
}
});
var ChartProvider = /*#__PURE__*/function (_Component) {
_inheritsLoose(ChartProvider, _Component);
function ChartProvider() {
return _Component.apply(this, arguments) || this;
}
var _proto = ChartProvider.prototype;
_proto.render = function render() {
return /*#__PURE__*/React.createElement(ChartContext.Provider, {
value: {
language: this.props.language || 'zh-cn',
locale: this.props.locale,
defaultConfig: this.props.defaultConfig,
theme: this.props.theme,
rule: this.props.rule
}
}, this.props.children);
};
return ChartProvider;
}(Component);
export default ChartProvider; // 优先级: setLanguage设置的语言 > 图表中的自定义locale > provider的locale > 图表中的language > provider的language
export var getText = function getText(value, language, locale) {
var _LanguageMap$currentL, _locale4, _LanguageMap;
if (locale === void 0) {
locale = null;
}
// 如果用户自定义locale为Record<string, LocaleItem>
if (locale && (currentLanguage in locale || language in locale || 'zh-cn' in locale)) {
var _locale, _locale$currentLangua, _locale2, _locale3;
return currentLanguage && currentLanguage in locale ? (_locale = locale) === null || _locale === void 0 ? void 0 : (_locale$currentLangua = _locale[currentLanguage]) === null || _locale$currentLangua === void 0 ? void 0 : _locale$currentLangua[value] : (_locale2 = locale) === null || _locale2 === void 0 ? void 0 : (_locale3 = _locale2[language in locale ? language : 'zh-cn']) === null || _locale3 === void 0 ? void 0 : _locale3[value];
}
return currentLanguage && currentLanguage in LanguageMap ? LanguageMap === null || LanguageMap === void 0 ? void 0 : (_LanguageMap$currentL = LanguageMap[currentLanguage]) === null || _LanguageMap$currentL === void 0 ? void 0 : _LanguageMap$currentL[value] : ((_locale4 = locale) === null || _locale4 === void 0 ? void 0 : _locale4[value]) || (LanguageMap === null || LanguageMap === void 0 ? void 0 : (_LanguageMap = LanguageMap[language in LanguageMap ? language : 'zh-cn']) === null || _LanguageMap === void 0 ? void 0 : _LanguageMap[value]);
};