diff options
Diffstat (limited to '.zsh/zprofile/10_locale')
-rw-r--r-- | .zsh/zprofile/10_locale | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/.zsh/zprofile/10_locale b/.zsh/zprofile/10_locale new file mode 100644 index 0000000..0563900 --- /dev/null +++ b/.zsh/zprofile/10_locale @@ -0,0 +1,106 @@ +# zprofile/10_locale +# +# Define locale settings +# +# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net> +# Copyright © 2011 Tobias Klauser <tklauser@distanz.ch> +# Released under the terms of the Artistic Licence 2.0 +# +# Source repository: git://git.distanz.ch/dotfiles/zsh.git + +_set_locale() +{ + export LC_CTYPE=$1 + export LC_COLLATE=$1 + export LC_MESSAGES=$1 + export LC_TIME=$1 + _set_regional_locale $1 +} + +_set_regional_locale() +{ + export LC_NUMERIC=$1 + export LC_MONETARY=$1 + export LC_PAPER=$1 + export LC_NAME=$1 + export LC_ADDRESS=$1 + export LC_TELEPHONE=$1 + export LC_MEASUREMENT=$1 + export LC_IDENTIFICATION=$1 +} + +if [ -x =locale ]; then + _LOCALE="$(locale -a)" + + # Prefer British English and UTF-8 over US English and non-UTF-8 + case "$_LOCALE" in + *en_GB.utf8*) + _set_locale en_GB.UTF-8 + export LANG=en_GB + ;; + *en_US.utf8*) + _set_locale en_US.UTF-8 + export LANG=en_US + ;; + *en_GB.iso885915*) + _set_locale en_GB.ISO-8859-15 + warn "no utf-8 locale available" + export LANG=en_GB + ;; + *en_US.iso885915*) + warn "no utf-8 locale available" + _set_locale en_US.ISO-8859-15 + export LANG=en_US + ;; + *en_GB.iso88591*) + warn "no utf-8 locale available" + _set_locale en_GB.ISO-8859-1 + export LANG=en_GB + ;; + *en_US.iso88591*) + warn "no utf-8 locale available" + _set_locale en_US.ISO-8859-1 + export LANG=en_US + ;; + *en_GB*) + warn "no utf-8 or iso locale available" + _set_locale en_GB + export LANG=en_GB + ;; + *en_US*) + warn "no utf-8 or iso locale available" + _set_locale en_US + export LANG=en_US + ;; + esac + + # regional stuff should be Swiss over German + case "$_LOCALE" in + *de_CH.utf8*) + _set_regional_locale de_CH.UTF-8 + ;; + *de_CH.iso885915*) + _set_regional_locale de_CH.ISO-8859-15 + ;; + *de_CH.iso88591*) + _set_regional_locale de_CH.ISO-8859-1 + ;; + *de_DE.utf8*) + _set_regional_locale de_DE.UTF-8 + ;; + *de_DE.iso885915*) + _set_regional_locale de_DE.ISO-8859-15 + ;; + *de_DE.iso88591*) + _set_regional_locale de_DE.ISO-8859-1 + ;; + esac + unset _LOCALE +fi + +export LANGUAGE="${LANG}:en" + +unfunction _set_regional_locale +unfunction _set_locale + +# vim:ft=zsh |