addData(locale, namespace, data) {
    if (
      !this.__allowOverridesForExistingNamespaces &&
      this._isNamespaceInCache(locale, namespace)
    ) {
      throw new Error(
        `Namespace "${namespace}" has been already added for the locale "${locale}".`,
      );
    }

    this.__storage[locale] = this.__storage[locale] || {};

    if (this.__allowOverridesForExistingNamespaces) {
      this.__storage[locale][namespace] = {
        ...this.__storage[locale][namespace],
        ...data,
      };
    } else {
      this.__storage[locale][namespace] = data;
    }
  }
@param {string} locale
@param {string} namespace
@param {object} data
@throws {Error} Namespace can be added only once, for a given locale unless allowOverridesForExistingNamespaces
is set to `true`