Linux lhjmq-records 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:28:59 UTC 2024 x86_64
Your IP : 18.226.17.3
Current Path : /usr/share/locales/ |
| Current File : //usr/share/locales/remove-language-pack |
#!/bin/sh -e
if [ -z "$1" ]; then
echo "Usage: $0 <language code> <class> [<version>]"
exit 0
fi
# Copied from locale-gen
normalize_locale() {
# Insert a leading x in case $1 begins with a dash
this_locale=x$1
charset=
if echo $this_locale | LC_ALL=C grep '\.' > /dev/null 2>&1; then
charset=$(echo $this_locale | sed -e 's/^x//' -e 's/.*\(\.[^@]*\).*/\1/' | LC_ALL=C tr '[A-Z]' '[a-z]' | LC_ALL=C sed -e 's/[^a-z0-9.]//g')
fi
modifier=
if echo $this_locale | LC_ALL=C grep '@' > /dev/null 2>&1; then
modifier=$(echo $this_locale | sed -e 's/^x//' -e 's/.*\(@[^.]*\).*/\1/')
fi
main=$(echo $this_locale | sed -e 's/^x//' -e 's/[.@].*//')
echo $main$charset$modifier
}
get_supported_local_normalized() {
[ -e /etc/locale.gen ] || return 0
sort -u /etc/locale.gen | while read locale charset; do
case $locale in
\#*) continue ;;
"") continue ;;
esac
normalize_locale "$locale"
done
}
remove_locale() {
this_locale=$(normalize_locale "$1")
if ! echo "$supported_local_normalized" | fgrep -qx "$this_locale"; then
if [ -e /usr/lib/locale/locale-archive ]; then
localedef --delete-from-archive "$this_locale"
fi
fi
}
# remove binary locales
# do nothing for gnome/kde
if [ -z "$2" ]; then
# do not remove locales if we merely remove language-support-* without
# removing language-pack-*
if [ ! -e /var/lib/locales/supported.d/$1 ]; then
supported_local_normalized="$(get_supported_local_normalized)"
if [ "$1" = 'zh-hans' ]; then
remove_locale zh_CN.utf8
remove_locale zh_SG.utf8
elif [ "$1" = 'zh-hant' ]; then
remove_locale zh_HK.utf8
remove_locale zh_TW.utf8
else
if [ -e /usr/lib/locale/locale-archive ]; then
for l in $(localedef --list-archive|grep "^$1[._@]"); do
remove_locale "$l"
done
fi
fi
fi
fi
# ensure that .desktop caches are up to date
dpkg-trigger gmenucache || true
|