diff --git a/bin/miaou-bash b/bin/miaou-bash index a7eae70..126c3ba 100755 --- a/bin/miaou-bash +++ b/bin/miaou-bash @@ -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 "" - else - # fallback C/POSIX => en.sh + miaou_debug "" + 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 "" MIAOU_LOCALE=en - miaou_debug "" 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 "" + source "$translation" + miaou_debug "" } ## main