diff options
Diffstat (limited to 'lib/models/ModuleManagementModel.php')
| -rw-r--r-- | lib/models/ModuleManagementModel.php | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/lib/models/ModuleManagementModel.php b/lib/models/ModuleManagementModel.php index 88b264f..3bd5eb7 100644 --- a/lib/models/ModuleManagementModel.php +++ b/lib/models/ModuleManagementModel.php @@ -725,26 +725,25 @@ abstract class ModuleManagementModel extends SimpleORMap implements ModuleManage */ public static function setContentLanguage($language) { - if (!is_array(Config::get()->CONTENT_LAGUAGES[$language])) { + if (!is_array($GLOBALS['MVV_LANGUAGES']['values'][$language])) { throw new InvalidArgumentException(); } - I18NString::setContentLanguage($language); + $locale = $GLOBALS['MVV_LANGUAGES']['values'][$language]['locale']; + I18NString::setContentLanguage($locale); self::$language = $language; } - public function getAvailableTranslations(string $original_language): array + public function getAvailableTranslations() { - $translations = []; + $translations[] = $GLOBALS['MVV_LANGUAGES']['default']; $stmt = DBManager::get()->prepare('SELECT DISTINCT `lang` ' . 'FROM i18n ' . 'WHERE `object_id` = ? AND `table` = ?'); $stmt->execute([$this->id, $this->db_table()]); - $languages = array_merge([$original_language], - $stmt->fetchAll(PDO::FETCH_COLUMN)); - $content_languages = Config::get()->CONTENT_LANGUAGES; - foreach ($languages as $code) { - if (is_array($content_languages[$code])) { - $translations[] = $code; + foreach ($stmt->fetchAll() as $locale) { + $language = mb_strtoupper(mb_strstr($locale['lang'], '_', true)); + if (is_array($GLOBALS['MVV_LANGUAGES']['values'][$language])) { + $translations[] = $language; } } return $translations; |
