import type { GeoDeviceContext, LocalizationContext } from '../types.js'; import { resolveLocaleFromCountry, getDefaultLocale, } from './countryToLocale.js'; /** * Определяет locale на основе geo-контекста. * По умолчанию — русский. Только если геопозиция из другой страны — язык этой страны. */ export function resolveLocale(ctx: GeoDeviceContext | null): LocalizationContext { const fallback: LocalizationContext = { locale: getDefaultLocale(), language: getDefaultLocale(), region: null, countryCode: null, timezone: null, source: 'fallback', }; if (!ctx) return fallback; const geo = ctx.geo; // Геопозиция (countryCode) — если есть, используем язык страны if (geo?.countryCode) { const locale = resolveLocaleFromCountry(geo.countryCode); return { locale, language: locale, region: geo.region ?? null, countryCode: geo.countryCode, timezone: geo.timezone ?? null, source: 'geo', }; } // Нет гео — по умолчанию русский return fallback; }