Add autoload function to main config file. Add better DIR declarations in config file based on __DIR__ for libs & smarty classes. Load all class files with the new autoload function in header & direct file calls.
108 lines
2.7 KiB
PHP
108 lines
2.7 KiB
PHP
<?
|
|
/*********************************************************************
|
|
* AUTHOR: Clemens "Gullevek" Schwaighofer (www.gullevek.org)
|
|
* CREATED: 2004/11/18
|
|
* VERSION: 0.1.1
|
|
* RELEASED LICENSE: BSD style (use it, u don't have to make YOUR source public)
|
|
* but let me know if u made changes, and please don't redistribute it
|
|
* with your name on it ...
|
|
* SHORT DESCRIPTION:
|
|
* init class for gettext. Original was just a function & var setting include for wordpress.
|
|
* I changed that to a class to be more portable with my style of coding
|
|
*
|
|
* PUBLIC VARIABLES
|
|
*
|
|
* PRIVATE VARIABLES
|
|
*
|
|
* PUBLIC METHODS
|
|
* __: returns string (translated or original if not found)
|
|
* _e: echos out string (translated or original if not found)
|
|
* __ngettext: should return plural. never tested this.
|
|
*
|
|
* PRIVATE METHODS
|
|
*
|
|
* HISTORY:
|
|
* 2005/10/17 (cs) made an on the fly switch method (reload of lang)
|
|
*********************************************************************/
|
|
|
|
// try to include file from LIBS path, or from normal path
|
|
_spl_autoload('Class.Basic.inc');
|
|
|
|
class l10n extends basic
|
|
{
|
|
private $lang = '';
|
|
private $mofile = '';
|
|
private $input;
|
|
private $l10n;
|
|
|
|
public function __construct($lang = '', $path = '')
|
|
{
|
|
foreach (array('streas.php', 'gettext.php') as $include_file)
|
|
_spl_autoload($include_file);
|
|
|
|
if (!$lang)
|
|
$this->lang = 'en';
|
|
else
|
|
$this->lang = $lang;
|
|
|
|
if (!$path)
|
|
$path = DEFAULT_TEMPLATE;
|
|
if (!is_dir(LAYOUT.$path.LANG))
|
|
$path = '';
|
|
|
|
$this->mofile = LAYOUT.$path.LANG.$this->lang.".mo";
|
|
|
|
// check if get a readable mofile
|
|
if (is_readable($this->mofile))
|
|
$this->input = new FileReader($this->mofile);
|
|
else
|
|
$this->input = false;
|
|
|
|
$this->l10n = new gettext_reader($this->input);
|
|
}
|
|
|
|
// reloads the mofile, if the location of the lang file changes
|
|
public function l10nReloadMOfile($lang, $path = DEFAULT_TEMPLATE)
|
|
{
|
|
$old_mofile = $this->mofile;
|
|
$old_lang = $this->lang;
|
|
|
|
$this->lang = $lang;
|
|
|
|
if (!is_dir(LAYOUT.$path.LANG))
|
|
$path = '';
|
|
|
|
$this->mofile = LAYOUT.$path.LANG.$this->lang.".mo";
|
|
|
|
// check if get a readable mofile
|
|
if (is_readable($this->mofile))
|
|
{
|
|
$this->input = new FileReader($this->mofile);
|
|
$this->l10n = new gettext_reader($this->input);
|
|
}
|
|
else
|
|
{
|
|
// else fall back to the old ones
|
|
$this->mofile = $old_mofile;
|
|
$this->lang = $old_lang;
|
|
}
|
|
}
|
|
|
|
public function __($text)
|
|
{
|
|
return $this->l10n->translate($text);
|
|
}
|
|
|
|
public function _e($text)
|
|
{
|
|
echo $this->l10n->translate($text);
|
|
}
|
|
|
|
// Return the plural form.
|
|
public function __ngettext($single, $plural, $number)
|
|
{
|
|
return $this->l10n->ngettext($single, $plural, $number);
|
|
}
|
|
}
|
|
?>
|