next.js/packages/next/src/shared/lib/i18n/detect-domain-locale.ts
detect-domain-locale.ts26 lines662 B
import type { DomainLocale } from '../../../server/config-shared'

export function detectDomainLocale(
  domainItems?: readonly DomainLocale[],
  hostname?: string,
  detectedLocale?: string
) {
  if (!domainItems) return

  if (detectedLocale) {
    detectedLocale = detectedLocale.toLowerCase()
  }

  for (const item of domainItems) {
    // remove port if present
    const domainHostname = item.domain?.split(':', 1)[0].toLowerCase()
    if (
      hostname === domainHostname ||
      detectedLocale === item.defaultLocale.toLowerCase() ||
      item.locales?.some((locale) => locale.toLowerCase() === detectedLocale)
    ) {
      return item
    }
  }
}
Quest for Codev2.0.0
/
SIGN IN