fix LANG+LANGUAGE
This commit is contained in:
+19
-12
@@ -1,4 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck source=/dev/null
|
||||
|
||||
# SHEBANG alternative:
|
||||
#!/usr/bin/env -S -- bash -x
|
||||
|
||||
# constants
|
||||
@@ -632,20 +635,24 @@ function read {
|
||||
}
|
||||
|
||||
function load_locale {
|
||||
MIAOU_LOCALE="${LANG%%_*}" # Get 'fr' from 'fr_FR.UTF-8'
|
||||
if [[ $MIAOU_LOCALE =~ en|es|fr ]]; then
|
||||
miaou_debug "<load_locale language=$MIAOU_LOCALE LANG=$LANG/>"
|
||||
else
|
||||
# fallback C/POSIX => en.sh
|
||||
miaou_debug "<load_locale LANG=$LANG>"
|
||||
MIAOU_LOCALE="${LANG:0:2}" # Get 'fr' from 'fr_FR.UTF-8'
|
||||
case "$MIAOU_LOCALE" in
|
||||
en) LANG=en_US.utf8 ;;
|
||||
es) LANG=es_ES.utf8 ;;
|
||||
fr) LANG=fr_FR.utf8 ;;
|
||||
*)
|
||||
miaou_debug "<fallback LANG=$LANG convert_to=C/>"
|
||||
MIAOU_LOCALE=en
|
||||
miaou_debug "<load_locale fallback=$MIAOU_LOCALE LANG=$LANG convert_to=C/>"
|
||||
LANG=C
|
||||
export LANG
|
||||
fi
|
||||
local locale_file
|
||||
locale_file="${MIAOU_BASH_DIR}/locales/${MIAOU_LOCALE}.sh"
|
||||
# shellcheck source=/dev/null
|
||||
source "$locale_file"
|
||||
;;
|
||||
esac
|
||||
export LANG
|
||||
unset LANGUAGE LC_ALL LC_MESSAGES
|
||||
local translation="${MIAOU_BASH_DIR}/locales/${MIAOU_LOCALE}.sh"
|
||||
miaou_debug "<resource file=$translation/>"
|
||||
source "$translation"
|
||||
miaou_debug "</load_locale MIAOU_LOCALE=$MIAOU_LOCALE>"
|
||||
}
|
||||
|
||||
## main
|
||||
|
||||
Reference in New Issue
Block a user