Use json files as language and move files to i18n folder
This commit is contained in:
@@ -6,7 +6,7 @@ use \Settings;
|
||||
/**
|
||||
* Translator Class
|
||||
* @author franzz
|
||||
* @version 1.1
|
||||
* @version 2.0
|
||||
*/
|
||||
class Translator extends PhpObject
|
||||
{
|
||||
@@ -15,9 +15,8 @@ class Translator extends PhpObject
|
||||
private $asLanguages;
|
||||
private $asTranslations; // [lang][key_word] = translation
|
||||
|
||||
const LANG_FOLDER = '../languages/';
|
||||
const LANG_EXT = '.lang';
|
||||
const LANG_SEP = '=';
|
||||
const LANG_FOLDER = '../i18n/';
|
||||
const LANG_EXT = '.json';
|
||||
const DEFAULT_LANG = 'en';
|
||||
|
||||
/**
|
||||
@@ -115,19 +114,15 @@ class Translator extends PhpObject
|
||||
|
||||
private function loadLanguageFile($sLang)
|
||||
{
|
||||
if(!in_array($sLang, $this->asTranslations))
|
||||
if(!array_key_exists($sLang, $this->asTranslations))
|
||||
{
|
||||
$sData = file_get_contents(self::getLangPath($sLang));
|
||||
$asData = explode("\n", $sData);
|
||||
foreach($asData as $sTranslation)
|
||||
{
|
||||
$iSepPos = mb_stripos($sTranslation, self::LANG_SEP);
|
||||
if($iSepPos !== false)
|
||||
{
|
||||
$sTransKey = trim(mb_substr($sTranslation, 0, $iSepPos));
|
||||
$sTransText = trim(mb_substr($sTranslation, $iSepPos+1));
|
||||
$this->asTranslations[$sLang][$sTransKey] = $sTransText;
|
||||
}
|
||||
$asData = json_decode($sData, true);
|
||||
|
||||
if(is_array($asData)) $this->asTranslations[$sLang] = $asData;
|
||||
else {
|
||||
$this->asTranslations[$sLang] = array();
|
||||
$this->addWarning('Invalid JSON translation file for language "'.$sLang.'": '.json_last_error_msg());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user