You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					82 lines
				
				3.0 KiB
			
		
		
			
		
	
	
					82 lines
				
				3.0 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								export function warn() {
							 | 
						||
| 
								 | 
							
								  if (console && console.warn) {
							 | 
						||
| 
								 | 
							
								    var _console;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
							 | 
						||
| 
								 | 
							
								      args[_key] = arguments[_key];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (typeof args[0] === 'string') args[0] = "react-i18next:: ".concat(args[0]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    (_console = console).warn.apply(_console, args);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								var alreadyWarned = {};
							 | 
						||
| 
								 | 
							
								export function warnOnce() {
							 | 
						||
| 
								 | 
							
								  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
							 | 
						||
| 
								 | 
							
								    args[_key2] = arguments[_key2];
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;
							 | 
						||
| 
								 | 
							
								  if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();
							 | 
						||
| 
								 | 
							
								  warn.apply(void 0, args);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								export function loadNamespaces(i18n, ns, cb) {
							 | 
						||
| 
								 | 
							
								  i18n.loadNamespaces(ns, function () {
							 | 
						||
| 
								 | 
							
								    if (i18n.isInitialized) {
							 | 
						||
| 
								 | 
							
								      cb();
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      var initialized = function initialized() {
							 | 
						||
| 
								 | 
							
								        setTimeout(function () {
							 | 
						||
| 
								 | 
							
								          i18n.off('initialized', initialized);
							 | 
						||
| 
								 | 
							
								        }, 0);
							 | 
						||
| 
								 | 
							
								        cb();
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      i18n.on('initialized', initialized);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function oldI18nextHasLoadedNamespace(ns, i18n) {
							 | 
						||
| 
								 | 
							
								  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
							 | 
						||
| 
								 | 
							
								  var lng = i18n.languages[0];
							 | 
						||
| 
								 | 
							
								  var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;
							 | 
						||
| 
								 | 
							
								  var lastLng = i18n.languages[i18n.languages.length - 1];
							 | 
						||
| 
								 | 
							
								  if (lng.toLowerCase() === 'cimode') return true;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var loadNotPending = function loadNotPending(l, n) {
							 | 
						||
| 
								 | 
							
								    var loadState = i18n.services.backendConnector.state["".concat(l, "|").concat(n)];
							 | 
						||
| 
								 | 
							
								    return loadState === -1 || loadState === 2;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;
							 | 
						||
| 
								 | 
							
								  if (i18n.hasResourceBundle(lng, ns)) return true;
							 | 
						||
| 
								 | 
							
								  if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;
							 | 
						||
| 
								 | 
							
								  if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;
							 | 
						||
| 
								 | 
							
								  return false;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export function hasLoadedNamespace(ns, i18n) {
							 | 
						||
| 
								 | 
							
								  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!i18n.languages || !i18n.languages.length) {
							 | 
						||
| 
								 | 
							
								    warnOnce('i18n.languages were undefined or empty', i18n.languages);
							 | 
						||
| 
								 | 
							
								    return true;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!isNewerI18next) {
							 | 
						||
| 
								 | 
							
								    return oldI18nextHasLoadedNamespace(ns, i18n, options);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return i18n.hasLoadedNamespace(ns, {
							 | 
						||
| 
								 | 
							
								    precheck: function precheck(i18nInstance, loadNotPending) {
							 | 
						||
| 
								 | 
							
								      if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								export function getDisplayName(Component) {
							 | 
						||
| 
								 | 
							
								  return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');
							 | 
						||
| 
								 | 
							
								}
							 |