X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/e45b0db3d66ca9e041622db3d801d026fb4d3724..33230b65afa1076218abff057d0bbcc7486af0a8:/.zsh/zprofile/10-locales diff --git a/.zsh/zprofile/10-locales b/.zsh/zprofile/10-locales new file mode 100644 index 0000000..ef23bf1 --- /dev/null +++ b/.zsh/zprofile/10-locales @@ -0,0 +1,125 @@ +# +# Defines locale settings +# +# Copyright © 1994–2017 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 + # And if available, I'll take New Zealand-ey (yes, I love you, GIRLFRIEND) + case "$_LOCALE" in + *en_NZ.utf8*) + _set_locale en_NZ.UTF-8 + export LANG=en_NZ + ;; + *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_NZ.iso885915*) + _set_locale en_NZ.ISO-8859-15 + warn "no utf-8 locale available" + export LANG=en_NZ + ;; + *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_NZ.iso88591*) + warn "no utf-8 locale available" + _set_locale en_NZ.ISO-8859-1 + export LANG=en_NZ + ;; + *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_NZ*) + warn "no utf-8 or iso locale available" + _set_locale en_NZ + export LANG=en_NZ + ;; + *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 German + case "$_LOCALE" in + *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 + ;; + *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 + ;; + esac + unset _LOCALE +fi + +export LANGUAGE="${LANG}:${LANG%_*}" + +unfunction _set_regional_locale +unfunction _set_locale + +# vim:ft=zsh