<?php
+
/**
* SquirrelMail internal gettext functions
*
- * Uses php-gettext classes
- * @copyright (c) 1999-2005 The SquirrelMail Project Team
- * @license http://opensource.org/licenses/gpl-license.php GNU Public Licens
+ * Since 1.5.1 uses php-gettext classes.
+ * Original implementation was done by Tyler Akins (fidian)
+ *
* @link http://www.php.net/gettext Original php gettext manual
* @link http://savannah.nongnu.org/projects/php-gettext php-gettext classes
+ * @copyright 1999-2014 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
+ * @since 1.1.2
* @package squirrelmail
* @subpackage i18n
*/
-/** Almost everything requires global.php... */
-require_once(SM_PATH . 'functions/global.php');
/** Load classes and other functions */
include_once(SM_PATH . 'class/l10n.class.php');
*
* @param string $str English string
* @return string translated string
+ * @since 1.1.2
*/
function _($str) {
global $l10n, $gettext_domain;
- if ($l10n[$gettext_domain]->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);
}
* @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;
/**
* 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);
+ }
+}