preparing for more streamlined backend translation

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2026-01-13 08:46:44 +01:00
parent 669853352e
commit fea11ff9dc

View File

@@ -0,0 +1,38 @@
package de.srsoftware.umbrella.core.model;
import de.srsoftware.umbrella.core.ModuleRegistry;
import java.util.HashMap;
import java.util.Map;
public class Translatable {
private final String message;
private Map<String, Object> fills;
private final HashMap<String,String> translated = new HashMap<>();
public Translatable(String message, Map<String,Object> fills){
this.fills = fills;
this.message = message;
}
public String translate(String language){
var translation = translated.get(language);
if (translation == null){
var translatedFills = new HashMap<String,String>();
if (fills != null) {
for (var entry : fills.entrySet()) {
var o = entry.getValue();
var val = switch (o) {
case Translatable tr -> tr.translate(language);
case String s -> s;
default -> o.toString();
};
translatedFills.put(entry.getKey(), val);
}
}
translation = ModuleRegistry.translator().translate(language,message,translatedFills);
translated.put(language,translation);
}
return translation;
}
}