feat: add cross-organization member search and template cloning functionality
This commit is contained in:
306
apps/web/i18n/messages/de/verband.json
Normal file
306
apps/web/i18n/messages/de/verband.json
Normal file
@@ -0,0 +1,306 @@
|
||||
{
|
||||
"nav": {
|
||||
"overview": "Übersicht",
|
||||
"clubs": "Vereine",
|
||||
"hierarchy": "Hierarchie",
|
||||
"memberSearch": "Mitgliedersuche",
|
||||
"events": "Veranstaltungen",
|
||||
"reporting": "Berichte",
|
||||
"templates": "Vorlagen",
|
||||
"statistics": "Statistik",
|
||||
"settings": "Einstellungen"
|
||||
},
|
||||
"pages": {
|
||||
"overviewTitle": "Verbandsverwaltung",
|
||||
"clubsTitle": "Verbandsverwaltung - Vereine",
|
||||
"hierarchyTitle": "Verbandsverwaltung - Hierarchie",
|
||||
"hierarchyDescription": "Verwalten Sie die Organisationsstruktur Ihres Verbands",
|
||||
"memberSearchTitle": "Verbandsverwaltung - Mitgliedersuche",
|
||||
"memberSearchDescription": "Suchen Sie Mitglieder in allen verknüpften Organisationen",
|
||||
"eventsTitle": "Verbandsverwaltung - Veranstaltungen",
|
||||
"eventsDescription": "Veranstaltungen aller verknüpften Organisationen anzeigen und filtern",
|
||||
"reportingTitle": "Verbandsverwaltung - Berichte",
|
||||
"reportingDescription": "Aggregierte Berichte und Kennzahlen aller Organisationen im Verband",
|
||||
"templatesTitle": "Verbandsverwaltung - Vorlagen",
|
||||
"templatesDescription": "Geteilte Vorlagen aus der Verbandshierarchie klonen und verwenden",
|
||||
"statisticsTitle": "Verbandsverwaltung - Statistik",
|
||||
"settingsTitle": "Verbandsverwaltung - Einstellungen"
|
||||
},
|
||||
"common": {
|
||||
"search": "Suchen",
|
||||
"filter": "Filtern",
|
||||
"cancel": "Abbrechen",
|
||||
"save": "Speichern",
|
||||
"delete": "Löschen",
|
||||
"edit": "Bearbeiten",
|
||||
"add": "Hinzufügen",
|
||||
"create": "Erstellen",
|
||||
"back": "Zurück",
|
||||
"next": "Weiter",
|
||||
"saving": "Wird gespeichert...",
|
||||
"name": "Name",
|
||||
"email": "E-Mail",
|
||||
"phone": "Telefon",
|
||||
"location": "Ort",
|
||||
"status": "Status",
|
||||
"actions": "Aktionen",
|
||||
"action": "Aktion",
|
||||
"type": "Typ",
|
||||
"date": "Datum",
|
||||
"description": "Beschreibung",
|
||||
"noEntries": "Keine Einträge vorhanden.",
|
||||
"allTypes": "Alle Typen",
|
||||
"allStatuses": "Alle Status",
|
||||
"allOrganizations": "Alle Organisationen",
|
||||
"organization": "Organisation",
|
||||
"archived": "Archiviert",
|
||||
"showArchived": "Archivierte anzeigen",
|
||||
"hideArchived": "Archivierte ausblenden"
|
||||
},
|
||||
"pagination": {
|
||||
"page": "Seite {page} von {totalPages} ({total} Einträge)",
|
||||
"back": "Zurück",
|
||||
"next": "Weiter"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Verbandsverwaltung – Übersicht",
|
||||
"subtitle": "Vereine, Beiträge, Kontakte und Aufgaben verwalten",
|
||||
"activeClubs": "Aktive Vereine",
|
||||
"totalMembers": "Gesamtmitglieder",
|
||||
"openFees": "Offene Beiträge",
|
||||
"invoiceCount": "{count} Rechnungen",
|
||||
"openTasks": "Offene Aufgaben",
|
||||
"clubTypes": "Vereinstypen",
|
||||
"archivedClubs": "Archivierte Vereine",
|
||||
"clubsWithoutContact": "Vereine ohne Ansprechpartner",
|
||||
"allClubsWithContact": "Alle Vereine haben mindestens einen Ansprechpartner.",
|
||||
"addContact": "Kontakt hinzufügen"
|
||||
},
|
||||
"clubs": {
|
||||
"searchPlaceholder": "Verein suchen...",
|
||||
"newClub": "Neuer Verein",
|
||||
"title": "Vereine ({count})",
|
||||
"noClubs": "Keine Vereine vorhanden",
|
||||
"createFirst": "Erstellen Sie Ihren ersten Verein, um loszulegen.",
|
||||
"members": "Mitglieder",
|
||||
"contact": "Kontakt",
|
||||
"founded": "Gegr. {year}"
|
||||
},
|
||||
"clubForm": {
|
||||
"basicData": "Grunddaten",
|
||||
"name": "Name *",
|
||||
"shortName": "Kurzname",
|
||||
"associationType": "Vereinstyp",
|
||||
"noType": "— Kein Typ —",
|
||||
"foundingYear": "Gründungsjahr",
|
||||
"memberCount": "Mitgliederanzahl",
|
||||
"address": "Adresse",
|
||||
"street": "Straße",
|
||||
"zip": "PLZ",
|
||||
"city": "Ort",
|
||||
"website": "Website",
|
||||
"bankData": "Bankdaten",
|
||||
"accountHolder": "Kontoinhaber",
|
||||
"iban": "IBAN",
|
||||
"bic": "BIC",
|
||||
"updateClub": "Verein aktualisieren",
|
||||
"createClub": "Verein erstellen",
|
||||
"clubUpdated": "Verein aktualisiert",
|
||||
"clubCreated": "Verein erstellt",
|
||||
"errorSaving": "Fehler beim Speichern"
|
||||
},
|
||||
"contacts": {
|
||||
"title": "Ansprechpartner",
|
||||
"addContact": "Kontakt hinzufügen",
|
||||
"noContacts": "Keine Ansprechpartner vorhanden.",
|
||||
"firstName": "Vorname *",
|
||||
"lastName": "Nachname *",
|
||||
"role": "Funktion",
|
||||
"update": "Aktualisieren",
|
||||
"created": "Kontakt erstellt",
|
||||
"updated": "Kontakt aktualisiert",
|
||||
"deleted": "Kontakt gelöscht",
|
||||
"errorCreating": "Fehler beim Erstellen",
|
||||
"errorUpdating": "Fehler beim Aktualisieren",
|
||||
"errorDeleting": "Fehler beim Löschen"
|
||||
},
|
||||
"billing": {
|
||||
"title": "Beitragsabrechnungen",
|
||||
"feeType": "Beitragsart",
|
||||
"year": "Jahr",
|
||||
"amount": "Betrag",
|
||||
"dueDate": "Fällig",
|
||||
"paymentMethod": "Zahlung",
|
||||
"noBillings": "Keine Beitragsabrechnungen vorhanden.",
|
||||
"showAll": "Alle anzeigen",
|
||||
"showOpen": "Nur offene",
|
||||
"markAsPaid": "Als bezahlt markieren",
|
||||
"paid": "Beitrag als bezahlt markiert",
|
||||
"deleted": "Beitragsabrechnung gelöscht",
|
||||
"errorUpdating": "Fehler beim Aktualisieren",
|
||||
"errorDeleting": "Fehler beim Löschen"
|
||||
},
|
||||
"notes": {
|
||||
"title": "Notizen & Aufgaben ({count} offen)",
|
||||
"noNotes": "Keine Notizen vorhanden.",
|
||||
"dueDate": "Fällig: {date}",
|
||||
"completed": "Erledigt ({count})",
|
||||
"markDone": "Als erledigt markieren",
|
||||
"taskCompleted": "Aufgabe erledigt",
|
||||
"noteDeleted": "Notiz gelöscht",
|
||||
"errorUpdating": "Fehler beim Aktualisieren",
|
||||
"errorDeleting": "Fehler beim Löschen"
|
||||
},
|
||||
"hierarchy": {
|
||||
"structure": "Organisationsstruktur",
|
||||
"directChildren": "Direkte Unterverbände",
|
||||
"totalOrganizations": "Organisationen gesamt",
|
||||
"availableToLink": "Verfügbar zum Verknüpfen",
|
||||
"addOrganization": "Organisation hinzufügen",
|
||||
"availableOrganizations": "Verfügbare Organisationen",
|
||||
"selectOrganization": "Organisation auswählen...",
|
||||
"link": "Verknüpfen",
|
||||
"linking": "Wird verknüpft...",
|
||||
"linked": "Organisation erfolgreich verknüpft",
|
||||
"unlinkTitle": "Verknüpfung lösen",
|
||||
"unlinked": "Verknüpfung gelöst",
|
||||
"directCount": "{count} direkt",
|
||||
"rootLevel": "Dachverband",
|
||||
"subLevel": "Unterverband",
|
||||
"clubLevel": "Verein",
|
||||
"errorLinking": "Fehler beim Verknüpfen der Organisation",
|
||||
"errorUnlinking": "Fehler beim Entfernen der Verknüpfung"
|
||||
},
|
||||
"memberSearch": {
|
||||
"searchPlaceholder": "Name, E-Mail oder Mitgliedsnr. suchen...",
|
||||
"title": "Mitglieder ({count})",
|
||||
"noMembers": "Keine Mitglieder gefunden",
|
||||
"tryOtherSearch": "Versuchen Sie einen anderen Suchbegriff.",
|
||||
"noMembersInHierarchy": "In den verknüpften Organisationen sind noch keine Mitglieder vorhanden.",
|
||||
"joinDate": "Eintritt",
|
||||
"memberStatus": {
|
||||
"active": "Aktiv",
|
||||
"inactive": "Inaktiv",
|
||||
"pending": "Ausstehend",
|
||||
"resigned": "Ausgetreten",
|
||||
"excluded": "Ausgeschlossen",
|
||||
"deceased": "Verstorben"
|
||||
}
|
||||
},
|
||||
"transfer": {
|
||||
"title": "Mitglied transferieren",
|
||||
"description": "{name} wird von {source} in eine andere Organisation verschoben.",
|
||||
"loadingPreview": "Lade Transfervorschau...",
|
||||
"targetOrganization": "Zielorganisation",
|
||||
"selectTarget": "Organisation auswählen...",
|
||||
"keepSepaData": "SEPA-Bankdaten (IBAN/BIC) übernehmen",
|
||||
"keepSepaHelp": "Bankverbindung wird übernommen, Mandat muss im Zielverein neu bestätigt werden.",
|
||||
"reason": "Grund (optional)",
|
||||
"reasonPlaceholder": "z.B. Umzug, Vereinswechsel...",
|
||||
"transferring": "Wird transferiert...",
|
||||
"confirm": "Transferieren",
|
||||
"transferred": "Mitglied erfolgreich transferiert",
|
||||
"errorTransfer": "Fehler beim Transfer",
|
||||
"activeEnrollments": "{count} aktive Kurseinschreibung(en)",
|
||||
"retained": "bleibt erhalten",
|
||||
"openInvoices": "{count} offene Rechnung(en)",
|
||||
"remainsAtSource": "verbleibt beim Quellverein",
|
||||
"activeMandates": "{count} aktive(s) SEPA-Mandat(e)",
|
||||
"willReset": "wird zurückgesetzt",
|
||||
"newsletters": "{count} Newsletter-Abonnement(s)",
|
||||
"resetSection": "Wird zurückgesetzt:",
|
||||
"memberNumberReset": "Mitgliedsnr. #{number} — Neuvergabe im Zielverein nötig",
|
||||
"duesCategoryReset": "Beitragskategorie — muss im Zielverein neu zugewiesen werden",
|
||||
"sepaStatusReset": "SEPA-Mandatstatus → \"ausstehend\" (Neubestätigung nötig)",
|
||||
"noSideEffects": "Keine aktiven Verknüpfungen gefunden",
|
||||
"noSideEffectsHelp": "Transfer kann ohne Seiteneffekte durchgeführt werden."
|
||||
},
|
||||
"events": {
|
||||
"title": "Veranstaltungen ({count})",
|
||||
"noEvents": "Keine Veranstaltungen gefunden",
|
||||
"tryOtherFilters": "Versuchen Sie andere Filterkriterien.",
|
||||
"noEventsInHierarchy": "In den verknüpften Organisationen sind noch keine Veranstaltungen vorhanden.",
|
||||
"event": "Veranstaltung",
|
||||
"capacity": "Kapazität",
|
||||
"fee": "Gebühr",
|
||||
"shared": "Geteilt",
|
||||
"sharedOnly": "Nur geteilte",
|
||||
"eventStatus": {
|
||||
"planned": "Geplant",
|
||||
"open": "Offen",
|
||||
"full": "Ausgebucht",
|
||||
"running": "Laufend",
|
||||
"completed": "Abgeschlossen",
|
||||
"cancelled": "Abgesagt"
|
||||
}
|
||||
},
|
||||
"reporting": {
|
||||
"perOrganization": "Bericht pro Organisation",
|
||||
"noOrganizations": "Keine Organisationen vorhanden",
|
||||
"hierarchyEmpty": "Die Hierarchie enthält noch keine Organisationen.",
|
||||
"organizations": "Organisationen",
|
||||
"activeMembers": "Aktive Mitglieder",
|
||||
"ofTotal": "von {total} gesamt",
|
||||
"newThisYear": "Neue Mitglieder (Jahr)",
|
||||
"upcomingEvents": "Anstehende Termine",
|
||||
"activeCourses": "Aktive Kurse",
|
||||
"openInvoices": "Offene Rechnungen",
|
||||
"invoiceCount": "{count} Rechnungen",
|
||||
"level": "Ebene",
|
||||
"activeMembersShort": "Aktive Mitgl.",
|
||||
"totalShort": "Gesamt",
|
||||
"newYearShort": "Neu (Jahr)",
|
||||
"courses": "Kurse",
|
||||
"eventsShort": "Termine",
|
||||
"openInvoicesShort": "Offene Rechn.",
|
||||
"openAmount": "Offener Betrag"
|
||||
},
|
||||
"templates": {
|
||||
"sharedTemplates": "Geteilte Vorlagen",
|
||||
"noTemplates": "Keine geteilten Vorlagen vorhanden",
|
||||
"templatesHelp": "Vorlagen, die von anderen Organisationen in Ihrer Hierarchie geteilt werden, erscheinen hier.",
|
||||
"filterAll": "Alle",
|
||||
"filterNewsletter": "Newsletter",
|
||||
"filterDocument": "Dokumente",
|
||||
"templateType": "Template-Typ",
|
||||
"created": "Erstellt",
|
||||
"clone": "Klonen",
|
||||
"cloneTitle": "Vorlage klonen",
|
||||
"cloneDescription": "Erstellen Sie eine Kopie der Vorlage \"{name}\" in Ihrer Organisation.",
|
||||
"cloneName": "Name der Kopie",
|
||||
"cloneNamePlaceholder": "Name der neuen Vorlage",
|
||||
"cloning": "Wird geklont...",
|
||||
"cloneConfirm": "Vorlage klonen",
|
||||
"cloned": "Vorlage wurde erfolgreich geklont",
|
||||
"errorCloning": "Fehler beim Klonen der Vorlage",
|
||||
"newsletter": "Newsletter",
|
||||
"document": "Dokument",
|
||||
"templateTypes": {
|
||||
"generic": "Allgemein",
|
||||
"member_card": "Mitgliedsausweis",
|
||||
"invoice": "Rechnung",
|
||||
"receipt": "Quittung",
|
||||
"certificate": "Urkunde",
|
||||
"letter": "Brief",
|
||||
"label": "Etikett",
|
||||
"report": "Bericht"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"title": "Einstellungen",
|
||||
"subtitle": "Funktionen, Vereinstypen und Beitragsarten verwalten",
|
||||
"roles": "Funktionen (Rollen)",
|
||||
"types": "Vereinstypen",
|
||||
"feeTypes": "Beitragsarten",
|
||||
"descriptionOptional": "Beschreibung (optional)"
|
||||
},
|
||||
"statistics": {
|
||||
"title": "Statistik",
|
||||
"subtitle": "Entwicklung der Mitgliedsvereine und Gesamtmitglieder im Zeitverlauf",
|
||||
"clubDevelopment": "Vereinsentwicklung",
|
||||
"memberDevelopment": "Mitgliederentwicklung",
|
||||
"clubsLabel": "Vereine",
|
||||
"membersLabel": "Mitglieder",
|
||||
"helpText": "Die Statistiken werden automatisch aus den Vereinsdaten und der Verbandshistorie berechnet."
|
||||
}
|
||||
}
|
||||
306
apps/web/i18n/messages/en/verband.json
Normal file
306
apps/web/i18n/messages/en/verband.json
Normal file
@@ -0,0 +1,306 @@
|
||||
{
|
||||
"nav": {
|
||||
"overview": "Overview",
|
||||
"clubs": "Clubs",
|
||||
"hierarchy": "Hierarchy",
|
||||
"memberSearch": "Member Search",
|
||||
"events": "Events",
|
||||
"reporting": "Reports",
|
||||
"templates": "Templates",
|
||||
"statistics": "Statistics",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"pages": {
|
||||
"overviewTitle": "Association Management",
|
||||
"clubsTitle": "Association Management - Clubs",
|
||||
"hierarchyTitle": "Association Management - Hierarchy",
|
||||
"hierarchyDescription": "Manage the organizational structure of your association",
|
||||
"memberSearchTitle": "Association Management - Member Search",
|
||||
"memberSearchDescription": "Search members across all linked organizations",
|
||||
"eventsTitle": "Association Management - Events",
|
||||
"eventsDescription": "View and filter events across all linked organizations",
|
||||
"reportingTitle": "Association Management - Reports",
|
||||
"reportingDescription": "Aggregated reports and metrics across all organizations",
|
||||
"templatesTitle": "Association Management - Templates",
|
||||
"templatesDescription": "Clone and use shared templates from the association hierarchy",
|
||||
"statisticsTitle": "Association Management - Statistics",
|
||||
"settingsTitle": "Association Management - Settings"
|
||||
},
|
||||
"common": {
|
||||
"search": "Search",
|
||||
"filter": "Filter",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"delete": "Delete",
|
||||
"edit": "Edit",
|
||||
"add": "Add",
|
||||
"create": "Create",
|
||||
"back": "Back",
|
||||
"next": "Next",
|
||||
"saving": "Saving...",
|
||||
"name": "Name",
|
||||
"email": "Email",
|
||||
"phone": "Phone",
|
||||
"location": "Location",
|
||||
"status": "Status",
|
||||
"actions": "Actions",
|
||||
"action": "Action",
|
||||
"type": "Type",
|
||||
"date": "Date",
|
||||
"description": "Description",
|
||||
"noEntries": "No entries found.",
|
||||
"allTypes": "All Types",
|
||||
"allStatuses": "All Statuses",
|
||||
"allOrganizations": "All Organizations",
|
||||
"organization": "Organization",
|
||||
"archived": "Archived",
|
||||
"showArchived": "Show Archived",
|
||||
"hideArchived": "Hide Archived"
|
||||
},
|
||||
"pagination": {
|
||||
"page": "Page {page} of {totalPages} ({total} entries)",
|
||||
"back": "Back",
|
||||
"next": "Next"
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Association Management – Overview",
|
||||
"subtitle": "Manage clubs, fees, contacts, and tasks",
|
||||
"activeClubs": "Active Clubs",
|
||||
"totalMembers": "Total Members",
|
||||
"openFees": "Open Fees",
|
||||
"invoiceCount": "{count} invoices",
|
||||
"openTasks": "Open Tasks",
|
||||
"clubTypes": "Club Types",
|
||||
"archivedClubs": "Archived Clubs",
|
||||
"clubsWithoutContact": "Clubs Without Contact",
|
||||
"allClubsWithContact": "All clubs have at least one contact person.",
|
||||
"addContact": "Add Contact"
|
||||
},
|
||||
"clubs": {
|
||||
"searchPlaceholder": "Search clubs...",
|
||||
"newClub": "New Club",
|
||||
"title": "Clubs ({count})",
|
||||
"noClubs": "No clubs found",
|
||||
"createFirst": "Create your first club to get started.",
|
||||
"members": "Members",
|
||||
"contact": "Contact",
|
||||
"founded": "Est. {year}"
|
||||
},
|
||||
"clubForm": {
|
||||
"basicData": "Basic Data",
|
||||
"name": "Name *",
|
||||
"shortName": "Short Name",
|
||||
"associationType": "Association Type",
|
||||
"noType": "— No Type —",
|
||||
"foundingYear": "Founding Year",
|
||||
"memberCount": "Member Count",
|
||||
"address": "Address",
|
||||
"street": "Street",
|
||||
"zip": "ZIP",
|
||||
"city": "City",
|
||||
"website": "Website",
|
||||
"bankData": "Bank Details",
|
||||
"accountHolder": "Account Holder",
|
||||
"iban": "IBAN",
|
||||
"bic": "BIC",
|
||||
"updateClub": "Update Club",
|
||||
"createClub": "Create Club",
|
||||
"clubUpdated": "Club updated",
|
||||
"clubCreated": "Club created",
|
||||
"errorSaving": "Error saving"
|
||||
},
|
||||
"contacts": {
|
||||
"title": "Contacts",
|
||||
"addContact": "Add Contact",
|
||||
"noContacts": "No contacts found.",
|
||||
"firstName": "First Name *",
|
||||
"lastName": "Last Name *",
|
||||
"role": "Role",
|
||||
"update": "Update",
|
||||
"created": "Contact created",
|
||||
"updated": "Contact updated",
|
||||
"deleted": "Contact deleted",
|
||||
"errorCreating": "Error creating contact",
|
||||
"errorUpdating": "Error updating contact",
|
||||
"errorDeleting": "Error deleting contact"
|
||||
},
|
||||
"billing": {
|
||||
"title": "Fee Billings",
|
||||
"feeType": "Fee Type",
|
||||
"year": "Year",
|
||||
"amount": "Amount",
|
||||
"dueDate": "Due Date",
|
||||
"paymentMethod": "Payment",
|
||||
"noBillings": "No fee billings found.",
|
||||
"showAll": "Show All",
|
||||
"showOpen": "Open Only",
|
||||
"markAsPaid": "Mark as Paid",
|
||||
"paid": "Fee marked as paid",
|
||||
"deleted": "Fee billing deleted",
|
||||
"errorUpdating": "Error updating",
|
||||
"errorDeleting": "Error deleting"
|
||||
},
|
||||
"notes": {
|
||||
"title": "Notes & Tasks ({count} open)",
|
||||
"noNotes": "No notes found.",
|
||||
"dueDate": "Due: {date}",
|
||||
"completed": "Completed ({count})",
|
||||
"markDone": "Mark as done",
|
||||
"taskCompleted": "Task completed",
|
||||
"noteDeleted": "Note deleted",
|
||||
"errorUpdating": "Error updating",
|
||||
"errorDeleting": "Error deleting"
|
||||
},
|
||||
"hierarchy": {
|
||||
"structure": "Organization Structure",
|
||||
"directChildren": "Direct Sub-associations",
|
||||
"totalOrganizations": "Total Organizations",
|
||||
"availableToLink": "Available to Link",
|
||||
"addOrganization": "Add Organization",
|
||||
"availableOrganizations": "Available Organizations",
|
||||
"selectOrganization": "Select organization...",
|
||||
"link": "Link",
|
||||
"linking": "Linking...",
|
||||
"linked": "Organization linked successfully",
|
||||
"unlinkTitle": "Unlink",
|
||||
"unlinked": "Link removed",
|
||||
"directCount": "{count} direct",
|
||||
"rootLevel": "Federation",
|
||||
"subLevel": "Sub-association",
|
||||
"clubLevel": "Club",
|
||||
"errorLinking": "Error linking organization",
|
||||
"errorUnlinking": "Error removing link"
|
||||
},
|
||||
"memberSearch": {
|
||||
"searchPlaceholder": "Search name, email, or member no...",
|
||||
"title": "Members ({count})",
|
||||
"noMembers": "No members found",
|
||||
"tryOtherSearch": "Try a different search term.",
|
||||
"noMembersInHierarchy": "No members found in linked organizations.",
|
||||
"joinDate": "Joined",
|
||||
"memberStatus": {
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
"pending": "Pending",
|
||||
"resigned": "Resigned",
|
||||
"excluded": "Excluded",
|
||||
"deceased": "Deceased"
|
||||
}
|
||||
},
|
||||
"transfer": {
|
||||
"title": "Transfer Member",
|
||||
"description": "{name} will be moved from {source} to another organization.",
|
||||
"loadingPreview": "Loading transfer preview...",
|
||||
"targetOrganization": "Target Organization",
|
||||
"selectTarget": "Select organization...",
|
||||
"keepSepaData": "Keep SEPA bank data (IBAN/BIC)",
|
||||
"keepSepaHelp": "Bank details will be kept, mandate must be re-confirmed in the target organization.",
|
||||
"reason": "Reason (optional)",
|
||||
"reasonPlaceholder": "e.g. Relocation, club change...",
|
||||
"transferring": "Transferring...",
|
||||
"confirm": "Transfer",
|
||||
"transferred": "Member transferred successfully",
|
||||
"errorTransfer": "Error during transfer",
|
||||
"activeEnrollments": "{count} active course enrollment(s)",
|
||||
"retained": "retained",
|
||||
"openInvoices": "{count} open invoice(s)",
|
||||
"remainsAtSource": "remains at source organization",
|
||||
"activeMandates": "{count} active SEPA mandate(s)",
|
||||
"willReset": "will be reset",
|
||||
"newsletters": "{count} newsletter subscription(s)",
|
||||
"resetSection": "Will be reset:",
|
||||
"memberNumberReset": "Member no. #{number} — reassignment needed in target org",
|
||||
"duesCategoryReset": "Dues category — must be reassigned in target organization",
|
||||
"sepaStatusReset": "SEPA mandate status → \"pending\" (re-confirmation needed)",
|
||||
"noSideEffects": "No active relationships found",
|
||||
"noSideEffectsHelp": "Transfer can be performed without side effects."
|
||||
},
|
||||
"events": {
|
||||
"title": "Events ({count})",
|
||||
"noEvents": "No events found",
|
||||
"tryOtherFilters": "Try different filter criteria.",
|
||||
"noEventsInHierarchy": "No events found in linked organizations.",
|
||||
"event": "Event",
|
||||
"capacity": "Capacity",
|
||||
"fee": "Fee",
|
||||
"shared": "Shared",
|
||||
"sharedOnly": "Shared Only",
|
||||
"eventStatus": {
|
||||
"planned": "Planned",
|
||||
"open": "Open",
|
||||
"full": "Full",
|
||||
"running": "Running",
|
||||
"completed": "Completed",
|
||||
"cancelled": "Cancelled"
|
||||
}
|
||||
},
|
||||
"reporting": {
|
||||
"perOrganization": "Report per Organization",
|
||||
"noOrganizations": "No organizations found",
|
||||
"hierarchyEmpty": "The hierarchy does not contain any organizations yet.",
|
||||
"organizations": "Organizations",
|
||||
"activeMembers": "Active Members",
|
||||
"ofTotal": "of {total} total",
|
||||
"newThisYear": "New Members (Year)",
|
||||
"upcomingEvents": "Upcoming Events",
|
||||
"activeCourses": "Active Courses",
|
||||
"openInvoices": "Open Invoices",
|
||||
"invoiceCount": "{count} invoices",
|
||||
"level": "Level",
|
||||
"activeMembersShort": "Active",
|
||||
"totalShort": "Total",
|
||||
"newYearShort": "New (Year)",
|
||||
"courses": "Courses",
|
||||
"eventsShort": "Events",
|
||||
"openInvoicesShort": "Open Inv.",
|
||||
"openAmount": "Open Amount"
|
||||
},
|
||||
"templates": {
|
||||
"sharedTemplates": "Shared Templates",
|
||||
"noTemplates": "No shared templates found",
|
||||
"templatesHelp": "Templates shared by other organizations in your hierarchy appear here.",
|
||||
"filterAll": "All",
|
||||
"filterNewsletter": "Newsletter",
|
||||
"filterDocument": "Documents",
|
||||
"templateType": "Template Type",
|
||||
"created": "Created",
|
||||
"clone": "Clone",
|
||||
"cloneTitle": "Clone Template",
|
||||
"cloneDescription": "Create a copy of template \"{name}\" in your organization.",
|
||||
"cloneName": "Copy Name",
|
||||
"cloneNamePlaceholder": "Name for the new template",
|
||||
"cloning": "Cloning...",
|
||||
"cloneConfirm": "Clone Template",
|
||||
"cloned": "Template cloned successfully",
|
||||
"errorCloning": "Error cloning template",
|
||||
"newsletter": "Newsletter",
|
||||
"document": "Document",
|
||||
"templateTypes": {
|
||||
"generic": "General",
|
||||
"member_card": "Member Card",
|
||||
"invoice": "Invoice",
|
||||
"receipt": "Receipt",
|
||||
"certificate": "Certificate",
|
||||
"letter": "Letter",
|
||||
"label": "Label",
|
||||
"report": "Report"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"title": "Settings",
|
||||
"subtitle": "Manage roles, association types, and fee types",
|
||||
"roles": "Roles",
|
||||
"types": "Association Types",
|
||||
"feeTypes": "Fee Types",
|
||||
"descriptionOptional": "Description (optional)"
|
||||
},
|
||||
"statistics": {
|
||||
"title": "Statistics",
|
||||
"subtitle": "Club and member development over time",
|
||||
"clubDevelopment": "Club Development",
|
||||
"memberDevelopment": "Member Development",
|
||||
"clubsLabel": "Clubs",
|
||||
"membersLabel": "Members",
|
||||
"helpText": "Statistics are automatically calculated from club data and association history."
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,7 @@ const namespaces = [
|
||||
'billing',
|
||||
'marketing',
|
||||
'cms',
|
||||
'verband',
|
||||
] as const;
|
||||
|
||||
const isDevelopment = process.env.NODE_ENV === 'development';
|
||||
|
||||
Reference in New Issue
Block a user