# opkhelper # lib/locale # Locale functions. # # Copyright (C) 2012 Patrick "P. J." McDermott # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . [ -n "${_OH_LOCALE_SH}" ] && return 0 _OH_LOCALE_SH=true . @@LOCALEDIR@@/en_US oh_locale_set() { _locale="${1}" # Detect the system locale. # The test command's -z option doesn't work here? if [ ${#_locale} -eq 0 ]; then if [ -n "${LC_ALL}" ]; then _locale="${LC_ALL}" elif [ -n "${LC_MESSAGES}" ]; then _locale="${LC_MESSAGES}" elif [ -n "${LANG}" ]; then _locale="${LANG}" else _locale='en_US' fi fi # Try to load the locale. if [ -f "@@LOCALEDIR@@/${_locale%.*}" ]; then LC_ALL="${_locale%.*}" LC_MESSAGES="${LC_ALL}" . "@@LOCALEDIR@@/${LC_MESSAGES}" elif [ -f "@@LOCALEDIR@@/${_locale%_*}" ]; then LC_ALL="${_locale%_*}" LC_MESSAGES="${LC_ALL}" . "@@LOCALEDIR@@/${LC_MESSAGES}" else LC_ALL=en_US LC_MESSAGES="${LC_ALL}" . "@@LOCALEDIR@@/${LC_MESSAGES}" fi }