From: martin f. krafft <madduck@madduck.net>
Date: Tue, 6 May 2008 09:45:05 +0000 (+0100)
Subject: set the locale
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=5eba7cf678e54ea475d22fe6a18f3ec0a77ca94b;p=zsh.git

set the locale
---

diff --git a/.zsh/zshrc/10_locale b/.zsh/zshrc/10_locale
new file mode 100644
index 0000000..0c69342
--- /dev/null
+++ b/.zsh/zshrc/10_locale
@@ -0,0 +1,104 @@
+# zshrc/10_locale
+#
+# Defines locale settings
+#
+# Copyright © 1994–2008 martin f. krafft <madduck@madduck.net>
+# 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