868d6abb7 2025 -> 2026
eeaafe0df Adresses: image-handling: minimizing images approx. 100k with JPEG, recalculation of images and previews for admins.
9534401d5 WIP: AddressImportUploadPage
4650706f7 WIP: vcards import
bf33c20a9 DevelopmentMainForRelease.main (i18n stuff fixed)
868d6abb7
2025 -> 2026868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-application/src/main/resources/i18nKeys.json b/projectforge-application/src/main/resources/i18nKeys.json
index 7971f47f0..3f74731ea 100644
--- a/projectforge-application/src/main/resources/i18nKeys.json
+++ b/projectforge-application/src/main/resources/i18nKeys.json
@@ -204,7 +204,7 @@
{"i18nKey":"access.violation.userNotMemberOf","bundleName":"I18nResources","translation":"Operation only allowed for users of group(s) ''{0}'' (perhaps other groups are also allowed).","translationDE":"Operation ist nur für Benutzer:innen der Gruppe(n) ''{0}'' erlaubt (ggf. auch andere Gruppen möglich).","usedInClasses":["org.projectforge.framework.access.AccessCheckerImpl"],"usedInFiles":[]},
{"i18nKey":"access.write","bundleName":"I18nResources","translation":"Write access","translationDE":"Schreibzugriff","usedInClasses":["org.projectforge.web.gantt.GanttChartEditForm"],"usedInFiles":[]},
{"i18nKey":"add","bundleName":"I18nResources","translation":"Add","translationDE":"Hinzufügen","usedInClasses":["org.projectforge.plugins.merlin.rest.MerlinPagesRest","org.projectforge.rest.MenuCustomizerRest","org.projectforge.rest.core.AbstractPagesRest","org.projectforge.ui.UIButton","org.projectforge.web.fibu.AbstractRechnungEditForm","org.projectforge.web.fibu.AuftragEditForm","org.projectforge.web.fibu.RechnungCostEditTablePanel","org.projectforge.web.humanresources.HRPlanningEditForm"],"usedInFiles":[]},
- {"i18nKey":"address","bundleName":"I18nResources","translation":"Address","translationDE":"Adresse","usedInClasses":["org.projectforge.business.address.AddressImageDao","org.projectforge.business.address.PersonalAddressDao","org.projectforge.framework.persistence.DaoConst","org.projectforge.menu.builder.MenuItemDefId","org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.registry.Registry","org.projectforge.rest.SendTextMessagePageRest","org.projectforge.rest.calendar.FullCalendarEvent"],"usedInFiles":[]},
+ {"i18nKey":"address","bundleName":"I18nResources","translation":"Address","translationDE":"Adresse","usedInClasses":["org.projectforge.business.address.AddressImageDao","org.projectforge.business.address.PersonalAddressDao","org.projectforge.framework.persistence.DaoConst","org.projectforge.menu.builder.MenuItemDefId","org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.registry.Registry","org.projectforge.rest.AddressViewPageRest","org.projectforge.rest.SendTextMessagePageRest","org.projectforge.rest.calendar.FullCalendarEvent"],"usedInFiles":[]},
{"i18nKey":"address.accessException.userHasNoRightForAddressbook","bundleName":"I18nResources","translation":"User has no right for the current address and its addressbook","translationDE":"Benutzer:in hat keine Berechtigung für die ausgewählte Adresse und dessen Addressbuch","usedInClasses":["org.projectforge.business.address.PersonalAddressDao"],"usedInFiles":[]},
{"i18nKey":"address.accessException.userIsNotOwnerOfPersonalAddress","bundleName":"I18nResources","translation":"User is not owner of personal address book.","translationDE":"Benutzer:in ist nicht Besitzer:in der persönlichen Adresse.","usedInClasses":["org.projectforge.business.address.PersonalAddressDao"],"usedInFiles":[]},
{"i18nKey":"address.addressStatus","bundleName":"I18nResources","translation":"Address status","translationDE":"Adressstatus","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.rest.AddressMultiSelectedPageRest","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
@@ -488,12 +488,12 @@
{"i18nKey":"attachment.testDecryption.failed","bundleName":"I18nResources","translation":"Decryption failed (wrong password or corrupted zip file)?","translationDE":"Entschlüsselung fehlgeschlagen (falsches Passwort oder ungültiges ZIP-Archiv?)","usedInClasses":["org.projectforge.rest.AttachmentsServicesRest"],"usedInFiles":[]},
{"i18nKey":"attachment.testDecryption.successful","bundleName":"I18nResources","translation":"Decryption was successful.","translationDE":"Entschlüsselung erfolgreich.","usedInClasses":["org.projectforge.rest.AttachmentsServicesRest"],"usedInFiles":[]},
{"i18nKey":"attachment.upload.title","bundleName":"I18nResources","translation":"You may upload multiple files here by dropping in or clicking.","translationDE":"Dateien durch Klick auswählen oder Dateien hier hinziehen.","usedInClasses":["org.projectforge.ui.UIAttachmentList"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/input/DynamicAttachmentList.jsx"]},
- {"i18nKey":"attachment.zip.encrypted","bundleName":"I18nResources","translation":"Encrypted","translationDE":"verschlüsselt","usedInClasses":["org.projectforge.jcr.ZipMode"],"usedInFiles":[]},
- {"i18nKey":"attachment.zip.encryptedStandard","bundleName":"I18nResources","translation":"Encrypted (ZIP standard)","translationDE":"verschlüsselt (ZIP-Standard)","usedInClasses":["org.projectforge.jcr.ZipMode"],"usedInFiles":[]},
+ {"i18nKey":"attachment.zip.encrypted","bundleName":"I18nResources","translation":"Encrypted","translationDE":"verschlüsselt","usedInClasses":["org.projectforge.common.ZipMode"],"usedInFiles":[]},
+ {"i18nKey":"attachment.zip.encryptedStandard","bundleName":"I18nResources","translation":"Encrypted (ZIP standard)","translationDE":"verschlüsselt (ZIP-Standard)","usedInClasses":["org.projectforge.common.ZipMode"],"usedInFiles":[]},
{"i18nKey":"attachment.zip.encryptionAlgorithm","bundleName":"I18nResources","translation":"Encryption algorithm","translationDE":"Verschlüsselungsalgorithmus","usedInClasses":["org.projectforge.framework.jcr.Attachment"],"usedInFiles":[]},
- {"i18nKey":"attachment.zip.encrytpedAes128","bundleName":"I18nResources","translation":"Encrypted (AES-128)","translationDE":"verschlüsselt (AES-128)","usedInClasses":["org.projectforge.jcr.ZipMode"],"usedInFiles":[]},
- {"i18nKey":"attachment.zip.encrytpedAes256","bundleName":"I18nResources","translation":"Encrypted (AES-256, very secure)","translationDE":"verschlüsselt (AES-256, hohe Sicherheit)","usedInClasses":["org.projectforge.jcr.ZipMode"],"usedInFiles":[]},
- {"i18nKey":"attachment.zip.standard","bundleName":"I18nResources","translation":"No encryption","translationDE":"ohne Verschlüsselung","usedInClasses":["org.projectforge.jcr.ZipMode"],"usedInFiles":[]},
+ {"i18nKey":"attachment.zip.encrytpedAes128","bundleName":"I18nResources","translation":"Encrypted (AES-128)","translationDE":"verschlüsselt (AES-128)","usedInClasses":["org.projectforge.common.ZipMode"],"usedInFiles":[]},
+ {"i18nKey":"attachment.zip.encrytpedAes256","bundleName":"I18nResources","translation":"Encrypted (AES-256, very secure)","translationDE":"verschlüsselt (AES-256, hohe Sicherheit)","usedInClasses":["org.projectforge.common.ZipMode"],"usedInFiles":[]},
+ {"i18nKey":"attachment.zip.standard","bundleName":"I18nResources","translation":"No encryption","translationDE":"ohne Verschlüsselung","usedInClasses":["org.projectforge.common.ZipMode"],"usedInFiles":[]},
{"i18nKey":"attachments","bundleName":"I18nResources","translation":"Attachments","translationDE":"Anhänge","usedInClasses":["org.projectforge.framework.jcr.AttachmentsService","org.projectforge.plugins.datatransfer.DataTransferNotificationMailService","org.projectforge.plugins.merlin.rest.MerlinAttachmentsActionListener","org.projectforge.ui.UIAgGridColumnDef","org.projectforge.ui.UIAttachmentList","org.projectforge.web.fibu.AuftragEditForm"],"usedInFiles":[]},
{"i18nKey":"attachments.short","bundleName":"I18nResources","translation":"Att.","translationDE":"Anh.","usedInClasses":["org.projectforge.web.fibu.AuftragListPage"],"usedInFiles":[]},
{"i18nKey":"attr.validSince","bundleName":"I18nResources","translation":"Valid since","translationDE":"Gültig ab","usedInClasses":["org.projectforge.business.fibu.CurrencyConversionRateDO","org.projectforge.business.fibu.EmployeeValidSinceAttrDO","org.projectforge.rest.fibu.CurrencyPairPagesRest"],"usedInFiles":[]},
@@ -793,7 +793,7 @@
{"i18nKey":"duration.seconds.one","bundleName":"I18nResources","translation":"1 second","translationDE":"1 Sekunde","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"dvelop.title","bundleName":"I18nResources","translation":"D-velop","translationDE":"D-velop","usedInClasses":["org.projectforge.rest.dvelop.DvelopPageRest"],"usedInFiles":[]},
{"i18nKey":"edit","bundleName":"I18nResources","translation":"Edit","translationDE":"Bearbeiten","usedInClasses":["org.projectforge.model.rest.RestPaths","org.projectforge.plugins.ihk.IHKForm","org.projectforge.plugins.merlin.rest.MerlinPagesRest","org.projectforge.rest.AddressPagesRest","org.projectforge.web.fibu.AbstractRechnungEditForm","org.projectforge.web.fibu.AuftragEditForm","org.projectforge.web.wicket.flowlayout.IconType"],"usedInFiles":[]},
- {"i18nKey":"email","bundleName":"I18nResources","translation":"E-mail","translationDE":"E-Mail","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.business.address.AddressExport","org.projectforge.business.address.AddressTextImportService","org.projectforge.business.ldap.PFUserDOConverter","org.projectforge.framework.persistence.user.entities.PFUserDO","org.projectforge.plugins.merlin.rest.MerlinExecutionPageRest","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.UserPagesRest","org.projectforge.web.admin.SetupForm","org.projectforge.web.fibu.AuftragEditForm","org.projectforge.web.user.UserSelectPanel"],"usedInFiles":[]},
+ {"i18nKey":"email","bundleName":"I18nResources","translation":"E-mail","translationDE":"E-Mail","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.business.address.AddressExport","org.projectforge.business.address.AddressTextImportService","org.projectforge.business.ldap.PFUserDOConverter","org.projectforge.framework.persistence.user.entities.PFUserDO","org.projectforge.plugins.merlin.rest.MerlinExecutionPageRest","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.UserPagesRest","org.projectforge.rest.sipgate.SipgateContactService","org.projectforge.web.admin.SetupForm","org.projectforge.web.fibu.AuftragEditForm","org.projectforge.web.user.UserSelectPanel"],"usedInFiles":[]},
{"i18nKey":"emptyInBrackets","bundleName":"I18nResources","translation":"<empty>","translationDE":"<leer>","usedInClasses":["org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest"],"usedInFiles":[]},
{"i18nKey":"ended","bundleName":"I18nResources","translation":"ended","translationDE":"beendet","usedInClasses":["org.projectforge.business.fibu.KundeStatus","org.projectforge.business.fibu.ProjektFilter","org.projectforge.business.fibu.ProjektStatus","org.projectforge.business.fibu.kost.KostFilter","org.projectforge.business.fibu.kost.KostentraegerStatus","org.projectforge.web.fibu.Kost1ListForm","org.projectforge.web.fibu.Kost2ListForm","org.projectforge.web.fibu.ProjektListForm"],"usedInFiles":[]},
{"i18nKey":"error","bundleName":"I18nResources","translation":"An error occurs: {0}","translationDE":"Ein Fehler trat auf: {0}","usedInClasses":["org.projectforge.business.fibu.ForecastExportContext","org.projectforge.business.fibu.SEPATransferGenerator","org.projectforge.common.html.CssClass","org.projectforge.common.logging.LogLevel","org.projectforge.framework.utils.ResultHolderStatus","org.projectforge.plugins.ihk.IHKExporter","org.projectforge.rest.AddressServicesRest","org.projectforge.rest.address.importer.AddressImportUploadPageRest","org.projectforge.rest.importer.AbstractImportPageRest","org.projectforge.web.fibu.AuftragListPage","org.projectforge.web.fibu.EingangsrechnungEditPage","org.projectforge.web.registry.WebRegistry"],"usedInFiles":[]},
@@ -1400,6 +1400,7 @@
{"i18nKey":"gender.notApplicable","bundleName":"I18nResources","translation":"not applicable","translationDE":"nicht zutreffend","usedInClasses":["org.projectforge.business.fibu.IsoGender"],"usedInFiles":[]},
{"i18nKey":"gender.notKnown","bundleName":"I18nResources","translation":"not known","translationDE":"unbekannt","usedInClasses":["org.projectforge.business.fibu.IsoGender"],"usedInFiles":[]},
{"i18nKey":"gender.unknown","bundleName":"I18nResources","translation":"unknown","translationDE":"unbekannt","usedInClasses":["org.projectforge.framework.persistence.user.entities.Gender"],"usedInFiles":[]},
+ {"i18nKey":"goreact.menu.classics","bundleName":"I18nResources","translation":"Go to classic UI","translationDE":"Zeige klassische Ansicht","usedInClasses":["org.projectforge.rest.core.AbstractPagesRest"],"usedInFiles":[]},
{"i18nKey":"group","bundleName":"I18nResources","translation":"Group","translationDE":"Gruppe","usedInClasses":["org.projectforge.business.address.AddressTextParser","org.projectforge.framework.access.AccessDao","org.projectforge.framework.access.AccessType","org.projectforge.framework.access.GroupTaskAccessDO","org.projectforge.framework.persistence.DaoConst","org.projectforge.menu.builder.MenuItemDefId","org.projectforge.plugins.todo.ToDoDO","org.projectforge.plugins.todo.ToDoEditForm","org.projectforge.plugins.todo.ToDoListPage","org.projectforge.plugins.todo.rest.ToDoPagesRest","org.projectforge.registry.Registry","org.projectforge.rest.task.TaskWizardPageRest","org.projectforge.ui.AutoCompletion","org.projectforge.web.access.AccessEditForm","org.projectforge.web.access.AccessListForm","org.projectforge.web.access.AccessListPage","org.projectforge.web.admin.TaskWizardForm","org.projectforge.web.user.GroupEditPage","org.projectforge.web.user.GroupListPage"],"usedInFiles":[]},
{"i18nKey":"group.assignedUsers","bundleName":"I18nResources","translation":"Assigned users","translationDE":"Assoziierte Benutzer:in","usedInClasses":["org.projectforge.framework.persistence.user.entities.GroupDO","org.projectforge.rest.GroupPagesRest","org.projectforge.web.user.GroupEditForm","org.projectforge.web.user.GroupListPage"],"usedInFiles":[]},
{"i18nKey":"group.error.groupnameAlreadyExists","bundleName":"I18nResources","translation":"Group name already exists.","translationDE":"Gruppenname ist bereits vergeben.","usedInClasses":["org.projectforge.rest.GroupPagesRest","org.projectforge.web.user.GroupEditForm"],"usedInFiles":[]},
@@ -1889,7 +1890,7 @@
{"i18nKey":"panel.error.groupNotFound","bundleName":"I18nResources","translation":"Group doesn't exist.","translationDE":"Gruppe nicht existent.","usedInClasses":["org.projectforge.web.user.NewGroupSelectPanel"],"usedInFiles":[]},
{"i18nKey":"panel.error.projectNotFound","bundleName":"I18nResources","translation":"Project doesn't exist.","translationDE":"Projekt nicht existent.","usedInClasses":["org.projectforge.web.fibu.NewProjektSelectPanel"],"usedInFiles":[]},
{"i18nKey":"parse","bundleName":"I18nResources","translation":"Parse","translationDE":"Einlesen","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
- {"i18nKey":"password","bundleName":"I18nResources","translation":"Password","translationDE":"Passwort","usedInClasses":["org.projectforge.framework.jcr.Attachment","org.projectforge.framework.persistence.jpa.PersistenceCallsStatsBuilder","org.projectforge.jcr.ZipUtils","org.projectforge.plugins.datatransfer.restPublic.DataTransferPublicPageRest","org.projectforge.rest.AttachmentPageRest","org.projectforge.rest.CardDAVInfoPageRest","org.projectforge.rest.UserPagesRest","org.projectforge.rest.calendar.CalendarSubscriptionInfoPageRest","org.projectforge.rest.my2fa.My2FAServicesRest","org.projectforge.rest.pub.LoginPageRest","org.projectforge.rest.pub.SetupPageRest","org.projectforge.web.admin.SetupForm"],"usedInFiles":["./projectforge-wicket/src/main/java/org/projectforge/web/wicket/flowlayout/PasswordPanel.html"]},
+ {"i18nKey":"password","bundleName":"I18nResources","translation":"Password","translationDE":"Passwort","usedInClasses":["org.projectforge.common.ZipUtils","org.projectforge.framework.jcr.Attachment","org.projectforge.framework.persistence.jpa.PersistenceCallsStatsBuilder","org.projectforge.plugins.datatransfer.restPublic.DataTransferPublicPageRest","org.projectforge.rest.AttachmentPageRest","org.projectforge.rest.CardDAVInfoPageRest","org.projectforge.rest.UserPagesRest","org.projectforge.rest.calendar.CalendarSubscriptionInfoPageRest","org.projectforge.rest.my2fa.My2FAServicesRest","org.projectforge.rest.pub.LoginPageRest","org.projectforge.rest.pub.SetupPageRest","org.projectforge.web.admin.SetupForm"],"usedInFiles":["./projectforge-wicket/src/main/java/org/projectforge/web/wicket/flowlayout/PasswordPanel.html"]},
{"i18nKey":"password.forgotten.link","bundleName":"I18nResources","translation":"Forgotten credentials?","translationDE":"Zugangsdaten vergessen?","usedInClasses":["org.projectforge.rest.pub.LoginPageRest"],"usedInFiles":[]},
{"i18nKey":"password.forgotten.mail.subject","bundleName":"I18nResources","translation":"Password reset ProjectForge®","translationDE":"Passwortreset ProjectForge®","usedInClasses":["org.projectforge.framework.persistence.user.service.PasswordResetService"],"usedInFiles":[]},
{"i18nKey":"password.forgotten.mailSentTo","bundleName":"I18nResources","translation":"Mail with reset link mailed to ''{0}''. Please check also Your spam folder and check, if Your username or e-mail is correct.","translationDE":"E-Mail mit dem Passwortrücksetzen-Link wurde gesendet an ''{0}''. Bitte im Spam-Ordner schauen bzw. überprüfen, ob der Benutzer:innenname bzw. E-Mail korrekt ist.","usedInClasses":["org.projectforge.rest.pub.PasswordForgottenPageRest"],"usedInFiles":[]},
@@ -2641,7 +2642,7 @@
{"i18nKey":"tutorial.unknown","bundleName":"I18nResources","translation":"Can't process this tutorial request.","translationDE":"Die Tutorialanfrage kann nicht bearbeitet werden.","usedInClasses":[],"usedInFiles":[]}, eeaafe0df
Adresses: image-handling: minimizing images approx. 100k with JPEG, recalculation of images and previews for admins.eeaafe0dfecbe75db5cd982832be2968fae17074
diff --git a/projectforge-application/src/main/resources/i18nKeys.json b/projectforge-application/src/main/resources/i18nKeys.json
index f13459513..7971f47f0 100644
--- a/projectforge-application/src/main/resources/i18nKeys.json
+++ b/projectforge-application/src/main/resources/i18nKeys.json
@@ -230,7 +230,7 @@
{"i18nKey":"address.book.vCardSingleExport","bundleName":"I18nResources","translation":"Export vCard","translationDE":"Export vCard","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
{"i18nKey":"address.book.vCardsImport.clickToEdit","bundleName":"I18nResources","translation":"Click on a row to edit the address and compare fields.","translationDE":"Klicken Sie auf eine Zeile, um die Adresse zu bearbeiten und Felder zu vergleichen.","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"address.book.vCardsImport.dataLoaded","bundleName":"I18nResources","translation":"VCF data has been loaded. Select the fields you want to apply.","translationDE":"VCF-Daten wurden geladen. Wählen Sie die Felder aus, die Sie übernehmen möchten.","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
- {"i18nKey":"address.book.vCardsImport.description","bundleName":"I18nResources","translation":"Here, vCards (.vcf file format) can be imported into the address book. Existing addresses are not duplicated, but simply supplemented (e.g., with phone numbers or email addresses).","translationDE":"Hier können vCards (Dateiformat .vcf) in das Adressbuch importiert werden. Bereits vorhandene Adressen werden nicht dupliziert, sondern nur ergänzt (z. B. um Telefonnummern oder E-Mail-Adressen).","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
+ {"i18nKey":"address.book.vCardsImport.description","bundleName":"I18nResources","translation":"Here, vCards (.vcf file format) can be imported into the address book. Existing addresses are not duplicated, but simply supplemented (e.g., with phone numbers or email addresses).\n\nAddresses can then be compared and imported manually, even field by field.","translationDE":"Hier können vCards (Dateiformat .vcf) in das Adressbuch importiert werden. Bereits vorhandene Adressen werden nicht dupliziert, sondern nur ergänzt (z. B. um Telefonnummern oder E-Mail-Adressen).\n\nAdressen können anschließend abgeglichen und manuell, auch feldweise, importiert werden.","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"address.book.vCardsImport.dropHint","bundleName":"I18nResources","translation":"Drop VCF file here","translationDE":"VCF-Datei hier ablegen","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
{"i18nKey":"address.book.vCardsImport.dropInfo","bundleName":"I18nResources","translation":"Matching address will be selected automatically","translationDE":"Passende Adresse wird automatisch ausgewählt","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
{"i18nKey":"address.book.vCardsImport.dropLabel","bundleName":"I18nResources","translation":"Or drop VCF file","translationDE":"Oder VCF-Datei ablegen","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
@@ -290,7 +290,7 @@
{"i18nKey":"address.heading.privateAddress","bundleName":"I18nResources","translation":"Private address","translationDE":"Privatadresse","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest","org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"address.heading.privateAddress2","bundleName":"I18nResources","translation":"Private address 2","translationDE":"Privatadresse 2","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.heading.privateContact","bundleName":"I18nResources","translation":"Private contact","translationDE":"Privater Kontakt","usedInClasses":[],"usedInFiles":[]},
- {"i18nKey":"address.image","bundleName":"I18nResources","translation":"Image","translationDE":"Bild","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
+ {"i18nKey":"address.image","bundleName":"I18nResources","translation":"Image","translationDE":"Bild","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"address.image.upload.error","bundleName":"I18nResources","translation":"Couldn''t upload image. Supported formats are png, gif, and jpeg for now with maximum size of {0}.","translationDE":"Bild kann nicht hochgeladen werden. Es werden die Bildformate PNG, GIF und JPEG mit einer Maximalgröße von {0} unterstützt.","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/CustomizedAddressImage.jsx"]},
{"i18nKey":"address.list.legend","bundleName":"I18nResources","translation":"* <span style=\"color:blue;\">Blue lines</span> mark your favorites.","translationDE":"* <span style=\"color:blue;\">Blaue Zeilen</span> markieren deine Favoriten.","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
{"i18nKey":"address.mailing","bundleName":"I18nResources","translation":"Mailing","translationDE":"Mailing","usedInClasses":["org.projectforge.business.address.AddressExport"],"usedInFiles":[]},
@@ -1299,7 +1299,7 @@
{"i18nKey":"file.upload.deleteSelected.confirm","bundleName":"I18nResources","translation":"Do you really want to delete all selected files?","translationDE":"Sollen jetzt wirklich alle ausgewählten Dateien unwiderruflich gelöscht werden?","usedInClasses":["org.projectforge.ui.UIAttachmentList"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/input/DynamicAttachmentList.jsx"]},
{"i18nKey":"file.upload.downloadSelected","bundleName":"I18nResources","translation":"Download selected","translationDE":"Ausgewählte Dateien herunterladen","usedInClasses":["org.projectforge.ui.UIAttachmentList"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/input/DynamicAttachmentList.jsx"]},
{"i18nKey":"file.upload.downloadTemplate","bundleName":"I18nResources","translation":"Download template as an example.","translationDE":"Schablone als Beispiel herunterladen.","usedInClasses":["org.projectforge.rest.importer.AbstractImportUploadPageRest"],"usedInFiles":[]},
- {"i18nKey":"file.upload.dropArea","bundleName":"I18nResources","translation":"Select a file or drop it here.","translationDE":"Datei auswählen oder hier hinziehen.","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest","org.projectforge.rest.importer.AbstractImportUploadPageRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/CustomizedAddressImage.jsx"]},
+ {"i18nKey":"file.upload.dropArea","bundleName":"I18nResources","translation":"Select a file or drop it here.","translationDE":"Datei auswählen oder hier hinziehen.","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.address.importer.AddressImportUploadPageRest","org.projectforge.rest.importer.AbstractImportUploadPageRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/CustomizedAddressImage.jsx"]},
{"i18nKey":"file.upload.error","bundleName":"I18nResources","translation":"Error while uploading the file.","translationDE":"Fehler beim Upload der Datei.","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest","org.projectforge.rest.importer.AbstractImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"file.upload.error.fileAlreadyExists","bundleName":"I18nResources","translation":"File ''{0}'' already exists.","translationDE":"Die Datei ''{0}'' existiert bereits.","usedInClasses":["org.projectforge.framework.jcr.AttachmentsService","org.projectforge.ui.UIAttachmentList"],"usedInFiles":[]},
{"i18nKey":"file.upload.error.maxSizeExceeded","bundleName":"I18nResources","translation":"Can''t upload file ''{0}'', maximum configured file size is exceeded: {1}>{2}.","translationDE":"Datei ''{0}'' kann nicht hochgeladen werden. Die konfigurierte Maximalgröße wurde überschritten: {1}>{2}.","usedInClasses":["org.projectforge.common.MaxFileSizeExceeded"],"usedInFiles":[]},
@@ -1470,7 +1470,7 @@
{"i18nKey":"hr.planning.weekend","bundleName":"I18nResources","translation":"Week-end","translationDE":"Wochenende","usedInClasses":["org.projectforge.business.humanresources.HRPlanningEntryDO","org.projectforge.web.humanresources.HRPlanningListPage"],"usedInFiles":[]},
{"i18nKey":"hr.planning.workdays","bundleName":"I18nResources","translation":"Workdays","translationDE":"Arbeitstage","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"ibanvalidator.wronglength.de","bundleName":"I18nResources","translation":"The field ''${label}'' starts with ''DE'', but a german IBAN must have 22 characters.","translationDE":"Das Feld ''${label}'' beginnt mit ''DE''. Eine deutsche IBAN muss jedoch aus 22 Zeichen bestehen.","usedInClasses":["org.projectforge.web.common.IbanValidator"],"usedInFiles":[]},
- {"i18nKey":"id","bundleName":"I18nResources","translation":"Id","translationDE":"Id","usedInClasses":["org.apache.batik.util.XMLConstants","org.projectforge.business.address.AddressExport","org.projectforge.business.address.PersonalAddressDao","org.projectforge.business.book.BookDao","org.projectforge.business.fibu.AuftragDao","org.projectforge.business.fibu.AuftragsCacheService","org.projectforge.business.fibu.CurrencyConversionServiceSupport","org.projectforge.business.fibu.EingangsrechnungsPositionDO","org.projectforge.business.fibu.EmployeeSalaryDao","org.projectforge.business.fibu.EmployeeServiceSupport","org.projectforge.business.fibu.InvoiceService","org.projectforge.business.fibu.ProjektDO","org.projectforge.business.fibu.RechnungDao","org.projectforge.business.fibu.RechnungService","org.projectforge.business.fibu.RechnungsPositionDO","org.projectforge.business.fibu.kost.Kost1DO","org.projectforge.business.fibu.kost.Kost1Dao","org.projectforge.business.fibu.kost.Kost2ArtDao","org.projectforge.business.fibu.kost.Kost2DO","org.projectforge.business.fibu.kost.Kost2Dao","org.projectforge.business.fibu.kost.KostZuweisungDO","org.projectforge.business.gantt.GanttChart","org.projectforge.business.gantt.GanttChartDao","org.projectforge.business.gantt.GanttTaskImpl","org.projectforge.business.humanresources.HRPlanningDao","org.projectforge.business.humanresources.HRPlanningEntryDO","org.projectforge.business.orga.ContractDao","org.projectforge.business.orga.VisitorbookDO","org.projectforge.business.task.TaskDao","org.projectforge.business.task.TaskNode","org.projectforge.business.task.formatter.WicketTaskFormatter","org.projectforge.business.timesheet.TimesheetDao","org.projectforge.business.timesheet.TimesheetExport","org.projectforge.business.user.GroupDao","org.projectforge.business.user.UserDao","org.projectforge.business.user.UserPrefDao","org.projectforge.business.vacation.model.VacationDO","org.projectforge.excel.ExcelUtils","org.projectforge.framework.ToStringUtil","org.projectforge.framework.access.AccessDao","org.projectforge.framework.access.AccessEntryDO","org.projectforge.framework.access.GroupTaskAccessDO","org.projectforge.framework.jobs.AbstractJob","org.projectforge.framework.json.HibernateProxySerializer","org.projectforge.framework.json.IdOnlySerializer","org.projectforge.framework.persistence.api.BaseDao","org.projectforge.framework.persistence.candh.CandHMaster","org.projectforge.framework.persistence.database.DatabaseService","org.projectforge.framework.persistence.database.ReindexerRegistry","org.projectforge.framework.persistence.database.ReindexerStrategy","org.projectforge.framework.persistence.entities.DefaultBaseDO","org.projectforge.framework.persistence.history.HistoryService","org.projectforge.framework.persistence.jpa.PfPersistenceContext","org.projectforge.framework.persistence.search.HibernateSearchDependentObjectsReindexer","org.projectforge.framework.persistence.user.entities.UserPrefEntryDO","org.projectforge.framework.persistence.user.entities.UserRightDO","org.projectforge.framework.persistence.xstream.ProxyIdRefMarshaller","org.projectforge.menu.builder.FavoritesMenuReaderWriter","org.projectforge.plugins.banking.BankingServicesRest","org.projectforge.plugins.datatransfer.DataTransferAreaDO","org.projectforge.plugins.datatransfer.rest.DataTransferAuditPageRest","org.projectforge.plugins.datatransfer.rest.DataTransferPageRest","org.projectforge.plugins.datatransfer.restPublic.DataTransferPublicAttachmentPageRest","org.projectforge.plugins.datatransfer.restPublic.DataTransferPublicPageRest","org.projectforge.plugins.datatransfer.restPublic.DataTransferPublicServicesRest","org.projectforge.plugins.ihk.IHKExporter","org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.plugins.memo.MemoDO","org.projectforge.plugins.merlin.MerlinTemplateDO","org.projectforge.plugins.merlin.rest.MerlinExecutionPageRest","org.projectforge.plugins.merlin.rest.MerlinVariablePageRest","org.projectforge.plugins.skillmatrix.SkillEntryDO","org.projectforge.rest.AddressImageServicesRest","org.projectforge.rest.AddressServicesRest","org.projectforge.rest.AddressViewPageRest","org.projectforge.rest.AttachmentPageRest","org.projectforge.rest.AttachmentsServicesRest","org.projectforge.rest.HistoryEntryUserCommentModalRest","org.projectforge.rest.TimesheetFavoritesRest","org.projectforge.rest.TimesheetMultiSelectedPageRest","org.projectforge.rest.TimesheetPagesRest","org.projectforge.rest.VacationAccountPageRest","org.projectforge.rest.admin.LogViewerPageRest","org.projectforge.rest.calendar.CalendarFilterServicesRest","org.projectforge.rest.calendar.CalendarSettingsPageRest","org.projectforge.rest.calendar.TeamEventPagesRest","org.projectforge.rest.config.IdObjectDeserializer","org.projectforge.rest.config.JacksonConfiguration","org.projectforge.rest.core.AbstractPagesRest","org.projectforge.rest.dvelop.DvelopClient","org.projectforge.rest.fibu.CurrencyConversionRatePageRest","org.projectforge.rest.fibu.CurrencyPairPagesRest","org.projectforge.rest.fibu.EmployeePagesRest","org.projectforge.rest.fibu.EmployeeValidSinceAttrPageRest","org.projectforge.rest.fibu.kost.Kost2ArtPagesRest","org.projectforge.rest.importer.AbstractImportPageRest","org.projectforge.rest.json.UISelectTypeSerializer","org.projectforge.rest.my2fa.My2FAServicesRest","org.projectforge.rest.my2fa.My2FASetupPageRest","org.projectforge.rest.my2fa.WebAuthnEntryPageRest","org.projectforge.rest.orga.VisitorbookEntryPageRest","org.projectforge.rest.orga.VisitorbookPagesRest","org.projectforge.rest.poll.PollPageRest","org.projectforge.rest.scripting.MyScriptExecutePageRest","org.projectforge.rest.scripting.ScriptExecutePageRest","org.projectforge.rest.scripting.ScriptPagesRest","org.projectforge.rest.task.TaskFavoritesRest","org.projectforge.rest.task.TaskServicesRest","org.projectforge.security.dto.WebAuthnPublicKeyCredentialCreationOptions","org.projectforge.security.webauthn.WebAuthnEntryDao","org.projectforge.ui.UISelect","org.projectforge.web.OrphanedLinkFilter","org.projectforge.web.fibu.EingangsrechnungEditPage","org.projectforge.web.fibu.Kost2ArtEditForm","org.projectforge.web.fibu.Kost2ArtListPage","org.projectforge.web.fibu.RechnungEditPage","org.projectforge.web.gantt.GanttTreeTableNode","org.projectforge.web.wicket.AbstractEditPage","org.projectforge.web.wicket.components.TabPanel"],"usedInFiles":["./projectforge-rest/src/main/kotlin/org/projectforge/rest/json/Deserializers.kt"]},
+ {"i18nKey":"id","bundleName":"I18nResources","translation":"Id","translationDE":"Id","usedInClasses":["org.apache.batik.util.XMLConstants","org.projectforge.business.address.AddressExport","org.projectforge.business.address.AddressImageDao","org.projectforge.business.address.PersonalAddressDao","org.projectforge.business.book.BookDao","org.projectforge.business.fibu.AuftragDao","org.projectforge.business.fibu.AuftragsCacheService","org.projectforge.business.fibu.CurrencyConversionServiceSupport","org.projectforge.business.fibu.EingangsrechnungsPositionDO","org.projectforge.business.fibu.EmployeeSalaryDao","org.projectforge.business.fibu.EmployeeServiceSupport","org.projectforge.business.fibu.InvoiceService","org.projectforge.business.fibu.ProjektDO","org.projectforge.business.fibu.RechnungDao","org.projectforge.business.fibu.RechnungService","org.projectforge.business.fibu.RechnungsPositionDO","org.projectforge.business.fibu.kost.Kost1DO","org.projectforge.business.fibu.kost.Kost1Dao","org.projectforge.business.fibu.kost.Kost2ArtDao","org.projectforge.business.fibu.kost.Kost2DO","org.projectforge.business.fibu.kost.Kost2Dao","org.projectforge.business.fibu.kost.KostZuweisungDO","org.projectforge.business.gantt.GanttChart","org.projectforge.business.gantt.GanttChartDao","org.projectforge.business.gantt.GanttTaskImpl","org.projectforge.business.humanresources.HRPlanningDao","org.projectforge.business.humanresources.HRPlanningEntryDO","org.projectforge.business.orga.ContractDao","org.projectforge.business.orga.VisitorbookDO","org.projectforge.business.task.TaskDao","org.projectforge.business.task.TaskNode","org.projectforge.business.task.formatter.WicketTaskFormatter","org.projectforge.business.timesheet.TimesheetDao","org.projectforge.business.timesheet.TimesheetExport","org.projectforge.business.user.GroupDao","org.projectforge.business.user.UserDao","org.projectforge.business.user.UserPrefDao","org.projectforge.business.vacation.model.VacationDO","org.projectforge.excel.ExcelUtils","org.projectforge.framework.ToStringUtil","org.projectforge.framework.access.AccessDao","org.projectforge.framework.access.AccessEntryDO","org.projectforge.framework.access.GroupTaskAccessDO","org.projectforge.framework.jobs.AbstractJob","org.projectforge.framework.json.HibernateProxySerializer","org.projectforge.framework.json.IdOnlySerializer","org.projectforge.framework.persistence.api.BaseDao","org.projectforge.framework.persistence.candh.CandHMaster","org.projectforge.framework.persistence.database.DatabaseService","org.projectforge.framework.persistence.database.ReindexerRegistry","org.projectforge.framework.persistence.database.ReindexerStrategy","org.projectforge.framework.persistence.entities.DefaultBaseDO","org.projectforge.framework.persistence.history.HistoryService","org.projectforge.framework.persistence.jpa.PfPersistenceContext","org.projectforge.framework.persistence.search.HibernateSearchDependentObjectsReindexer","org.projectforge.framework.persistence.user.entities.UserPrefEntryDO","org.projectforge.framework.persistence.user.entities.UserRightDO","org.projectforge.framework.persistence.xstream.ProxyIdRefMarshaller","org.projectforge.menu.builder.FavoritesMenuReaderWriter","org.projectforge.plugins.banking.BankingServicesRest","org.projectforge.plugins.datatransfer.DataTransferAreaDO","org.projectforge.plugins.datatransfer.rest.DataTransferAuditPageRest","org.projectforge.plugins.datatransfer.rest.DataTransferPageRest","org.projectforge.plugins.datatransfer.restPublic.DataTransferPublicAttachmentPageRest","org.projectforge.plugins.datatransfer.restPublic.DataTransferPublicPageRest","org.projectforge.plugins.datatransfer.restPublic.DataTransferPublicServicesRest","org.projectforge.plugins.ihk.IHKExporter","org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.plugins.memo.MemoDO","org.projectforge.plugins.merlin.MerlinTemplateDO","org.projectforge.plugins.merlin.rest.MerlinExecutionPageRest","org.projectforge.plugins.merlin.rest.MerlinVariablePageRest","org.projectforge.plugins.skillmatrix.SkillEntryDO","org.projectforge.rest.AddressImageServicesRest","org.projectforge.rest.AddressServicesRest","org.projectforge.rest.AddressViewPageRest","org.projectforge.rest.AttachmentPageRest","org.projectforge.rest.AttachmentsServicesRest","org.projectforge.rest.HistoryEntryUserCommentModalRest","org.projectforge.rest.TimesheetFavoritesRest","org.projectforge.rest.TimesheetMultiSelectedPageRest","org.projectforge.rest.TimesheetPagesRest","org.projectforge.rest.VacationAccountPageRest","org.projectforge.rest.admin.LogViewerPageRest","org.projectforge.rest.calendar.CalendarFilterServicesRest","org.projectforge.rest.calendar.CalendarSettingsPageRest","org.projectforge.rest.calendar.TeamEventPagesRest","org.projectforge.rest.config.IdObjectDeserializer","org.projectforge.rest.config.JacksonConfiguration","org.projectforge.rest.core.AbstractPagesRest","org.projectforge.rest.dvelop.DvelopClient","org.projectforge.rest.fibu.CurrencyConversionRatePageRest","org.projectforge.rest.fibu.CurrencyPairPagesRest","org.projectforge.rest.fibu.EmployeePagesRest","org.projectforge.rest.fibu.EmployeeValidSinceAttrPageRest","org.projectforge.rest.fibu.kost.Kost2ArtPagesRest","org.projectforge.rest.importer.AbstractImportPageRest","org.projectforge.rest.json.UISelectTypeSerializer","org.projectforge.rest.my2fa.My2FAServicesRest","org.projectforge.rest.my2fa.My2FASetupPageRest","org.projectforge.rest.my2fa.WebAuthnEntryPageRest","org.projectforge.rest.orga.VisitorbookEntryPageRest","org.projectforge.rest.orga.VisitorbookPagesRest","org.projectforge.rest.poll.PollPageRest","org.projectforge.rest.scripting.MyScriptExecutePageRest","org.projectforge.rest.scripting.ScriptExecutePageRest","org.projectforge.rest.scripting.ScriptPagesRest","org.projectforge.rest.task.TaskFavoritesRest","org.projectforge.rest.task.TaskServicesRest","org.projectforge.security.dto.WebAuthnPublicKeyCredentialCreationOptions","org.projectforge.security.webauthn.WebAuthnEntryDao","org.projectforge.ui.UISelect","org.projectforge.web.OrphanedLinkFilter","org.projectforge.web.fibu.EingangsrechnungEditPage","org.projectforge.web.fibu.Kost2ArtEditForm","org.projectforge.web.fibu.Kost2ArtListPage","org.projectforge.web.fibu.RechnungEditPage","org.projectforge.web.gantt.GanttTreeTableNode","org.projectforge.web.wicket.AbstractEditPage","org.projectforge.web.wicket.components.TabPanel"],"usedInFiles":["./projectforge-rest/src/main/kotlin/org/projectforge/rest/json/Deserializers.kt"]},
{"i18nKey":"imageFile","bundleName":"I18nResources","translation":"Image","translationDE":"Bild","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"import","bundleName":"I18nResources","translation":"Import","translationDE":"Importieren","usedInClasses":["org.projectforge.business.scripting.KotlinScriptExecutor","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.MyMenuPageRest","org.projectforge.rest.importer.AbstractImportPageRest","org.projectforge.web.admin.SetupImportForm","org.projectforge.web.fibu.EingangsrechnungListPage","org.projectforge.web.fibu.ReportObjectivesForm","org.projectforge.web.teamcal.admin.TeamCalEditPage"],"usedInFiles":["./projectforge-wicket/src/main/java/org/projectforge/web/admin/SetupPage.html"]},
{"i18nKey":"import.confirmMessage","bundleName":"I18nResources","translation":"Would you like to import the selected entries now? This operation cannot be undone.","translationDE":"Sollen nun alle ausgewählten Einträge importiert werden? Diese Aktion kann nicht rückgängig gemacht werden.","usedInClasses":["org.projectforge.rest.importer.AbstractImportPageRest"],"usedInFiles":[]}, 9534401d5
WIP: AddressImportUploadPage9534401d5f5e73f249af9984d17f083ca6e93707
diff --git a/projectforge-application/src/main/resources/i18nKeys.json b/projectforge-application/src/main/resources/i18nKeys.json
index 3d5db6c8c..f13459513 100644
--- a/projectforge-application/src/main/resources/i18nKeys.json
+++ b/projectforge-application/src/main/resources/i18nKeys.json
@@ -240,7 +240,7 @@
{"i18nKey":"address.book.vCardsImport.title","bundleName":"I18nResources","translation":"Import of vcards (.vcf)","translationDE":"Importieren von vCards (.vcf)","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"address.book.vCardsImport.uploading","bundleName":"I18nResources","translation":"Parsing VCF file...","translationDE":"VCF-Datei wird geparst...","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
{"i18nKey":"address.book.vCardsImport.wrongFileType","bundleName":"I18nResources","translation":"Wrong file type. Please use \".vcf\" only.","translationDE":"Falsches Dateiformat. Bitte nur \".vcf\"-Format verwenden.","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressServicesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
- {"i18nKey":"address.business","bundleName":"I18nResources","translation":"business","translationDE":"geschäftlich","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressFieldSelector.tsx"]},
+ {"i18nKey":"address.business","bundleName":"I18nResources","translation":"business","translationDE":"geschäftlich","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest","org.projectforge.rest.address.importer.AddressImportDTO"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressFieldSelector.tsx"]},
{"i18nKey":"address.cardDAV.addressbook.description","bundleName":"I18nResources","translation":"These are the contacts of ProjectForge, you have marked as favorites.","translationDE":"Das sind Deine Kontakte, die du in ProjectForge als Favoriten markiert hast.","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.cardDAV.addressbook.displayName","bundleName":"I18nResources","translation":"{0}''s addressbook","translationDE":"{0}''s Adressbuch","usedInClasses":["org.projectforge.carddav.CardDavUtils"],"usedInFiles":[]},
{"i18nKey":"address.cardDAV.infopage.description","bundleName":"I18nResources","translation":"You may use the CardDAV service of ProjectForge by creating a CardDAV account in your address book software (such as Apple's address book).","translationDE":"Der CardDAV-Service von ProjectForge kann genutzt werden, indem ein CardDAV-Account in der Clientsoftware wie z. B. im Apple Adressbuch eingerichtet wird.","usedInClasses":["org.projectforge.rest.CardDAVInfoPageRest"],"usedInFiles":[]},
@@ -264,7 +264,7 @@
{"i18nKey":"address.directCall.noPhoneDefined","bundleName":"I18nResources","translation":"No phone defined (please choose or define under My account).","translationDE":"Es ist kein Telefon ausgewählt (bitte auswählen bzw. unter Mein Zugang festlegen).","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.directCall.number.tooltip","bundleName":"I18nResources","translation":"Supports the input of first-, last names and organizations.","translationDE":"Anstelle einer Rufnummer können auch Vor- und Nachnamen sowie Firmennamen eingegeben werden oder aus der Adressliste eine Nummer angeklickt werden.","usedInClasses":["org.projectforge.web.address.PhoneCallForm"],"usedInFiles":[]},
{"i18nKey":"address.division","bundleName":"I18nResources","translation":"Division","translationDE":"Bereich","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
- {"i18nKey":"address.emails","bundleName":"I18nResources","translation":"e-mails","translationDE":"E-Mails","usedInClasses":["org.projectforge.rest.GroupPagesRest","org.projectforge.web.user.GroupEditForm"],"usedInFiles":[]},
+ {"i18nKey":"address.emails","bundleName":"I18nResources","translation":"e-mails","translationDE":"E-Mails","usedInClasses":["org.projectforge.rest.GroupPagesRest","org.projectforge.rest.address.importer.AddressImportUploadPageRest","org.projectforge.web.user.GroupEditForm"],"usedInFiles":[]},
{"i18nKey":"address.error.phone.invalidFormat","bundleName":"I18nResources","translation":"Valid characters for phone numbers are '+' as first char, '-', '/' and spaces. The leading country code is mandatory, e.g.: +49 561 316793-0","translationDE":"Es sind nur Zahlen sowie '+' am Anfang, '-', '/' und Leerzeichen erlaubt. Die führende Ländervorwahl ist zwingend. Beispiel: +49 561 316793-0","usedInClasses":["org.projectforge.web.common.PhoneNumberValidator"],"usedInFiles":[]},
{"i18nKey":"address.favorites.info","bundleName":"I18nResources","translation":"You may synchronize your favorite addresses via CardDAV with your address book app or export them as Excel etc.","translationDE":"Favoriten können über CardDAV mit einem Adressbuch synchronisiert werden oder als Excel exportiert werden.","usedInClasses":["org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
{"i18nKey":"address.filter.doublets","bundleName":"I18nResources","translation":"doublets","translationDE":"Dupletten","usedInClasses":["org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
@@ -282,12 +282,12 @@
{"i18nKey":"address.form.mister","bundleName":"I18nResources","translation":"Mister","translationDE":"Herr","usedInClasses":["org.projectforge.business.address.FormOfAddress"],"usedInFiles":[]},
{"i18nKey":"address.form.unknown","bundleName":"I18nResources","translation":"unknown","translationDE":"unbekannt","usedInClasses":["org.projectforge.business.address.FormOfAddress"],"usedInFiles":[]},
{"i18nKey":"address.formerly","bundleName":"I18nResources","translation":"formerly","translationDE":"geb.","usedInClasses":["org.projectforge.business.address.AddressDO"],"usedInFiles":[]},
- {"i18nKey":"address.heading.businessAddress","bundleName":"I18nResources","translation":"Business address","translationDE":"Geschäftsadresse","usedInClasses":["org.projectforge.rest.AddressMultiSelectedPageRest","org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
+ {"i18nKey":"address.heading.businessAddress","bundleName":"I18nResources","translation":"Business address","translationDE":"Geschäftsadresse","usedInClasses":["org.projectforge.rest.AddressMultiSelectedPageRest","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"address.heading.businessContact","bundleName":"I18nResources","translation":"Business contact","translationDE":"Geschäftlicher Kontakt","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.heading.personalData","bundleName":"I18nResources","translation":"Personal data","translationDE":"Persönliche Daten","usedInClasses":[],"usedInFiles":[]},
- {"i18nKey":"address.heading.postalAddress","bundleName":"I18nResources","translation":"Postal address","translationDE":"Briefanschrift","usedInClasses":["org.projectforge.rest.AddressMultiSelectedPageRest","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
+ {"i18nKey":"address.heading.postalAddress","bundleName":"I18nResources","translation":"Postal address","translationDE":"Briefanschrift","usedInClasses":["org.projectforge.rest.AddressMultiSelectedPageRest","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest","org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"address.heading.postalAddress2","bundleName":"I18nResources","translation":"Postal address 2","translationDE":"Briefanschrift 2","usedInClasses":[],"usedInFiles":[]},
- {"i18nKey":"address.heading.privateAddress","bundleName":"I18nResources","translation":"Private address","translationDE":"Privatadresse","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
+ {"i18nKey":"address.heading.privateAddress","bundleName":"I18nResources","translation":"Private address","translationDE":"Privatadresse","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest","org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"address.heading.privateAddress2","bundleName":"I18nResources","translation":"Private address 2","translationDE":"Privatadresse 2","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.heading.privateContact","bundleName":"I18nResources","translation":"Private contact","translationDE":"Privater Kontakt","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.image","bundleName":"I18nResources","translation":"Image","translationDE":"Bild","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
@@ -330,16 +330,21 @@
{"i18nKey":"address.phoneCall.result.callingError","bundleName":"I18nResources","translation":"Calling error.","translationDE":"Fehler beim Wählen.","usedInClasses":["org.projectforge.web.address.PhoneCallPage"],"usedInFiles":[]},
{"i18nKey":"address.phoneCall.result.successful","bundleName":"I18nResources","translation":"Call successful.","translationDE":"Erfolgreich gewählt.","usedInClasses":["org.projectforge.web.address.PhoneCallPage"],"usedInFiles":[]},
{"i18nKey":"address.phoneCall.title","bundleName":"I18nResources","translation":"Direct calling telephone system","translationDE":"Direktwahl Telefonanlage","usedInClasses":["org.projectforge.web.address.PhoneCallPage"],"usedInFiles":[]},
- {"i18nKey":"address.phoneNumbers","bundleName":"I18nResources","translation":"Phone numbers","translationDE":"Telefonnummern","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
+ {"i18nKey":"address.phoneNumbers","bundleName":"I18nResources","translation":"Phone numbers","translationDE":"Telefonnummern","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest","org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"address.phoneType.business","bundleName":"I18nResources","translation":"Business phone","translationDE":"Telefon geschäftlich","usedInClasses":["org.projectforge.business.address.PhoneType","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
+ {"i18nKey":"address.phoneType.business.short","bundleName":"I18nResources","translation":"business","translationDE":"geschäftlich","usedInClasses":["org.projectforge.rest.address.importer.AddressImportDTO"],"usedInFiles":[]},
{"i18nKey":"address.phoneType.fax","bundleName":"I18nResources","translation":"Fax","translationDE":"Fax","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.business.address.PhoneType","org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
+ {"i18nKey":"address.phoneType.fax.short","bundleName":"I18nResources","translation":"Fax","translationDE":"Fax","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.phoneType.mobile","bundleName":"I18nResources","translation":"Cellular phone","translationDE":"Telefon mobil","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.business.address.PhoneType","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest","org.projectforge.web.address.PhoneCallPage"],"usedInFiles":[]},
+ {"i18nKey":"address.phoneType.mobile.short","bundleName":"I18nResources","translation":"cellular","translationDE":"mobil","usedInClasses":["org.projectforge.rest.address.importer.AddressImportDTO"],"usedInFiles":[]},
{"i18nKey":"address.phoneType.private","bundleName":"I18nResources","translation":"Private phone","translationDE":"Telefon privat","usedInClasses":["org.projectforge.business.address.AddressExport","org.projectforge.business.address.PhoneType","org.projectforge.rest.AddressViewPageRest","org.projectforge.web.address.PhoneCallPage"],"usedInFiles":[]},
+ {"i18nKey":"address.phoneType.private.short","bundleName":"I18nResources","translation":"private","translationDE":"privat","usedInClasses":["org.projectforge.rest.address.importer.AddressImportDTO"],"usedInFiles":[]},
{"i18nKey":"address.phoneType.privateMobile","bundleName":"I18nResources","translation":"Private cellular","translationDE":"Privat mobil","usedInClasses":["org.projectforge.business.address.AddressExport","org.projectforge.business.address.PhoneType"],"usedInFiles":[]},
+ {"i18nKey":"address.phoneType.privateMobile.short","bundleName":"I18nResources","translation":"private cellular","translationDE":"privat mobil","usedInClasses":["org.projectforge.rest.address.importer.AddressImportDTO"],"usedInFiles":[]},
{"i18nKey":"address.positionText","bundleName":"I18nResources","translation":"Position","translationDE":"Position","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.business.fibu.EmployeeDO","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
{"i18nKey":"address.postal","bundleName":"I18nResources","translation":"postal","translationDE":"postalisch","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressFieldSelector.tsx"]},
{"i18nKey":"address.postalAddressText","bundleName":"I18nResources","translation":"Postal address","translationDE":"Postalische Adresse","usedInClasses":["org.projectforge.business.address.AddressExport"],"usedInFiles":[]},
- {"i18nKey":"address.private","bundleName":"I18nResources","translation":"private","translationDE":"privat","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressFieldSelector.tsx"]},
+ {"i18nKey":"address.private","bundleName":"I18nResources","translation":"private","translationDE":"privat","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest","org.projectforge.rest.address.importer.AddressImportDTO"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressFieldSelector.tsx"]}, 4650706f7
WIP: vcards import4650706f74d58fc1fd76d1d1995e49e686183ab8
diff --git a/projectforge-application/src/main/resources/i18nKeys.json b/projectforge-application/src/main/resources/i18nKeys.json
index 14df59e8d..3d5db6c8c 100644
--- a/projectforge-application/src/main/resources/i18nKeys.json
+++ b/projectforge-application/src/main/resources/i18nKeys.json
@@ -274,7 +274,7 @@
{"i18nKey":"address.filter.myEntries.tooltip","bundleName":"I18nResources","translation":"My entries that I have edited at some point.","translationDE":"Meine Einträge, die ich irgendwann mal bearbeitet habe.","usedInClasses":["org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
{"i18nKey":"address.filter.myFavorites","bundleName":"I18nResources","translation":"my favorites","translationDE":"meine Favoriten","usedInClasses":["org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
{"i18nKey":"address.fingerprint","bundleName":"I18nResources","translation":"Finger print","translationDE":"Fingerprint","usedInClasses":["org.projectforge.business.address.AddressDO"],"usedInFiles":[]},
- {"i18nKey":"address.form","bundleName":"I18nResources","translation":"Form","translationDE":"Anrede","usedInClasses":["org.projectforge.business.address.AddressDO"],"usedInFiles":[]},
+ {"i18nKey":"address.form","bundleName":"I18nResources","translation":"Form","translationDE":"Anrede","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
{"i18nKey":"address.form.company","bundleName":"I18nResources","translation":"Company","translationDE":"Firma","usedInClasses":["org.projectforge.business.address.FormOfAddress"],"usedInFiles":[]},
{"i18nKey":"address.form.error.toFewFields","bundleName":"I18nResources","translation":"Name, first name, or organization is required.","translationDE":"Es muss mindestens der Name, Vorname oder die Firma angegeben sein.","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.task.TaskPagesRest"],"usedInFiles":[]},
{"i18nKey":"address.form.misc","bundleName":"I18nResources","translation":"Misc","translationDE":"Sonstiges","usedInClasses":["org.projectforge.business.address.FormOfAddress"],"usedInFiles":[]},
@@ -685,15 +685,16 @@
{"i18nKey":"common.import.action.commit","bundleName":"I18nResources","translation":"Commit","translationDE":"Übernehmen","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
{"i18nKey":"common.import.action.commit.error.notReconciled","bundleName":"I18nResources","translation":"The entries to commit aren't compared with database entries yet, please reconcile the entries first.","translationDE":"Die Datensätze, die übernommen werden sollen, sind noch nicht abgeglichen, bitte erst abgleichen.","usedInClasses":["org.projectforge.business.fibu.datev.DatevImportService","org.projectforge.business.fibu.datev.EmployeeSalaryImportService"],"usedInFiles":[]},
{"i18nKey":"common.import.action.commit.tooltip","bundleName":"I18nResources","translation":"All selected database will be written to the database.","translationDE":"Hiermit werden alle selektierten Datensätze in die Datenbank übernommen.","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
- {"i18nKey":"common.import.action.deselectAll","bundleName":"I18nResources","translation":"Deselect all","translationDE":"Alle abwählen","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
+ {"i18nKey":"common.import.action.deselectAll","bundleName":"I18nResources","translation":"Deselect all","translationDE":"Alle abwählen","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
{"i18nKey":"common.import.action.downloadValidatedExcel","bundleName":"I18nResources","translation":"validated Excel file","translationDE":"validatierte Exceldatei","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
{"i18nKey":"common.import.action.reconcile","bundleName":"I18nResources","translation":"Reconcile","translationDE":"Abgleichen","usedInClasses":["org.projectforge.rest.importer.AbstractImportPageRest","org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
{"i18nKey":"common.import.action.select100","bundleName":"I18nResources","translation":"Select 100 entries","translationDE":"Die ersten 100 Einträge auswählen","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
{"i18nKey":"common.import.action.select500","bundleName":"I18nResources","translation":"Select 500 entries","translationDE":"Die ersten 500 Einträge auswählen","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
- {"i18nKey":"common.import.action.selectAll","bundleName":"I18nResources","translation":"Select all","translationDE":"Alle auswählen","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
+ {"i18nKey":"common.import.action.selectAll","bundleName":"I18nResources","translation":"Select all","translationDE":"Alle auswählen","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
{"i18nKey":"common.import.action.showErrorLog","bundleName":"I18nResources","translation":"Show error log","translationDE":"Fehlerprotokoll anzeigen","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
{"i18nKey":"common.import.action.showErrorSummary","bundleName":"I18nResources","translation":"Show error summary","translationDE":"Fehlerzusammenfassung anzeigen","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
{"i18nKey":"common.import.action.showInfoLog","bundleName":"I18nResources","translation":"Show info log","translationDE":"Infoprotokoll anzeigen","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
+ {"i18nKey":"common.import.additionalChanges","bundleName":"I18nResources","translation":"Additional changes","translationDE":"Zusätzliche Änderungen","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
{"i18nKey":"common.import.clearStorage","bundleName":"I18nResources","translation":"Clear","translationDE":"Leeren","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportForm"],"usedInFiles":[]},
{"i18nKey":"common.import.commitQuestionDialog.heading","bundleName":"I18nResources","translation":"Commit all selected entries?","translationDE":"Alle ausgewählten Einträge übernehmen?","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
{"i18nKey":"common.import.commitQuestionDialog.question","bundleName":"I18nResources","translation":"Do you really want to commit all selected entries? No undo-functionality is provided.","translationDE":"Sollen wirklich alle ausgewählten Einträge übernommen werden? Diese Funktion kann nicht wieder rückgängig gemacht werden.","usedInClasses":["org.projectforge.web.core.importstorage.AbstractImportStoragePanel"],"usedInFiles":[]},
@@ -1394,7 +1395,7 @@
{"i18nKey":"gender.notApplicable","bundleName":"I18nResources","translation":"not applicable","translationDE":"nicht zutreffend","usedInClasses":["org.projectforge.business.fibu.IsoGender"],"usedInFiles":[]},
{"i18nKey":"gender.notKnown","bundleName":"I18nResources","translation":"not known","translationDE":"unbekannt","usedInClasses":["org.projectforge.business.fibu.IsoGender"],"usedInFiles":[]},
{"i18nKey":"gender.unknown","bundleName":"I18nResources","translation":"unknown","translationDE":"unbekannt","usedInClasses":["org.projectforge.framework.persistence.user.entities.Gender"],"usedInFiles":[]},
- {"i18nKey":"group","bundleName":"I18nResources","translation":"Group","translationDE":"Gruppe","usedInClasses":["org.projectforge.framework.access.AccessDao","org.projectforge.framework.access.AccessType","org.projectforge.framework.access.GroupTaskAccessDO","org.projectforge.framework.persistence.DaoConst","org.projectforge.menu.builder.MenuItemDefId","org.projectforge.plugins.todo.ToDoDO","org.projectforge.plugins.todo.ToDoEditForm","org.projectforge.plugins.todo.ToDoListPage","org.projectforge.plugins.todo.rest.ToDoPagesRest","org.projectforge.registry.Registry","org.projectforge.rest.task.TaskWizardPageRest","org.projectforge.ui.AutoCompletion","org.projectforge.web.access.AccessEditForm","org.projectforge.web.access.AccessListForm","org.projectforge.web.access.AccessListPage","org.projectforge.web.admin.TaskWizardForm","org.projectforge.web.user.GroupEditPage","org.projectforge.web.user.GroupListPage"],"usedInFiles":[]},
+ {"i18nKey":"group","bundleName":"I18nResources","translation":"Group","translationDE":"Gruppe","usedInClasses":["org.projectforge.business.address.AddressTextParser","org.projectforge.framework.access.AccessDao","org.projectforge.framework.access.AccessType","org.projectforge.framework.access.GroupTaskAccessDO","org.projectforge.framework.persistence.DaoConst","org.projectforge.menu.builder.MenuItemDefId","org.projectforge.plugins.todo.ToDoDO","org.projectforge.plugins.todo.ToDoEditForm","org.projectforge.plugins.todo.ToDoListPage","org.projectforge.plugins.todo.rest.ToDoPagesRest","org.projectforge.registry.Registry","org.projectforge.rest.task.TaskWizardPageRest","org.projectforge.ui.AutoCompletion","org.projectforge.web.access.AccessEditForm","org.projectforge.web.access.AccessListForm","org.projectforge.web.access.AccessListPage","org.projectforge.web.admin.TaskWizardForm","org.projectforge.web.user.GroupEditPage","org.projectforge.web.user.GroupListPage"],"usedInFiles":[]},
{"i18nKey":"group.assignedUsers","bundleName":"I18nResources","translation":"Assigned users","translationDE":"Assoziierte Benutzer:in","usedInClasses":["org.projectforge.framework.persistence.user.entities.GroupDO","org.projectforge.rest.GroupPagesRest","org.projectforge.web.user.GroupEditForm","org.projectforge.web.user.GroupListPage"],"usedInFiles":[]},
{"i18nKey":"group.error.groupnameAlreadyExists","bundleName":"I18nResources","translation":"Group name already exists.","translationDE":"Gruppenname ist bereits vergeben.","usedInClasses":["org.projectforge.rest.GroupPagesRest","org.projectforge.web.user.GroupEditForm"],"usedInFiles":[]},
{"i18nKey":"group.groups","bundleName":"I18nResources","translation":"Groups","translationDE":"Gruppen","usedInClasses":["org.projectforge.rest.VacationExportPageRest"],"usedInFiles":[]},
@@ -1472,6 +1473,7 @@
{"i18nKey":"import.entry.error","bundleName":"I18nResources","translation":"Error","translationDE":"Fehler","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"import.entry.status.deleted","bundleName":"I18nResources","translation":"Deleted","translationDE":"Gelöscht","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"import.entry.status.faulty","bundleName":"I18nResources","translation":"Faulty","translationDE":"Fehlerhaft","usedInClasses":[],"usedInFiles":[]},
+ {"i18nKey":"import.entry.status.imported","bundleName":"I18nResources","translation":"Imported","translationDE":"Importiert","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"import.entry.status.modified","bundleName":"I18nResources","translation":"Modified","translationDE":"Modifiziert","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"import.entry.status.new","bundleName":"I18nResources","translation":"New","translationDE":"Neu","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"import.entry.status.unknown","bundleName":"I18nResources","translation":"Unknown","translationDE":"Unbekannt","usedInClasses":[],"usedInFiles":[]},
@@ -3167,8 +3169,6 @@
{"i18nKey":"address.book.vCardsImport.newAddress","bundleName":null,"translation":null,"translationDE":null,"usedInClasses":[],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/VCardImportDialog.tsx"]},
{"i18nKey":"address.book.vCardsImport.noData","bundleName":null,"translation":null,"translationDE":null,"usedInClasses":[],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/VCardImportDialog.tsx"]},
{"i18nKey":"address.import.title","bundleName":null,"translation":null,"translationDE":null,"usedInClasses":["org.projectforge.rest.address.importer.AddressImportStorage"],"usedInFiles":[]},
- {"i18nKey":"address.parseText.selectAll","bundleName":null,"translation":null,"translationDE":null,"usedInClasses":[],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
- {"i18nKey":"address.parseText.unselectAll","bundleName":null,"translation":null,"translationDE":null,"usedInClasses":[],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
{"i18nKey":"administration.configuration.title.list.select","bundleName":null,"translation":null,"translationDE":null,"usedInClasses":["org.projectforge.web.admin.ConfigurationEditPage","org.projectforge.web.admin.ConfigurationListPage"],"usedInFiles":[]},
{"i18nKey":"exportKWProjects","bundleName":null,"translation":null,"translationDE":null,"usedInClasses":["org.projectforge.business.humanresources.HRPlanningExport"],"usedInFiles":[]},
{"i18nKey":"exportKWUsers","bundleName":null,"translation":null,"translationDE":null,"usedInClasses":["org.projectforge.business.humanresources.HRPlanningExport"],"usedInFiles":[]}, bf33c20a9
DevelopmentMainForRelease.main (i18n stuff fixed)bf33c20a958161d121934a55a2072d8310955837
diff --git a/projectforge-application/src/main/resources/i18nKeys.json b/projectforge-application/src/main/resources/i18nKeys.json
index c139a75e3..14df59e8d 100644
--- a/projectforge-application/src/main/resources/i18nKeys.json
+++ b/projectforge-application/src/main/resources/i18nKeys.json
@@ -204,7 +204,7 @@
{"i18nKey":"access.violation.userNotMemberOf","bundleName":"I18nResources","translation":"Operation only allowed for users of group(s) ''{0}'' (perhaps other groups are also allowed).","translationDE":"Operation ist nur für Benutzer:innen der Gruppe(n) ''{0}'' erlaubt (ggf. auch andere Gruppen möglich).","usedInClasses":["org.projectforge.framework.access.AccessCheckerImpl"],"usedInFiles":[]},
{"i18nKey":"access.write","bundleName":"I18nResources","translation":"Write access","translationDE":"Schreibzugriff","usedInClasses":["org.projectforge.web.gantt.GanttChartEditForm"],"usedInFiles":[]},
{"i18nKey":"add","bundleName":"I18nResources","translation":"Add","translationDE":"Hinzufügen","usedInClasses":["org.projectforge.plugins.merlin.rest.MerlinPagesRest","org.projectforge.rest.MenuCustomizerRest","org.projectforge.rest.core.AbstractPagesRest","org.projectforge.ui.UIButton","org.projectforge.web.fibu.AbstractRechnungEditForm","org.projectforge.web.fibu.AuftragEditForm","org.projectforge.web.fibu.RechnungCostEditTablePanel","org.projectforge.web.humanresources.HRPlanningEditForm"],"usedInFiles":[]},
- {"i18nKey":"address","bundleName":"I18nResources","translation":"Address","translationDE":"Adresse","usedInClasses":["org.projectforge.business.address.AddressImageDao","org.projectforge.business.address.PersonalAddressDao","org.projectforge.framework.persistence.DaoConst","org.projectforge.menu.builder.MenuItemDefId","org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.plugins.todo.ToDoPlugin","org.projectforge.registry.Registry","org.projectforge.rest.SendTextMessagePageRest","org.projectforge.rest.calendar.FullCalendarEvent"],"usedInFiles":[]},
+ {"i18nKey":"address","bundleName":"I18nResources","translation":"Address","translationDE":"Adresse","usedInClasses":["org.projectforge.business.address.AddressImageDao","org.projectforge.business.address.PersonalAddressDao","org.projectforge.framework.persistence.DaoConst","org.projectforge.menu.builder.MenuItemDefId","org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.registry.Registry","org.projectforge.rest.SendTextMessagePageRest","org.projectforge.rest.calendar.FullCalendarEvent"],"usedInFiles":[]},
{"i18nKey":"address.accessException.userHasNoRightForAddressbook","bundleName":"I18nResources","translation":"User has no right for the current address and its addressbook","translationDE":"Benutzer:in hat keine Berechtigung für die ausgewählte Adresse und dessen Addressbuch","usedInClasses":["org.projectforge.business.address.PersonalAddressDao"],"usedInFiles":[]},
{"i18nKey":"address.accessException.userIsNotOwnerOfPersonalAddress","bundleName":"I18nResources","translation":"User is not owner of personal address book.","translationDE":"Benutzer:in ist nicht Besitzer:in der persönlichen Adresse.","usedInClasses":["org.projectforge.business.address.PersonalAddressDao"],"usedInFiles":[]},
{"i18nKey":"address.addressStatus","bundleName":"I18nResources","translation":"Address status","translationDE":"Adressstatus","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.plugins.marketing.rest.AddressCampaignValuePagesRest","org.projectforge.rest.AddressMultiSelectedPageRest","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
@@ -217,8 +217,8 @@
{"i18nKey":"address.addresses","bundleName":"I18nResources","translation":"Addresses","translationDE":"Adressen","usedInClasses":["org.projectforge.business.address.AddressExport"],"usedInFiles":[]},
{"i18nKey":"address.age","bundleName":"I18nResources","translation":"years","translationDE":"Jahre","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.age.short","bundleName":"I18nResources","translation":"y","translationDE":"J","usedInClasses":["org.projectforge.rest.calendar.BirthdaysProvider","org.projectforge.web.address.BirthdayEventsProvider"],"usedInFiles":[]},
- {"i18nKey":"address.birthName","bundleName":"I18nResources","translation":"Birth name","translationDE":"Geburtsname","usedInClasses":["org.projectforge.business.address.AddressDO"],"usedInFiles":[]},
- {"i18nKey":"address.birthday","bundleName":"I18nResources","translation":"Birthday","translationDE":"Geburtstag","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
+ {"i18nKey":"address.birthName","bundleName":"I18nResources","translation":"Birth name","translationDE":"Geburtsname","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
+ {"i18nKey":"address.birthday","bundleName":"I18nResources","translation":"Birthday","translationDE":"Geburtstag","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
{"i18nKey":"address.book.export","bundleName":"I18nResources","translation":"Excel-Export","translationDE":"Excel-Export","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.book.export.appleScript4Notes","bundleName":"I18nResources","translation":"Apple-Script","translationDE":"Apple-Script","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
{"i18nKey":"address.book.export.appleScript4Notes.tooltip","bundleName":"I18nResources","translation":"For removing notes (with multiple entries) of the from ProjectForge exported addresses (s. Handbuch). Afterwards you should import the addresses again for getting the correct notes from ProjectForge.","translationDE":"Zum Löschen von Notizen (mit Mehrfacheinträgen) aus den aus ProjectForge exportierten Adressen (s. Handbuch). Anschließend sollten die Adressen erneut importiert werden, um die bereinigten Notizen aus ProjectForge zu importieren.","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
@@ -228,11 +228,19 @@
{"i18nKey":"address.book.vCardExport.tooltip.content","bundleName":"I18nResources","translation":"Export vCards (addresses) of marked addresses for importing into external address applications (such as Apple address book). Please do not forget to set encoding to utf-8 in your address applications.","translationDE":"VCards markierter Adressen können für externe Adressprogramme (z. B. Apple Adressbuch) exportiert werden (utf-8 sollte im Adressprogramm eingestellt sein).","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
{"i18nKey":"address.book.vCardExport.tooltip.title","bundleName":"I18nResources","translation":"Personal address book","translationDE":"Persönliches Adressbuch","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
{"i18nKey":"address.book.vCardSingleExport","bundleName":"I18nResources","translation":"Export vCard","translationDE":"Export vCard","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":[]},
+ {"i18nKey":"address.book.vCardsImport.clickToEdit","bundleName":"I18nResources","translation":"Click on a row to edit the address and compare fields.","translationDE":"Klicken Sie auf eine Zeile, um die Adresse zu bearbeiten und Felder zu vergleichen.","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
+ {"i18nKey":"address.book.vCardsImport.dataLoaded","bundleName":"I18nResources","translation":"VCF data has been loaded. Select the fields you want to apply.","translationDE":"VCF-Daten wurden geladen. Wählen Sie die Felder aus, die Sie übernehmen möchten.","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
{"i18nKey":"address.book.vCardsImport.description","bundleName":"I18nResources","translation":"Here, vCards (.vcf file format) can be imported into the address book. Existing addresses are not duplicated, but simply supplemented (e.g., with phone numbers or email addresses).","translationDE":"Hier können vCards (Dateiformat .vcf) in das Adressbuch importiert werden. Bereits vorhandene Adressen werden nicht dupliziert, sondern nur ergänzt (z. B. um Telefonnummern oder E-Mail-Adressen).","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
- {"i18nKey":"address.book.vCardsImport.menu","bundleName":"I18nResources","translation":"Import vcards","translationDE":"Importieren (vcf)","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
+ {"i18nKey":"address.book.vCardsImport.dropHint","bundleName":"I18nResources","translation":"Drop VCF file here","translationDE":"VCF-Datei hier ablegen","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
+ {"i18nKey":"address.book.vCardsImport.dropInfo","bundleName":"I18nResources","translation":"Matching address will be selected automatically","translationDE":"Passende Adresse wird automatisch ausgewählt","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
+ {"i18nKey":"address.book.vCardsImport.dropLabel","bundleName":"I18nResources","translation":"Or drop VCF file","translationDE":"Oder VCF-Datei ablegen","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
+ {"i18nKey":"address.book.vCardsImport.error.noAddresses","bundleName":"I18nResources","translation":"No addresses found in VCF file","translationDE":"Keine Adressen in VCF-Datei gefunden","usedInClasses":["org.projectforge.rest.AddressServicesRest"],"usedInFiles":[]},
+ {"i18nKey":"address.book.vCardsImport.error.noMatch","bundleName":"I18nResources","translation":"No matching address found in VCF file (name/first name do not match)","translationDE":"Keine passende Adresse in der VCF-Datei gefunden (Name/Vorname stimmen nicht überein)","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressServicesRest"],"usedInFiles":[]},
+ {"i18nKey":"address.book.vCardsImport.error.parsing","bundleName":"I18nResources","translation":"Error parsing VCF file","translationDE":"Fehler beim Parsen der VCF-Datei","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressServicesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
{"i18nKey":"address.book.vCardsImport.title","bundleName":"I18nResources","translation":"Import of vcards (.vcf)","translationDE":"Importieren von vCards (.vcf)","usedInClasses":["org.projectforge.rest.address.importer.AddressImportUploadPageRest"],"usedInFiles":[]},
- {"i18nKey":"address.book.vCardsImport.wrongFileType","bundleName":"I18nResources","translation":"Wrong file type. Please use \".vcf\" only.","translationDE":"Falsches Dateiformat. Bitte nur \".vcf\"-Format verwenden.","usedInClasses":["org.projectforge.rest.address.AddressImportServicesRest"],"usedInFiles":[]},
- {"i18nKey":"address.business","bundleName":"I18nResources","translation":"business","translationDE":"geschäftlich","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressTextParser.jsx"]},
+ {"i18nKey":"address.book.vCardsImport.uploading","bundleName":"I18nResources","translation":"Parsing VCF file...","translationDE":"VCF-Datei wird geparst...","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
+ {"i18nKey":"address.book.vCardsImport.wrongFileType","bundleName":"I18nResources","translation":"Wrong file type. Please use \".vcf\" only.","translationDE":"Falsches Dateiformat. Bitte nur \".vcf\"-Format verwenden.","usedInClasses":["org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressServicesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressImportReconciler.tsx"]},
+ {"i18nKey":"address.business","bundleName":"I18nResources","translation":"business","translationDE":"geschäftlich","usedInClasses":["org.projectforge.business.address.AddressDO","org.projectforge.rest.AddressPagesRest","org.projectforge.rest.AddressViewPageRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressFieldSelector.tsx"]},
{"i18nKey":"address.cardDAV.addressbook.description","bundleName":"I18nResources","translation":"These are the contacts of ProjectForge, you have marked as favorites.","translationDE":"Das sind Deine Kontakte, die du in ProjectForge als Favoriten markiert hast.","usedInClasses":[],"usedInFiles":[]},
{"i18nKey":"address.cardDAV.addressbook.displayName","bundleName":"I18nResources","translation":"{0}''s addressbook","translationDE":"{0}''s Adressbuch","usedInClasses":["org.projectforge.carddav.CardDavUtils"],"usedInFiles":[]},
{"i18nKey":"address.cardDAV.infopage.description","bundleName":"I18nResources","translation":"You may use the CardDAV service of ProjectForge by creating a CardDAV account in your address book software (such as Apple's address book).","translationDE":"Der CardDAV-Service von ProjectForge kann genutzt werden, indem ein CardDAV-Account in der Clientsoftware wie z. B. im Apple Adressbuch eingerichtet wird.","usedInClasses":["org.projectforge.rest.CardDAVInfoPageRest"],"usedInFiles":[]},
@@ -294,18 +302,24 @@
{"i18nKey":"address.myCurrentPhoneId.tooltip.content","bundleName":"I18nResources","translation":"Define your phone ids (internal phone number of the phone system). After you can make a direct phone call on the selected phone by simply clicking on the desired phone number below.","translationDE":"Unter Mein Zugang können persönliche Zuordnungen zu firmen-internen Telefonen vorgenommen werden (interne Rufnummer). Wird auf eine Telefonnummer in der Adressliste geklickt, so kann eine Direktwahl für das hier angegebene Telefon initiiert werden.","usedInClasses":["org.projectforge.web.address.PhoneCallForm"],"usedInFiles":[]},
{"i18nKey":"address.myCurrentPhoneId.tooltip.title","bundleName":"I18nResources","translation":"Direct call","translationDE":"Direktwahl","usedInClasses":["org.projectforge.web.address.PhoneCallForm"],"usedInFiles":[]},
{"i18nKey":"address.parseText.addressBlock","bundleName":"I18nResources","translation":"Address Block","translationDE":"Adressblock","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
- {"i18nKey":"address.parseText.addressType.business","bundleName":"I18nResources","translation":"Business Address","translationDE":"Geschäftsadresse","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
- {"i18nKey":"address.parseText.addressType.postal","bundleName":"I18nResources","translation":"Postal/Mailing Address","translationDE":"Postadresse","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
- {"i18nKey":"address.parseText.addressType.private","bundleName":"I18nResources","translation":"Private Address","translationDE":"Privatadresse","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
+ {"i18nKey":"address.parseText.addressType.business","bundleName":"I18nResources","translation":"Business Address","translationDE":"Geschäftsadresse","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressFieldSelector.tsx"]},
+ {"i18nKey":"address.parseText.addressType.postal","bundleName":"I18nResources","translation":"Postal/Mailing Address","translationDE":"Postadresse","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressFieldSelector.tsx"]},
+ {"i18nKey":"address.parseText.addressType.private","bundleName":"I18nResources","translation":"Private Address","translationDE":"Privatadresse","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":["./projectforge-webapp/src/components/base/dynamicLayout/components/customized/components/AddressFieldSelector.tsx"]},
{"i18nKey":"address.parseText.applied","bundleName":"I18nResources","translation":"Fields successfully applied","translationDE":"Felder erfolgreich übernommen","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},
- {"i18nKey":"address.parseText.button","bundleName":"I18nResources","translation":"Parse from Text","translationDE":"Aus Text einlesen","usedInClasses":["org.projectforge.rest.AddressPagesRest"],"usedInFiles":[]},