feat: set workspace url when creating a new workspace (#172)

* feat: add migration to remove not null constraint from referenceId on subscriptions

* feat(cloud): write worspace slug availability checks to db

* feat: add migration to add cascade set null to referenceId on subscription

* feat: update workspace and subscripton schema

* feat: add createWorkspaceSlugCheck repo func

* feat: set workspace url on creation

* chore: update translations

* refactor: various tweaks and fixes

* feat: add pro bolt to pricing notice

* feat: toggle pro subscription

* fix: hide pro subscription notice for self hosters

* feat: add pro upgrade message on members page

* feat: hide pro upgrade notice on small viewports

* feat: update workspace url placeholder
This commit is contained in:
Henry
2025-09-11 20:32:02 +01:00
committed by GitHub
parent 4f7fa1a228
commit 2f88366418
31 changed files with 8942 additions and 385 deletions

View File

@@ -148,7 +148,7 @@ msgstr "Alle Systeme funktionieren"
msgid "Already have an account? <0><1>Sign in</1></0>"
msgstr "Du hast bereits ein Konto? <0><1>Anmelden</1></0>"
#: src/views/settings/index.tsx:124
#: src/views/settings/index.tsx:127
msgid "An error occurred while disconnecting your Trello account."
msgstr "Beim Trennen deines Trello-Kontos ist ein Fehler aufgetreten."
@@ -156,7 +156,7 @@ msgstr "Beim Trennen deines Trello-Kontos ist ein Fehler aufgetreten."
msgid "An unexpected error occurred. Please try again later."
msgstr "Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es später erneut."
#: src/views/settings/index.tsx:293
#: src/views/settings/index.tsx:296
msgid "API keys"
msgstr "API-Schlüssel"
@@ -227,11 +227,11 @@ msgid "billed monthly"
msgstr "monatlich abgerechnet"
#: src/views/boards/components/TemplateBoards.tsx:55
#: src/views/settings/index.tsx:232
#: src/views/settings/index.tsx:235
msgid "Billing"
msgstr "Abrechnung"
#: src/views/settings/index.tsx:242
#: src/views/settings/index.tsx:245
msgid "Billing portal"
msgstr "Abrechnungsportal"
@@ -243,9 +243,10 @@ msgstr "Blogbeitrag"
msgid "Board"
msgstr "Board"
#: src/views/settings/components/UpgradeToProConfirmation.tsx:80
msgid "Board analytics (coming soon)"
msgstr "Board-Analytik (demnächst verfügbar)"
#: src/components/NewWorkspaceForm.tsx:346
#: src/views/settings/components/UpgradeToProConfirmation.tsx:81
msgid "Board analytics"
msgstr "Board-Analytik"
#: src/views/boards/components/NewBoardForm.tsx:21
msgid "Board name cannot exceed 100 characters"
@@ -315,7 +316,7 @@ msgstr "Fehlerbericht"
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
#: src/views/settings/components/UpgradeToProConfirmation.tsx:94
#: src/views/settings/components/UpgradeToProConfirmation.tsx:104
msgid "Cancel"
msgstr "Abbrechen"
@@ -329,12 +330,12 @@ msgstr "Kartentitel"
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
#: src/views/settings/index.tsx:325
#: src/views/settings/index.tsx:335
#: src/views/settings/index.tsx:328
#: src/views/settings/index.tsx:338
msgid "Change Password"
msgstr "Passwort ändern"
#: src/views/settings/index.tsx:224
#: src/views/settings/index.tsx:227
msgid "Change the language of the app."
msgstr "Ändere die Sprache der App."
@@ -364,7 +365,9 @@ msgstr "Code-Review"
msgid "Collaborate seamlessly with your team."
msgstr "Arbeite nahtlos mit deinem Team zusammen."
#: src/components/NewWorkspaceForm.tsx:349
#: src/views/home/components/Features.tsx:66
#: src/views/settings/components/UpgradeToProConfirmation.tsx:84
msgid "Coming soon"
msgstr "Demnächst verfügbar"
@@ -398,7 +401,7 @@ msgid "Confirm your new password"
msgstr "Bestätigen Sie Ihr neues Passwort"
#: src/views/boards/components/ImportBoardsForm.tsx:157
#: src/views/settings/index.tsx:269
#: src/views/settings/index.tsx:272
msgid "Connect Trello"
msgstr "Trello verbinden"
@@ -406,7 +409,7 @@ msgstr "Trello verbinden"
msgid "Connect your favorite tools to streamline your workflow."
msgstr "Verbinde deine Lieblingstools, um deinen Arbeitsablauf zu optimieren."
#: src/views/settings/index.tsx:256
#: src/views/settings/index.tsx:259
msgid "Connect your Trello account to import boards."
msgstr "Verbinde dein Trello-Konto, um Boards zu importieren."
@@ -478,7 +481,7 @@ msgstr "Neues Label erstellen"
msgid "Create new list"
msgstr "Neue Liste erstellen"
#: src/components/NewWorkspaceForm.tsx:94
#: src/components/NewWorkspaceForm.tsx:384
#: src/components/WorkspaceMenu.tsx:116
msgid "Create workspace"
msgstr "Arbeitsbereich erstellen"
@@ -499,6 +502,11 @@ msgstr "Aktuelles Passwort ist erforderlich"
msgid "Custom domain"
msgstr "Benutzerdefinierte Domain"
#: src/components/NewWorkspaceForm.tsx:315
msgid "Custom URLs require upgrading to a Pro plan"
msgstr "Benutzerdefinierte URLs erfordern ein Upgrade auf einen Pro-Plan"
#: src/components/NewWorkspaceForm.tsx:339
#: src/views/settings/components/UpgradeToProConfirmation.tsx:74
msgid "Custom workspace URL"
msgstr "Benutzerdefinierte Workspace-URL"
@@ -520,8 +528,8 @@ msgid "Delete"
msgstr "Löschen"
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
#: src/views/settings/index.tsx:343
#: src/views/settings/index.tsx:353
#: src/views/settings/index.tsx:346
#: src/views/settings/index.tsx:356
msgid "Delete account"
msgstr "Konto löschen"
@@ -542,8 +550,8 @@ msgid "Delete list"
msgstr "Liste löschen"
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
#: src/views/settings/index.tsx:306
#: src/views/settings/index.tsx:317
#: src/views/settings/index.tsx:309
#: src/views/settings/index.tsx:320
msgid "Delete workspace"
msgstr "Workspace löschen"
@@ -569,7 +577,7 @@ msgstr "hat Checklistenelement <0>{0}</0> gelöscht"
msgid "Design"
msgstr "Design"
#: src/views/settings/index.tsx:284
#: src/views/settings/index.tsx:287
msgid "Disconnect Trello"
msgstr "Trello trennen"
@@ -577,7 +585,7 @@ msgstr "Trello trennen"
msgid "Discuss and collaborate on cards."
msgstr "Diskutiere und arbeite gemeinsam an Karten."
#: src/views/settings/index.tsx:173
#: src/views/settings/index.tsx:176
msgid "Display name"
msgstr "Anzeigename"
@@ -695,7 +703,7 @@ msgstr "Fehler beim Löschen des Labels"
msgid "Error deleting workspace"
msgstr "Fehler beim Löschen des Arbeitsbereichs"
#: src/views/settings/index.tsx:123
#: src/views/settings/index.tsx:126
msgid "Error disconnecting Trello"
msgstr "Fehler beim Trennen von Trello"
@@ -729,6 +737,10 @@ msgstr "Fehler beim Aktualisieren der Workspace-URL"
msgid "Error upgrading subscription"
msgstr "Fehler beim Upgrade des Abonnements"
#: src/components/NewWorkspaceForm.tsx:142
msgid "Error upgrading to Pro"
msgstr "Fehler beim Upgrade auf Pro"
#: src/views/settings/components/Avatar.tsx:56
#: src/views/settings/components/Avatar.tsx:97
msgid "Error uploading profile image"
@@ -796,7 +808,7 @@ msgid "Free"
msgstr "Kostenlos"
#: src/views/members/components/InviteMemberForm.tsx:193
#: src/views/members/index.tsx:189
#: src/views/members/index.tsx:208
msgid "Free Plan"
msgstr "Kostenloser Plan"
@@ -955,7 +967,7 @@ msgstr "Vorstellungsgespräch"
msgid "Invalid email address"
msgstr "Ungültige E-Mail-Adresse"
#: src/views/members/index.tsx:201
#: src/views/members/index.tsx:221
msgid "Invite"
msgstr "Einladen"
@@ -999,15 +1011,20 @@ msgstr "Labels"
msgid "Labels & Filters"
msgstr "Labels & Filter"
#: src/views/settings/index.tsx:221
#: src/views/settings/index.tsx:224
msgid "Language"
msgstr "Sprache"
#: src/components/NewWorkspaceForm.tsx:332
#: src/views/settings/components/UpgradeToProConfirmation.tsx:67
msgid "Launch offer"
msgstr "Einführungsangebot"
#: src/views/home/components/Pricing.tsx:98
#: src/views/members/index.tsx:191
msgid "Launch offer: Get unlimited members with Pro"
msgstr "Einführungsangebot: Erhalten Sie unbegrenzte Mitglieder mit Pro"
#: src/views/home/components/Pricing.tsx:99
msgid "Launch offer: unlimited seats for just $29/month with Pro"
msgstr "Einführungsangebot: unbegrenzte Plätze für nur $29/Monat mit Pro"
@@ -1076,12 +1093,12 @@ msgstr "Mittlere Priorität"
#: src/views/board/components/Filters.tsx:93
#: src/views/board/components/NewCardForm.tsx:357
#: src/views/card/index.tsx:125
#: src/views/members/index.tsx:172
#: src/views/members/index.tsx:178
msgid "Members"
msgstr "Mitglieder"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/members/index.tsx:168
#: src/views/members/index.tsx:173
msgid "Members | {0}"
msgstr "Mitglieder | {0}"
@@ -1153,7 +1170,7 @@ msgstr "Neues Passwort muss sich vom aktuellen Passwort unterscheiden"
msgid "New Ticket"
msgstr "Neues Ticket"
#: src/components/NewWorkspaceForm.tsx:65
#: src/components/NewWorkspaceForm.tsx:240
msgid "New workspace"
msgstr "Neuer Workspace"
@@ -1189,11 +1206,11 @@ msgstr "Angebot"
msgid "Onboarding"
msgstr "Einarbeitung"
#: src/views/settings/index.tsx:346
#: src/views/settings/index.tsx:349
msgid "Once you delete your account, there is no going back. This action cannot be undone."
msgstr "Sobald Sie Ihr Konto löschen, gibt es kein Zurück mehr. Diese Aktion kann nicht rückgängig gemacht werden."
#: src/views/settings/index.tsx:309
#: src/views/settings/index.tsx:312
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
msgstr "Sobald Sie Ihren Arbeitsbereich löschen, gibt es kein Zurück mehr. Diese Aktion kann nicht rückgängig gemacht werden."
@@ -1225,11 +1242,11 @@ msgstr "Passwort muss mindestens 8 Zeichen lang sein"
msgid "Passwords do not match"
msgstr "Passwörter stimmen nicht überein"
#: src/views/home/components/Pricing.tsx:101
#: src/views/home/components/Pricing.tsx:102
msgid "Payment frequency"
msgstr "Zahlungshäufigkeit"
#: src/views/members/index.tsx:129
#: src/views/members/index.tsx:134
msgid "Pending"
msgstr "Ausstehend"
@@ -1268,7 +1285,7 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
#: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:42
#: src/components/NewWorkspaceForm.tsx:155
#: src/views/board/components/NewCardForm.tsx:174
#: src/views/board/components/NewListForm.tsx:78
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
@@ -1312,7 +1329,7 @@ msgid "Pricing"
msgstr "Preise"
#: src/views/home/components/Pricing.tsx:56
#: src/views/settings/components/UpgradeToProConfirmation.tsx:86
#: src/views/settings/components/UpgradeToProConfirmation.tsx:91
msgid "Priority email support"
msgstr "Prioritäts-E-Mail-Support"
@@ -1324,7 +1341,7 @@ msgstr "Datenschutzrichtlinie"
msgid "Private"
msgstr "Privat"
#: src/views/members/index.tsx:186
#: src/views/members/index.tsx:205
msgid "Pro Plan"
msgstr "Pro-Plan"
@@ -1336,7 +1353,7 @@ msgstr "Pro-Plan ∞"
msgid "Profile image updated"
msgstr "Profilbild aktualisiert"
#: src/views/settings/index.tsx:168
#: src/views/settings/index.tsx:171
msgid "Profile picture"
msgstr "Profilbild"
@@ -1372,7 +1389,7 @@ msgstr "Remote"
msgid "Remove"
msgstr "Entfernen"
#: src/views/members/index.tsx:143
#: src/views/members/index.tsx:148
msgid "Remove member"
msgstr "Mitglied entfernen"
@@ -1428,7 +1445,7 @@ msgstr "Widerrufen"
msgid "Roadmap"
msgstr "Roadmap"
#: src/views/members/index.tsx:223
#: src/views/members/index.tsx:243
msgid "Role"
msgstr "Rolle"
@@ -1477,12 +1494,12 @@ msgid "Senior"
msgstr "Senior"
#: src/components/SideNavigation.tsx:78
#: src/views/settings/index.tsx:162
#: src/views/settings/index.tsx:165
msgid "Settings"
msgstr "Einstellungen"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/settings/index.tsx:158
#: src/views/settings/index.tsx:161
msgid "Settings | {0}"
msgstr "Einstellungen | {0}"
@@ -1550,7 +1567,7 @@ msgid "System"
msgstr "System"
#: src/views/members/components/InviteMemberForm.tsx:182
#: src/views/members/index.tsx:188
#: src/views/members/index.tsx:207
msgid "Team Plan"
msgstr "Team-Plan"
@@ -1618,6 +1635,14 @@ msgstr "Dies führt zur permanenten Löschung aller mit diesem Workspace verbund
msgid "This will result in the permanent deletion of all data associated with your account."
msgstr "Dies führt zur permanenten Löschung aller mit deinem Konto verbundenen Daten."
#: src/components/NewWorkspaceForm.tsx:284
msgid "This workspace URL has already been taken"
msgstr "Diese Workspace-URL ist bereits vergeben"
#: src/components/NewWorkspaceForm.tsx:286
msgid "This workspace URL is reserved"
msgstr "Diese Workspace-URL ist reserviert"
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:123
msgid "This workspace username has already been taken"
msgstr "Dieser Workspace-Benutzername ist bereits vergeben"
@@ -1635,7 +1660,7 @@ msgstr "Menü umschalten"
msgid "Track all card changes with detailed activity history."
msgstr "Verfolge alle kartenänderungen mit detaillierter aktivitätshistorie."
#: src/views/settings/index.tsx:116
#: src/views/settings/index.tsx:119
msgid "Trello disconnected"
msgstr "Trello getrennt"
@@ -1667,7 +1692,7 @@ msgstr "Checkliste kann nicht erstellt werden"
msgid "Unable to create list"
msgstr "Liste konnte nicht erstellt werden"
#: src/components/NewWorkspaceForm.tsx:41
#: src/components/NewWorkspaceForm.tsx:154
msgid "Unable to create workspace"
msgstr "Workspace konnte nicht erstellt werden"
@@ -1766,6 +1791,7 @@ msgstr "Unbegrenzte kommentare"
msgid "Unlimited lists"
msgstr "Unbegrenzte listen"
#: src/components/NewWorkspaceForm.tsx:329
#: src/views/settings/components/UpgradeToProConfirmation.tsx:64
msgid "Unlimited members"
msgstr "Unbegrenzte Mitglieder"
@@ -1799,15 +1825,19 @@ msgstr "hat den Titel aktualisiert"
msgid "updated the title to <0>{0}</0>"
msgstr "hat den Titel in <0>{0}</0> geändert"
#: src/views/settings/components/UpgradeToProConfirmation.tsx:99
#: src/views/settings/components/UpgradeToProConfirmation.tsx:109
msgid "Upgrade"
msgstr "Upgrade"
#: src/views/settings/components/UpgradeToProConfirmation.tsx:52
#: src/views/settings/index.tsx:213
#: src/views/settings/index.tsx:216
msgid "Upgrade to Pro"
msgstr "Upgrade auf Pro"
#: src/components/NewWorkspaceForm.tsx:369
msgid "Upgrade to Pro ($29/month)"
msgstr "Upgrade auf Pro ($29/Monat)"
#: src/views/members/components/InviteMemberForm.tsx:224
msgid "Upgrade to Team Plan"
msgstr "Upgrade auf Team-Plan"
@@ -1817,14 +1847,17 @@ msgstr "Upgrade auf Team-Plan"
msgid "Urgent"
msgstr "Dringend"
#: src/components/NewWorkspaceForm.tsx:35
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:36
msgid "URL can only contain letters, numbers, and hyphens"
msgstr "URL darf nur Buchstaben, Zahlen und Bindestriche enthalten"
#: src/components/NewWorkspaceForm.tsx:33
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:34
msgid "URL cannot exceed 24 characters"
msgstr "URL darf nicht länger als 24 Zeichen sein"
#: src/components/NewWorkspaceForm.tsx:31
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:32
msgid "URL must be at least 3 characters long"
msgstr "URL muss mindestens 3 Zeichen lang sein"
@@ -1833,7 +1866,7 @@ msgstr "URL muss mindestens 3 Zeichen lang sein"
msgid "Use template"
msgstr "Vorlage verwenden"
#: src/views/members/index.tsx:217
#: src/views/members/index.tsx:237
msgid "User"
msgstr "Benutzer"
@@ -1845,11 +1878,11 @@ msgstr "Benutzer ist bereits Mitglied dieses Arbeitsbereichs"
msgid "Video"
msgstr "Video"
#: src/views/settings/index.tsx:296
#: src/views/settings/index.tsx:299
msgid "View and manage your API keys."
msgstr "API-Schlüssel anzeigen und verwalten."
#: src/views/settings/index.tsx:235
#: src/views/settings/index.tsx:238
msgid "View and manage your billing and subscription."
msgstr "Verwalte deine Abrechnung und dein Abonnement."
@@ -1905,11 +1938,15 @@ msgstr "Warum ein open source Trello entwickeln?"
msgid "Workspace"
msgstr "Arbeitsbereich"
#: src/components/NewWorkspaceForm.tsx:143
msgid "Workspace created successfully. You can upgrade later in settings."
msgstr "Workspace erfolgreich erstellt. Du kannst später in den Einstellungen upgraden."
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:26
msgid "Workspace deleted"
msgstr "Workspace gelöscht"
#: src/views/settings/index.tsx:199
#: src/views/settings/index.tsx:202
msgid "Workspace description"
msgstr "Workspace-Beschreibung"
@@ -1930,8 +1967,8 @@ msgstr "Workspace-Beschreibung aktualisiert"
msgid "Workspace members"
msgstr "Workspace-mitglieder"
#: src/components/NewWorkspaceForm.tsx:81
#: src/views/settings/index.tsx:180
#: src/components/NewWorkspaceForm.tsx:259
#: src/views/settings/index.tsx:183
msgid "Workspace name"
msgstr "Name des Workspaces"
@@ -1939,6 +1976,10 @@ msgstr "Name des Workspaces"
msgid "Workspace name cannot exceed 24 characters"
msgstr "Der Workspace-Name darf nicht länger als 24 Zeichen sein"
#: src/components/NewWorkspaceForm.tsx:27
msgid "Workspace name is required"
msgstr "Workspace-Name ist erforderlich"
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:14
msgid "Workspace name must be at least 3 characters long"
msgstr "Der Workspace-Name muss mindestens 3 Zeichen lang sein"
@@ -1951,10 +1992,14 @@ msgstr "Workspace-Name aktualisiert"
msgid "Workspace slug updated"
msgstr "Workspace-Slug aktualisiert"
#: src/views/settings/index.tsx:189
#: src/views/settings/index.tsx:192
msgid "Workspace URL"
msgstr "Workspace-URL"
#: src/components/NewWorkspaceForm.tsx:273
msgid "workspace-url"
msgstr "workspace-url"
#: src/views/boards/components/TemplateBoards.tsx:30
msgid "Writing"
msgstr "Schreiben"
@@ -1967,7 +2012,7 @@ msgstr "Jährlich"
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
msgstr "Ja, wir bieten einen dauerhaft kostenlosen plan für die individuelle nutzung an. Keine einschränkungen, keine paywalls, keine limits."
#: src/views/settings/index.tsx:328
#: src/views/settings/index.tsx:331
msgid "You are about to change your password."
msgstr "Sie sind dabei, Ihr Passwort zu ändern."
@@ -2015,11 +2060,11 @@ msgstr "Ihr Passwort wurde geändert."
msgid "Your profile image has been updated."
msgstr "Dein Profilbild wurde aktualisiert."
#: src/views/settings/index.tsx:117
#: src/views/settings/index.tsx:120
msgid "Your Trello account has been disconnected."
msgstr "Dein Trello-Konto wurde getrennt."
#: src/views/settings/index.tsx:278
#: src/views/settings/index.tsx:281
msgid "Your Trello account is connected."
msgstr "Dein Trello-Konto ist verbunden."