define('GETTEXT_PHP', 2);
function get_text_init($managerType = GETTEXT_NATIVE) {
-
- if (!isset($_SESSION['get_text'])) {
+ global $GetText;
+ if (!isset($GetText)) {
if ($managerType == GETTEXT_NATIVE)
{
if (function_exists('gettext'))
{
- $_SESSION['get_text'] = new gettext_native_support();
+ $GetText = new gettext_native_support();
return;
}
}
// fail back to php support
- $_SESSION['get_text'] = new gettext_php_support();
+ $GetText = new gettext_php_support();
}
}
*/
function gettext($key)
{
- $value = $this->_get_translation($key);
+ $value = $this->_get_translation($key);
if ($value === false) {
$str = sprintf('Unable to locate gettext key "%s"', $key);
//$err = new GetText_Error($str);
$this->_jobs[] = array($domain, $path);
return;
}
-
+ // Don't fill the domains with false data, it increased the error.log
+ if (strpos($domain, $this->_lang_code) === false)
+ return;
+
$err = $this->_load_domain($domain, $path);
if ($err != 0)
{
$d = new gettext_domain();
$d->name = $domain;
$d->path = $path;
-
if (!file_exists($php_domain) || (filemtime($php_domain) < filemtime($src_domain)))
{
*/
function _parse_line($line, $nbr)
{
- $line = str_replace("\\\"", "'", $line);
+ $line = str_replace("\\\"", "'", $line); // Should be inside preg_match, but I couldn't find the solution. This works.
if (preg_match('/^\s*?#/', $line)) { return; }
if (preg_match('/^\s*?msgid \"(.*?)(?!<\\\)\"/', $line, $m)) {
$this->_store_key();
Set current gettext domain path
*/
function set_ext_domain($path='') {
- global $path_to_root;
+ global $path_to_root, $GetText;
static $domain_stack = array('');
if ($path) // save path on domain stack
}
$lang_path = $path_to_root . ($path ? '/' : '') .$path.'/lang';
- // ignore change when extension does not provide translation structure
- if (file_exists($lang_path))
- $_SESSION['get_text']->add_domain($_SESSION['language']->code,
+ // ignore change when extension does not provide translation structure and test for valid gettext.
+ if (file_exists($lang_path) && isset($GetText))
+ $GetText->add_domain($_SESSION['language']->code,
$lang_path, $path ? '' : $_SESSION['language']->version);
}
?>