rewrite locales
This commit is contained in:
parent
dc51f1eba6
commit
1773608215
1 changed files with 48 additions and 30 deletions
|
@ -919,46 +919,64 @@ spcd_txt_locale() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
spcd_txt_locales_echo() {
|
|
||||||
spcd_os_printenv "LANGUAGE"
|
|
||||||
locale --all-locales
|
|
||||||
}
|
|
||||||
|
|
||||||
spcd_txt_locales() {
|
spcd_txt_locales() {
|
||||||
|
local action="${1}"
|
||||||
|
local chosen="${2}"
|
||||||
set -- \
|
set -- \
|
||||||
"${SPCD_TXT_LOCALE_ENGLISH}" \
|
"${SPCD_TXT_LOCALE_ENGLISH}" \
|
||||||
"${SPCD_TXT_LOCALE_FRENCH}"
|
"${SPCD_TXT_LOCALE_FRENCH}"
|
||||||
local language locale text
|
local name
|
||||||
spcd_txt_locales_echo
|
case "${action}" in
|
||||||
|
"install")
|
||||||
|
spcd_txt_locales "list"
|
||||||
spcd_split
|
spcd_split
|
||||||
for locale in "${@}"; do
|
case "${SPCD_PM}" in
|
||||||
case "${1}" in
|
"${SPCD_PM_APK}") spcd_install_package "musl-locales" ;;
|
||||||
"glibc-langpack-")
|
"${SPCD_PM_APT}")
|
||||||
language="$(echo "${locale}" | cut -d _ -f 1)"
|
local text
|
||||||
spcd_install_package "glibc-langpack-${language}"
|
for name in "${@}"; do
|
||||||
|
text="${text}\
|
||||||
|
${name}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET}
|
||||||
|
"
|
||||||
|
done
|
||||||
|
spcd_os_write "/etc/locale.gen" "${text}"
|
||||||
;;
|
;;
|
||||||
"LANGUAGE")
|
"${SPCD_PM_DNF}")
|
||||||
|
local language
|
||||||
|
for name in "${@}"; do
|
||||||
|
language="$(echo "${name}" | cut -d _ -f 1)"
|
||||||
|
spcd_install_package "glibc-langpack-${language}"
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
"${SPCD_PM_PACMAN}") spcd_install_package "glibc-locales" ;;
|
||||||
|
"${SPCD_PM_ZYPPER}") spcd_install_package "glibc-locale" ;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
spcd_split
|
||||||
|
spcd_txt_locales "list"
|
||||||
|
;;
|
||||||
|
"language")
|
||||||
|
local text
|
||||||
|
if [ -n "${chosen}" ]; then
|
||||||
|
text="${chosen}"
|
||||||
|
fi
|
||||||
|
for name in "${@}"; do
|
||||||
|
if [ "${name}" != "${chosen}" ]; then
|
||||||
if [ -n "${text}" ]; then
|
if [ -n "${text}" ]; then
|
||||||
text="${text}:${locale}"
|
text="${text}:${name}"
|
||||||
else
|
else
|
||||||
text="${locale}"
|
text="${name}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
"list")
|
||||||
|
if ! locale --all-locales; then
|
||||||
|
echo "No locales yet!"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"locale.gen")
|
|
||||||
text="${text}\
|
|
||||||
${locale}.${_SPCD_TXT_CHARSET} ${_SPCD_TXT_CHARSET}
|
|
||||||
"
|
|
||||||
;;
|
|
||||||
*) ;;
|
*) ;;
|
||||||
esac
|
esac
|
||||||
done
|
|
||||||
case "${1}" in
|
|
||||||
"LANGUAGE") export LANGUAGE="${text}" ;;
|
|
||||||
"locale.gen") spcd_os_write "/etc/locale.gen" "${text}" ;;
|
|
||||||
*) ;;
|
|
||||||
esac
|
|
||||||
spcd_split
|
|
||||||
spcd_txt_locales_echo
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ╭──────┬─────╮
|
# ╭──────┬─────╮
|
||||||
|
|
Loading…
Reference in a new issue