diff --git a/front/js/pialert_common.js b/front/js/pialert_common.js index cba4b4dd..a249a72c 100755 --- a/front/js/pialert_common.js +++ b/front/js/pialert_common.js @@ -143,24 +143,19 @@ function cacheStrings() { // handle core strings and translations - var allLanguages = ["en_us","es_es","de_de"]; // needs to be same as in lang.php + var allLanguages = ["en_us", "es_es", "de_de"]; // needs to be same as in lang.php allLanguages.forEach(function (language_code) { - - $.get(`php/templates/language/${language_code}.json`, function(res) { - - Object.entries(res).forEach(([language, translations]) => { - - Object.entries(translations).forEach(([key, value]) => { - // store as key - value pairs in session - setCache(`pia_lang_${key}_${language}`, value) - }); + $.get(`php/templates/language/${language_code}.json`, function (res) { + // Iterate over each language + Object.entries(res).forEach(([key, value]) => { + // Store translations for each key-value pair + setCache(`pia_lang_${key}_${language_code}`, value) }); - - }) - + }); }); + // handle strings and translations from plugins $.get('api/table_plugins_language_strings.json', function(res) { diff --git a/front/php/templates/language/de_de.json b/front/php/templates/language/de_de.json index c505354d..ebe73f0d 100755 --- a/front/php/templates/language/de_de.json +++ b/front/php/templates/language/de_de.json @@ -1,5 +1,5 @@ { - "de_de": { + "API_CUSTOM_SQL_description": "Benutzerdefinierte SQL-Abfrage, welche eine JSON-Datei generiert und diese mit dem Dateiendpunkt table_custom_endpoint.json zur Verf\u00fcgung stellt.", "API_CUSTOM_SQL_name": "Benutzerdefinierte SQL-Abfrage", "API_display_name": "API", @@ -712,5 +712,5 @@ "settings_system_label": "", "test_event_icon": "fa-vial-circle-check", "test_event_tooltip": "Save your changes at first before you test your settings." - } + } \ No newline at end of file diff --git a/front/php/templates/language/en_us.json b/front/php/templates/language/en_us.json index d5689ff1..5f479ff4 100755 --- a/front/php/templates/language/en_us.json +++ b/front/php/templates/language/en_us.json @@ -1,5 +1,5 @@ { - "en_us": { + "API_CUSTOM_SQL_description": "You can specify a custom SQL query which will generate a JSON file and then expose it via the table_custom_endpoint.json file endpoint.", "API_CUSTOM_SQL_name": "Custom endpoint", "API_display_name": "API", @@ -631,5 +631,5 @@ "settings_system_label": "System", "test_event_icon": "fa-vial-circle-check", "test_event_tooltip": "Save your changes at first before you test your settings." - } + } \ No newline at end of file diff --git a/front/php/templates/language/es_es.json b/front/php/templates/language/es_es.json index e1247e5b..103f3c01 100755 --- a/front/php/templates/language/es_es.json +++ b/front/php/templates/language/es_es.json @@ -1,5 +1,5 @@ { - "es_es": { + "API_CUSTOM_SQL_description": "Puede especificar una consulta SQL personalizada que generar\u00e1 un archivo JSON y luego lo expondr\u00e1 a trav\u00e9s del archivo table_custom_endpoint.json.", "API_CUSTOM_SQL_name": "Endpoint personalizado", "API_display_name": "API", @@ -711,5 +711,5 @@ "settings_system_label": "", "test_event_icon": "fa-vial-circle-check", "test_event_tooltip": "Guarda tus cambios antes de probar nuevos ajustes." - } + } \ No newline at end of file diff --git a/front/php/templates/language/fr_fr.json b/front/php/templates/language/fr_fr.json index 1379a358..3c1e5549 100755 --- a/front/php/templates/language/fr_fr.json +++ b/front/php/templates/language/fr_fr.json @@ -1,5 +1,5 @@ { - "fr_fr": { + "API_CUSTOM_SQL_description": "", "API_CUSTOM_SQL_name": "", "API_display_name": "", @@ -631,5 +631,5 @@ "settings_system_label": "", "test_event_icon": "", "test_event_tooltip": "" - } + } \ No newline at end of file diff --git a/front/php/templates/language/lang.php b/front/php/templates/language/lang.php index 39a7c42e..537a6be5 100755 --- a/front/php/templates/language/lang.php +++ b/front/php/templates/language/lang.php @@ -31,33 +31,28 @@ function getLanguageDataFromJson() { global $allLanguages; - // Default language - $defaultLanguage = 'en_us'; - // Array to hold the language data from the JSON files $languageData = []; - + foreach ($allLanguages as $language) { // Load and parse the JSON data from .json files $jsonFilePath = dirname(__FILE__) . '/' . $language . '.json'; - + if (file_exists($jsonFilePath)) { $data = json_decode(file_get_contents($jsonFilePath), true); - - // Use the default language if the key is not found - $languageData[$language] = $data[$language] ?? $data[$defaultLanguage] ?? []; + + // Adjusting for the changed JSON format + $languageData[$language] = $data; } else { // Handle the case where the JSON file doesn't exist // For example, you might want to log an error message - echo 'File not found: '.$jsonFilePath; - + echo 'File not found: ' . $jsonFilePath; } } return $languageData; } - // Merge the JSON data with the SQL data, giving priority to SQL data for overlapping keys function mergeLanguageData($jsonLanguageData, $sqlLanguageData) { @@ -76,30 +71,31 @@ function mergeLanguageData($jsonLanguageData, $sqlLanguageData) function lang($key) { - global $pia_lang_selected, $lang, $defaultLang, $strings, $db; - // Get the data from JSON files - $languageData = getLanguageDataFromJson(); + global $pia_lang_selected, $strings; - // Get the data from SQL query - $sqlLanguageData = $strings; + // Get the data from JSON files + $languageData = getLanguageDataFromJson(); - // Merge JSON data with SQL data - $mergedLanguageData = mergeLanguageData($languageData, $sqlLanguageData); + // Get the data from SQL query + $sqlLanguageData = $strings; - // Check if the key exists in the selected language - if (isset($mergedLanguageData[$pia_lang_selected][$key]) and $mergedLanguageData[$pia_lang_selected][$key] != '') { - $result = $mergedLanguageData[$pia_lang_selected][$key]; - } else { - // If key not found in selected language, use "en_us" as fallback - if (isset($mergedLanguageData['en_us'][$key])) { - $result = $mergedLanguageData['en_us'][$key]; + // Merge JSON data with SQL data + $mergedLanguageData = mergeLanguageData($languageData, $sqlLanguageData); + + // Check if the key exists in the selected language + if (isset($mergedLanguageData[$pia_lang_selected][$key]) && $mergedLanguageData[$pia_lang_selected][$key] != '') { + $result = $mergedLanguageData[$pia_lang_selected][$key]; } else { - // If key not found in "en_us" either, use a default string - $result = "String Not found for key " . $key; + // If key not found in selected language, use "en_us" as fallback + if (isset($mergedLanguageData['en_us'][$key])) { + $result = $mergedLanguageData['en_us'][$key]; + } else { + // If key not found in "en_us" either, use a default string + $result = "String Not found for key " . $key; + } } - } - return $result; + return $result; } diff --git a/front/php/templates/language/nb_no.json b/front/php/templates/language/nb_no.json index 3c3fefa8..fdf2e377 100755 --- a/front/php/templates/language/nb_no.json +++ b/front/php/templates/language/nb_no.json @@ -1,5 +1,5 @@ { - "nb_no": { + "API_CUSTOM_SQL_description": "", "API_CUSTOM_SQL_name": "", "API_display_name": "", @@ -631,5 +631,5 @@ "settings_system_label": "", "test_event_icon": "", "test_event_tooltip": "" - } + } \ No newline at end of file