You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.3 KiB
30 lines
1.3 KiB
#!/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
|