From e8f92cc6ca08cbf3c46477d332b52f20c140743f Mon Sep 17 00:00:00 2001 From: Tom Hempel Date: Wed, 27 May 2026 14:16:01 +0200 Subject: [PATCH] enhanced translation handling by ensuring source language inclusion and exposing German defaults for untranslated keys --- common.php | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/common.php b/common.php index 224ca39..c31aa30 100644 --- a/common.php +++ b/common.php @@ -888,13 +888,30 @@ function qdb_build_app_translations_map(PDO $pdo): array { $translations = qdb_load_translations_for_entries($pdo, $entries); $defaults = qdb_app_string_catalog()['germanDefaults'] ?? []; $result = []; + + qdb_ensure_source_language($pdo); + $languageCodes = $pdo->query('SELECT languageCode FROM language ORDER BY languageCode') + ->fetchAll(PDO::FETCH_COLUMN); + if (!in_array(QDB_SOURCE_LANGUAGE, $languageCodes, true)) { + $languageCodes[] = QDB_SOURCE_LANGUAGE; + } + foreach ($entries as $e) { $key = $e['key']; foreach ($translations[$e['entityId']] ?? [] as $lang => $text) { - $result[$lang][$key] = $text; + if ($text !== '') { + $result[$lang][$key] = $text; + } } - if (!isset($result[QDB_SOURCE_LANGUAGE][$key]) && !empty($defaults[$key])) { - $result[QDB_SOURCE_LANGUAGE][$key] = $defaults[$key]; + $defaultDe = trim($defaults[$key] ?? ''); + if ($defaultDe === '') { + continue; + } + // New catalog keys: expose German default for every language until translated on the website. + foreach ($languageCodes as $lc) { + if (empty($result[$lc][$key] ?? '')) { + $result[$lc][$key] = $defaultDe; + } } } return $result;