%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/emergentqj/actioncivile/pre-auth/def/static/js/utils/
Upload File :
Create Path :
Current File : /home/emergentqj/actioncivile/pre-auth/def/static/js/utils/getLanguage.js

import countryConfig from "config/countryData";
import { getLanguageFromCookie } from "utils/languages";

import getReferrerParts from "./getReferrerParts";

const {
  countryData,
  default_lang: defaultLang,
} = countryConfig;

const chooseLanguageByReferrer = (country) => {
  const referrer = getReferrerParts();
  if (referrer && country.default_lang_domain) {
    const { tld, sld } = referrer;
    if (country.default_lang_domain[`${sld}.${tld}`]) {
      return country.default_lang_domain[`${sld}.${tld}`];
    }
  }
  return false;
};

export const getLanguageByCountry = (countryCode) => {
  const country = countryData[countryCode];

  // The country has exactly one default language
  if (country.default_lang && !country.default_lang_domain) return country.default_lang;

  // Greetings from Switzerland
  if (chooseLanguageByReferrer(country)) return chooseLanguageByReferrer(country);

  return defaultLang;
};

export const getLanguage = (countryCode) => {
  // There is a parameter
  const queryLang = new URLSearchParams(window.location.search).get("lang");
  if (queryLang) return queryLang;

  // There is a cookie, we don't have to be smarter
  if (getLanguageFromCookie()) return getLanguageFromCookie();

  // At least we have country code
  if (countryCode) {
    return getLanguageByCountry(countryCode);
  }

  return defaultLang;
};

Zerion Mini Shell 1.0