// Резолюция и переключение активного языка UI.
// Цепочка: ручное переопределение (settings.language, '' = auto) → SSO locale → 'ru'.
import { ref } from 'vue'
import i18n from './index'
import { LANGUAGES, type Language } from './index'
const active = ref<Language>('ru')
export function activeLocale(): Language {
return active.value
}
// Тег для Intl/toLocaleString: 'ru'/'en'/'uk' работают напрямую
export function intlLocale(): string {
return active.value
}
export function setLocale(lang: string): Language {
const resolved: Language = (LANGUAGES as readonly string[]).includes(lang)
? (lang as Language)
: 'ru'
active.value = resolved
i18n.global.locale.value = resolved
document.documentElement.lang = resolved
return resolved
}
export function resolveLocale(override: string | undefined, ssoLocale: string | undefined): Language {
return setLocale(override || ssoLocale || 'ru')
}