From f11f465cdcbcd1f3a83f992d3ebac0e45d1fac6f Mon Sep 17 00:00:00 2001 From: Franzz Date: Tue, 28 Apr 2026 20:20:01 +0200 Subject: [PATCH] Use json files as language and move files to i18n folder --- inc/Translator.php | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/inc/Translator.php b/inc/Translator.php index c22ea3b..508cabe 100755 --- a/inc/Translator.php +++ b/inc/Translator.php @@ -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()); } } }