docs: function LanguagePicker(lang = 'en', config = {}) {
    const scripts = ls.adjust({ override: dataOverrides });
  
    this.userLang = lang;
    this.nameTag = config.nameTag;
    // The prefix is either given or is the nameTag
    // with an underscore
    // See Babel.js#24
    this.prefix = config.multiTag || (this.nameTag && `${this.nameTag}_`) || '';
    this.forceLocal = !!config.forceLocal;
  
    if (this.forceLocal) {
      // If we are forcing a local language, we don't need
      // any of the fallback calculations
      return;
    }
    // Store language script
    this.langScript = scripts[lang] || 'Latn';
  
    // Add known fallbacks for the language
    let fallbacks;
    if (config.languageMap) {
      fallbacks = config.languageMap[lang];
      if (fallbacks && !Array.isArray(fallbacks)) {
        fallbacks = [fallbacks];
      }
    }
    if (!fallbacks) {
      fallbacks = [];
    }
  
    // Use the given language as first choice
    fallbacks = [lang].concat(fallbacks);
  
    // Remove duplicates
    fallbacks = fallbacks.filter((item, i) => fallbacks.indexOf(item) === i);
  
    // Add prefix to all languages if exists
    // eslint-disable-next-line arrow-body-style
    fallbacks = fallbacks.map((code) => {
      return code === this.nameTag ? code : this.prefix + code;
    });
  
    // Store initial fallbacks
    this.fallbacks = fallbacks;
  
    this.prefixedEnglish = this.prefix ? `${this.prefix}en` : 'en';
    this.prefixedLangScript = `-${this.langScript}`;
  }