X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=functions%2Fgettext.php;h=af1e118712324b756c85652831a932afa54212f6;hp=ba44942b9a2d685c8b9135f5b561b02d541d101d;hb=3b6dcf425854f5b8b1f996b5a167983c01dd8a26;hpb=829a33b68436abfe9de8339c61531a61208e58c6 diff --git a/functions/gettext.php b/functions/gettext.php index ba44942b..af1e1187 100644 --- a/functions/gettext.php +++ b/functions/gettext.php @@ -1,134 +1,103 @@ -error==1) + return $str; + return $l10n[$gettext_domain]->translate($str); +} + +/** + * Alternative php bindtextdomain function + * + * Sets path to directory containing domain translations + * + * @link http://www.php.net/function.bindtextdomain + * @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; + if (substr($dir, -1) != '/') $dir .= '/'; + $mofile=$dir . $sm_notAlias . '/LC_MESSAGES/' . $domain . '.mo'; + + $input = new FileReader($mofile); + $l10n[$domain] = new gettext_reader($input); + + return $dir; +} + +/** + * Alternative php textdomain function + * + * 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; +} + +/** + * 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); + } +}