Redesign member view/edit UI with improved accessibility

- Group fields into Personal Data, Custom Fields, and Payment Data sections
- Fix WCAG AA contrast issues and semantic HTML (dt/dd in dl)
- Format mailto links with member name in href attribute
This commit is contained in:
Moritz 2025-12-03 13:34:44 +01:00
parent 82f1a65b85
commit ed961f7585
Signed by: moritz
GPG key ID: 1020A035E5DD0824
5 changed files with 922 additions and 1642 deletions

View file

@ -11,14 +11,13 @@
msgid ""
msgstr ""
#: lib/mv_web/components/core_components.ex:387
#: lib/mv_web/live/contribution_period_live/show.ex:141
#: lib/mv_web/components/core_components.ex:386
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:248
#: lib/mv_web/live/user_live/index.html.heex:71
#: lib/mv_web/live/user_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Are you sure?"
msgstr ""
@ -29,71 +28,69 @@ msgstr ""
msgid "Attempting to reconnect"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:53
#: lib/mv_web/live/member_live/form.ex:100
#: lib/mv_web/live/member_live/index.html.heex:184
#: lib/mv_web/live/member_live/show.ex:59
#, elixir-autogen, elixir-format
msgid "City"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:78
#: lib/mv_web/live/member_live/index.html.heex:250
#: lib/mv_web/live/user_live/index.html.heex:73
#: lib/mv_web/live/user_live/index.html.heex:74
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:66
#: lib/mv_web/live/member_live/form.ex:241
#: lib/mv_web/live/member_live/index.html.heex:242
#: lib/mv_web/live/user_live/form.ex:267
#: lib/mv_web/live/user_live/index.html.heex:65
#: lib/mv_web/live/user_live/form.ex:265
#: lib/mv_web/live/user_live/index.html.heex:66
#, elixir-autogen, elixir-format
msgid "Edit"
msgstr ""
#: lib/mv_web/live/member_live/show.ex:42
#: lib/mv_web/live/member_live/show.ex:114
#: lib/mv_web/live/member_live/show.ex:40
#: lib/mv_web/live/member_live/show.ex:197
#, elixir-autogen, elixir-format
msgid "Edit Member"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:58
#: lib/mv_web/live/member_live/form.ex:47
#: lib/mv_web/live/member_live/form.ex:106
#: lib/mv_web/live/member_live/index.html.heex:112
#: lib/mv_web/live/member_live/show.ex:51
#: lib/mv_web/live/member_live/show.ex:75
#: lib/mv_web/live/user_live/form.ex:46
#: lib/mv_web/live/user_live/index.html.heex:44
#: lib/mv_web/live/user_live/show.ex:49
#: lib/mv_web/live/user_live/show.ex:50
#, elixir-autogen, elixir-format
msgid "Email"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:45
#: lib/mv_web/live/member_live/show.ex:49
#: lib/mv_web/live/member_live/form.ex:81
#: lib/mv_web/live/member_live/show.ex:64
#, elixir-autogen, elixir-format
msgid "First Name"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:50
#: lib/mv_web/live/member_live/form.ex:117
#: lib/mv_web/live/member_live/index.html.heex:220
#: lib/mv_web/live/member_live/show.ex:56
#: lib/mv_web/live/member_live/show.ex:93
#, elixir-autogen, elixir-format
msgid "Join Date"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:46
#: lib/mv_web/live/member_live/show.ex:50
#: lib/mv_web/live/member_live/form.ex:84
#: lib/mv_web/live/member_live/show.ex:65
#, elixir-autogen, elixir-format
msgid "Last Name"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:44
#: lib/mv_web/live/member_live/index.html.heex:29
#, elixir-autogen, elixir-format
msgid "New Member"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:239
#: lib/mv_web/live/user_live/index.html.heex:62
#: lib/mv_web/live/user_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Show"
msgstr ""
@ -113,52 +110,45 @@ msgstr ""
msgid "close"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:51
#: lib/mv_web/live/member_live/show.ex:57
#: lib/mv_web/live/member_live/form.ex:120
#: lib/mv_web/live/member_live/show.ex:98
#, elixir-autogen, elixir-format
msgid "Exit Date"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:55
#: lib/mv_web/live/member_live/index.html.heex:148
#: lib/mv_web/live/member_live/show.ex:61
#, elixir-autogen, elixir-format
msgid "House Number"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:140
#: lib/mv_web/live/member_live/form.ex:52
#: lib/mv_web/live/member_live/show.ex:58
#: lib/mv_web/live/member_live/form.ex:126
#: lib/mv_web/live/member_live/show.ex:124
#, elixir-autogen, elixir-format
msgid "Notes"
msgstr ""
#: lib/mv_web/live/components/payment_filter_component.ex:94
#: lib/mv_web/live/components/payment_filter_component.ex:144
#: lib/mv_web/live/contribution_period_live/show.ex:186
#: lib/mv_web/live/contribution_period_live/show.ex:241
#: lib/mv_web/live/member_live/form.ex:48
#: lib/mv_web/live/member_live/form.ex:199
#: lib/mv_web/live/member_live/index.html.heex:229
#: lib/mv_web/live/member_live/show.ex:52
#: lib/mv_web/live/member_live/show.ex:162
#: lib/mv_web/live/member_live/show.ex:164
#, elixir-autogen, elixir-format
msgid "Paid"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:49
#: lib/mv_web/live/member_live/index.html.heex:202
#: lib/mv_web/live/member_live/show.ex:55
#, elixir-autogen, elixir-format
msgid "Phone Number"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:56
#: lib/mv_web/live/member_live/form.ex:97
#: lib/mv_web/live/member_live/index.html.heex:166
#: lib/mv_web/live/member_live/show.ex:62
#, elixir-autogen, elixir-format
msgid "Postal Code"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:79
#: lib/mv_web/live/member_live/form.ex:211
#, elixir-autogen, elixir-format
msgid "Save Member"
msgstr ""
@ -166,58 +156,48 @@ msgstr ""
#: lib/mv_web/live/custom_field_live/form.ex:66
#: lib/mv_web/live/custom_field_value_live/form.ex:74
#: lib/mv_web/live/global_settings_live.ex:55
#: lib/mv_web/live/member_live/form.ex:78
#: lib/mv_web/live/user_live/form.ex:249
#: lib/mv_web/live/member_live/form.ex:48
#: lib/mv_web/live/member_live/form.ex:210
#: lib/mv_web/live/user_live/form.ex:248
#, elixir-autogen, elixir-format
msgid "Saving..."
msgstr ""
#: lib/mv_web/live/member_live/form.ex:54
#: lib/mv_web/live/member_live/form.ex:91
#: lib/mv_web/live/member_live/index.html.heex:130
#: lib/mv_web/live/member_live/show.ex:60
#, elixir-autogen, elixir-format
msgid "Street"
msgstr ""
#: lib/mv_web/live/member_live/show.ex:48
#, elixir-autogen, elixir-format
msgid "Id"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index/formatter.ex:62
#: lib/mv_web/live/member_live/show.ex:53
#: lib/mv_web/live/member_live/index/formatter.ex:61
#: lib/mv_web/live/member_live/show.ex:303
#, elixir-autogen, elixir-format
msgid "No"
msgstr ""
#: lib/mv_web/live/member_live/show.ex:113
#: lib/mv_web/live/member_live/show.ex:196
#, elixir-autogen, elixir-format
msgid "Show Member"
msgstr ""
#: lib/mv_web/live/member_live/show.ex:34
#, elixir-autogen, elixir-format
msgid "This is a member record from your database."
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:234
#: lib/mv_web/live/member_live/index/formatter.ex:61
#: lib/mv_web/live/member_live/show.ex:53
#: lib/mv_web/live/member_live/index/formatter.ex:60
#: lib/mv_web/live/member_live/show.ex:303
#, elixir-autogen, elixir-format
msgid "Yes"
msgstr ""
#: lib/mv_web/live/custom_field_live/form.ex:110
#: lib/mv_web/live/custom_field_value_live/form.ex:233
#: lib/mv_web/live/member_live/form.ex:137
#: lib/mv_web/live/member_live/form.ex:269
#, elixir-autogen, elixir-format
msgid "create"
msgstr ""
#: lib/mv_web/live/custom_field_live/form.ex:111
#: lib/mv_web/live/custom_field_value_live/form.ex:234
#: lib/mv_web/live/member_live/form.ex:138
#: lib/mv_web/live/member_live/form.ex:270
#, elixir-autogen, elixir-format
msgid "update"
msgstr ""
@ -227,7 +207,7 @@ msgstr ""
msgid "Incorrect email or password"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:144
#: lib/mv_web/live/member_live/form.ex:276
#, elixir-autogen, elixir-format
msgid "Member %{action} successfully"
msgstr ""
@ -260,8 +240,8 @@ msgstr ""
#: lib/mv_web/live/custom_field_live/form.ex:69
#: lib/mv_web/live/custom_field_live/index.ex:120
#: lib/mv_web/live/custom_field_value_live/form.ex:77
#: lib/mv_web/live/member_live/form.ex:81
#: lib/mv_web/live/user_live/form.ex:252
#: lib/mv_web/live/member_live/form.ex:208
#: lib/mv_web/live/user_live/form.ex:251
#, elixir-autogen, elixir-format
msgid "Cancel"
msgstr ""
@ -281,17 +261,22 @@ msgstr ""
msgid "Edit User"
msgstr ""
#: lib/mv_web/live/user_live/show.ex:51
#: lib/mv_web/live/user_live/show.ex:53
#, elixir-autogen, elixir-format
msgid "Enabled"
msgstr ""
#: lib/mv_web/live/user_live/show.ex:49
#, elixir-autogen, elixir-format
msgid "ID"
msgstr ""
#: lib/mv_web/live/custom_field_live/form.ex:62
#, elixir-autogen, elixir-format
msgid "Immutable"
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:113
#: lib/mv_web/components/layouts/navbar.ex:102
#, elixir-autogen, elixir-format
msgid "Logout"
msgstr ""
@ -303,19 +288,18 @@ msgid "Listing Users"
msgstr ""
#: lib/mv_web/live/custom_field_value_live/form.ex:60
#: lib/mv_web/live/member_live/form.ex:242
#, elixir-autogen, elixir-format
msgid "Member"
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:25
#: lib/mv_web/live/contribution_type_live/index.ex:61
#: lib/mv_web/live/member_live/index.ex:74
#: lib/mv_web/live/member_live/index.ex:73
#: lib/mv_web/live/member_live/index.html.heex:3
#, elixir-autogen, elixir-format
msgid "Members"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:48
#: lib/mv_web/live/custom_field_live/form.ex:51
#, elixir-autogen, elixir-format
msgid "Name"
@ -326,12 +310,16 @@ msgstr ""
msgid "New User"
msgstr ""
#: lib/mv_web/live/user_live/show.ex:51
#: lib/mv_web/live/user_live/show.ex:53
#, elixir-autogen, elixir-format
msgid "Not enabled"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:207
#: lib/mv_web/live/user_live/show.ex:51
#, elixir-autogen, elixir-format
msgid "Not set"
msgstr ""
#: lib/mv_web/live/user_live/form.ex:107
#: lib/mv_web/live/user_live/form.ex:115
#: lib/mv_web/live/user_live/form.ex:224
@ -339,12 +327,18 @@ msgstr ""
msgid "Note"
msgstr ""
#: lib/mv_web/live/user_live/show.ex:50
#: lib/mv_web/live/user_live/index.html.heex:52
#: lib/mv_web/live/user_live/show.ex:51
#, elixir-autogen, elixir-format
msgid "OIDC ID"
msgstr ""
#: lib/mv_web/live/user_live/show.ex:52
#, elixir-autogen, elixir-format
msgid "Password Authentication"
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:106
#: lib/mv_web/components/layouts/navbar.ex:95
#, elixir-autogen, elixir-format
msgid "Profil"
msgstr ""
@ -364,17 +358,17 @@ msgstr ""
msgid "Select member"
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:110
#: lib/mv_web/components/layouts/navbar.ex:99
#, elixir-autogen, elixir-format
msgid "Settings"
msgstr ""
#: lib/mv_web/live/user_live/form.ex:250
#: lib/mv_web/live/user_live/form.ex:249
#, elixir-autogen, elixir-format
msgid "Save User"
msgstr ""
#: lib/mv_web/live/user_live/show.ex:77
#: lib/mv_web/live/user_live/show.ex:79
#, elixir-autogen, elixir-format
msgid "Show User"
msgstr ""
@ -394,7 +388,7 @@ msgstr ""
msgid "Use this form to manage user records in your database."
msgstr ""
#: lib/mv_web/live/user_live/form.ex:268
#: lib/mv_web/live/user_live/form.ex:266
#: lib/mv_web/live/user_live/show.ex:34
#, elixir-autogen, elixir-format
msgid "User"
@ -422,7 +416,8 @@ msgstr ""
msgid "descending"
msgstr ""
#: lib/mv_web/live/user_live/form.ex:267
#: lib/mv_web/live/member_live/form.ex:241
#: lib/mv_web/live/user_live/form.ex:265
#, elixir-autogen, elixir-format
msgid "New"
msgstr ""
@ -498,30 +493,29 @@ msgid "User will be created without a password. Check 'Set Password' to add one.
msgstr ""
#: lib/mv_web/live/user_live/form.ex:126
#: lib/mv_web/live/user_live/index.html.heex:52
#: lib/mv_web/live/user_live/show.ex:53
#: lib/mv_web/live/user_live/index.html.heex:53
#: lib/mv_web/live/user_live/show.ex:55
#, elixir-autogen, elixir-format
msgid "Linked Member"
msgstr ""
#: lib/mv_web/live/member_live/show.ex:63
#: lib/mv_web/live/member_live/show.ex:106
#, elixir-autogen, elixir-format
msgid "Linked User"
msgstr ""
#: lib/mv_web/live/user_live/index.html.heex:56
#: lib/mv_web/live/user_live/show.ex:63
#: lib/mv_web/live/user_live/index.html.heex:57
#: lib/mv_web/live/user_live/show.ex:65
#, elixir-autogen, elixir-format
msgid "No member linked"
msgstr ""
#: lib/mv_web/live/member_live/show.ex:73
#: lib/mv_web/live/member_live/show.ex:116
#, elixir-autogen, elixir-format
msgid "No user linked"
msgstr ""
#: lib/mv_web/live/member_live/show.ex:37
#: lib/mv_web/live/member_live/show.ex:39
#: lib/mv_web/live/member_live/show.ex:30
#, elixir-autogen, elixir-format
msgid "Back to members list"
msgstr ""
@ -532,14 +526,14 @@ msgstr ""
msgid "Back to users list"
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:44
#: lib/mv_web/components/layouts/navbar.ex:50
#: lib/mv_web/components/layouts/navbar.ex:33
#: lib/mv_web/components/layouts/navbar.ex:39
#, elixir-autogen, elixir-format
msgid "Select language"
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:57
#: lib/mv_web/components/layouts/navbar.ex:77
#: lib/mv_web/components/layouts/navbar.ex:46
#: lib/mv_web/components/layouts/navbar.ex:66
#, elixir-autogen, elixir-format
msgid "Toggle dark mode"
msgstr ""
@ -602,12 +596,6 @@ msgstr ""
msgid "Choose a custom field"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:58
#: lib/mv_web/live/member_live/show.ex:78
#, elixir-autogen, elixir-format
msgid "Custom Field Values"
msgstr ""
#: lib/mv_web/live/custom_field_value_live/form.ex:51
#, elixir-autogen, elixir-format
msgid "Custom field"
@ -644,6 +632,8 @@ msgid "Use this form to manage custom_field records in your database."
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:26
#: lib/mv_web/live/member_live/form.ex:135
#: lib/mv_web/live/member_live/show.ex:136
#, elixir-autogen, elixir-format
msgid "Custom Fields"
msgstr ""
@ -711,7 +701,6 @@ msgstr ""
msgid "Manage global settings for the association."
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:102
#: lib/mv_web/live/global_settings_live.ex:56
#, elixir-autogen, elixir-format
msgid "Save Settings"
@ -732,7 +721,7 @@ msgstr ""
msgid "Available members"
msgstr ""
#: lib/mv_web/live/user_live/form.ex:359
#: lib/mv_web/live/user_live/form.ex:357
#, elixir-autogen, elixir-format
msgid "Failed to link member: %{error}"
msgstr ""
@ -772,7 +761,7 @@ msgstr ""
msgid "Unlinking scheduled"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:160
#: lib/mv_web/live/member_live/index.ex:159
#, elixir-autogen, elixir-format
msgid "Copied %{count} email address to clipboard"
msgid_plural "Copied %{count} email addresses to clipboard"
@ -789,12 +778,12 @@ msgstr ""
msgid "Copy emails"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:149
#: lib/mv_web/live/member_live/index.ex:148
#, elixir-autogen, elixir-format
msgid "No email addresses found"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:146
#: lib/mv_web/live/member_live/index.ex:145
#, elixir-autogen, elixir-format
msgid "No members selected"
msgstr ""
@ -809,16 +798,11 @@ msgstr ""
msgid "Open in email program"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:169
#: lib/mv_web/live/member_live/index.ex:168
#, elixir-autogen, elixir-format
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:40
#, elixir-autogen, elixir-format
msgid "Fields marked with an asterisk (*) cannot be empty."
msgstr ""
#: lib/mv_web/components/core_components.ex:206
#: lib/mv_web/components/core_components.ex:223
#: lib/mv_web/components/core_components.ex:250
@ -849,428 +833,93 @@ msgstr ""
msgid "Payment filter"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:107
#: lib/mv_web/live/member_live/show.ex:70
#, elixir-autogen, elixir-format
msgid "%{count} period selected"
msgid_plural "%{count} periods selected"
msgstr[0] ""
msgstr[1] ""
#: lib/mv_web/live/contribution_type_live/index.ex:113
#, elixir-autogen, elixir-format
msgid "About Contribution Types"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:138
#: lib/mv_web/live/contribution_type_live/index.ex:53
#, elixir-autogen, elixir-format
msgid "Amount"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:48
#, elixir-autogen, elixir-format
msgid "Back to Settings"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:124
#, elixir-autogen, elixir-format
msgid "Can be changed at any time. Amount changes affect future periods only."
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:77
#, elixir-autogen, elixir-format
msgid "Cannot delete - members assigned"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:83
#, elixir-autogen, elixir-format
msgid "Change Contribution Type"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:42
#, elixir-autogen, elixir-format
msgid "Configure global settings for membership contributions."
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:34
#: lib/mv_web/live/contribution_settings_live.ex:27
#: lib/mv_web/live/contribution_settings_live.ex:40
#, elixir-autogen, elixir-format
msgid "Contribution Settings"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:62
#, elixir-autogen, elixir-format
msgid "Contribution Start"
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:32
#: lib/mv_web/live/contribution_type_live/index.ex:25
#: lib/mv_web/live/contribution_type_live/index.ex:36
#, elixir-autogen, elixir-format
msgid "Contribution Types"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:224
#, elixir-autogen, elixir-format
msgid "Contribution start"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:41
#, elixir-autogen, elixir-format
msgid "Contribution type"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:117
#, elixir-autogen, elixir-format
msgid "Contribution types define different membership fee structures. Each type has a fixed interval (monthly, quarterly, half-yearly, yearly) that cannot be changed after creation."
msgstr ""
#: lib/mv_web/components/layouts/navbar.ex:30
#, elixir-autogen, elixir-format
msgid "Contributions"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:39
#, elixir-autogen, elixir-format
msgid "Contributions for %{name}"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:159
#, elixir-autogen, elixir-format
msgid "Current"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:60
#, elixir-autogen, elixir-format
msgid "Default Contribution Type"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:133
#, elixir-autogen, elixir-format
msgid "Deletion"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:173
#, elixir-autogen, elixir-format
msgid "Example: Member Contribution View"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:113
#, elixir-autogen, elixir-format
msgid "Examples"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:262
#: lib/mv_web/live/contribution_type_live/index.ex:172
#, elixir-autogen, elixir-format
msgid "Family"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:128
#, elixir-autogen, elixir-format
msgid "Fixed after creation. Members can only switch between types with the same interval."
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:228
#, elixir-autogen, elixir-format
msgid "Generated periods"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:52
#, elixir-autogen, elixir-format
msgid "Global Settings"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:343
#: lib/mv_web/live/contribution_settings_live.ex:275
#: lib/mv_web/live/contribution_type_live/index.ex:203
#, elixir-autogen, elixir-format
msgid "Half-yearly"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:181
#, elixir-autogen, elixir-format
msgid "Half-yearly contribution for supporting members"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:87
#: lib/mv_web/live/contribution_type_live/index.ex:188
#, elixir-autogen, elixir-format
msgid "Honorary"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:85
#, elixir-autogen, elixir-format
msgid "Include joining period"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:137
#: lib/mv_web/live/contribution_type_live/index.ex:57
#: lib/mv_web/live/contribution_type_live/index.ex:127
#, elixir-autogen, elixir-format
msgid "Interval"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:220
#, elixir-autogen, elixir-format
msgid "Joining date"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:331
#, elixir-autogen, elixir-format
msgid "Joining year - reduced to 0"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:38
#, elixir-autogen, elixir-format
msgid "Manage contribution types for membership fees."
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:116
#, elixir-autogen, elixir-format
msgid "Mark as Paid"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:120
#, elixir-autogen, elixir-format
msgid "Mark as Suspended"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:124
#, elixir-autogen, elixir-format
msgid "Mark as Unpaid"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:26
#, elixir-autogen, elixir-format
msgid "Member Contributions"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:122
#, elixir-autogen, elixir-format
msgid "Member pays for the year they joined"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:155
#, elixir-autogen, elixir-format
msgid "Member pays from the joining month"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:144
#, elixir-autogen, elixir-format
msgid "Member pays from the next full quarter"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:133
#, elixir-autogen, elixir-format
msgid "Member pays from the next full year"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:43
#, elixir-autogen, elixir-format
msgid "Member since"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:92
#, elixir-autogen, elixir-format
msgid "Members can only switch between contribution types with the same payment interval (e.g., yearly to yearly). This prevents complex period overlaps."
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:341
#: lib/mv_web/live/contribution_settings_live.ex:273
#: lib/mv_web/live/contribution_type_live/index.ex:201
#, elixir-autogen, elixir-format
msgid "Monthly"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:150
#, elixir-autogen, elixir-format
msgid "Monthly Interval - Joining Period Included"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:165
#, elixir-autogen, elixir-format
msgid "Monthly fee for students and trainees"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:123
#, elixir-autogen, elixir-format
msgid "Name & Amount"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:42
#, elixir-autogen, elixir-format
msgid "New Contribution Type"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:189
#, elixir-autogen, elixir-format
msgid "No fee for honorary members"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:134
#, elixir-autogen, elixir-format
msgid "Only possible if no members are assigned to this type."
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:70
#, elixir-autogen, elixir-format
msgid "Open Contributions"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:301
#, elixir-autogen, elixir-format
msgid "Paid via bank transfer"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:225
#: lib/mv_web/live/contribution_settings_live.ex:197
#: lib/mv_web/live/contribution_type_live/index.ex:97
#, elixir-autogen, elixir-format
msgid "Preview Mockup"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:342
#: lib/mv_web/live/contribution_settings_live.ex:274
#: lib/mv_web/live/contribution_type_live/index.ex:202
#, elixir-autogen, elixir-format
msgid "Quarterly"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:139
#, elixir-autogen, elixir-format
msgid "Quarterly Interval - Joining Period Excluded"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:173
#, elixir-autogen, elixir-format
msgid "Quarterly fee for family memberships"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:86
#: lib/mv_web/live/contribution_settings_live.ex:250
#: lib/mv_web/live/contribution_type_live/index.ex:156
#, elixir-autogen, elixir-format
msgid "Reduced"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:157
#, elixir-autogen, elixir-format
msgid "Reduced fee for unemployed, pensioners, or low income"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:275
#: lib/mv_web/live/contribution_settings_live.ex:244
#: lib/mv_web/live/contribution_type_live/index.ex:148
#, elixir-autogen, elixir-format
msgid "Regular"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:204
#, elixir-autogen, elixir-format
msgid "Reopen"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:176
#, elixir-autogen, elixir-format
msgid "See how the contribution periods will be displayed for an individual member. This example shows Maria Weber with multiple contribution periods."
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:149
#, elixir-autogen, elixir-format
msgid "Standard membership fee for regular members"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:139
#, elixir-autogen, elixir-format
msgid "Status"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:256
#: lib/mv_web/live/contribution_type_live/index.ex:164
#, elixir-autogen, elixir-format
msgid "Student"
msgid "Address"
msgstr ""
#: lib/mv_web/live/contribution_type_live/index.ex:180
#: lib/mv_web/live/member_live/form.ex:37
#: lib/mv_web/live/member_live/show.ex:32
#, elixir-autogen, elixir-format
msgid "Supporting Member"
msgid "Back"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:195
#: lib/mv_web/live/member_live/form.ex:65
#: lib/mv_web/live/member_live/show.ex:50
#, elixir-autogen, elixir-format
msgid "Suspend"
msgid "Coming soon"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:259
#: lib/mv_web/live/member_live/form.ex:57
#: lib/mv_web/live/member_live/show.ex:48
#, elixir-autogen, elixir-format
msgid "Suspended"
msgid "Contact Data"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:69
#: lib/mv_web/live/member_live/form.ex:175
#: lib/mv_web/live/member_live/show.ex:160
#, elixir-autogen, elixir-format
msgid "This contribution type is automatically assigned to all new members. Can be changed individually per member."
msgid "Contribution"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:227
#: lib/mv_web/live/contribution_settings_live.ex:199
#: lib/mv_web/live/contribution_type_live/index.ex:99
#: lib/mv_web/live/member_live/form.ex:94
#, elixir-autogen, elixir-format
msgid "This page is not functional and only displays the planned features."
msgid "Nr."
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:136
#: lib/mv_web/live/member_live/form.ex:186
#: lib/mv_web/live/member_live/show.ex:161
#, elixir-autogen, elixir-format
msgid "Time Period"
msgid "Payment Cycle"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:66
#: lib/mv_web/live/member_live/form.ex:166
#: lib/mv_web/live/member_live/show.ex:153
#, elixir-autogen, elixir-format
msgid "Total Contributions"
msgid "Payment Data"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:250
#: lib/mv_web/live/member_live/form.ex:68
#: lib/mv_web/live/member_live/show.ex:52
#, elixir-autogen, elixir-format
msgid "Unpaid"
msgid "Payments"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:183
#: lib/mv_web/live/member_live/show.ex:166
#, elixir-autogen, elixir-format
msgid "View Example Member"
msgid "Pending"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:90
#: lib/mv_web/live/member_live/form.ex:76
#: lib/mv_web/live/member_live/show.ex:60
#, elixir-autogen, elixir-format
msgid "When active: Members pay from the period of their joining."
msgid "Personal Data"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:93
#: lib/mv_web/live/member_live/form.ex:111
#: lib/mv_web/live/member_live/show.ex:87
#, elixir-autogen, elixir-format
msgid "When inactive: Members pay from the next full period after joining."
msgid "Phone"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:98
#: lib/mv_web/live/member_live/form.ex:49
#, elixir-autogen, elixir-format
msgid "Why are not all contribution types shown?"
msgid "Save"
msgstr ""
#: lib/mv_web/live/contribution_period_live/show.ex:85
#: lib/mv_web/live/contribution_period_live/show.ex:86
#: lib/mv_web/live/contribution_period_live/show.ex:87
#: lib/mv_web/live/contribution_period_live/show.ex:344
#: lib/mv_web/live/contribution_settings_live.ex:276
#: lib/mv_web/live/contribution_type_live/index.ex:204
#: lib/mv_web/live/member_live/form.ex:169
#: lib/mv_web/live/member_live/show.ex:156
#, elixir-autogen, elixir-format
msgid "Yearly"
msgid "This data is for demonstration purposes only (mockup)."
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:128
#: lib/mv_web/live/member_live/form.ex:190
#: lib/mv_web/live/member_live/show.ex:161
#, elixir-autogen, elixir-format
msgid "Yearly Interval - Joining Period Excluded"
msgid "monthly"
msgstr ""
#: lib/mv_web/live/contribution_settings_live.ex:117
#: lib/mv_web/live/member_live/form.ex:194
#, elixir-autogen, elixir-format
msgid "Yearly Interval - Joining Period Included"
msgid "yearly"
msgstr ""