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); } }