extended Project event translations

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2026-01-20 20:21:54 +01:00
parent 1cb4d2ff14
commit 8c10f820d5
4 changed files with 35 additions and 14 deletions

View File

@@ -16,8 +16,8 @@ import java.util.Map;
public class ProjectEvent extends Event<Project>{ public class ProjectEvent extends Event<Project>{
private final UmbrellaUser newMember;
private UmbrellaUser newMember;
public ProjectEvent(UmbrellaUser initiator, Project project, EventType type){ public ProjectEvent(UmbrellaUser initiator, Project project, EventType type){
super(initiator, PROJECT, project, type); super(initiator, PROJECT, project, type);
newMember = null; newMember = null;
@@ -49,12 +49,12 @@ public class ProjectEvent extends Event<Project>{
} }
private Translatable describeCreate() { private Translatable describeCreate() {
var head = t("You have been added to the new project '{project}', created by {user}':\n\n{body}", Field.PROJECT, payload().name(), BODY, payload().description(), USER, initiator().name()); var head = t("You have been added to the new project '{project}', created by {user}:\n\n{body}", Field.PROJECT, payload().name(), BODY, payload().description(), USER, initiator().name());
return t("{head}\n\n{link}","head",head,"link",link()); return t("{head}\n\n{link}","head",head,"link",link());
} }
private Translatable describeMemberAdded() { private Translatable describeMemberAdded() {
var head = t("'{name}' has been added to '{project}' by '{user}'.",NAME,newMember.name(),Field.PROJECT,payload().name(),USER,initiator().name()); var head = t("'{name}' has been added to '{object}' by '{user}'.",NAME,newMember.name(),Field.OBJECT,payload().name(),USER,initiator().name());
return t("{head}\n\n{link}","head",head,"link",link()); return t("{head}\n\n{link}","head",head,"link",link());
} }
@@ -63,6 +63,11 @@ public class ProjectEvent extends Event<Project>{
return t("{head}\n\n{link}","head",head,"link",link()); return t("{head}\n\n{link}","head",head,"link",link());
} }
@Override
protected Map<String, Object> filter(Map<String, Object> map) {
map.remove(MEMBERS);
return super.filter(map);
}
@Override @Override
public boolean isIntendedFor(UmbrellaUser user) { public boolean isIntendedFor(UmbrellaUser user) {
@@ -76,9 +81,11 @@ public class ProjectEvent extends Event<Project>{
return t("You can view/edit this project at {base_url}/project/{id}/view",ID,payload().id()); return t("You can view/edit this project at {base_url}/project/{id}/view",ID,payload().id());
} }
@Override @Override
public Translatable subject() { public Translatable subject() {
return t("{user} edited {object}",USER,initiator(),OBJECT,payload().name()); return switch (eventType()){
} case CREATE -> t("The project '{project}' has been created", Field.PROJECT, payload().name());
} case DELETE -> t("The project '{project}' has been deleted",Field.PROJECT, payload().name());
case MEMBER_ADDED, UPDATE -> t("Project '{project}' was edited",Field.PROJECT,payload().name());
};
}}

View File

@@ -50,11 +50,6 @@ public class TaskEvent extends Event<Task>{
}; };
} }
private Translatable describeMemberAdded() {
var head = t("'{name}' has been added to '{task}' by '{user}'.",NAME,newMember.name(),Field.TASK,payload().name(),USER,initiator().name());
return t("{head}\n\n{link}","head",head,"link",link());
}
private Translatable describeCreate() { private Translatable describeCreate() {
String parentName = null; String parentName = null;
var pid = payload().parentTaskId(); var pid = payload().parentTaskId();
@@ -71,6 +66,11 @@ public class TaskEvent extends Event<Task>{
return t("{head}\n\n{link}","head",head,"link",link()); return t("{head}\n\n{link}","head",head,"link",link());
} }
private Translatable describeMemberAdded() {
var head = t("'{name}' has been added to '{object}' by '{user}'.",NAME,newMember.name(), OBJECT,payload().name(),USER,initiator().name());
return t("{head}\n\n{link}","head",head,"link",link());
}
private Translatable describeUpdate() { private Translatable describeUpdate() {
var head = t("Changes in task '{task}':\n\n{body}",Field.TASK,payload().name(),BODY,diff().orElse("")); var head = t("Changes in task '{task}':\n\n{body}",Field.TASK,payload().name(),BODY,diff().orElse(""));
return t("{head}\n\n{link}","head",head,"link",link()); return t("{head}\n\n{link}","head",head,"link",link());

View File

@@ -33,6 +33,7 @@
"by": "von", "by": "von",
"cancel": "abbrechen", "cancel": "abbrechen",
"Changes in project '{project}':\n\n{body}": "Änderungen an Projekt '{project}':\n\n{body}",
"Changes in task '{task}':\n\n{body}": "Änderungen an Aufgabe '{task}':\n\n{body}", "Changes in task '{task}':\n\n{body}": "Änderungen an Aufgabe '{task}':\n\n{body}",
"choose_type": "Typ wählen", "choose_type": "Typ wählen",
"click_to_edit": "Anklicken zum Bearbeiten", "click_to_edit": "Anklicken zum Bearbeiten",
@@ -285,6 +286,7 @@
"processing_code": "Code wird verarbeitet…", "processing_code": "Code wird verarbeitet…",
"project": "Projekt", "project": "Projekt",
"project ({id})": "Projekt ({id})", "project ({id})": "Projekt ({id})",
"Project '{project}' was edited": "Projekt '{project}' wurde bearbeitet",
"projects": "Projekte", "projects": "Projekte",
"properties": "Eigenschaften", "properties": "Eigenschaften",
"property": "Eigenschaft", "property": "Eigenschaft",
@@ -362,9 +364,12 @@
"tax_rate": "Steuersatz", "tax_rate": "Steuersatz",
"template": "Vorlage", "template": "Vorlage",
"theme": "Design", "theme": "Design",
"The project '{project}' has been created":"Das Projekt '{project}' wurde angelegt",
"The project '{project}' has been deleted": "Das Projekt '{project}' wurde gelöscht",
"The project '{project}' has been deleted by {user}": "Das Projekt '{project}' wurde von {user} gelöscht",
"The task '{task}' has been created": "Die Aufgabe '{task}' wurde angelegt", "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": "Die Aufgabe '{task}' wurde gelöscht",
"The task '{task}' has been deleted by {user}": "Die Aufgabe '{task}' wurde von {user} bearbeitet", "The task '{task}' has been deleted by {user}": "Die Aufgabe '{task}' wurde von {user} gelöscht",
"time ({id})": "Zeit ({id})", "time ({id})": "Zeit ({id})",
"times": "Zeiten", "times": "Zeiten",
"timetracking": "Zeiterfassung", "timetracking": "Zeiterfassung",
@@ -412,7 +417,9 @@
"wiki_pages": "Wiki-Seiten", "wiki_pages": "Wiki-Seiten",
"year": "Jahr", "year": "Jahr",
"You can view/edit this project at {base_url}/project/{id}/view": "Du kannst dieses Projekt unter {base_url}/project/{id}/view ansehen/bearbeiten.",
"You can view/edit this task at {base_url}/task/{id}/view": "Du kannst diese Aufgabe unter {base_url}/task/{id}/view ansehen/bearbeiten.", "You can view/edit this task at {base_url}/task/{id}/view": "Du kannst diese Aufgabe unter {base_url}/task/{id}/view ansehen/bearbeiten.",
"You have been added to the new project '{project}', created by {user}:\n\n{body}": "Du wurdest zum neuen Projekt '{project}', angelegt von {user}, hinzugefügt:\n\n{body}",
"Your token to create a new password" : "Ihr Token zum Erstellen eines neuen Passworts", "Your token to create a new password" : "Ihr Token zum Erstellen eines neuen Passworts",
"your_profile": "dein Profil" "your_profile": "dein Profil"
} }

View File

@@ -33,6 +33,7 @@
"by": "by", "by": "by",
"cancel": "cancel", "cancel": "cancel",
"Changes in project '{project}':\n\n{body}": "Changes in project '{project}':\n\n{body}",
"Changes in task '{task}':\n\n{body}": "Changes in task '{task}':\n\n{body}", "Changes in task '{task}':\n\n{body}": "Changes in task '{task}':\n\n{body}",
"choose_type": "choose type", "choose_type": "choose type",
"click_to_edit": "click to edit", "click_to_edit": "click to edit",
@@ -236,7 +237,7 @@
"my files": "my files", "my files": "my files",
"name": "Name", "name": "Name",
"'{name}' has been added to '{task}' by '{user}'.": "'{name}' has been added to '{task}' by '{user}'.", "'{name}' has been added to '{object}' by '{user}'.": "'{name}' has been added to '{object}' by '{user}'.",
"net_price": "net price", "net_price": "net price",
"net_sum": "net sum", "net_sum": "net sum",
"new_contact": "new contact", "new_contact": "new contact",
@@ -285,6 +286,7 @@
"processing_code": "processing code…", "processing_code": "processing code…",
"project": "project", "project": "project",
"project ({id})": "project ({id})", "project ({id})": "project ({id})",
"Project '{project}' was edited": "Project '{project}' was edited",
"projects": "projects", "projects": "projects",
"properties": "properties", "properties": "properties",
"property": "property", "property": "property",
@@ -362,6 +364,9 @@
"tax_rate": "tax rate", "tax_rate": "tax rate",
"template": "template", "template": "template",
"theme": "design", "theme": "design",
"The project '{project}' has been created":"The project '{project}' has been created",
"The project '{project}' has been deleted": "The project '{project}' has been deleted",
"The project '{project}' has been deleted by {user}": "The project '{project}' has been deleted by {user}",
"The task '{task}' has been created": "The task '{task}' has been created", "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": "The task '{task}' has been deleted",
"The task '{task}' has been deleted by {user}": "The task '{task}' has been deleted by {user}", "The task '{task}' has been deleted by {user}": "The task '{task}' has been deleted by {user}",
@@ -412,7 +417,9 @@
"wiki_pages": "wiki pages", "wiki_pages": "wiki pages",
"year": "year", "year": "year",
"You can view/edit this project at {base_url}/project/{id}/view": "You can view/edit this project at {base_url}/project/{id}/view",
"You can view/edit this task at {base_url}/task/{id}/view": "You can view/edit this task at {base_url}/task/{id}/view", "You can view/edit this task at {base_url}/task/{id}/view": "You can view/edit this task at {base_url}/task/{id}/view",
"You have been added to the new project '{project}', created by {user}:\n\n{body}": "You have been added to the new project '{project}', created by {user}:\n\n{body}",
"Your token to create a new password" : "Your token to create a new password", "Your token to create a new password" : "Your token to create a new password",
"your_profile": "your profile" "your_profile": "your profile"
} }