#!/usr/bin/env bash # # Author: Dmitry Razumov # Copyright (c) 2021-2025 UBLinux # # 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