]> arthur.barton.de Git - ax-zsh.git/blobdiff - core/12_locale/12_locale.zprofile
Introduce new "ax-io" stage, which is run before all other stages
[ax-zsh.git] / core / 12_locale / 12_locale.zprofile
diff --git a/core/12_locale/12_locale.zprofile b/core/12_locale/12_locale.zprofile
deleted file mode 100644 (file)
index 689b674..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-# AX-ZSH: Alex' Modular ZSH Configuration
-# 12_locale.zprofile: Initialize locale settings
-
-# This is only relevant for interactive shells (because the user has to
-# manually enter data when the validation fails):
-[[ -z "$PS1" ]] && return 0
-
-# Make sure that LANG and LC_MESSAGES are either unset or set to something sane,
-# that is, follow the "xx_ZZ.*" syntax.
-fix_locale() {
-       local encoding locale
-
-       locale="$1:r"
-       encoding="$1:e"
-
-       if [[ -z "$1" || "$locale" =~ '.*_.*' || ${#locale%%_*} -ne 2 ]]; then
-               echo "$1"
-       else
-               locale="${locale:0:2}_${locale:0:2:u}"
-               [[ -n "$encoding" ]] && locale="$locale.$encoding"
-               echo "$locale"
-       fi
-}
-[[ -n "$LANG" ]] && LANG=$(fix_locale "$LANG")
-[[ -n "$LC_MESSAGES" ]] && LANG=$(fix_locale "$LC_MESSAGES")
-unfunction fix_locale
-
-# Validate the locale(7) settings in interactive shells and try to mimic the
-# tset(1) behaviour.
-while true; do
-       lc_messages=$(locale 2>/dev/null | fgrep LC_MESSAGES | cut -d'=' -f2)
-       [[ "$lc_messages" = '"C"' && "$LANG" != 'C' && "$LC_ALL" != 'C' ]] && lc_messages=$LANG
-       lc_messages=$lc_messages:gs/\"//
-       locale=$lc_messages:r
-       [[ ( "$OSTYPE" =~ '^linux-gnu' || "$OSTYPE" = 'cygwin') && $locale != 'C' ]] \
-               && encoding=$lc_messages:e:l:gs/-// \
-               || encoding=$lc_messages:e
-       [[ -n "$encoding" ]] && locale="$locale.$encoding"
-       [[ -z "$LANG$LANGUAGE$LC_ALL$LC_MESSAGES" ]] && unset lc_messages
-
-       if [[ -n "$LANG$LANGUAGE$LC_ALL$LC_MESSAGES" ]] && locale -a 2>/dev/null | grep "^$locale\$" >/dev/null; then
-               # The locale setting seems to be valid: one of the LANG,
-               # LANGUAGE, LC_ALL and/or LC_MESSAGES is set and the locale is
-               # included in "locale -a" output. Good!
-               break
-       fi
-
-       echo "ax-zsh: unknown/unsupported locale ${lc_messages:-unknown}" >&2
-       unset locale
-       while [[ -z "$locale" ]]; do
-               if ! read "locale?Locale? "; then
-                       echo >&2
-                       break 2
-               fi
-       done
-       if [[ -n "$locale" ]]; then
-               export LANG=$locale
-               unset LANGUAGE LC_ALL LC_MESSAGES
-       fi
-done
-unset lc_messages locale encoding
-
-case "$LANG" in
-       *_*)
-               # LANG contains at least one "_" ("aa_BB" form).
-               if [[ -z "$LANGUAGE" ]]; then
-                       # But LANGUAGE isn't set, so set it automatically to
-                       # "aa_BB:aa" form.
-                       export LANGUAGE=${LANG%.*}:${${LANG%.*}%_*}
-               fi
-esac