working on messagesystem, password reset form

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2025-07-08 00:06:35 +02:00
parent 9d83008a62
commit 3e91565fb6
15 changed files with 337 additions and 67 deletions

View File

@@ -1,5 +1,6 @@
description = "Umbrella : Translations"
dependencies{
implementation(project(":core"))
implementation("org.json:json:20240303")
}

View File

@@ -7,13 +7,14 @@ import static java.nio.charset.StandardCharsets.UTF_8;
import com.sun.net.httpserver.HttpExchange;
import de.srsoftware.tools.Path;
import de.srsoftware.tools.PathHandler;
import de.srsoftware.umbrella.core.api.Translator;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import org.json.JSONObject;
public class Translations extends PathHandler {
public class Translations extends PathHandler implements Translator {
private static final System.Logger LOG = System.getLogger("Translations");
private HashMap<String, JSONObject> translations = new HashMap<>();
@@ -23,10 +24,13 @@ public class Translations extends PathHandler {
allowOrigin(ex,"*");
if (path.empty())return sendContent(ex,501,"Language missing");
var lang = path.pop();
var translationsForLang = translations.get(lang);
if (translationsForLang == null) translations.put(lang,translationsForLang = loadTranslations(lang));
return sendContent(ex,getTranslations(lang));
}
return sendContent(ex,translationsForLang);
private JSONObject getTranslations(String lang) throws IOException {
var result = translations.get(lang);
if (result == null) translations.put(lang,result = loadTranslations(lang));
return result;
}
private JSONObject loadTranslations(String lang) throws IOException {
@@ -44,4 +48,14 @@ public class Translations extends PathHandler {
return new JSONObject();
}
}
@Override
public String translate(String language, String text) {
try {
var translations = getTranslations(language);
return translations.has(text) ? translations.getString(text) : text;
} catch (IOException e) {
return text;
}
}
}

View File

@@ -8,14 +8,30 @@
"login" : {
"do_login" : "anmelden",
"Email_or_Username": "Email oder Nutzername",
"forgot_pass" : "Password vergessen?",
"Login" : "Anmeldung",
"OIDC_Login" : "Anmeldung mit OIDC",
"Password" : "Passwort"
},
"menu" : {
"bookmark": "Lesezeichen",
"company": "Firma",
"contact": "Kontakte",
"document": "Dokumente",
"files": "Dateien",
"items": "Items",
"logout": "Abmelden",
"message": "Benachrichtigungen",
"model": "Modelle",
"notes": "Notizen",
"project": "Projekte",
"stock": "Inventar",
"task": "Aufgaben",
"time": "Zeiterfassung",
"tutorial": "Tutorial",
"user": "Benutzer",
"users": "Benutzer",
"tutorial": "Tutorial"
"wiki": "Wiki"
},
"status" : {
"403": "Zugriff verweigert",
@@ -64,10 +80,13 @@
"saved": "gespeichert",
"save_service": "Service speichern",
"save_user": "Nutzer speichern",
"sent_email": "Email gesendet",
"service": "Service",
"settings" : "Eisntellungen",
"theme": "Design",
"unlink": "Trennen",
"update": "aktualisieren",
"UPDATE_USERS" : "Nutzer aktualisieren",
"user_module" : "Umbrella User-Verwaltung",
"your_profile": "dein Profil"
}