X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fgettext.php;h=af1e118712324b756c85652831a932afa54212f6;hb=de3fd5f764be024806a4fa56b03b2963d93f8ec2;hp=89685b01e6d4b0b3fa81d81ec0d15e2678c9eac6;hpb=6c84ba1ec45ab854c37b6f65c5b4d84ab1c7aad4;p=squirrelmail.git diff --git a/functions/gettext.php b/functions/gettext.php index 89685b01..af1e1187 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); + } +}