working on translations

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2026-08-04 08:48:00 +02:00
parent d4feda141e
commit 4f0dced606
5 changed files with 77 additions and 32 deletions
@@ -5,6 +5,7 @@ import static de.srsoftware.umbrella.core.constants.Module.BOOKMARK;
import static de.srsoftware.umbrella.core.model.Translatable.t;
import de.srsoftware.umbrella.core.constants.Field;
import de.srsoftware.umbrella.core.constants.Text;
import de.srsoftware.umbrella.core.model.Bookmark;
import de.srsoftware.umbrella.core.model.Translatable;
import de.srsoftware.umbrella.core.model.UmbrellaUser;
@@ -22,19 +23,42 @@ public class BookmarkEvent extends Event<Bookmark> {
}
@Override
public Translatable describe(boolean verbose) {
return switch (eventType()){
case CREATE -> t("New bookmark created");
case DELETE -> t("The bookmark '{url}' has been deleted", Field.URL, payload().url());
case UPDATE -> t("Bookmark updated");
default -> null;
};
public Translatable describeCreate(boolean verbose) {
return t(Text.CREATE_BOOKMARK_DESCRIPTION,Field.URL,payload().url(),Field.DESCRIPTION,payload().comment());
}
@Override
public Translatable subject() {
return describe(false);
public Translatable describeDelete(boolean verbose) {
return t(Text.DELETE_BOOKMARK_DESCRIPTION, Field.DESCRIPTION, payload().comment());
}
@Override
public Translatable describeMemberAdded(boolean verbose) {
return t(Text.MEMBER_ADDED_TO_BM_DESC,Field.DESCRIPTION,payload().comment());
}
@Override
public Translatable describeUpdate(boolean verbose) {
return t(Text.UPDATE_BM_DESCRIPTION, Field.USER, initiator().name());
}
@Override
public Translatable subjectCreate() {
return t(Text.CREATE_BOOKMARK_SUBJECT,Field.USER,initiator().name());
}
@Override
public Translatable subjectDelete() {
return t(Text.DELETE_BOOKMARK_SUBJECT, Field.USER, initiator().name(), Field.URL, payload().url());
}
@Override
public Translatable subjectMemberAdded() {
return t(Text.MEMBER_ADDED_TO_BM_SUBJ,Field.USER, initiator().name(), Field.URL, payload().url());
}
@Override
public Translatable subjectUpdate() {
return t(Text.UPDATE_BM_SUBJECT,Field.URL, payload().url(), Field.DESCRIPTION, diff().orElse(""));
}
}
@@ -2,9 +2,11 @@
package de.srsoftware.umbrella.messagebus.events;
import static de.srsoftware.umbrella.core.constants.Field.*;
import static de.srsoftware.umbrella.core.model.Translatable.t;
import static java.util.Optional.*;
import de.srsoftware.tools.Diff;
import de.srsoftware.umbrella.core.constants.Field;
import de.srsoftware.umbrella.core.model.Translatable;
import de.srsoftware.umbrella.core.model.UmbrellaObject;
import de.srsoftware.umbrella.core.model.UmbrellaUser;
@@ -47,7 +49,19 @@ public abstract class Event<Payload extends UmbrellaObject> {
public abstract Collection<UmbrellaUser> audience();
public abstract Translatable describe(boolean verbose);
public Translatable describe(boolean verbose) {
return switch (eventType()){
case CREATE -> describeCreate(verbose);
case DELETE -> describeDelete(verbose);
case MEMBER_ADDED -> describeMemberAdded(verbose);
case UPDATE -> describeUpdate(verbose);
};
}
public abstract Translatable describeCreate(boolean verbose);
public abstract Translatable describeDelete(boolean verbose);
public abstract Translatable describeMemberAdded(boolean verbose);
public abstract Translatable describeUpdate(boolean verbose);
private Map<String, Object> dropMarkdown(Map<String, Object> map) {
var result = new HashMap<String, Object>();
@@ -110,5 +124,18 @@ public abstract class Event<Payload extends UmbrellaObject> {
return payload;
}
public abstract Translatable subject();
public Translatable subject() {
return switch (eventType()){
case CREATE -> subjectCreate();
case DELETE -> subjectDelete();
case MEMBER_ADDED -> subjectMemberAdded();
case UPDATE -> subjectUpdate();
};
}
public abstract Translatable subjectCreate();
public abstract Translatable subjectDelete();
public abstract Translatable subjectMemberAdded();
public abstract Translatable subjectUpdate();
}
@@ -23,30 +23,9 @@ public class ItemEvent extends Event<Item>{
return List.of();
}
@Override
public Translatable describe(boolean verbose) {
return switch (eventType()){
case CREATE -> describeCreate();
case null, default -> null;
};
}
private Translatable describeCreate() {
var loc = payload().location().resolve().name();
return t("{user} added \"{item}\" to \"{location}\"", USER,initiator().name(), ITEM, payload().name(), LOCATION, loc);
}
@Override
public long objectId() {
return payload().id();
}
@Override
public Translatable subject() {
var loc = payload().location().resolve().name();
return switch (eventType()){
case CREATE -> t("A new item has been added to \"{location}\":",LOCATION,loc);
case null, default -> null;
};
}
}