aboutsummaryrefslogtreecommitdiffstats
path: root/etc/profile.d
diff options
context:
space:
mode:
Diffstat (limited to 'etc/profile.d')
-rw-r--r--etc/profile.d/lang.csh83
-rw-r--r--etc/profile.d/lang.sh90
2 files changed, 173 insertions, 0 deletions
diff --git a/etc/profile.d/lang.csh b/etc/profile.d/lang.csh
new file mode 100644
index 00000000..c6a44664
--- /dev/null
+++ b/etc/profile.d/lang.csh
@@ -0,0 +1,83 @@
+# /etc/profile.d/lang.csh - set i18n stuff
+
+set sourced=0
+
+if ($?LANG) then
+ set saved_lang=$LANG
+ if ( -f "$HOME/.i18n" ) then
+ eval `sed -ne 's|^[[:blank:]]*\([^#=]\{1,\}\)=\([^=]*\)|setenv \1 \2;|p' "$HOME/.i18n"`
+ set sourced=1
+ endif
+ setenv LANG $saved_lang
+ unset saved_lang
+else
+ foreach file (/etc/locale.conf "$HOME/.i18n")
+ if ( -f $file ) then
+ eval `sed -ne 's|^[[:blank:]]*\([^#=]\{1,\}\)=\([^=]*\)|setenv \1 \2;|p' $file`
+ set sourced=1
+ endif
+ end
+endif
+
+if ($sourced == 1) then
+ if ($?LC_ALL && $?LANG) then
+ if ($LC_ALL == $LANG) then
+ unsetenv LC_ALL
+ endif
+ endif
+
+ set consoletype=`/sbin/consoletype stdout`
+
+ if ($?LANG) then
+ switch ($LANG)
+ case *.utf8*:
+ case *.UTF-8*:
+ if ( $?TERM ) then
+ if ( "$TERM" == "linux" ) then
+ if ( "$consoletype" == "vt" ) then
+ switch ($LANG)
+ case en_IN*:
+ breaksw
+ case ja*:
+ case ko*:
+ case si*:
+ case zh*:
+ case ar*:
+ case fa*:
+ case he*:
+ case *_IN*:
+ setenv LANG en_US.UTF-8
+ breaksw
+ endsw
+ endif
+ endif
+ endif
+ breaksw
+ case *:
+ if ( $?TERM ) then
+ if ( "$TERM" == "linux" ) then
+ if ( "$consoletype" == "vt" ) then
+ switch ($LANG)
+ case en_IN*:
+ breaksw
+ case ja*:
+ case ko*:
+ case si*:
+ case zh*:
+ case ar*:
+ case fa*:
+ case he*:
+ case *_IN*:
+ setenv LANG en_US
+ breaksw
+ endsw
+ endif
+ endif
+ endif
+ breaksw
+ endsw
+ endif
+ unsetenv SYSFONTACM
+ unsetenv SYSFONT
+ unsetenv consoletype
+endif
diff --git a/etc/profile.d/lang.sh b/etc/profile.d/lang.sh
new file mode 100644
index 00000000..4a759f53
--- /dev/null
+++ b/etc/profile.d/lang.sh
@@ -0,0 +1,90 @@
+# /etc/profile.d/lang.sh - set i18n stuff
+
+sourced=0
+
+if [ -n "$LANG" ]; then
+ saved_lang="$LANG"
+ [ -f "$HOME/.i18n" ] && . "$HOME/.i18n" && sourced=1
+ LANG="$saved_lang"
+ unset saved_lang
+else
+ for langfile in /etc/locale.conf "$HOME/.i18n" ; do
+ [ -f $langfile ] && . $langfile && sourced=1
+ done
+fi
+
+if [ "$sourced" = 1 ]; then
+ [ -n "$LANG" ] && export LANG || unset LANG
+ [ -n "$LC_ADDRESS" ] && export LC_ADDRESS || unset LC_ADDRESS
+ [ -n "$LC_CTYPE" ] && export LC_CTYPE || unset LC_CTYPE
+ [ -n "$LC_COLLATE" ] && export LC_COLLATE || unset LC_COLLATE
+ [ -n "$LC_IDENTIFICATION" ] && export LC_IDENTIFICATION || unset LC_IDENTIFICATION
+ [ -n "$LC_MEASUREMENT" ] && export LC_MEASUREMENT || unset LC_MEASUREMENT
+ [ -n "$LC_MESSAGES" ] && export LC_MESSAGES || unset LC_MESSAGES
+ [ -n "$LC_MONETARY" ] && export LC_MONETARY || unset LC_MONETARY
+ [ -n "$LC_NAME" ] && export LC_NAME || unset LC_NAME
+ [ -n "$LC_NUMERIC" ] && export LC_NUMERIC || unset LC_NUMERIC
+ [ -n "$LC_PAPER" ] && export LC_PAPER || unset LC_PAPER
+ [ -n "$LC_TELEPHONE" ] && export LC_TELEPHONE || unset LC_TELEPHONE
+ [ -n "$LC_TIME" ] && export LC_TIME || unset LC_TIME
+ if [ -n "$LC_ALL" ]; then
+ if [ "$LC_ALL" != "$LANG" ]; then
+ export LC_ALL
+ else
+ unset LC_ALL
+ fi
+ else
+ unset LC_ALL
+ fi
+ [ -n "$LANGUAGE" ] && export LANGUAGE || unset LANGUAGE
+ [ -n "$LINGUAS" ] && export LINGUAS || unset LINGUAS
+ [ -n "$_XKB_CHARSET" ] && export _XKB_CHARSET || unset _XKB_CHARSET
+
+ consoletype=$CONSOLETYPE
+ if [ -z "$consoletype" ]; then
+ consoletype=$(/sbin/consoletype stdout)
+ fi
+
+ if [ -n "$LANG" ]; then
+ case $LANG in
+ *.utf8*|*.UTF-8*)
+ if [ "$TERM" = "linux" ]; then
+ if [ "$consoletype" = "vt" ]; then
+ case $LANG in
+ ja*) LANG=en_US.UTF-8 ;;
+ ko*) LANG=en_US.UTF-8 ;;
+ si*) LANG=en_US.UTF-8 ;;
+ zh*) LANG=en_US.UTF-8 ;;
+ ar*) LANG=en_US.UTF-8 ;;
+ fa*) LANG=en_US.UTF-8 ;;
+ he*) LANG=en_US.UTF-8 ;;
+ en_IN*) ;;
+ *_IN*) LANG=en_US.UTF-8 ;;
+ esac
+ fi
+ fi
+ ;;
+ *)
+ if [ "$TERM" = "linux" ]; then
+ if [ "$consoletype" = "vt" ]; then
+ case $LANG in
+ ja*) LANG=en_US ;;
+ ko*) LANG=en_US ;;
+ si*) LANG=en_US ;;
+ zh*) LANG=en_US ;;
+ ar*) LANG=en_US ;;
+ fa*) LANG=en_US ;;
+ he*) LANG=en_US ;;
+ en_IN*) ;;
+ *_IN*) LANG=en_US ;;
+ esac
+ fi
+ fi
+ ;;
+ esac
+ fi
+
+ unset SYSFONTACM SYSFONT consoletype
+fi
+unset sourced
+unset langfile