X-Git-Url: https://arthur.barton.de/gitweb/?p=ax-zsh.git;a=blobdiff_plain;f=core%2F12_locale%2F12_locale.zprofile;fp=core%2F12_locale%2F12_locale.zprofile;h=0000000000000000000000000000000000000000;hp=689b67421db3ee4ac0ea91f6e392905e6be7b20a;hb=a29eeef664bd3fccfadba903f5178067537d6f1b;hpb=66062dd9a5375d6e51eaf3ec54b416a079654913 diff --git a/core/12_locale/12_locale.zprofile b/core/12_locale/12_locale.zprofile deleted file mode 100644 index 689b674..0000000 --- a/core/12_locale/12_locale.zprofile +++ /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