working on meaningfull messages for task and project related events

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2026-01-19 21:09:25 +01:00
parent be8f21c734
commit a8d1b376a2
11 changed files with 148 additions and 32 deletions

View File

@@ -1,10 +1,13 @@
/* © SRSoftware 2025 */
package de.srsoftware.umbrella.translations;
import static de.srsoftware.umbrella.core.constants.Field.BASE_URL;
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.missingField;
import static java.lang.System.Logger.Level.WARNING;
import static java.nio.charset.StandardCharsets.UTF_8;
import com.sun.net.httpserver.HttpExchange;
import de.srsoftware.configuration.Configuration;
import de.srsoftware.tools.Path;
import de.srsoftware.tools.PathHandler;
import de.srsoftware.umbrella.core.ModuleRegistry;
@@ -14,15 +17,21 @@ import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import org.json.JSONObject;
public class Translations extends PathHandler implements Translator {
private static final System.Logger LOG = System.getLogger("Translations");
private final String baseUrl;
private HashMap<String, JSONObject> translations = new HashMap<>();
public Translations() {
public Translations(Configuration config) {
ModuleRegistry.add(this);
Optional<String> baseUrl = config.get(BASE_URL);
if (baseUrl.isEmpty()) throw missingField(BASE_URL);
this.baseUrl = baseUrl.get();
}
@Override
@@ -70,7 +79,7 @@ public class Translations extends PathHandler implements Translator {
if (fills != null) for (var entry : fills.entrySet()) {
translated = translated.replaceAll("\\{"+entry.getKey()+"}",entry.getValue());
}
return translated;
return translated.replaceAll("\\{base_url}",baseUrl);
} catch (IOException e) {
return text;
}

View File

@@ -18,6 +18,7 @@
"by": "von",
"cancel": "abbrechen",
"Changes in task '{task}':\n\n{body}": "Änderungen an Aufgabe '{task}':\n\n{body}",
"choose_type": "Typ wählen",
"click_to_edit": "Anklicken zum Bearbeiten",
"client_id": "Client-ID",
@@ -218,6 +219,7 @@
"my files": "Meine Dateien",
"name": "Name",
"'{name}' has been added to '{task}' by '{user}'.": "'{name}' wurde von {user} zu '{task}' hinzugefügt.",
"net_price": "Nettopreis",
"net_sum": "Netto-Summe",
"new_contact": "neuer Kontakt",
@@ -332,6 +334,8 @@
"tags": "Tags",
"task": "Aufgabe",
"task_list": "Aufgabenliste",
"'{task}' has been added to '{object}':\n\n{body}": "'{task}' wurde zu '{object}' hinzugefügt:\n\n{body}",
"Task '{task}' was edited": "Aufgabe '{task}' wurde bearbeitet",
"tasks": "Aufgaben",
"tasks_for_tag": "Aufgaben mit Tag „{tag}“",
"tax_id": "Steuernummer",
@@ -339,6 +343,9 @@
"tax_rate": "Steuersatz",
"template": "Vorlage",
"theme": "Design",
"The task '{task}' has been created": "Die Aufgabe '{task}' wurde angelegt",
"The task '{task}' has been deleted": "Die Aufgabe '{task}' wurde gelöscht",
"The task '{task}' has been deleted by {user}": "Die Aufgabe '{task}' wurde von {user} bearbeitet",
"time ({id})": "Zeit ({id})",
"times": "Zeiten",
"timetracking": "Zeiterfassung",
@@ -385,6 +392,7 @@
"visible_to_guests": "Für Besucher sichtbar",
"year": "Jahr",
"You can view/edit this task at {base_url}/task/{id}/view": "Du kannst diese Aufgabe unter {base_url}/task/{id}/view ansehen/bearbeiten.",
"Your token to create a new password" : "Ihr Token zum Erstellen eines neuen Passworts",
"your_profile": "dein Profil"
}

View File

@@ -18,6 +18,7 @@
"by": "by",
"cancel": "cancel",
"Changes in task '{task}':\n\n{body}": "Changes in task '{task}':\n\n{body}",
"choose_type": "choose type",
"click_to_edit": "click to edit",
"client_id": "client ID",
@@ -218,6 +219,7 @@
"my files": "my files",
"name": "Name",
"'{name}' has been added to '{task}' by '{user}'.": "'{name}' has been added to '{task}' by '{user}'.",
"net_price": "net price",
"net_sum": "net sum",
"new_contact": "new contact",
@@ -332,6 +334,8 @@
"tags": "tags",
"task": "task",
"task_list": "task list",
"'{task}' has been added to '{object}':\n\n{body}": "'{task}' has been added to '{object}':\n\n{body}",
"Task '{task}' was edited": "Task '{task}' was edited",
"tasks": "tasks",
"tasks_for_tag": "tasks with tag „{tag}“",
"tax_id": "tax ID",
@@ -339,6 +343,9 @@
"tax_rate": "tax rate",
"template": "template",
"theme": "design",
"The task '{task}' has been created": "The task '{task}' has been created",
"The task '{task}' has been deleted": "The task '{task}' has been deleted",
"The task '{task}' has been deleted by {user}": "The task '{task}' has been deleted by {user}",
"time ({id})": "time ({id})",
"times": "times",
"timetracking": "time tracking",
@@ -385,6 +392,7 @@
"visible_to_guests": "visible to guests",
"year": "year",
"You can view/edit this task at {base_url}/task/{id}/view": "You can view/edit this task at {base_url}/task/{id}/view",
"Your token to create a new password" : "Your token to create a new password",
"your_profile": "your profile"
}