#!/usr/bin/env bash
#
# Author: Dmitry Razumov <asmeron@ublinux.com>
# Copyright (c) 2021-2025 UBLinux <support@ublinux.com>
#
# Used as a source

ENABLED=yes
[[ ${ENABLED} == "yes" ]] || { return 0 2>/dev/null && return 0 || exit 0; }

## Если в профиле пользователя имеется файл "${XDG_CONFIG_HOME}/locale.conf" или "${HOME}/.config/locale.conf",
## то установить указанною локаль на терущую сессию и обновить пути XDG каталогов под локаль
set_user_locale(){
    [[ -n $1 ]] && LOCALE_USER_FILE=$1 || return 0
    [[ $(< "${LOCALE_USER_FILE}") =~ (^|$'\n')LANG=([^$|$'\n']+)($|$'\n') ]] && LANG_USER=${BASH_REMATCH[2],,}
    LOCALEDEF_LIST="$(localedef --list-archive)"
    LOW_LOCALEDEF_LIST="${LOCALEDEF_LIST,,}"
    if [[ "${LOW_LOCALEDEF_LIST//-/}" =~ (^|$'\n')"${LANG_USER//-/}"($|$'\n') ]]; then
	unset LANG
	source /etc/profile.d/locale.sh
	command -v xdg-user-dirs-update &>/dev/null && xdg-user-dirs-update --force
    fi
}

if [[ -n "${XDG_CONFIG_HOME}" && -r "${XDG_CONFIG_HOME}/locale.conf" ]]; then
    set_user_locale "${XDG_CONFIG_HOME}/locale.conf"
elif [[ -n "${HOME}" && -r "${HOME}/.config/locale.conf" ]]; then
    set_user_locale "${HOME}/.config/locale.conf"
fi
