UNPKG

@alicloud/cloud-charts

Version:

![](https://img.shields.io/npm/v/@alicloud/cloud-charts?color=%23ff8200)

74 lines (58 loc) 3.12 kB
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]); };