X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=functions%2Fgettext.php;h=9250a2f3db4932c201d8e9c9b199cd1835e0a102;hp=4295a68bcd48aca48ebc252118bbddfd40dd8b9e;hb=1942248e1d29a0c7fa5ce5d142d618636c6991dd;hpb=3b84e1b10d0800d858a68283bce298d15677ce58 diff --git a/functions/gettext.php b/functions/gettext.php index 4295a68b..9250a2f3 100644 --- a/functions/gettext.php +++ b/functions/gettext.php @@ -1,19 +1,21 @@ error==1) return $str; + if (! isset($l10n[$gettext_domain]) || + ! is_object($l10n[$gettext_domain]) || + $l10n[$gettext_domain]->error==1) + return $str; return $l10n[$gettext_domain]->translate($str); } @@ -42,6 +48,7 @@ function _($str) { * @param string $domain gettext domain name * @param string $dir directory that contains all translations * @return string path to translation directory + * @since 1.1.2 */ function bindtextdomain($domain, $dir) { global $l10n, $sm_notAlias; @@ -57,15 +64,40 @@ function bindtextdomain($domain, $dir) { /** * Alternative php textdomain function * - * Sets default domain name + * Sets default domain name. Before 1.5.1 command required + * bindtextdomain() call for each gettext domain change. * * @link http://www.php.net/function.textdomain * @param string $name gettext domain name * @return string gettext domain name + * @since 1.1.2 */ function textdomain($name = false) { global $gettext_domain; if ($name) $gettext_domain=$name; return $gettext_domain; } -?> \ No newline at end of file + +/** + * Safety check. + * Setup where three standard gettext functions don't exist and dgettext() exists. + */ +if (! function_exists('dgettext')) { + /** + * Alternative php dgettext function + * + * @link http://www.php.net/function.dgettext + * @param string $domain Gettext domain + * @param string $str English string + * @return string translated string + * @since 1.5.1 + */ + function dgettext($domain, $str) { + global $l10n; + if (! isset($l10n[$domain]) || + ! is_object($l10n[$domain]) || + $l10n[$domain]->error==1) + return $str; + return $l10n[$domain]->translate($str); + } +}