Rocky_Mountain_Vending/.pnpm-store/v10/files/07/842826d5239a2e93544905ad6bb9ac2a570fbe2bd3a5e53d7c85b1fdc0f95c9fbe8778f66b8102034ccede1257358bf690d753c6fe26d7406fbcd037d96939
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

49 lines
No EOL
2.4 KiB
Text

import { acceptLanguage } from '../../../server/accept-header';
import { denormalizePagePath } from '../page-path/denormalize-page-path';
import { detectDomainLocale } from './detect-domain-locale';
import { formatUrl } from '../router/utils/format-url';
import { getCookieParser } from '../../../server/api-utils/get-cookie-parser';
function getLocaleFromCookie(i18n, headers = {}) {
const nextLocale = getCookieParser(headers || {})()?.NEXT_LOCALE?.toLowerCase();
return nextLocale ? i18n.locales.find((locale)=>nextLocale === locale.toLowerCase()) : undefined;
}
function detectLocale({ i18n, headers, domainLocale, preferredLocale, pathLocale }) {
return pathLocale || domainLocale?.defaultLocale || getLocaleFromCookie(i18n, headers) || preferredLocale || i18n.defaultLocale;
}
function getAcceptPreferredLocale(i18n, headers) {
if (headers?.['accept-language'] && !Array.isArray(headers['accept-language'])) {
try {
return acceptLanguage(headers['accept-language'], i18n.locales);
} catch (err) {}
}
}
export function getLocaleRedirect({ defaultLocale, domainLocale, pathLocale, headers, nextConfig, urlParsed }) {
if (nextConfig.i18n && nextConfig.i18n.localeDetection !== false && denormalizePagePath(urlParsed.pathname) === '/') {
const preferredLocale = getAcceptPreferredLocale(nextConfig.i18n, headers);
const detectedLocale = detectLocale({
i18n: nextConfig.i18n,
preferredLocale,
headers,
pathLocale,
domainLocale
});
const preferredDomain = detectDomainLocale(nextConfig.i18n.domains, undefined, preferredLocale);
if (domainLocale && preferredDomain) {
const isPDomain = preferredDomain.domain === domainLocale.domain;
const isPLocale = preferredDomain.defaultLocale === preferredLocale;
if (!isPDomain || !isPLocale) {
const scheme = `http${preferredDomain.http ? '' : 's'}`;
const rlocale = isPLocale ? '' : preferredLocale;
return `${scheme}://${preferredDomain.domain}/${rlocale}`;
}
}
if (detectedLocale.toLowerCase() !== defaultLocale.toLowerCase()) {
return formatUrl({
...urlParsed,
pathname: `${nextConfig.basePath || ''}/${detectedLocale}${nextConfig.trailingSlash ? '/' : ''}`
});
}
}
}
//# sourceMappingURL=get-locale-redirect.js.map