2015-05-05 01:00:01 +00:00
|
|
|
<?php defined('BLUDIT') or die('Bludit CMS.');
|
|
|
|
|
|
|
|
class dbLanguage extends dbJSON
|
|
|
|
{
|
2015-07-14 01:41:32 -03:00
|
|
|
public $data;
|
|
|
|
public $db;
|
2015-08-16 21:24:22 -03:00
|
|
|
public $currentLocale;
|
2015-05-05 01:00:01 +00:00
|
|
|
|
2015-08-16 21:24:22 -03:00
|
|
|
function __construct($locale)
|
2015-05-05 01:00:01 +00:00
|
|
|
{
|
2015-06-28 23:51:48 -03:00
|
|
|
$this->data = array();
|
2015-07-14 01:41:32 -03:00
|
|
|
$this->db = array();
|
2015-08-16 21:24:22 -03:00
|
|
|
$this->currentLocale = 'en_US';
|
2015-05-05 01:00:01 +00:00
|
|
|
|
2015-06-28 23:51:48 -03:00
|
|
|
// Default language en_US
|
|
|
|
$filename = PATH_LANGUAGES.'en_US.json';
|
2015-08-16 21:24:22 -03:00
|
|
|
if( Sanitize::pathFile($filename) )
|
2015-06-28 23:51:48 -03:00
|
|
|
{
|
2015-07-14 01:41:32 -03:00
|
|
|
$Tmp = new dbJSON($filename, false);
|
2015-07-15 22:34:16 -03:00
|
|
|
$this->db = array_merge($this->db, $Tmp->db);
|
2015-06-28 23:51:48 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
// User language
|
2015-08-16 21:24:22 -03:00
|
|
|
$filename = PATH_LANGUAGES.$locale.'.json';
|
|
|
|
if( Sanitize::pathFile($filename) && ($locale!=="en_US") )
|
2015-06-28 23:51:48 -03:00
|
|
|
{
|
2015-08-16 21:24:22 -03:00
|
|
|
$this->currentLocale = $locale;
|
2015-07-14 01:41:32 -03:00
|
|
|
$Tmp = new dbJSON($filename, false);
|
2015-07-15 22:34:16 -03:00
|
|
|
$this->db = array_merge($this->db, $Tmp->db);
|
2015-06-28 23:51:48 -03:00
|
|
|
}
|
2015-07-03 17:44:26 -03:00
|
|
|
|
2015-07-14 01:41:32 -03:00
|
|
|
$this->data = $this->db['language-data'];
|
2015-07-03 17:44:26 -03:00
|
|
|
unset($this->db['language-data']);
|
2015-06-28 23:51:48 -03:00
|
|
|
}
|
|
|
|
|
2015-08-16 21:24:22 -03:00
|
|
|
public function getCurrentLocale()
|
|
|
|
{
|
|
|
|
return $this->currentLocale;
|
|
|
|
}
|
|
|
|
|
2015-05-05 01:00:01 +00:00
|
|
|
// Return the translation, if the translation does'n exist then return the English translation.
|
2015-07-03 19:36:37 -03:00
|
|
|
public function get($string)
|
2015-05-05 01:00:01 +00:00
|
|
|
{
|
2015-07-03 19:36:37 -03:00
|
|
|
$key = Text::lowercase($string);
|
2015-05-30 22:06:55 -03:00
|
|
|
$key = Text::replace(' ', '-', $key);
|
2015-05-05 01:00:01 +00:00
|
|
|
|
2015-07-14 01:41:32 -03:00
|
|
|
if(isset($this->db[$key])) {
|
2015-05-05 01:00:01 +00:00
|
|
|
return $this->db[$key];
|
2015-07-14 01:41:32 -03:00
|
|
|
}
|
2015-05-05 01:00:01 +00:00
|
|
|
|
2015-07-14 01:41:32 -03:00
|
|
|
return '';
|
2015-05-05 01:00:01 +00:00
|
|
|
}
|
|
|
|
|
2015-07-14 01:41:32 -03:00
|
|
|
// Returns translation.
|
2015-07-03 19:36:37 -03:00
|
|
|
public function g($string)
|
|
|
|
{
|
|
|
|
return $this->get($string);
|
|
|
|
}
|
|
|
|
|
2015-07-24 00:28:25 -03:00
|
|
|
// Print translation.
|
|
|
|
public function printMe($string)
|
|
|
|
{
|
|
|
|
echo $this->get($string);
|
|
|
|
}
|
|
|
|
|
2015-07-14 01:41:32 -03:00
|
|
|
// Print translation.
|
2015-07-03 19:36:37 -03:00
|
|
|
public function p($string)
|
2015-05-05 01:00:01 +00:00
|
|
|
{
|
2015-07-03 19:56:24 -03:00
|
|
|
echo $this->get($string);
|
2015-05-05 01:00:01 +00:00
|
|
|
}
|
|
|
|
|
2015-07-03 17:44:26 -03:00
|
|
|
public function add($array)
|
|
|
|
{
|
2015-07-15 22:34:16 -03:00
|
|
|
$this->db = array_merge($this->db, $array);
|
2015-07-03 17:44:26 -03:00
|
|
|
}
|
|
|
|
|
2015-07-14 01:41:32 -03:00
|
|
|
// Returns the item from plugin-data.
|
|
|
|
public function getData($key)
|
|
|
|
{
|
|
|
|
if(isset($this->data[$key])) {
|
|
|
|
return $this->data[$key];
|
|
|
|
}
|
|
|
|
|
2015-08-16 21:24:22 -03:00
|
|
|
return '';
|
2015-07-14 01:41:32 -03:00
|
|
|
}
|
|
|
|
|
|
|
|
// Returns an array with all dictionaries.
|
|
|
|
public function getLanguageList()
|
|
|
|
{
|
2015-09-14 20:07:15 -03:00
|
|
|
$files = Filesystem::listFiles(PATH_LANGUAGES, '*', 'json');
|
2015-07-14 01:41:32 -03:00
|
|
|
|
|
|
|
$tmp = array();
|
|
|
|
|
|
|
|
foreach($files as $file)
|
|
|
|
{
|
|
|
|
$t = new dbJSON($file, false);
|
|
|
|
$native = $t->db['language-data']['native'];
|
|
|
|
$locale = basename($file, '.json');
|
|
|
|
$tmp[$locale] = $native;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $tmp;
|
|
|
|
}
|
|
|
|
|
2015-07-03 19:36:37 -03:00
|
|
|
}
|