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.
		
		
		
		
		
			
		
			
				
					97 lines
				
				3.5 KiB
			
		
		
			
		
	
	
					97 lines
				
				3.5 KiB
			| 
											3 years ago
										 | import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; | ||
|  | import _createClass from "@babel/runtime/helpers/createClass"; | ||
|  | import _defineProperty from "@babel/runtime/helpers/defineProperty"; | ||
|  | 
 | ||
|  | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } | ||
|  | 
 | ||
|  | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } | ||
|  | 
 | ||
|  | import { createContext } from 'react'; | ||
|  | import { unescape } from './unescape'; | ||
|  | var defaultOptions = { | ||
|  |   bindI18n: 'languageChanged', | ||
|  |   bindI18nStore: '', | ||
|  |   transEmptyNodeValue: '', | ||
|  |   transSupportBasicHtmlNodes: true, | ||
|  |   transWrapTextNodes: '', | ||
|  |   transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'], | ||
|  |   useSuspense: true, | ||
|  |   unescape: unescape | ||
|  | }; | ||
|  | var i18nInstance; | ||
|  | export var I18nContext = createContext(); | ||
|  | export function setDefaults() { | ||
|  |   var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
|  |   defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options); | ||
|  | } | ||
|  | export function getDefaults() { | ||
|  |   return defaultOptions; | ||
|  | } | ||
|  | export var ReportNamespaces = function () { | ||
|  |   function ReportNamespaces() { | ||
|  |     _classCallCheck(this, ReportNamespaces); | ||
|  | 
 | ||
|  |     this.usedNamespaces = {}; | ||
|  |   } | ||
|  | 
 | ||
|  |   _createClass(ReportNamespaces, [{ | ||
|  |     key: "addUsedNamespaces", | ||
|  |     value: function addUsedNamespaces(namespaces) { | ||
|  |       var _this = this; | ||
|  | 
 | ||
|  |       namespaces.forEach(function (ns) { | ||
|  |         if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true; | ||
|  |       }); | ||
|  |     } | ||
|  |   }, { | ||
|  |     key: "getUsedNamespaces", | ||
|  |     value: function getUsedNamespaces() { | ||
|  |       return Object.keys(this.usedNamespaces); | ||
|  |     } | ||
|  |   }]); | ||
|  | 
 | ||
|  |   return ReportNamespaces; | ||
|  | }(); | ||
|  | export function setI18n(instance) { | ||
|  |   i18nInstance = instance; | ||
|  | } | ||
|  | export function getI18n() { | ||
|  |   return i18nInstance; | ||
|  | } | ||
|  | export var initReactI18next = { | ||
|  |   type: '3rdParty', | ||
|  |   init: function init(instance) { | ||
|  |     setDefaults(instance.options.react); | ||
|  |     setI18n(instance); | ||
|  |   } | ||
|  | }; | ||
|  | export function composeInitialProps(ForComponent) { | ||
|  |   return function (ctx) { | ||
|  |     return new Promise(function (resolve) { | ||
|  |       var i18nInitialProps = getInitialProps(); | ||
|  | 
 | ||
|  |       if (ForComponent.getInitialProps) { | ||
|  |         ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) { | ||
|  |           resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps)); | ||
|  |         }); | ||
|  |       } else { | ||
|  |         resolve(i18nInitialProps); | ||
|  |       } | ||
|  |     }); | ||
|  |   }; | ||
|  | } | ||
|  | export function getInitialProps() { | ||
|  |   var i18n = getI18n(); | ||
|  |   var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : []; | ||
|  |   var ret = {}; | ||
|  |   var initialI18nStore = {}; | ||
|  |   i18n.languages.forEach(function (l) { | ||
|  |     initialI18nStore[l] = {}; | ||
|  |     namespaces.forEach(function (ns) { | ||
|  |       initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {}; | ||
|  |     }); | ||
|  |   }); | ||
|  |   ret.initialI18nStore = initialI18nStore; | ||
|  |   ret.initialLanguage = i18n.language; | ||
|  |   return ret; | ||
|  | } |