refactor: reorganize settings page with tabbed interface (#57)

* refactor: reorganize settings page with tabbed interface

* feat: revamp API key management with new list view and confirmation modals

* refactor: update tab styling

* refactor: tweak UI/UX for managing API keys

* refactor: only show update button when change has been made

* refactor: only show update button when content of display name has been updated

* feat: store tab state in params

* refactor: remove focus state from tabs

* refactor: tweak styling on mobile select

* refactor: simplify settings pages

* feat: open upgrade modal if upgrade=pro is in params

* feat: add scroll to api key list on mobile

* chore: add translations

---------

Co-authored-by: Henry <henry_ball@hotmail.co.uk>
This commit is contained in:
LovelessCodes
2025-09-14 16:48:55 +02:00
committed by GitHub
parent 793baa8325
commit 3e21b23f0a
40 changed files with 2009 additions and 905 deletions

View File

@@ -53,6 +53,10 @@ msgstr "1 utilisateur"
msgid "A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place."
msgstr "Une application kanban puissante et flexible qui vous aide à organiser le travail, suivre les progrès et livrer des résultats—le tout en un seul endroit."
#: src/components/SettingsLayout.tsx:33
msgid "Account"
msgstr "Compte"
#: src/views/settings/components/DeleteAccountConfirmation.tsx:27
msgid "Account deleted"
msgstr "Compte supprimé"
@@ -91,8 +95,8 @@ msgstr "Ajouter une description... (tapez '/' pour ouvrir les commandes ou '@' p
msgid "Add details..."
msgstr "Ajouter des détails..."
#: src/views/card/components/LabelSelector.tsx:110
#: src/views/card/components/LabelSelector.tsx:118
#: src/views/card/components/LabelSelector.tsx:109
#: src/views/card/components/LabelSelector.tsx:114
msgid "Add label"
msgstr "Ajouter une étiquette"
@@ -148,7 +152,7 @@ msgstr "Tous les systèmes opérationnels"
msgid "Already have an account? <0><1>Sign in</1></0>"
msgstr "Vous avez déjà un compte ? <0><1>Connectez-vous</1></0>"
#: src/views/settings/index.tsx:127
#: src/views/settings/IntegrationsSettings.tsx:61
msgid "An error occurred while disconnecting your Trello account."
msgstr "Une erreur s'est produite lors de la déconnexion de votre compte Trello."
@@ -156,7 +160,27 @@ msgstr "Une erreur s'est produite lors de la déconnexion de votre compte Trello
msgid "An unexpected error occurred. Please try again later."
msgstr "Une erreur inattendue s'est produite. Veuillez réessayer plus tard."
#: src/views/settings/index.tsx:296
#: src/components/SettingsLayout.tsx:51
msgid "API"
msgstr "API"
#: src/views/settings/components/NewApiKeyModal.tsx:91
msgid "API key created"
msgstr "Clé API créée"
#: src/views/settings/components/NewApiKeyModal.tsx:161
msgid "API key name"
msgstr "Nom de la clé API"
#: src/views/settings/components/NewApiKeyModal.tsx:25
msgid "API key name cannot exceed 30 characters"
msgstr "Le nom de la clé API ne peut pas dépasser 30 caractères"
#: src/views/settings/components/NewApiKeyModal.tsx:24
msgid "API key name is required"
msgstr "Le nom de la clé API est requis"
#: src/views/settings/ApiSettings.tsx:22
msgid "API keys"
msgstr "Clés API"
@@ -226,12 +250,13 @@ msgstr "facturation annuelle"
msgid "billed monthly"
msgstr "facturation mensuelle"
#: src/components/SettingsLayout.tsx:44
#: src/views/boards/components/TemplateBoards.tsx:55
#: src/views/settings/index.tsx:235
#: src/views/settings/BillingSettings.tsx:39
msgid "Billing"
msgstr "Facturation"
#: src/views/settings/index.tsx:245
#: src/views/settings/BillingSettings.tsx:49
msgid "Billing portal"
msgstr "Portail de facturation"
@@ -286,12 +311,12 @@ msgid "Board visibility updated"
msgstr "Visibilité du tableau mise à jour"
#: src/components/SideNavigation.tsx:68
#: src/views/boards/index.tsx:27
#: src/views/boards/index.tsx:32
msgid "Boards"
msgstr "Tableaux"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/boards/index.tsx:23
#: src/views/boards/index.tsx:28
msgid "Boards | {0}"
msgstr "Tableaux | {0}"
@@ -328,16 +353,16 @@ msgstr "Carte introuvable"
msgid "Card title"
msgstr "Titre de la carte"
#: src/views/settings/AccountSettings.tsx:70
#: src/views/settings/AccountSettings.tsx:80
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
#: src/views/settings/index.tsx:328
#: src/views/settings/index.tsx:338
msgid "Change Password"
msgstr "Modifier le mot de passe"
#: src/views/settings/index.tsx:227
msgid "Change the language of the app."
msgstr "Changer la langue de l'application."
#: src/views/settings/AccountSettings.tsx:45
msgid "Change your language preferences."
msgstr "Modifiez vos préférences linguistiques."
#: src/views/auth/login/index.tsx:41
#: src/views/auth/signup/index.tsx:67
@@ -357,6 +382,10 @@ msgstr "Effacer les filtres"
msgid "Click on the link we've sent to {magicLinkRecipient} to sign in."
msgstr "Cliquez sur le lien que nous avons envoyé à {magicLinkRecipient} pour vous connecter."
#: src/views/settings/components/NewApiKeyModal.tsx:136
msgid "Close"
msgstr "Fermer"
#: src/views/boards/components/TemplateBoards.tsx:22
msgid "Code Review"
msgstr "Revue de code"
@@ -401,7 +430,7 @@ msgid "Confirm your new password"
msgstr "Confirmez votre nouveau mot de passe"
#: src/views/boards/components/ImportBoardsForm.tsx:157
#: src/views/settings/index.tsx:272
#: src/views/settings/IntegrationsSettings.tsx:93
msgid "Connect Trello"
msgstr "Connecter Trello"
@@ -409,7 +438,7 @@ msgstr "Connecter Trello"
msgid "Connect your favorite tools to streamline your workflow."
msgstr "Connectez vos outils favoris pour simplifier votre flux de travail."
#: src/views/settings/index.tsx:259
#: src/views/settings/IntegrationsSettings.tsx:80
msgid "Connect your Trello account to import boards."
msgstr "Connectez votre compte Trello pour importer des tableaux."
@@ -444,6 +473,10 @@ msgstr "Contrôlez qui peut voir et modifier vos tableaux."
msgid "Create another"
msgstr "Créer un autre"
#: src/views/settings/components/NewApiKeyModal.tsx:175
msgid "Create API key"
msgstr "Créer une clé API"
#: src/views/boards/components/NewBoardForm.tsx:128
msgid "Create board"
msgstr "Créer un tableau"
@@ -468,12 +501,12 @@ msgstr "Créer une liste"
msgid "Create new board"
msgstr "Créer un nouveau tableau"
#: src/views/settings/components/CreateAPIKeyForm.tsx:54
#: src/views/settings/ApiSettings.tsx:30
msgid "Create new key"
msgstr "Créer une nouvelle clé"
#: src/views/board/components/NewCardForm.tsx:394
#: src/views/card/components/LabelSelector.tsx:98
#: src/views/card/components/LabelSelector.tsx:97
msgid "Create new label"
msgstr "Créer une nouvelle étiquette"
@@ -527,9 +560,9 @@ msgstr "Sombre"
msgid "Delete"
msgstr "Supprimer"
#: src/views/settings/AccountSettings.tsx:52
#: src/views/settings/AccountSettings.tsx:62
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
#: src/views/settings/index.tsx:346
#: src/views/settings/index.tsx:356
msgid "Delete account"
msgstr "Supprimer le compte"
@@ -550,8 +583,8 @@ msgid "Delete list"
msgstr "Supprimer la liste"
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
#: src/views/settings/index.tsx:309
#: src/views/settings/index.tsx:320
#: src/views/settings/WorkspaceSettings.tsx:96
#: src/views/settings/WorkspaceSettings.tsx:107
msgid "Delete workspace"
msgstr "Supprimer l'espace de travail"
@@ -577,7 +610,7 @@ msgstr "a supprimé l'élément <0>{0}</0> de la checklist"
msgid "Design"
msgstr "Design"
#: src/views/settings/index.tsx:287
#: src/views/settings/IntegrationsSettings.tsx:108
msgid "Disconnect Trello"
msgstr "Déconnecter Trello"
@@ -585,7 +618,7 @@ msgstr "Déconnecter Trello"
msgid "Discuss and collaborate on cards."
msgstr "Discutez et collaborez sur les cartes."
#: src/views/settings/index.tsx:176
#: src/views/settings/AccountSettings.tsx:35
msgid "Display name"
msgstr "Nom d'affichage"
@@ -703,7 +736,7 @@ msgstr "Erreur lors de la suppression de l'étiquette"
msgid "Error deleting workspace"
msgstr "Erreur lors de la suppression de l'espace de travail"
#: src/views/settings/index.tsx:126
#: src/views/settings/IntegrationsSettings.tsx:60
msgid "Error disconnecting Trello"
msgstr "Erreur lors de la déconnexion de Trello"
@@ -917,7 +950,7 @@ msgstr "Idées"
msgid "Ideas to improve this page..."
msgstr "Idées pour améliorer cette page..."
#: src/views/boards/index.tsx:38
#: src/views/boards/index.tsx:43
msgid "Import"
msgstr "Importer"
@@ -955,6 +988,7 @@ msgstr "En cours"
msgid "Individuals"
msgstr "Particuliers"
#: src/components/SettingsLayout.tsx:57
#: src/views/home/components/Features.tsx:114
msgid "Integrations"
msgstr "Intégrations"
@@ -975,7 +1009,7 @@ msgstr "Inviter"
msgid "Invite another"
msgstr "Inviter un autre"
#: src/views/card/components/MemberSelector.tsx:112
#: src/views/card/components/MemberSelector.tsx:111
#: src/views/members/components/InviteMemberForm.tsx:233
msgid "Invite member"
msgstr "Inviter un membre"
@@ -1011,7 +1045,7 @@ msgstr "Étiquettes"
msgid "Labels & Filters"
msgstr "Étiquettes & filtres"
#: src/views/settings/index.tsx:224
#: src/views/settings/AccountSettings.tsx:42
msgid "Language"
msgstr "Langue"
@@ -1129,10 +1163,14 @@ msgstr "Nom"
msgid "Need help?"
msgstr "Besoin d'aide ?"
#: src/views/boards/index.tsx:48
#: src/views/boards/index.tsx:53
msgid "New"
msgstr "Nouveau"
#: src/views/settings/components/NewApiKeyModal.tsx:147
msgid "New API key"
msgstr "Nouvelle clé API"
#: src/views/boards/components/NewBoardForm.tsx:85
msgid "New board"
msgstr "Nouveau tableau"
@@ -1206,11 +1244,11 @@ msgstr "Offre"
msgid "Onboarding"
msgstr "Intégration"
#: src/views/settings/index.tsx:349
#: src/views/settings/AccountSettings.tsx:55
msgid "Once you delete your account, there is no going back. This action cannot be undone."
msgstr "Une fois que vous supprimez votre compte, il n'y a pas de retour possible. Cette action ne peut pas être annulée."
#: src/views/settings/index.tsx:312
#: src/views/settings/WorkspaceSettings.tsx:99
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
msgstr "Une fois que vous supprimez votre espace de travail, il n'y a pas de retour possible. Cette action ne peut pas être annulée."
@@ -1300,9 +1338,9 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
#: src/views/card/components/DeleteCardConfirmation.tsx:52
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
#: src/views/card/components/DeleteCommentConfirmation.tsx:45
#: src/views/card/components/LabelSelector.tsx:73
#: src/views/card/components/ListSelector.tsx:53
#: src/views/card/components/MemberSelector.tsx:80
#: src/views/card/components/LabelSelector.tsx:72
#: src/views/card/components/ListSelector.tsx:52
#: src/views/card/components/MemberSelector.tsx:79
#: src/views/card/components/NewChecklistForm.tsx:70
#: src/views/card/components/NewChecklistItemForm.tsx:89
#: src/views/card/components/NewCommentForm.tsx:31
@@ -1353,7 +1391,7 @@ msgstr "Plan Pro ∞"
msgid "Profile image updated"
msgstr "Image de profil mise à jour"
#: src/views/settings/index.tsx:171
#: src/views/settings/AccountSettings.tsx:29
msgid "Profile picture"
msgstr "Photo de profil"
@@ -1436,10 +1474,6 @@ msgstr "Ressources"
msgid "Review"
msgstr "Révision"
#: src/views/settings/components/CreateAPIKeyForm.tsx:49
msgid "Revoke"
msgstr "Révoquer"
#: src/views/home/components/Footer.tsx:36
#: src/views/home/components/Header.tsx:13
msgid "Roadmap"
@@ -1493,16 +1527,11 @@ msgstr "Envoyer des commentaires"
msgid "Senior"
msgstr "Senior"
#: src/components/SettingsLayout.tsx:82
#: src/components/SideNavigation.tsx:78
#: src/views/settings/index.tsx:165
msgid "Settings"
msgstr "Paramètres"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/settings/index.tsx:161
msgid "Settings | {0}"
msgstr "Paramètres | {0}"
#: src/views/home/components/Header.tsx:100
#: src/views/home/components/Header.tsx:138
msgid "Sign in"
@@ -1619,6 +1648,10 @@ msgstr "Ils ne pourront plus accéder à cet espace de travail."
msgid "This action can't be undone."
msgstr "Cette action ne peut pas être annulée."
#: src/views/settings/components/NewApiKeyModal.tsx:129
msgid "This API key will only be shown once. Please save it in a secure location."
msgstr "Cette clé API ne sera affichée qu'une seule fois. Veuillez la sauvegarder dans un emplacement sécurisé."
#: src/views/public/board/index.tsx:151
msgid "This board is private or does not exist"
msgstr "Ce tableau est privé ou n'existe pas"
@@ -1660,7 +1693,11 @@ msgstr "Basculer le menu"
msgid "Track all card changes with detailed activity history."
msgstr "Suivez tous les changements de cartes avec un historique d'activité détaillé."
#: src/views/settings/index.tsx:119
#: src/views/settings/IntegrationsSettings.tsx:73
msgid "Trello"
msgstr "Trello"
#: src/views/settings/IntegrationsSettings.tsx:53
msgid "Trello disconnected"
msgstr "Trello déconnecté"
@@ -1745,16 +1782,16 @@ msgstr "Impossible de mettre à jour l'élément de la liste de contrôle"
msgid "Unable to update comment"
msgstr "Impossible de mettre à jour le commentaire"
#: src/views/card/components/LabelSelector.tsx:72
#: src/views/card/components/LabelSelector.tsx:71
msgid "Unable to update labels"
msgstr "Impossible de mettre à jour les étiquettes"
#: src/views/board/index.tsx:133
#: src/views/card/components/ListSelector.tsx:52
#: src/views/card/components/ListSelector.tsx:51
msgid "Unable to update list"
msgstr "Impossible de mettre à jour la liste"
#: src/views/card/components/MemberSelector.tsx:79
#: src/views/card/components/MemberSelector.tsx:78
msgid "Unable to update members"
msgstr "Impossible de mettre à jour les membres"
@@ -1797,9 +1834,9 @@ msgid "Unlimited members"
msgstr "Membres illimités"
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:82
#: src/views/settings/components/UpdateDisplayNameForm.tsx:80
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:91
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:83
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:154
msgid "Update"
msgstr "Mettre à jour"
@@ -1830,7 +1867,7 @@ msgid "Upgrade"
msgstr "Mettre à niveau"
#: src/views/settings/components/UpgradeToProConfirmation.tsx:52
#: src/views/settings/index.tsx:216
#: src/views/settings/WorkspaceSettings.tsx:89
msgid "Upgrade to Pro"
msgstr "Passer à Pro"
@@ -1878,11 +1915,11 @@ msgstr "L'utilisateur est déjà membre de cet espace de travail"
msgid "Video"
msgstr "Vidéo"
#: src/views/settings/index.tsx:299
#: src/views/settings/ApiSettings.tsx:25
msgid "View and manage your API keys."
msgstr "Consultez et gérez vos clés API."
#: src/views/settings/index.tsx:238
#: src/views/settings/BillingSettings.tsx:42
msgid "View and manage your billing and subscription."
msgstr "Consultez et gérez votre facturation et votre abonnement."
@@ -1934,6 +1971,7 @@ msgstr "Quand Trello a été lancé en 2011, il a impressionné tout le monde pa
msgid "Why make an open source Trello?"
msgstr "Pourquoi créer un Trello open source ?"
#: src/components/SettingsLayout.tsx:39
#: src/views/board/index.tsx:331
msgid "Workspace"
msgstr "Espace de travail"
@@ -1946,7 +1984,7 @@ msgstr "Espace de travail créé avec succès. Vous pourrez effectuer la mise à
msgid "Workspace deleted"
msgstr "Espace de travail supprimé"
#: src/views/settings/index.tsx:202
#: src/views/settings/WorkspaceSettings.tsx:75
msgid "Workspace description"
msgstr "Description de l'espace de travail"
@@ -1968,7 +2006,7 @@ msgid "Workspace members"
msgstr "Membres de l'espace de travail"
#: src/components/NewWorkspaceForm.tsx:259
#: src/views/settings/index.tsx:183
#: src/views/settings/WorkspaceSettings.tsx:58
msgid "Workspace name"
msgstr "Nom de l'espace de travail"
@@ -1992,7 +2030,7 @@ msgstr "Nom de l'espace de travail mis à jour"
msgid "Workspace slug updated"
msgstr "Slug de l'espace de travail mis à jour"
#: src/views/settings/index.tsx:192
#: src/views/settings/WorkspaceSettings.tsx:66
msgid "Workspace URL"
msgstr "URL de l'espace de travail"
@@ -2012,7 +2050,7 @@ msgstr "Annuel"
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
msgstr "Oui, nous proposons un plan gratuit à vie pour un usage individuel. Aucune restriction, aucun paywall, aucune limite."
#: src/views/settings/index.tsx:331
#: src/views/settings/AccountSettings.tsx:73
msgid "You are about to change your password."
msgstr "Vous êtes sur le point de modifier votre mot de passe."
@@ -2060,11 +2098,11 @@ msgstr "Votre mot de passe a été modifié."
msgid "Your profile image has been updated."
msgstr "Votre image de profil a été mise à jour."
#: src/views/settings/index.tsx:120
#: src/views/settings/IntegrationsSettings.tsx:54
msgid "Your Trello account has been disconnected."
msgstr "Votre compte Trello a été déconnecté."
#: src/views/settings/index.tsx:281
#: src/views/settings/IntegrationsSettings.tsx:102
msgid "Your Trello account is connected."
msgstr "Votre compte Trello est connecté."

File diff suppressed because one or more lines are too long