translation work 🗣

This commit is contained in:
Jokob-sk
2024-02-11 08:48:50 +11:00
parent 5a8d8f0828
commit 2cdf6e9bf3
7 changed files with 43 additions and 52 deletions

View File

@@ -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) {

View File

@@ -1,5 +1,5 @@
{
"de_de": {
"API_CUSTOM_SQL_description": "Benutzerdefinierte SQL-Abfrage, welche eine JSON-Datei generiert und diese mit dem <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\">Dateiendpunkt <code>table_custom_endpoint.json</code></a> 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."
}
}

View File

@@ -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 <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\"><code>table_custom_endpoint.json</code> file endpoint</a>.",
"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."
}
}

View File

@@ -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 <a href=\"/api/table_custom_endpoint.json\" target=\"_blank\">archivo <code>table_custom_endpoint.json</code ></a>.",
"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."
}
}

View File

@@ -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": ""
}
}

View File

@@ -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;
}

View File

@@ -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": ""
}
}