diff --git a/apps/web/app/[locale]/home/[account]/members-cms/statistics/page.tsx b/apps/web/app/[locale]/home/[account]/members-cms/statistics/page.tsx
index 94f0855ed..61f748bfe 100644
--- a/apps/web/app/[locale]/home/[account]/members-cms/statistics/page.tsx
+++ b/apps/web/app/[locale]/home/[account]/members-cms/statistics/page.tsx
@@ -35,7 +35,11 @@ export default async function MemberStatisticsPage({ params }: PageProps) {
if (!acct) return ;
const { query } = createMemberServices(client);
- const stats = await query.getStatistics(acct.id);
+ const statsRaw = await query.getStatistics(acct.id);
+
+ // Compute total from individual status counts
+ const total = Object.values(statsRaw).reduce((a, b) => a + b, 0);
+ const stats = { ...statsRaw, total };
const statusChartData = [
{ name: t('status.active'), value: stats.active ?? 0 },
diff --git a/apps/web/i18n/messages/de/common.json b/apps/web/i18n/messages/de/common.json
index a3a82ef41..f92b38b50 100644
--- a/apps/web/i18n/messages/de/common.json
+++ b/apps/web/i18n/messages/de/common.json
@@ -139,7 +139,58 @@
"administration": "Administration",
"accountSettings": "Kontoeinstellungen",
"application": "Anwendung",
- "home": "Startseite"
+ "home": "Startseite",
+ "courses": "Kurse",
+ "calendar": "Kalender",
+ "instructors": "Kursleiter",
+ "locations": "Standorte",
+ "categories": "Kategorien",
+ "statistics": "Statistiken",
+ "events": "Veranstaltungen",
+ "registrations": "Anmeldungen",
+ "holiday passes": "Ferienpässe",
+ "bookings": "Buchungen",
+ "rooms": "Zimmer",
+ "guests": "Gäste",
+ "finance": "Finanzen",
+ "invoices": "Rechnungen",
+ "sepa": "SEPA-Einzüge",
+ "payments": "Zahlungen",
+ "documents": "Dokumente",
+ "generate": "Generieren",
+ "templates": "Vorlagen",
+ "newsletter": "Newsletter",
+ "new": "Neu",
+ "edit": "Bearbeiten",
+ "members": "Mitglieder",
+ "members cms": "Vereinsmitglieder",
+ "site builder": "Website",
+ "posts": "Beiträge",
+ "fischerei": "Fischerei",
+ "waters": "Gewässer",
+ "species": "Fischarten",
+ "stocking": "Besatz",
+ "leases": "Pachten",
+ "catch books": "Fangbücher",
+ "permits": "Erlaubnisscheine",
+ "competitions": "Wettbewerbe",
+ "meetings": "Sitzungen",
+ "protocols": "Protokolle",
+ "tasks": "Aufgaben",
+ "verband": "Verband",
+ "clubs": "Vereine",
+ "hierarchy": "Organisationsstruktur",
+ "reporting": "Berichte",
+ "modules": "Module",
+ "import": "Import",
+ "applications": "Aufnahmeanträge",
+ "departments": "Abteilungen",
+ "dues": "Beiträge",
+ "tags": "Tags",
+ "cards": "Mitgliedsausweise",
+ "invitations": "Einladungen",
+ "attendance": "Anwesenheit",
+ "participants": "Teilnehmer"
},
"roles": {
"owner": {
@@ -223,4 +274,4 @@
"action": "Zum Dashboard"
},
"confirm": "Bestätigen"
-}
+}
\ No newline at end of file
diff --git a/apps/web/i18n/messages/en/common.json b/apps/web/i18n/messages/en/common.json
index 402d85136..51368d9d5 100644
--- a/apps/web/i18n/messages/en/common.json
+++ b/apps/web/i18n/messages/en/common.json
@@ -139,7 +139,58 @@
"associationTemplates": "Shared Templates",
"administration": "Administration",
"accountSettings": "Account Settings",
- "application": "Application"
+ "application": "Application",
+ "courses": "Courses",
+ "calendar": "Calendar",
+ "instructors": "Instructors",
+ "locations": "Locations",
+ "categories": "Categories",
+ "statistics": "Statistics",
+ "events": "Events",
+ "registrations": "Registrations",
+ "holiday passes": "Holiday Passes",
+ "bookings": "Bookings",
+ "rooms": "Rooms",
+ "guests": "Guests",
+ "finance": "Finance",
+ "invoices": "Invoices",
+ "sepa": "SEPA",
+ "payments": "Payments",
+ "documents": "Documents",
+ "generate": "Generate",
+ "templates": "Templates",
+ "newsletter": "Newsletter",
+ "new": "New",
+ "edit": "Edit",
+ "members": "Members",
+ "members cms": "Members",
+ "site builder": "Site Builder",
+ "posts": "Posts",
+ "fischerei": "Fisheries",
+ "waters": "Waters",
+ "species": "Species",
+ "stocking": "Stocking",
+ "leases": "Leases",
+ "catch books": "Catch Books",
+ "permits": "Permits",
+ "competitions": "Competitions",
+ "meetings": "Meetings",
+ "protocols": "Protocols",
+ "tasks": "Tasks",
+ "verband": "Federation",
+ "clubs": "Clubs",
+ "hierarchy": "Hierarchy",
+ "reporting": "Reporting",
+ "modules": "Modules",
+ "import": "Import",
+ "applications": "Applications",
+ "departments": "Departments",
+ "dues": "Dues",
+ "tags": "Tags",
+ "cards": "Cards",
+ "invitations": "Invitations",
+ "attendance": "Attendance",
+ "participants": "Participants"
},
"roles": {
"owner": {
@@ -223,4 +274,4 @@
"action": "Go to Dashboard"
},
"confirm": "Confirm"
-}
+}
\ No newline at end of file
diff --git a/packages/features/member-management/src/components/member-detail-tabs.tsx b/packages/features/member-management/src/components/member-detail-tabs.tsx
index 7d731cd99..0558156a9 100644
--- a/packages/features/member-management/src/components/member-detail-tabs.tsx
+++ b/packages/features/member-management/src/components/member-detail-tabs.tsx
@@ -158,7 +158,11 @@ export function MemberDetailTabs({
/>
@@ -211,7 +215,18 @@ export function MemberDetailTabs({
/>
{
+ const code = String(member.country ?? 'DE');
+ const countries: Record = {
+ DE: 'Deutschland', AT: 'Österreich', CH: 'Schweiz',
+ LI: 'Liechtenstein', LU: 'Luxemburg', IT: 'Italien',
+ FR: 'Frankreich', NL: 'Niederlande', BE: 'Belgien',
+ PL: 'Polen', CZ: 'Tschechien', DK: 'Dänemark',
+ };
+ return countries[code] ?? code;
+ })()
+ }
/>