diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/locale.sh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/locale.sh b/lib/locale.sh index f168037..8196203 100644 --- a/lib/locale.sh +++ b/lib/locale.sh @@ -22,6 +22,11 @@ _OB_INTERNAL_TEXT_DOMAIN="libopkbuild_${LIBOPKBUILD_SHSOVERSION}" _OB_TEXT_DOMAIN= _OB_LOCALE_PATH="${LOCALEDIR}/%s/LC_MESSAGES/%s.ms" +## @brief Get the current message domain +## @details \fBob_get_text_domain\fP prints the currently loaded message domain. +## @return Returns 0 on success or 125 if any arguments are given. +## @stdout Prints the name of the currently loaded message domain. +## @pure yes This function has no side effects. ob_get_text_domain() { if [ ${#} -ne 0 ]; then @@ -50,6 +55,18 @@ _ob_try_load_messages() return 0 } +## @brief Set and load the message domain +## @details \fBob_set_text_domain\fP() sets and loads the message domain for +## future \fBob_get_msg\fP() calls. A message domain is a catalog of +## localized messages identified by message IDs. Each application +## should have its own message domain. libopkbuild also has its own +## message domain and temporarily switches to it when needed. +## @operand text_domain req The message domain to load. +## @return Returns 0 on success, 1 if the message domain cannot be loaded, or +## 125 if \fItext_domain\fP is missing. +## @stderr Prints a warning to stderr if the message domain cannot be loaded. +## @pure no This function sets an internal global variable and loads a message +## catalog that sets numerous message variables. ob_set_text_domain() { if [ ${#} -eq 1 ]; then @@ -75,6 +92,9 @@ ob_set_text_domain() if ! _ob_try_load_messages "${LC_MESSAGES%.*}"; then if ! _ob_try_load_messages "${LC_MESSAGES%_*}"; then if ! _ob_try_load_messages "${_OB_DEFAULT_LOCALE}"; then + # TODO: Move this warning to the executables. + # TODO: And use printf, since ob_warn() will be + # internationalized. ob_warn 'Cannot load messages in "%s" domain.' \ "${_OB_TEXT_DOMAIN}" return 1 |