X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/c0020f99f312309e0f3f2798d60180dd64ae54b9..66e0c46c40148f44edc4a1ddfd1c63b4e577ab3f:/.zsh/zprofile/10_locale diff --git a/.zsh/zprofile/10_locale b/.zsh/zprofile/10_locale new file mode 100644 index 0000000..07cbf44 --- /dev/null +++ b/.zsh/zprofile/10_locale @@ -0,0 +1,104 @@ +# zprofile/10_locale +# +# Defines locale settings +# +# Copyright © 1994–2008 martin f. krafft +# Released under the terms of the Artistic Licence 2.0 +# +# Source repository: http://git.madduck.net/v/etc/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)" + + # I 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 + +unfunction _set_regional_locale +unfunction _set_locale + +# vim:ft=zsh