- show default (english) localization in extension if required language file is not present in extension

This commit is contained in:
maxpozdeev 2023-03-31 14:01:36 +03:00
parent 7e72dbe14d
commit c8075e0d6b

View file

@ -169,27 +169,28 @@ class Lang
if (!is_dir($langDir)) {
return null;
}
if (!file_exists($langDir. 'en.json')) {
return null;
$def = [];
if (file_exists($langDir. 'en.json')) {
$defStr = file_get_contents($langDir. 'en.json');
$def = json_decode($defStr, true);
if ($def === null) {
error_log("Failed to decode translation JSON of extension '$ext', language 'en': ". json_last_error_msg());
$def = [];
}
}
else {
#error_log("Default translation file 'en.json' not found in extension '$ext'");
}
$lang = [];
if ($this->code != 'en') {
if (!file_exists($langDir. $this->code. '.json')) {
return null;
}
$langStr = file_get_contents($langDir. $this->code. '.json');
$langFile = $langDir. $this->code. '.json';
if ($this->code != 'en' && file_exists($langFile)) {
$langStr = file_get_contents($langFile);
$lang = json_decode($langStr, true);
if ($lang === null) {
error_log("Failed to decode translation JSON of extension '$ext', language '{$this->code}': ". json_last_error_msg());
$lang = [];
}
}
$defStr = file_get_contents($langDir. 'en.json');
$def = json_decode($defStr, true);
if ($def === null) {
error_log("Failed to decode translation JSON of extension '$ext', language 'en': ". json_last_error_msg());
$def = [];
}
$lang = array_replace($def, $lang);
return $lang;
}