Release 2.0.5 (#3888)

- Fixed: mandatory fields / form validation for invoice template
- Added: Duration as calendar title replacer (open: running records)
- Fixed: HTML injection in Calendar
- Fixed: Doctrine Proxies are not initialized (leads to empty customer/project)
- Fixed: tag creation
- Fixed: validation errors do not need to be logged in prod
- Removed: Customer VCard download, as used library is outdated and not maintained
- Added: supporting translations domains in many new places (menu, help_text, page_setup, report, exporter, calendar)
This commit is contained in:
Kevin Papst
2023-03-05 03:08:43 +01:00
committed by GitHub
parent 3b93afabc8
commit 0cbf0053d2
77 changed files with 1306 additions and 874 deletions

View File

@@ -1153,6 +1153,18 @@
<source>status.canceled</source>
<target>Storniert</target>
</trans-unit>
<trans-unit id="Zngu6M9" resname="status.planned">
<source>status.planned</source>
<target>Geplant</target>
</trans-unit>
<trans-unit id="m8V2yFG" resname="status.progress">
<source>status.progress</source>
<target>In Bearbeitung</target>
</trans-unit>
<trans-unit id="HF70hZq" resname="status.closed">
<source>status.closed</source>
<target>Erledigt</target>
</trans-unit>
<trans-unit id="crrlEUA" resname="preview.skipped_rows">
<source>preview.skipped_rows</source>
<target>Überspringe Vorschau von %rows% weiteren Zeilen …</target>

View File

@@ -1153,6 +1153,18 @@
<source>status.canceled</source>
<target>Canceled</target>
</trans-unit>
<trans-unit id="Zngu6M9" resname="status.planned">
<source>status.planned</source>
<target>Planned</target>
</trans-unit>
<trans-unit id="m8V2yFG" resname="status.progress">
<source>status.progress</source>
<target>In progress</target>
</trans-unit>
<trans-unit id="HF70hZq" resname="status.closed">
<source>status.closed</source>
<target>Completed</target>
</trans-unit>
<trans-unit id="crrlEUA" resname="preview.skipped_rows">
<source>Skipped preview of %rows% more rows …</source>
<target state="translated">Skipped preview of %rows% more rows …</target>

View File

@@ -880,9 +880,18 @@
<source>status.paid</source>
<target state="translated">Maksettu</target>
</trans-unit>
<!--
Export
-->
<trans-unit id="Zngu6M9" resname="status.planned">
<source>status.planned</source>
<target>Suunniteltu</target>
</trans-unit>
<trans-unit id="m8V2yFG" resname="status.progress">
<source>status.progress</source>
<target>Kesken</target>
</trans-unit>
<trans-unit id="HF70hZq" resname="status.closed">
<source>status.closed</source>
<target>Suoritettu</target>
</trans-unit>
<trans-unit id="1GruCMx" resname="export">
<source>export</source>
<target state="translated">Vie</target>

View File

@@ -894,6 +894,18 @@
<source>status.new</source>
<target>Nouveau</target>
</trans-unit>
<trans-unit id="Zngu6M9" resname="status.planned">
<source>status.planned</source>
<target>Planifiée</target>
</trans-unit>
<trans-unit id="m8V2yFG" resname="status.progress">
<source>status.progress</source>
<target>En progrès</target>
</trans-unit>
<trans-unit id="HF70hZq" resname="status.closed">
<source>status.closed</source>
<target>Fermée</target>
</trans-unit>
<trans-unit id="BzwWNMS" resname="status">
<source>status</source>
<target>État</target>

122
translations/tasks.de.xlf Normal file
View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="de" datatype="plaintext" original="tasks.en.xlf">
<body>
<!-- Reports -->
<trans-unit id="tLV1hoP" resname="report_tasks_assigned">
<source>report_tasks_assigned</source>
<target>Meine Aufgaben</target>
</trans-unit>
<trans-unit id="8c0YWZm" resname="report_tasks_teams">
<source>report_tasks_teams</source>
<target>Team Aufgaben</target>
</trans-unit>
<!-- Actions -->
<trans-unit id="XjAwhoV" resname="task.start">
<source>task.start</source>
<target>Bearbeitung beginnen</target>
</trans-unit>
<trans-unit id="XD7TZh7" resname="task.stop">
<source>task.stop</source>
<target>Bearbeitung pausieren</target>
</trans-unit>
<trans-unit id="sG_9DvK" resname="task.assign">
<source>task.assign</source>
<target>Aufgabe mir zuweisen</target>
</trans-unit>
<trans-unit id="qLewfPg" resname="task.unassign">
<source>task.unassign</source>
<target>Aufgabe freigeben</target>
</trans-unit>
<trans-unit id="F1_rg1R" resname="task.reopen">
<source>task.reopen</source>
<target>Aufgabe erneut öffnen</target>
</trans-unit>
<trans-unit id="duBK63z" resname="task.close">
<source>task.close</source>
<target>Aufgabe abschließen</target>
</trans-unit>
<trans-unit id="t.y642H" resname="task.create">
<source>task.create</source>
<target>Aufgabe erstellen</target>
</trans-unit>
<!-- Application -->
<trans-unit id="s6YOYaU" resname="Tasks">
<source>Tasks</source>
<target>Aufgaben</target>
</trans-unit>
<trans-unit id="7f4C38O" resname="tasks.pending">
<source>tasks.pending</source>
<target>Geplante Aufgaben</target>
</trans-unit>
<trans-unit id="rLKr7Zu" resname="tasks.my">
<source>tasks.my</source>
<target>Meine Aufgaben</target>
</trans-unit>
<trans-unit id="bnCqljW" resname="task.delete">
<source>task.delete</source>
<target>Aufgabe löschen? Aufgezeichnete Zeiten werden nicht gelöscht!</target>
</trans-unit>
<trans-unit id="FhEb.Hn" resname="task.help.title">
<source>task.help.title</source>
<target>Eine kurze Beschreibung der Aufgabe</target>
</trans-unit>
<trans-unit id="WCaBimL" resname="task.help.end">
<source>task.help.end</source>
<target>Aufgabe muss bis zu diesem Datum abgeschlossen sein</target>
</trans-unit>
<trans-unit id="taZkyYV" resname="task.help.user">
<source>task.help.user</source>
<target>Diese Aufgabe einem Benutzer zuordnen</target>
</trans-unit>
<trans-unit id="QF_bQPv" resname="task.help.team">
<source>task.help.team</source>
<target>Diese Aufgabe einem Team zuordnen</target>
</trans-unit>
<trans-unit id="kMOottI" resname="task.widget_rows">
<source>task.widget_rows</source>
<target>Anzahl Aufgaben pro Seite im Dashboard</target>
</trans-unit>
<trans-unit id="tt.jOEH" resname="estimation">
<source>estimation</source>
<target>Zeitschätzung</target>
</trans-unit>
<trans-unit id="ZCSPtzc" resname="task.help.estimation">
<source>task.help.estimation</source>
<target>Geschätzte Dauer zur Erledigung der Aufgabe in hh:mm</target>
</trans-unit>
<trans-unit id="SzbkpWy" resname="task.help.description">
<source>task.help.description</source>
<target>Diese Beschreibung wird in jeden erfassten Zeiteintrag kopiert</target>
</trans-unit>
<trans-unit id="zJvuPBv" resname="task.help.tags">
<source>task.help.tags</source>
<target>Diese Schlagworte werden in jeden erfassten Zeiteintrag kopiert</target>
</trans-unit>
<trans-unit id="agwwK.J" resname="task_no_estimation">
<source>task_no_estimation</source>
<target>Ohne Zeitschätzung</target>
</trans-unit>
<trans-unit id="kgA8TVH" resname="task_with_estimation">
<source>task_with_estimation</source>
<target>Mit Zeitschätzung</target>
</trans-unit>
<trans-unit id="H.zMNfb" resname="task_started">
<source>task_started</source>
<target>Arbeit begonnen</target>
</trans-unit>
<trans-unit id="cu1.2JS" resname="task_not_started">
<source>task_not_started</source>
<target>Nicht gestartet</target>
</trans-unit>
<trans-unit id="ZwdUYYa" resname="task_overdue">
<source>task_overdue</source>
<target>Überfällig</target>
</trans-unit>
<trans-unit id="1ltxm9V" resname="task_todo">
<source>task_todo</source>
<target>Aufgabenbeschreibung</target>
</trans-unit>
</body>
</file>
</xliff>

122
translations/tasks.en.xlf Normal file
View File

@@ -0,0 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="en" datatype="plaintext" original="tasks.en.xlf">
<body>
<!-- Reports -->
<trans-unit id="tLV1hoP" resname="report_tasks_assigned">
<source>report_tasks_assigned</source>
<target>My tasks</target>
</trans-unit>
<trans-unit id="8c0YWZm" resname="report_tasks_teams">
<source>report_tasks_teams</source>
<target>Team tasks</target>
</trans-unit>
<!-- Actions -->
<trans-unit id="XjAwhoV" resname="task.start">
<source>task.start</source>
<target>Start processing</target>
</trans-unit>
<trans-unit id="XD7TZh7" resname="task.stop">
<source>task.stop</source>
<target>Pause processing</target>
</trans-unit>
<trans-unit id="sG_9DvK" resname="task.assign">
<source>task.assign</source>
<target>Assign to me</target>
</trans-unit>
<trans-unit id="qLewfPg" resname="task.unassign">
<source>task.unassign</source>
<target>Release task</target>
</trans-unit>
<trans-unit id="F1_rg1R" resname="task.reopen">
<source>task.reopen</source>
<target>Re-open task</target>
</trans-unit>
<trans-unit id="duBK63z" resname="task.close">
<source>task.close</source>
<target>Complete task</target>
</trans-unit>
<trans-unit id="t.y642H" resname="task.create">
<source>task.create</source>
<target>Create task</target>
</trans-unit>
<!-- Application -->
<trans-unit id="s6YOYaU" resname="Tasks">
<source>Tasks</source>
<target>Tasks</target>
</trans-unit>
<trans-unit id="7f4C38O" resname="tasks.pending">
<source>tasks.pending</source>
<target>Pending tasks</target>
</trans-unit>
<trans-unit id="rLKr7Zu" resname="tasks.my">
<source>tasks.my</source>
<target>My tasks</target>
</trans-unit>
<trans-unit id="bnCqljW" resname="task.delete">
<source>task.delete</source>
<target>Delete task? Time records will not be deleted!</target>
</trans-unit>
<trans-unit id="FhEb.Hn" resname="task.help.title">
<source>task.help.title</source>
<target>A short description of the task</target>
</trans-unit>
<trans-unit id="WCaBimL" resname="task.help.end">
<source>task.help.end</source>
<target>Task must be completed until this date</target>
</trans-unit>
<trans-unit id="taZkyYV" resname="task.help.user">
<source>task.help.user</source>
<target>Assign this task to a user</target>
</trans-unit>
<trans-unit id="QF_bQPv" resname="task.help.team">
<source>task.help.team</source>
<target>Assign this task to a team</target>
</trans-unit>
<trans-unit id="kMOottI" resname="task.widget_rows">
<source>task.widget_rows</source>
<target>Amount of tasks per page in dashboard widget</target>
</trans-unit>
<trans-unit id="tt.jOEH" resname="estimation">
<source>estimation</source>
<target>Time estimation</target>
</trans-unit>
<trans-unit id="ZCSPtzc" resname="task.help.estimation">
<source>task.help.estimation</source>
<target>Estimated time needed to complete the task in hh:mm</target>
</trans-unit>
<trans-unit id="SzbkpWy" resname="task.help.description">
<source>task.help.description</source>
<target>This description will be copied into each timesheet record</target>
</trans-unit>
<trans-unit id="zJvuPBv" resname="task.help.tags">
<source>task.help.tags</source>
<target>These tags will be copied into each timesheet record</target>
</trans-unit>
<trans-unit id="agwwK.J" resname="task_no_estimation">
<source>task_no_estimation</source>
<target>Without estimation</target>
</trans-unit>
<trans-unit id="kgA8TVH" resname="task_with_estimation">
<source>task_with_estimation</source>
<target>With estimation</target>
</trans-unit>
<trans-unit id="H.zMNfb" resname="task_started">
<source>task_started</source>
<target>Work started</target>
</trans-unit>
<trans-unit id="cu1.2JS" resname="task_not_started">
<source>task_not_started</source>
<target>Not started</target>
</trans-unit>
<trans-unit id="ZwdUYYa" resname="task_overdue">
<source>task_overdue</source>
<target>Overdue</target>
</trans-unit>
<trans-unit id="1ltxm9V" resname="task_todo">
<source>task_todo</source>
<target>Task description</target>
</trans-unit>
</body>
</file>
</xliff>

118
translations/tasks.fi.xlf Normal file
View File

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="fi" datatype="plaintext" original="tasks.en.xlf">
<body>
<!-- Reports -->
<trans-unit id="tLV1hoP" resname="report_tasks_assigned">
<source>report_tasks_assigned</source>
<target>Tehtäväni</target>
</trans-unit>
<trans-unit id="8c0YWZm" resname="report_tasks_teams">
<source>report_tasks_teams</source>
<target>Tiimin tehtävät</target>
</trans-unit>
<!-- Actions -->
<trans-unit id="XjAwhoV" resname="task.start">
<source>task.start</source>
<target>Aloita tehtävä</target>
</trans-unit>
<trans-unit id="XD7TZh7" resname="task.stop">
<source>task.stop</source>
<target>Keskeytä tehtävä</target>
</trans-unit>
<trans-unit id="sG_9DvK" resname="task.assign">
<source>task.assign</source>
<target>Aseta minulle</target>
</trans-unit>
<trans-unit id="qLewfPg" resname="task.unassign">
<source>task.unassign</source>
<target>Julkaise tehtävä</target>
</trans-unit>
<trans-unit id="F1_rg1R" resname="task.reopen">
<source>task.reopen</source>
<target>Avaa tehtävä uudelleen</target>
</trans-unit>
<trans-unit id="duBK63z" resname="task.close">
<source>task.close</source>
<target>Merkitse tehtävä suoritetuksi</target>
</trans-unit>
<trans-unit id="t.y642H" resname="task.create">
<source>task.create</source>
<target>Luo tehtävä</target>
</trans-unit>
<!-- Application -->
<trans-unit id="s6YOYaU" resname="Tasks">
<source>Tasks</source>
<target>Tehtävien</target>
</trans-unit>
<trans-unit id="7f4C38O" resname="tasks.pending">
<source>tasks.pending</source>
<target>Odottavat tehtävä</target>
</trans-unit>
<trans-unit id="rLKr7Zu" resname="tasks.my">
<source>tasks.my</source>
<target>Tehtäväni</target>
</trans-unit>
<trans-unit id="bnCqljW" resname="task.delete">
<source>task.delete</source>
<target>Poista tehtävä? Työaikoja ei poisteta!</target>
</trans-unit>
<trans-unit id="FhEb.Hn" resname="task.help.title">
<source>task.help.title</source>
<target>Lyhyt kuvaus tehtävälle</target>
</trans-unit>
<trans-unit id="WCaBimL" resname="task.help.end">
<source>task.help.end</source>
<target>Tehtävä tulee olla suoritettuna</target>
</trans-unit>
<trans-unit id="taZkyYV" resname="task.help.user">
<source>task.help.user</source>
<target>Aseta tehtävä käyttäjälle</target>
</trans-unit>
<trans-unit id="QF_bQPv" resname="task.help.team">
<source>task.help.team</source>
<target>Aseta tehtävä tiimille</target>
</trans-unit>
<trans-unit id="kMOottI" resname="task.widget_rows">
<source>task.widget_rows</source>
<target>Tehtävien määrä per sivu ohjauspaneelin widgetissä</target>
</trans-unit>
<trans-unit id="tt.jOEH" resname="estimation">
<source>estimation</source>
<target>Aika-arvio</target>
</trans-unit>
<trans-unit id="ZCSPtzc" resname="task.help.estimation">
<source>task.help.estimation</source>
<target>Arvioitu aika tehtävän suorittamiseen muodossa hh:mm</target>
</trans-unit>
<trans-unit id="SzbkpWy" resname="task.help.description">
<source>task.help.description</source>
<target>Tämä kuvaus kopioidaan jokaiseen työaikakirjaukseen</target>
</trans-unit>
<trans-unit id="zJvuPBv" resname="task.help.tags">
<source>task.help.tags</source>
<target>Nämä tunnisteet kopioidaan jokaiseen työaikakirjaukseen</target>
</trans-unit>
<trans-unit id="agwwK.J" resname="task_no_estimation">
<source>task_no_estimation</source>
<target>Ilman aika-arviota</target>
</trans-unit>
<trans-unit id="kgA8TVH" resname="task_with_estimation">
<source>task_with_estimation</source>
<target>Aika-arviolla</target>
</trans-unit>
<trans-unit id="H.zMNfb" resname="task_started">
<source>task_started</source>
<target>Työ aloitettu</target>
</trans-unit>
<trans-unit id="cu1.2JS" resname="task_not_started">
<source>task_not_started</source>
<target>Ei aloitettu</target>
</trans-unit>
<trans-unit id="ZwdUYYa" resname="task_overdue">
<source>task_overdue</source>
<target>Myöhässä</target>
</trans-unit>
</body>
</file>
</xliff>

126
translations/tasks.fr.xlf Normal file
View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" target-language="fr" datatype="plaintext" original="tasks.en.xlf">
<body>
<!-- Reports -->
<trans-unit id="tLV1hoP" resname="report_tasks_assigned">
<source>report_tasks_assigned</source>
<target>Mes tâches</target>
</trans-unit>
<trans-unit id="8c0YWZm" resname="report_tasks_teams">
<source>report_tasks_teams</source>
<target>Tâches de l'équipe</target>
</trans-unit>
<!-- Actions -->
<trans-unit id="XjAwhoV" resname="task.start">
<source>task.start</source>
<target>Commencer le travail</target>
</trans-unit>
<trans-unit id="XD7TZh7" resname="task.stop">
<source>task.stop</source>
<target>Mettre le travail en pause</target>
</trans-unit>
<trans-unit id="sG_9DvK" resname="task.assign">
<source>task.assign</source>
<target>M'assigner la tâche</target>
</trans-unit>
<trans-unit id="qLewfPg" resname="task.unassign">
<source>task.unassign</source>
<target>Libérer la tâche</target>
</trans-unit>
<trans-unit id="F1_rg1R" resname="task.reopen">
<source>task.reopen</source>
<target>Réouvrir la tâche</target>
</trans-unit>
<trans-unit id="duBK63z" resname="task.close">
<source>task.close</source>
<target>Clore la tâche</target>
</trans-unit>
<trans-unit id="t.y642H" resname="task.create">
<source>task.create</source>
<target>Créer une tâche</target>
</trans-unit>
<!-- Application -->
<trans-unit id="s6YOYaU" resname="Tasks">
<source>Tasks</source>
<target>Tâches</target>
</trans-unit>
<trans-unit id="7f4C38O" resname="tasks.pending">
<source>tasks.pending</source>
<target>tâche plainifiée</target>
</trans-unit>
<trans-unit id="rLKr7Zu" resname="tasks.my">
<source>tasks.my</source>
<target>Mes tâches</target>
</trans-unit>
<trans-unit id="bnCqljW" resname="task.delete">
<source>task.delete</source>
<target>Effacer la tâche? Les temps assignés ne seront pas supprimés!</target>
</trans-unit>
<trans-unit id="ODW2.AZ" resname="quick_filters">
<source>quick_filters</source>
<target>Choix rapide</target>
</trans-unit>
<trans-unit id="FhEb.Hn" resname="task.help.title">
<source>task.help.title</source>
<target>Une description courte de la tâche</target>
</trans-unit>
<trans-unit id="WCaBimL" resname="task.help.end">
<source>task.help.end</source>
<target>La tâche doit être terminée jusqu'à cette date</target>
</trans-unit>
<trans-unit id="taZkyYV" resname="task.help.user">
<source>task.help.user</source>
<target>Assigner cette tâche à un utilisateur</target>
</trans-unit>
<trans-unit id="QF_bQPv" resname="task.help.team">
<source>task.help.team</source>
<target>Assigner cette tâche à une équipe</target>
</trans-unit>
<trans-unit id="kMOottI" resname="task.widget_rows">
<source>task.widget_rows</source>
<target>Nombre de tâches par page dans le Dashboard</target>
</trans-unit>
<trans-unit id="tt.jOEH" resname="estimation">
<source>estimation</source>
<target>Estimation du temps</target>
</trans-unit>
<trans-unit id="ZCSPtzc" resname="task.help.estimation">
<source>task.help.estimation</source>
<target>Temps estimé pour terminer la tâche en hh:mm</target>
</trans-unit>
<trans-unit id="SzbkpWy" resname="task.help.description">
<source>task.help.description</source>
<target>Cette description sera copiée dans chaque fiche de temps</target>
</trans-unit>
<trans-unit id="zJvuPBv" resname="task.help.tags">
<source>task.help.tags</source>
<target>Ce tag sera copié dans chaque fiche de temps</target>
</trans-unit>
<trans-unit id="agwwK.J" resname="task_no_estimation">
<source>task_no_estimation</source>
<target>Sans estimation de temps</target>
</trans-unit>
<trans-unit id="kgA8TVH" resname="task_with_estimation">
<source>task_with_estimation</source>
<target>Avec estimation de temps</target>
</trans-unit>
<trans-unit id="H.zMNfb" resname="task_started">
<source>task_started</source>
<target>Commencer le travail</target>
</trans-unit>
<trans-unit id="cu1.2JS" resname="task_not_started">
<source>task_not_started</source>
<target>Non commencé</target>
</trans-unit>
<trans-unit id="ZwdUYYa" resname="task_overdue">
<source>task_overdue</source>
<target>Périmée</target>
</trans-unit>
<trans-unit id="1ltxm9V" resname="task_todo">
<source>task_todo</source>
<target>Description de la tâche</target>
</trans-unit>
</body>
</file>
</xliff>