Use json files as language and move files to i18n folder

This commit is contained in:
2026-04-28 20:20:01 +02:00
parent cf7a848702
commit f11f465cdc

View File

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