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
* @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());
}
}
}