diff --git a/apps/web/src/components/LanguageSelector.tsx b/apps/web/src/components/LanguageSelector.tsx
new file mode 100644
index 00000000..63b63370
--- /dev/null
+++ b/apps/web/src/components/LanguageSelector.tsx
@@ -0,0 +1,26 @@
+import { HiLanguage } from "react-icons/hi2";
+
+import { useLocalisation } from "~/hooks/useLocalisation";
+import { localeNames } from "~/locales";
+
+export function LanguageSelector() {
+ const { locale, setLocale, availableLocales } = useLocalisation();
+
+ return (
+
+ );
+}
diff --git a/apps/web/src/components/NewWorkspaceForm.tsx b/apps/web/src/components/NewWorkspaceForm.tsx
index e8d35565..cbee098a 100644
--- a/apps/web/src/components/NewWorkspaceForm.tsx
+++ b/apps/web/src/components/NewWorkspaceForm.tsx
@@ -1,3 +1,4 @@
+import { t } from "@lingui/core/macro";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import { HiXMark } from "react-icons/hi2";
@@ -34,8 +35,8 @@ export function NewWorkspaceForm() {
},
onError: () => {
showPopup({
- header: "Unable to create workspace",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to create workspace`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -58,7 +59,7 @@ export function NewWorkspaceForm() {
- New workspace
+ {t`New workspace`}
diff --git a/apps/web/src/hooks/useLocalisation.ts b/apps/web/src/hooks/useLocalisation.ts
new file mode 100644
index 00000000..7d26d306
--- /dev/null
+++ b/apps/web/src/hooks/useLocalisation.ts
@@ -0,0 +1,23 @@
+import { useLingui } from "@lingui/react";
+
+import type { Locale } from "~/locales";
+import { useLinguiContext } from "~/providers/lingui";
+import { activateLocale } from "~/utils/i18n";
+
+export function useLocalisation() {
+ const { i18n } = useLingui();
+ const { locale, setLocale, availableLocales } = useLinguiContext();
+
+ const handleSetLocale = async (newLocale: Locale) => {
+ await activateLocale(newLocale);
+ setLocale(newLocale);
+ };
+
+ return {
+ locale,
+ setLocale: handleSetLocale,
+ availableLocales,
+ formatDate: i18n.date,
+ formatNumber: i18n.number,
+ };
+}
diff --git a/apps/web/src/locales/de/messages.po b/apps/web/src/locales/de/messages.po
new file mode 100644
index 00000000..21b108ef
--- /dev/null
+++ b/apps/web/src/locales/de/messages.po
@@ -0,0 +1,1443 @@
+msgid ""
+msgstr ""
+"POT-Creation-Date: 2025-06-24 22:31+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: @lingui/cli\n"
+"Language: de\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Plural-Forms: \n"
+
+#: src/views/card/components/Comment.tsx:121
+msgid " (edited)"
+msgstr " (bearbeitet)"
+
+#: src/components/FeedbackButton.tsx:123
+msgid ", or see our"
+msgstr ", oder besuche unsere"
+
+#. placeholder {0}: card?.title ?? "Card"
+#. placeholder {1}: board?.name ?? "Board"
+#: src/views/card/index.tsx:148
+msgid "{0} | {1}"
+msgstr "{0} | {1}"
+
+#. placeholder {0}: labelPublicIds.length
+#: src/views/board/components/NewCardForm.tsx:365
+msgid "{0} labels"
+msgstr "{0} Labels"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:299
+msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
+msgstr "{boardCount, plural, one {Board importieren (1)} other {Boards importieren ({boardCount})}}"
+
+#: src/views/home/index.tsx:51
+msgid "#1 Hacker News"
+msgstr "#1 Hacker News"
+
+#: src/views/home/components/Pricing.tsx:36
+msgid "1 user"
+msgstr "1 Benutzer"
+
+#: src/views/home/index.tsx:71
+msgid "A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place."
+msgstr "Eine leistungsstarke, flexible Kanban-App, die dir hilft, Arbeit zu organisieren, Fortschritte zu verfolgen und Ergebnisse zu liefern – alles an einem Ort."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:27
+msgid "Account deleted"
+msgstr "Konto gelöscht"
+
+#: src/views/public/board/CardModal.tsx:104
+#: src/views/card/index.tsx:215
+msgid "Activity"
+msgstr "Aktivität"
+
+#: src/views/home/components/Features.tsx:103
+msgid "Activity logs"
+msgstr "Aktivitätsprotokolle"
+
+#: src/views/board/components/List.tsx:110
+msgid "Add a card"
+msgstr "Karte hinzufügen"
+
+#: src/views/card/components/NewCommentForm.tsx:57
+#: src/views/card/components/Comment.tsx:144
+msgid "Add a comment..."
+msgstr "Kommentar hinzufügen..."
+
+#: src/components/Editor.tsx:302
+msgid "Add description... (type '/' to open commands)"
+msgstr "Beschreibung hinzufügen... (tippe '/' um Befehle zu öffnen)"
+
+#: src/views/card/components/LabelSelector.tsx:110
+#: src/views/card/components/LabelSelector.tsx:118
+msgid "Add label"
+msgstr "Label hinzufügen"
+
+#: src/views/members/components/InviteMemberForm.tsx:50
+#: src/views/card/components/MemberSelector.tsx:130
+msgid "Add member"
+msgstr "Mitglied hinzufügen"
+
+#: src/views/card/components/ActivityList.tsx:56
+msgid "added a label to the card"
+msgstr "hat ein Label zur Karte hinzugefügt"
+
+#: src/views/card/components/ActivityList.tsx:58
+msgid "added a member to the card"
+msgstr "hat ein Mitglied zur Karte hinzugefügt"
+
+#: src/views/card/components/ActivityList.tsx:110
+msgid "added label <0>{label}0>"
+msgstr "hat Label <0>{label}0> hinzugefügt"
+
+#: src/views/home/components/Pricing.tsx:55
+msgid "Admin roles"
+msgstr "Administratorrollen"
+
+#: src/views/home/components/Pricing.tsx:97
+msgid "All seats are free during the beta until Sept 1st!"
+msgstr "Alle Plätze sind während der Beta-Phase bis zum 1. September kostenlos!"
+
+#: src/views/home/components/Footer.tsx:18
+msgid "All systems operational"
+msgstr "Alle Systeme funktionieren"
+
+#: src/views/auth/signup/index.tsx:86
+msgid "Already have an account? <0><1>Sign in1>0>"
+msgstr "Du hast bereits ein Konto? <0><1>Anmelden1>0>"
+
+#: src/views/settings/index.tsx:77
+msgid "An error occurred while disconnecting your Trello account."
+msgstr "Beim Trennen deines Trello-Kontos ist ein Fehler aufgetreten."
+
+#: src/views/settings/index.tsx:229
+msgid "API keys"
+msgstr "API-Schlüssel"
+
+#: src/views/home/components/Footer.tsx:31
+msgid "API Reference"
+msgstr "API-Referenz"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:47
+msgid "Are you sure want to remove {entityLabel}?"
+msgstr "Bist du sicher, dass du {entityLabel} entfernen möchtest?"
+
+#. placeholder {0}: workspace.name
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:62
+msgid "Are you sure you want to delete the workspace {0}?"
+msgstr "Bist du sicher, dass du den Workspace {0} löschen möchtest?"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:75
+msgid "Are you sure you want to delete this card?"
+msgstr "Bist du sicher, dass du diese Karte löschen möchtest?"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:65
+msgid "Are you sure you want to delete this comment?"
+msgstr "Bist du sicher, dass du diesen Kommentar löschen möchtest?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:54
+msgid "Are you sure you want to delete your account?"
+msgstr "Bist du sicher, dass du dein Konto löschen möchtest?"
+
+#: src/views/card/components/ActivityList.tsx:92
+msgid "assigned <0>{memberName}0> to the card"
+msgstr "hat <0>{memberName}0> der Karte zugewiesen"
+
+#: src/views/settings/index.tsx:168
+msgid "Billing"
+msgstr "Abrechnung"
+
+#: src/views/settings/index.tsx:178
+msgid "Billing portal"
+msgstr "Abrechnungsportal"
+
+#: src/views/board/index.tsx:239
+msgid "Board"
+msgstr "Board"
+
+#: src/views/board/index.tsx:265
+msgid "Board not found"
+msgstr "Board nicht gefunden"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:45
+msgid "Board URL can only contain letters, numbers, and hyphens"
+msgstr "Board-URL darf nur Buchstaben, Zahlen und Bindestriche enthalten"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:43
+msgid "Board URL cannot exceed 60 characters"
+msgstr "Board-URL darf 60 Zeichen nicht überschreiten"
+
+#: src/views/public/board/index.tsx:53
+msgid "Board URL copied to clipboard"
+msgstr "Board-URL in die Zwischenablage kopiert"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:41
+msgid "Board URL must be at least 3 characters long"
+msgstr "Board-URL muss mindestens 3 Zeichen lang sein"
+
+#: src/views/home/components/Features.tsx:78
+msgid "Board visibility"
+msgstr "Board-Sichtbarkeit"
+
+#: src/views/board/components/VisibilityButton.tsx:45
+msgid "Board visibility updated"
+msgstr "Board-Sichtbarkeit aktualisiert"
+
+#: src/views/boards/index.tsx:25
+#: src/components/SideNavigation.tsx:39
+msgid "Boards"
+msgstr "Boards"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/boards/index.tsx:21
+msgid "Boards | {0}"
+msgstr "Boards | {0}"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
+#: src/views/settings/components/CustomURLConfirmation.tsx:50
+#: src/views/members/components/DeleteMemberConfirmation.tsx:55
+#: src/views/card/components/DeleteCommentConfirmation.tsx:76
+#: src/views/card/components/DeleteCardConfirmation.tsx:86
+#: src/views/card/components/Comment.tsx:156
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: src/views/card/index.tsx:193
+msgid "Card not found"
+msgstr "Karte nicht gefunden"
+
+#: src/views/board/components/NewCardForm.tsx:254
+msgid "Card title"
+msgstr "Kartentitel"
+
+#: src/views/settings/index.tsx:160
+msgid "Change the language of the app."
+msgstr "Ändere die Sprache der App."
+
+#: src/views/auth/signup/index.tsx:67
+#: src/views/auth/login/index.tsx:41
+msgid "Check your inbox"
+msgstr "Überprüfe deinen Posteingang"
+
+#: src/views/board/components/Filters.tsx:155
+msgid "Clear filters"
+msgstr "Filter löschen"
+
+#: src/views/auth/signup/index.tsx:72
+#: src/views/auth/login/index.tsx:46
+msgid "Click on the link we've sent to {magicLinkRecipient} to sign in."
+msgstr "Klicke auf den Link, den wir an {magicLinkRecipient} gesendet haben, um dich anzumelden."
+
+#: src/views/home/components/Features.tsx:84
+msgid "Collaborate seamlessly with your team."
+msgstr "Arbeite nahtlos mit deinem Team zusammen."
+
+#: src/views/home/components/Features.tsx:66
+msgid "Coming soon"
+msgstr "Demnächst verfügbar"
+
+#: src/views/home/components/Features.tsx:98
+msgid "Comments"
+msgstr "Kommentare"
+
+#: src/views/home/components/Footer.tsx:94
+msgid "Company"
+msgstr "Unternehmen"
+
+#: src/views/home/components/Pricing.tsx:70
+msgid "Complete control and ownership:"
+msgstr "Vollständige Kontrolle und Eigentum:"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:42
+msgid "Confirm URL change"
+msgstr "URL-Änderung bestätigen"
+
+#: src/views/settings/index.tsx:205
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Connect Trello"
+msgstr "Trello verbinden"
+
+#: src/views/home/components/Features.tsx:115
+msgid "Connect your favorite tools to streamline your workflow."
+msgstr "Verbinde deine Lieblingstools, um deinen Arbeitsablauf zu optimieren."
+
+#: src/views/settings/index.tsx:192
+msgid "Connect your Trello account to import boards."
+msgstr "Verbinde dein Trello-Konto, um Boards zu importieren."
+
+#: src/views/home/components/Footer.tsx:38
+msgid "Contact"
+msgstr "Kontakt"
+
+#: src/components/FeedbackButton.tsx:121
+msgid "Contact us"
+msgstr "Kontaktiere uns"
+
+#: src/components/AuthForm.tsx:334
+msgid "Continue with "
+msgstr "Fortfahren mit "
+
+#. placeholder {0}: provider.name
+#: src/components/AuthForm.tsx:268
+msgid "Continue with {0}"
+msgstr "Fortfahren mit {0}"
+
+#: src/views/home/components/Features.tsx:79
+msgid "Control who can view and edit your boards."
+msgstr "Kontrolliere, wer deine Boards ansehen und bearbeiten kann."
+
+#: src/views/board/components/NewListForm.tsx:140
+#: src/views/board/components/NewCardForm.tsx:391
+#: src/components/LabelForm.tsx:212
+msgid "Create another"
+msgstr "Weitere erstellen"
+
+#: src/views/boards/components/NewBoardForm.tsx:77
+msgid "Create board"
+msgstr "Board erstellen"
+
+#: src/views/board/components/NewCardForm.tsx:401
+msgid "Create card"
+msgstr "Karte erstellen"
+
+#: src/components/LabelForm.tsx:233
+msgid "Create label"
+msgstr "Label erstellen"
+
+#: src/views/board/components/NewListForm.tsx:148
+msgid "Create list"
+msgstr "Liste erstellen"
+
+#: src/views/boards/components/BoardsList.tsx:42
+msgid "Create new board"
+msgstr "Neues Board erstellen"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:54
+msgid "Create new key"
+msgstr "Neuen Schlüssel erstellen"
+
+#: src/views/card/components/LabelSelector.tsx:98
+#: src/views/board/components/NewCardForm.tsx:327
+msgid "Create new label"
+msgstr "Neues Label erstellen"
+
+#: src/views/board/index.tsx:327
+msgid "Create new list"
+msgstr "Neue Liste erstellen"
+
+#: src/components/WorkspaceMenu.tsx:85
+#: src/components/NewWorkspaceForm.tsx:91
+msgid "Create workspace"
+msgstr "Arbeitsbereich erstellen"
+
+#: src/views/card/components/ActivityList.tsx:52
+msgid "created the card"
+msgstr "hat die Karte erstellt"
+
+#: src/views/home/components/Pricing.tsx:74
+msgid "Custom domain"
+msgstr "Benutzerdefinierte Domain"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:45
+msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
+msgstr "Benutzerdefinierte URLs sind eine Premium-Funktion. Du wirst zur Aktualisierung deines Kontos weitergeleitet."
+
+#: src/components/UserMenu.tsx:112
+msgid "Dark"
+msgstr "Dunkel"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:82
+#: src/views/card/components/DeleteCardConfirmation.tsx:92
+#: src/components/LabelForm.tsx:226
+msgid "Delete"
+msgstr "Löschen"
+
+#: src/views/settings/index.tsx:260
+#: src/views/settings/index.tsx:270
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
+msgid "Delete account"
+msgstr "Konto löschen"
+
+#: src/views/board/components/BoardDropdown.tsx:20
+msgid "Delete board"
+msgstr "Board löschen"
+
+#: src/views/card/components/Dropdown.tsx:14
+msgid "Delete card"
+msgstr "Karte löschen"
+
+#: src/views/card/components/Comment.tsx:89
+msgid "Delete comment"
+msgstr "Kommentar löschen"
+
+#: src/views/board/components/List.tsx:117
+msgid "Delete list"
+msgstr "Liste löschen"
+
+#: src/views/settings/index.tsx:242
+#: src/views/settings/index.tsx:253
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
+msgid "Delete workspace"
+msgstr "Workspace löschen"
+
+#: src/views/settings/index.tsx:220
+msgid "Disconnect Trello"
+msgstr "Trello trennen"
+
+#: src/views/home/components/Features.tsx:99
+msgid "Discuss and collaborate on cards."
+msgstr "Diskutiere und arbeite gemeinsam an Karten."
+
+#: src/views/settings/index.tsx:123
+msgid "Display name"
+msgstr "Anzeigename"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:22
+msgid "Display name cannot exceed 280 characters"
+msgstr "Anzeigename darf nicht länger als 280 Zeichen sein"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:19
+msgid "Display name must be at least 3 characters long"
+msgstr "Anzeigename muss mindestens 3 Zeichen lang sein"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:41
+msgid "Display name updated"
+msgstr "Anzeigename aktualisiert"
+
+#: src/views/home/components/Faqs.tsx:83
+msgid "Do you offer a free plan?"
+msgstr "Bietet ihr einen kostenlosen Plan an?"
+
+#: src/components/FeedbackButton.tsx:130
+msgid "docs"
+msgstr "Dokumente"
+
+#: src/views/home/components/Header.tsx:16
+msgid "Docs"
+msgstr "Dokumente"
+
+#: src/views/home/components/Footer.tsx:77
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#: src/views/auth/login/index.tsx:61
+msgid "Don't have an account? <0><1>Sign up1>0>"
+msgstr "Du hast noch kein Konto? <0><1>Registrieren1>0>"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:115
+#: src/views/board/components/BoardDropdown.tsx:15
+msgid "Edit board URL"
+msgstr "Board-URL bearbeiten"
+
+#: src/views/card/components/Comment.tsx:80
+msgid "Edit comment"
+msgstr "Kommentar bearbeiten"
+
+#: src/components/LabelForm.tsx:118
+msgid "Edit label"
+msgstr "Label bearbeiten"
+
+#: src/components/AuthForm.tsx:336
+msgid "email"
+msgstr "E-Mail"
+
+#: src/views/members/components/InviteMemberForm.tsx:64
+msgid "Email"
+msgstr "E-Mail"
+
+#: src/components/AuthForm.tsx:301
+msgid "Enter your email address"
+msgstr "Gib deine E-Mail-Adresse ein"
+
+#: src/components/AuthForm.tsx:289
+msgid "Enter your name"
+msgstr "Gib deinen Namen ein"
+
+#: src/components/AuthForm.tsx:314
+msgid "Enter your password"
+msgstr "Gib dein Passwort ein"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
+msgid "Error deleting account"
+msgstr "Fehler beim Löschen des Kontos"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
+msgid "Error deleting workspace"
+msgstr "Fehler beim Löschen des Arbeitsbereichs"
+
+#: src/views/settings/index.tsx:76
+msgid "Error disconnecting Trello"
+msgstr "Fehler beim Trennen von Trello"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:54
+msgid "Error updating display name"
+msgstr "Fehler beim Aktualisieren des Anzeigenamens"
+
+#: src/views/settings/components/Avatar.tsx:37
+msgid "Error updating profile image"
+msgstr "Fehler beim Aktualisieren des Profilbilds"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:61
+msgid "Error updating workspace description"
+msgstr "Fehler beim Aktualisieren der Workspace-Beschreibung"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:56
+msgid "Error updating workspace name"
+msgstr "Fehler beim Aktualisieren des Arbeitsbereichsnamens"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:73
+msgid "Error updating workspace URL"
+msgstr "Fehler beim Aktualisieren der Workspace-URL"
+
+#: src/views/settings/components/Avatar.tsx:54
+#: src/views/settings/components/Avatar.tsx:95
+msgid "Error uploading profile image"
+msgstr "Fehler beim Hochladen des Profilbilds"
+
+#: src/views/home/components/Pricing.tsx:52
+msgid "Everything in the free plan, plus:"
+msgstr "Alles im kostenlosen Plan, plus:"
+
+#: src/views/home/components/Pricing.tsx:33
+msgid "Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time."
+msgstr "Alles was du brauchst, für immer kostenlos. Unbegrenzte Boards, unbegrenzte Listen, unbegrenzte Karten. Jederzeit upgraden."
+
+#. placeholder {0}: provider.at(0)?.toUpperCase() + provider.slice(1)
+#: src/components/AuthForm.tsx:241
+msgid "Failed to login with {0}. Please try again."
+msgstr "Anmeldung mit {0} fehlgeschlagen. Bitte versuche es erneut."
+
+#: src/views/home/components/Footer.tsx:51
+#: src/views/home/components/Faqs.tsx:143
+msgid "FAQs"
+msgstr "Häufig gestellte Fragen"
+
+#: src/views/home/components/Header.tsx:14
+#: src/views/home/components/Footer.tsx:49
+#: src/views/home/components/Features.tsx:125
+msgid "Features"
+msgstr "Features"
+
+#: src/components/FeedbackButton.tsx:78
+msgid "Feedback"
+msgstr "Feedback"
+
+#: src/components/FeedbackButton.tsx:38
+msgid "Feedback sent"
+msgstr "Feedback gesendet"
+
+#: src/views/board/components/Filters.tsx:149
+msgid "Filter"
+msgstr "Filter"
+
+#: src/views/home/components/Faqs.tsx:150
+msgid "Find answers to common questions about the project. Can't find what you're looking for? Feel free to <0>contact us0>."
+msgstr "Finden Sie Antworten auf häufige Fragen zum Projekt. Nicht gefunden, wonach Sie suchen? Zögern Sie nicht, uns zu <0>kontaktieren0>."
+
+#: src/views/home/components/Faqs.tsx:41
+msgid "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users (free during the beta) and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge."
+msgstr "Für langfristige Nachhaltigkeit erkennen wir an, dass alle guten Open-Source-Projekte eine Einnahmequelle benötigen. Unsere stammt aus dem kostenpflichtigen Cloud-Angebot für Workspaces mit mehreren Benutzern (kostenlos während der Beta-Phase) und für benutzerdefinierte Workspace-Slugs. Es besteht keine Verpflichtung, dieses Angebot zu nutzen, und Sie können die Software kostenlos auf Ihrer eigenen Infrastruktur selbst hosten."
+
+#: src/views/home/components/Pricing.tsx:32
+#: src/views/home/components/Pricing.tsx:32
+msgid "Free"
+msgstr "Kostenlos"
+
+#: src/views/home/components/Pricing.tsx:34
+msgid "Free, forever"
+msgstr "Kostenlos, für immer"
+
+#: src/views/home/components/Header.tsx:102
+#: src/views/home/components/Header.tsx:141
+#: src/views/home/components/Cta.tsx:61
+#: src/views/auth/signup/index.tsx:67
+msgid "Get started"
+msgstr "Loslegen"
+
+#: src/views/home/components/Pricing.tsx:31
+#: src/views/home/components/Pricing.tsx:49
+msgid "Get Started"
+msgstr "Loslegen"
+
+#: src/views/boards/components/BoardsList.tsx:38
+msgid "Get started by creating a new board"
+msgstr "Beginne, indem du ein neues Board erstellst"
+
+#: src/views/board/index.tsx:319
+msgid "Get started by creating a new list"
+msgstr "Beginne mit dem Erstellen einer neuen Liste"
+
+#: src/views/home/components/Cta.tsx:54
+msgid "Get started for free today"
+msgstr "Starten Sie noch heute kostenlos"
+
+#: src/views/home/components/Pricing.tsx:92
+msgid "Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team."
+msgstr "Starten Sie kostenlos ohne Nutzungsbeschränkungen. Für die Zusammenarbeit wechseln Sie zu einem Plan, der zur Größe Ihres Teams passt."
+
+#: src/views/home/index.tsx:75
+msgid "Get started on Cloud"
+msgstr "In der Cloud starten"
+
+#: src/views/home/components/Footer.tsx:25
+msgid "Getting started"
+msgstr "Erste Schritte"
+
+#: src/views/home/components/Footer.tsx:37
+msgid "GitHub"
+msgstr "GitHub"
+
+#: src/views/home/components/Header.tsx:96
+#: src/views/home/components/Header.tsx:133
+msgid "Go to app"
+msgstr "Zur App"
+
+#: src/views/home/components/Pricing.tsx:69
+msgid "Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data."
+msgstr "Hosten Sie Kan auf Ihrer eigenen Infrastruktur. Ideal für Organisationen, die vollständige Kontrolle über ihre Daten benötigen."
+
+#: src/views/home/components/Faqs.tsx:64
+msgid "How do I get a custom URL?"
+msgstr "Wie erhalte ich eine benutzerdefinierte URL?"
+
+#: src/views/home/components/Faqs.tsx:46
+msgid "How do I import my Trello boards?"
+msgstr "Wie importiere ich meine Trello-Boards?"
+
+#: src/views/home/components/Faqs.tsx:108
+msgid "How do I invite team members?"
+msgstr "Wie lade ich Teammitglieder ein?"
+
+#: src/views/home/components/Faqs.tsx:124
+msgid "How do I self-host?"
+msgstr "Wie kann ich selbst hosten?"
+
+#: src/views/home/components/Faqs.tsx:38
+msgid "How is the project funded?"
+msgstr "Wie wird das Projekt finanziert?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:82
+msgid "I acknowledge that all of my account data will be permanently deleted and want to proceed."
+msgstr "Ich bestätige, dass alle meine Kontodaten dauerhaft gelöscht werden, und möchte fortfahren."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:92
+msgid "I acknowledge that all of the workspace data will be permanently deleted and want to proceed."
+msgstr "Ich bestätige, dass alle Daten des Arbeitsbereichs dauerhaft gelöscht werden, und möchte fortfahren."
+
+#: src/components/FeedbackButton.tsx:98
+msgid "Ideas to improve this page..."
+msgstr "Ideen zur Verbesserung dieser Seite..."
+
+#: src/views/boards/index.tsx:39
+msgid "Import"
+msgstr "Importieren"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:191
+msgid "Import complete"
+msgstr "Import abgeschlossen"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:204
+msgid "Import failed"
+msgstr "Import fehlgeschlagen"
+
+#: src/views/home/components/Features.tsx:89
+msgid "Import your Trello boards and hit the ground running."
+msgstr "Importieren Sie Ihre Trello-Boards und starten Sie sofort durch."
+
+#: src/views/home/components/Footer.tsx:27
+msgid "Importing from Trello"
+msgstr "Import von Trello"
+
+#: src/views/home/components/Faqs.tsx:49
+msgid "Importing your Trello boards into Kan is easy. You can follow our step-by-step guide <0>here0>."
+msgstr "Der Import Ihrer Trello-Boards in Kan ist einfach. Sie können unserer Schritt-für-Schritt-Anleitung <0>hier0> folgen."
+
+#: src/views/home/components/Pricing.tsx:28
+msgid "Individuals"
+msgstr "Einzelpersonen"
+
+#: src/views/home/components/Features.tsx:114
+msgid "Integrations"
+msgstr "Integrationen"
+
+#: src/views/members/index.tsx:156
+msgid "Invite"
+msgstr "Einladen"
+
+#: src/views/members/components/InviteMemberForm.tsx:82
+#: src/views/card/components/MemberSelector.tsx:112
+msgid "Invite member"
+msgstr "Mitglied einladen"
+
+#: src/views/home/components/Pricing.tsx:51
+msgid "Kanban is better with a team. Perfect for small and growing teams looking to collaborate."
+msgstr "Kanban funktioniert besser im Team. Perfekt für kleine und wachsende Teams, die zusammenarbeiten möchten."
+
+#: src/views/home/components/Features.tsx:129
+msgid "Kanban reimagined"
+msgstr "Kanban neu gedacht"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:67
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:57
+msgid "Keep in mind that this action is irreversible."
+msgstr "Beachten Sie, dass diese Aktion nicht rückgängig gemacht werden kann."
+
+#: src/views/card/index.tsx:243
+#: src/views/board/components/NewCardForm.tsx:331
+#: src/views/board/components/Filters.tsx:101
+msgid "Labels"
+msgstr "Labels"
+
+#: src/views/home/components/Features.tsx:93
+msgid "Labels & Filters"
+msgstr "Labels & Filter"
+
+#: src/views/settings/index.tsx:157
+msgid "Language"
+msgstr "Sprache"
+
+#: src/views/home/components/Footer.tsx:130
+msgid "Legal"
+msgstr "Rechtliches"
+
+#: src/views/home/components/Footer.tsx:44
+msgid "License"
+msgstr "Lizenz"
+
+#: src/components/UserMenu.tsx:126
+msgid "Light"
+msgstr "Hell"
+
+#: src/views/public/board/index.tsx:51
+msgid "Link copied"
+msgstr "Link kopiert"
+
+#: src/views/card/index.tsx:235
+msgid "List"
+msgstr "Liste"
+
+#: src/views/board/components/NewListForm.tsx:128
+msgid "List name"
+msgstr "Listenname"
+
+#: src/views/auth/login/index.tsx:31
+msgid "Login | kan.bn"
+msgstr "Login | kan.bn"
+
+#: src/components/UserMenu.tsx:136
+msgid "Logout"
+msgstr "Abmelden"
+
+#: src/components/AuthForm.tsx:337
+msgid "magic link"
+msgstr "Magic Link"
+
+#: src/views/members/index.tsx:148
+#: src/views/card/index.tsx:251
+#: src/views/board/components/NewCardForm.tsx:290
+#: src/views/board/components/Filters.tsx:93
+#: src/components/SideNavigation.tsx:44
+msgid "Members"
+msgstr "Mitglieder"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/members/index.tsx:144
+msgid "Members | {0}"
+msgstr "Mitglieder | {0}"
+
+#: src/views/home/components/Pricing.tsx:14
+msgid "Monthly"
+msgstr "Monatlich"
+
+#: src/views/card/components/ActivityList.tsx:81
+msgid "moved the card from <0>{fromList}0> to<1>{toList}1>"
+msgstr "hat die Karte von <0>{fromList}0> nach <1>{toList}1> verschoben"
+
+#: src/views/card/components/ActivityList.tsx:55
+msgid "moved the card to another list"
+msgstr "hat die Karte in eine andere Liste verschoben"
+
+#: src/views/boards/components/NewBoardForm.tsx:63
+#: src/components/LabelForm.tsx:134
+msgid "Name"
+msgstr "Name"
+
+#: src/components/FeedbackButton.tsx:116
+msgid "Need help?"
+msgstr "Brauchst du Hilfe?"
+
+#: src/views/boards/index.tsx:52
+msgid "New"
+msgstr "Neu"
+
+#: src/views/boards/components/NewBoardForm.tsx:49
+msgid "New board"
+msgstr "Neues Board"
+
+#: src/views/board/components/NewCardForm.tsx:237
+msgid "New card"
+msgstr "Neue Karte"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:322
+msgid "New import"
+msgstr "Neuer Import"
+
+#: src/components/LabelForm.tsx:118
+msgid "New label"
+msgstr "Neues Label"
+
+#: src/views/board/index.tsx:296
+#: src/views/board/components/NewListForm.tsx:112
+msgid "New list"
+msgstr "Neue Liste"
+
+#: src/components/NewWorkspaceForm.tsx:62
+msgid "New workspace"
+msgstr "Neuer Workspace"
+
+#: src/views/boards/components/BoardsList.tsx:35
+msgid "No boards"
+msgstr "Keine Boards"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:242
+msgid "No boards found"
+msgstr "Keine Boards gefunden"
+
+#: src/views/home/index.tsx:85
+msgid "No credit card required"
+msgstr "Keine Kreditkarte erforderlich"
+
+#: src/views/board/index.tsx:316
+msgid "No lists"
+msgstr "Keine Listen"
+
+#: src/views/settings/index.tsx:263
+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:245
+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."
+
+#: src/components/AuthForm.tsx:279
+msgid "or"
+msgstr "oder"
+
+#: src/views/home/components/Features.tsx:94
+msgid "Organize and find cards quickly with powerful filtering tools."
+msgstr "Organisiere und finde Karten schnell mit leistungsstarken Filterwerkzeugen."
+
+#: src/views/home/components/Pricing.tsx:73
+msgid "Own your data"
+msgstr "Besitze deine Daten"
+
+#: src/views/home/components/Pricing.tsx:101
+msgid "Payment frequency"
+msgstr "Zahlungshäufigkeit"
+
+#: src/views/members/index.tsx:107
+msgid "Pending"
+msgstr "Ausstehend"
+
+#: src/views/home/components/Pricing.tsx:15
+#: src/views/home/components/Pricing.tsx:20
+msgid "per user/month"
+msgstr "pro Benutzer/Monat"
+
+#: src/components/AuthForm.tsx:305
+msgid "Please enter a valid email address"
+msgstr "Bitte gib eine gültige E-Mail-Adresse ein"
+
+#: src/components/AuthForm.tsx:293
+msgid "Please enter a valid name"
+msgstr "Bitte gib einen gültigen Namen ein"
+
+#: src/components/AuthForm.tsx:318
+msgid "Please enter a valid password"
+msgstr "Bitte gib ein gültiges Passwort ein"
+
+#: src/views/settings/components/Avatar.tsx:55
+msgid "Please select a file to upload."
+msgstr "Bitte wähle eine Datei zum Hochladen aus."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:55
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:46
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
+#: src/views/settings/components/Avatar.tsx:38
+#: src/views/settings/components/Avatar.tsx:96
+#: src/views/members/components/DeleteMemberConfirmation.tsx:28
+#: src/views/card/index.tsx:116
+#: src/views/card/components/NewCommentForm.tsx:31
+#: src/views/card/components/MemberSelector.tsx:80
+#: src/views/card/components/ListSelector.tsx:53
+#: src/views/card/components/LabelSelector.tsx:73
+#: src/views/card/components/DeleteCommentConfirmation.tsx:45
+#: src/views/card/components/DeleteCardConfirmation.tsx:52
+#: src/views/card/components/Comment.tsx:62
+#: src/views/boards/components/ImportBoardsForm.tsx:205
+#: src/views/board/index.tsx:133
+#: src/views/board/index.tsx:189
+#: src/views/board/components/VisibilityButton.tsx:53
+#: src/views/board/components/UpdateBoardSlugForm.tsx:72
+#: src/views/board/components/NewListForm.tsx:78
+#: src/views/board/components/NewCardForm.tsx:128
+#: src/components/NewWorkspaceForm.tsx:39
+#: src/components/FeedbackButton.tsx:46
+msgid "Please try again later, or contact customer support."
+msgstr "Bitte versuche es später noch einmal oder kontaktiere den Kundensupport."
+
+#: src/views/home/components/Pricing.tsx:85
+#: src/views/home/components/Header.tsx:15
+#: src/views/home/components/Footer.tsx:50
+msgid "Pricing"
+msgstr "Preise"
+
+#: src/views/home/components/Pricing.tsx:56
+msgid "Priority email support"
+msgstr "Prioritäts-E-Mail-Support"
+
+#: src/views/home/components/Footer.tsx:42
+msgid "Privacy policy"
+msgstr "Datenschutzrichtlinie"
+
+#: src/views/board/components/VisibilityButton.tsx:73
+msgid "Private"
+msgstr "Privat"
+
+#: src/views/settings/components/Avatar.tsx:24
+msgid "Profile image updated"
+msgstr "Profilbild aktualisiert"
+
+#: src/views/settings/index.tsx:118
+msgid "Profile picture"
+msgstr "Profilbild"
+
+#: src/views/board/components/VisibilityButton.tsx:68
+msgid "Public"
+msgstr "Öffentlich"
+
+#: src/views/home/components/Faqs.tsx:147
+msgid "Questions?"
+msgstr "Fragen?"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:58
+msgid "Remove"
+msgstr "Entfernen"
+
+#: src/views/members/index.tsx:120
+msgid "Remove member"
+msgstr "Mitglied entfernen"
+
+#: src/views/card/components/ActivityList.tsx:57
+msgid "removed a label from the card"
+msgstr "hat ein Label von der Karte entfernt"
+
+#: src/views/card/components/ActivityList.tsx:59
+msgid "removed a member from the card"
+msgstr "hat ein Mitglied von der Karte entfernt"
+
+#: src/views/card/components/ActivityList.tsx:118
+msgid "removed label <0>{label}0>"
+msgstr "hat Label <0>{label}0> entfernt"
+
+#: src/views/home/components/Footer.tsx:113
+msgid "Resources"
+msgstr "Ressourcen"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:49
+msgid "Revoke"
+msgstr "Widerrufen"
+
+#: src/views/home/components/Header.tsx:13
+#: src/views/home/components/Footer.tsx:36
+msgid "Roadmap"
+msgstr "Roadmap"
+
+#: src/views/members/index.tsx:178
+msgid "Role"
+msgstr "Rolle"
+
+#: src/views/home/components/Pricing.tsx:72
+msgid "Run on your own infrastructure"
+msgstr "Auf eigener Infrastruktur betreiben"
+
+#: src/views/card/components/Comment.tsx:163
+msgid "Save"
+msgstr "Speichern"
+
+#: src/views/home/components/Features.tsx:109
+msgid "Save time with reusable board templates."
+msgstr "Spare Zeit mit wiederverwendbaren Board-Vorlagen."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:274
+msgid "Select all"
+msgstr "Alle auswählen"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Select source"
+msgstr "Quelle auswählen"
+
+#: src/views/home/components/Pricing.tsx:64
+msgid "Self Host"
+msgstr "Selbst hosten"
+
+#: src/views/home/index.tsx:81
+msgid "Self host with Github"
+msgstr "Selbst hosten mit Github"
+
+#: src/views/card/components/ActivityList.tsx:89
+msgid "self-assigned the card"
+msgstr "hat sich selbst die Karte zugewiesen"
+
+#: src/components/FeedbackButton.tsx:137
+msgid "Send"
+msgstr "Senden"
+
+#: src/views/settings/index.tsx:112
+#: src/components/SideNavigation.tsx:49
+msgid "Settings"
+msgstr "Einstellungen"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/settings/index.tsx:108
+msgid "Settings | {0}"
+msgstr "Einstellungen | {0}"
+
+#: src/views/home/components/Header.tsx:100
+#: src/views/home/components/Header.tsx:138
+msgid "Sign in"
+msgstr "Anmelden"
+
+#: src/views/auth/signup/index.tsx:32
+#: src/views/auth/signup/index.tsx:57
+msgid "Sign up | kan.bn"
+msgstr "Registrieren | kan.bn"
+
+#: src/views/auth/signup/index.tsx:42
+msgid "Sign up disabled"
+msgstr "Registrierung deaktiviert"
+
+#: src/views/auth/signup/index.tsx:45
+msgid "Sign up is currently disabled. Please try again later."
+msgstr "Die Registrierung ist derzeit deaktiviert. Bitte versuche es später erneut."
+
+#: src/components/AuthForm.tsx:334
+msgid "Sign up with "
+msgstr "Registrieren mit "
+
+#: src/views/home/components/Pricing.tsx:89
+msgid "Simple pricing"
+msgstr "Einfache Preisgestaltung"
+
+#: src/views/home/components/Features.tsx:132
+msgid "Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done."
+msgstr "Einfaches, visuelles Aufgabenmanagement, das einfach funktioniert. Ziehe Karten per Drag-and-drop, arbeite mit deinem Team zusammen und erledige mehr."
+
+#: src/views/home/index.tsx:37
+msgid "Star on Github"
+msgstr "Stern auf Github"
+
+#: src/components/AuthForm.tsx:188
+#: src/components/AuthForm.tsx:205
+msgid "Success"
+msgstr "Erfolg"
+
+#: src/views/home/components/Pricing.tsx:57
+msgid "Support the development of the project"
+msgstr "Unterstütze die Entwicklung des Projekts"
+
+#: src/components/UserMenu.tsx:98
+msgid "System"
+msgstr "System"
+
+#: src/views/home/components/Pricing.tsx:46
+msgid "Teams"
+msgstr "Teams"
+
+#: src/views/home/components/Features.tsx:108
+msgid "Templates"
+msgstr "Vorlagen"
+
+#: src/views/home/components/Footer.tsx:41
+msgid "Terms of service"
+msgstr "Nutzungsbedingungen"
+
+#: src/components/FeedbackButton.tsx:39
+msgid "Thank you for your feedback!"
+msgstr "Vielen Dank für dein Feedback!"
+
+#: src/views/home/components/Faqs.tsx:33
+msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
+msgstr "Der hauptunterschied zwischen Kan und Trello ist, dass Kan open source ist und jedem ermöglicht, unseren code einzusehen, zu ändern und dazu beizutragen. Unser cloud-angebot bietet außerdem keine einschränkungen bei funktionen für die individuelle nutzung, während Trello grundlegende funktionen wie die anzahl der boards, die du erstellen kannst, hinter einer paywall versteckt."
+
+#: src/views/home/index.tsx:65
+msgid "The open source <0/> alternative to Trello"
+msgstr "Die open source <0/> alternative zu Trello"
+
+#. placeholder {0}: isPublic ? "public" : "private"
+#: src/views/board/components/VisibilityButton.tsx:46
+msgid "The visibility of your board has been set to {0}."
+msgstr "Die Sichtbarkeit deines Boards wurde auf {0} gesetzt."
+
+#: src/components/UserMenu.tsx:85
+msgid "Theme"
+msgstr "Design"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:50
+msgid "They won't be able to access this workspace."
+msgstr "Sie werden keinen Zugriff mehr auf diesen Workspace haben."
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:68
+#: src/views/card/components/DeleteCardConfirmation.tsx:78
+msgid "This action can't be undone."
+msgstr "Diese Aktion kann nicht rückgängig gemacht werden."
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:135
+msgid "This board URL has already been taken"
+msgstr "Diese Board-URL ist bereits vergeben"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:70
+msgid "This will result in the permanent deletion of all data associated with this workspace."
+msgstr "Dies führt zur permanenten Löschung aller mit diesem Workspace verbundenen Daten."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:60
+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/views/settings/components/UpdateWorkspaceUrlForm.tsx:123
+msgid "This workspace username has already been taken"
+msgstr "Dieser Workspace-Benutzername ist bereits vergeben"
+
+#: src/views/home/components/Header.tsx:73
+msgid "Toggle menu"
+msgstr "Menü umschalten"
+
+#: src/views/home/components/Features.tsx:104
+msgid "Track all card changes with detailed activity history."
+msgstr "Verfolge alle kartenänderungen mit detaillierter aktivitätshistorie."
+
+#: src/views/settings/index.tsx:69
+msgid "Trello disconnected"
+msgstr "Trello getrennt"
+
+#: src/views/home/components/Features.tsx:88
+msgid "Trello imports"
+msgstr "Trello-importe"
+
+#: src/views/card/components/NewCommentForm.tsx:30
+msgid "Unable to add comment"
+msgstr "Kommentar konnte nicht hinzugefügt werden"
+
+#: src/views/board/components/NewCardForm.tsx:125
+msgid "Unable to create card"
+msgstr "Karte konnte nicht erstellt werden"
+
+#: src/views/board/components/NewListForm.tsx:77
+msgid "Unable to create list"
+msgstr "Liste konnte nicht erstellt werden"
+
+#: src/components/NewWorkspaceForm.tsx:38
+msgid "Unable to create workspace"
+msgstr "Workspace konnte nicht erstellt werden"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:51
+msgid "Unable to delete card"
+msgstr "Karte konnte nicht gelöscht werden"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:44
+msgid "Unable to delete comment"
+msgstr "Kommentar konnte nicht gelöscht werden"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:27
+msgid "Unable to remove member"
+msgstr "Mitglied konnte nicht entfernt werden"
+
+#: src/components/FeedbackButton.tsx:45
+msgid "Unable to send feedback"
+msgstr "Feedback konnte nicht gesendet werden"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:71
+msgid "Unable to update board URL"
+msgstr "Board-URL kann nicht aktualisiert werden"
+
+#: src/views/board/components/VisibilityButton.tsx:52
+msgid "Unable to update board visibility"
+msgstr "Board-Sichtbarkeit konnte nicht aktualisiert werden"
+
+#: src/views/card/index.tsx:115
+#: src/views/board/index.tsx:188
+msgid "Unable to update card"
+msgstr "Karte konnte nicht aktualisiert werden"
+
+#: src/views/card/components/Comment.tsx:61
+msgid "Unable to update comment"
+msgstr "Kommentar konnte nicht aktualisiert werden"
+
+#: src/views/card/components/LabelSelector.tsx:72
+msgid "Unable to update labels"
+msgstr "Labels konnten nicht aktualisiert werden"
+
+#: src/views/card/components/ListSelector.tsx:52
+#: src/views/board/index.tsx:132
+msgid "Unable to update list"
+msgstr "Liste konnte nicht aktualisiert werden"
+
+#: src/views/card/components/MemberSelector.tsx:79
+msgid "Unable to update members"
+msgstr "Mitglieder konnten nicht aktualisiert werden"
+
+#: src/views/card/components/ActivityList.tsx:102
+msgid "unassigned <0>{memberName}0> from the card"
+msgstr "<0>{memberName}0> von der Karte entfernt"
+
+#: src/views/card/components/ActivityList.tsx:99
+msgid "unassigned themselves from the card"
+msgstr "hat sich selbst von der Karte entfernt"
+
+#: src/views/home/components/Pricing.tsx:41
+msgid "Unlimited activity log"
+msgstr "Unbegrenztes aktivitätsprotokoll"
+
+#: src/views/home/components/Pricing.tsx:37
+msgid "Unlimited boards"
+msgstr "Unbegrenzte boards"
+
+#: src/views/home/components/Cta.tsx:57
+msgid "Unlimited boards, unlimited lists, unlimited cards. No credit card required."
+msgstr "Unbegrenzte boards, unbegrenzte listen, unbegrenzte karten. Keine kreditkarte erforderlich."
+
+#: src/views/home/components/Pricing.tsx:39
+msgid "Unlimited cards"
+msgstr "Unbegrenzte karten"
+
+#: src/views/home/components/Pricing.tsx:40
+msgid "Unlimited comments"
+msgstr "Unbegrenzte kommentare"
+
+#: src/views/home/components/Pricing.tsx:38
+msgid "Unlimited lists"
+msgstr "Unbegrenzte listen"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:154
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:82
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
+#: src/views/board/components/UpdateBoardSlugForm.tsx:166
+msgid "Update"
+msgstr "Aktualisieren"
+
+#: src/components/LabelForm.tsx:233
+msgid "Update label"
+msgstr "Label aktualisieren"
+
+#: src/views/card/components/ActivityList.tsx:54
+msgid "updated the description"
+msgstr "hat die Beschreibung aktualisiert"
+
+#: src/views/card/components/ActivityList.tsx:53
+msgid "updated the title"
+msgstr "hat den Titel aktualisiert"
+
+#: src/views/card/components/ActivityList.tsx:73
+msgid "updated the title to <0>{toTitle}0>"
+msgstr "hat den Titel zu <0>{toTitle}0> aktualisiert"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:52
+msgid "Upgrade"
+msgstr "Upgrade"
+
+#: 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/views/settings/components/UpdateWorkspaceUrlForm.tsx:34
+msgid "URL cannot exceed 24 characters"
+msgstr "URL darf nicht länger als 24 Zeichen sein"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:32
+msgid "URL must be at least 3 characters long"
+msgstr "URL muss mindestens 3 Zeichen lang sein"
+
+#: src/views/members/index.tsx:172
+msgid "User"
+msgstr "Benutzer"
+
+#: src/views/settings/index.tsx:232
+msgid "View and manage your API keys."
+msgstr "API-Schlüssel anzeigen und verwalten."
+
+#: src/views/settings/index.tsx:171
+msgid "View and manage your billing and subscription."
+msgstr "Verwalte deine Abrechnung und dein Abonnement."
+
+#: src/views/home/components/Pricing.tsx:67
+msgid "View docs"
+msgstr "Dokumentation ansehen"
+
+#: src/views/home/components/Features.tsx:147
+msgid "View our roadmap."
+msgstr "Sieh dir unsere roadmap an."
+
+#: src/views/board/components/VisibilityButton.tsx:91
+msgid "Visibility"
+msgstr "Sichtbarkeit"
+
+#: src/views/home/components/Faqs.tsx:94
+msgid "We are using the <0>AGPL-3.0 license0>."
+msgstr "Wir verwenden die <0>AGPL-3.0 lizenz0>."
+
+#: src/views/home/components/Features.tsx:145
+msgid "We're just getting started. "
+msgstr "Wir stehen erst am anfang. "
+
+#: src/views/auth/login/index.tsx:41
+msgid "Welcome back"
+msgstr "Willkommen zurück"
+
+#: src/views/home/components/Faqs.tsx:91
+msgid "What license are you using?"
+msgstr "Welche lizenz verwendet ihr?"
+
+#: src/views/home/components/Faqs.tsx:30
+msgid "What's the difference between Kan and Trello?"
+msgstr "Was ist der unterschied zwischen Kan und Trello?"
+
+#: src/views/home/components/Faqs.tsx:25
+msgid "When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \"Jira Lite\". This project is our attempt to recapture the original magic of Trello's simplicity, in open source."
+msgstr "Als Trello 2011 auf den markt kam, beeindruckte es alle mit seiner sorgfältig gestalteten einfachheit, aber mit der zeit (und der atlassifizierung) verlor es seinen zauber und entwickelte sich zu etwas, das eher einem \"Jira Lite\" ähnelt. Dieses projekt ist unser versuch, den ursprünglichen zauber von Trellos einfachheit als open source wiederzubeleben."
+
+#: src/views/home/components/Faqs.tsx:22
+msgid "Why make an open source Trello?"
+msgstr "Warum ein open source Trello entwickeln?"
+
+#: src/views/board/index.tsx:239
+msgid "Workspace"
+msgstr "Arbeitsbereich"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:26
+msgid "Workspace deleted"
+msgstr "Workspace gelöscht"
+
+#: src/views/settings/index.tsx:147
+msgid "Workspace description"
+msgstr "Workspace-Beschreibung"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:28
+msgid "Workspace description cannot exceed 280 characters"
+msgstr "Workspace-Beschreibung darf nicht länger als 280 Zeichen sein"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:25
+msgid "Workspace description must be at least 3 characters long"
+msgstr "Workspace-Beschreibung muss mindestens 3 Zeichen lang sein"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:48
+msgid "Workspace description updated"
+msgstr "Workspace-Beschreibung aktualisiert"
+
+#: src/views/home/components/Pricing.tsx:54
+#: src/views/home/components/Features.tsx:83
+msgid "Workspace members"
+msgstr "Workspace-mitglieder"
+
+#: src/views/settings/index.tsx:130
+#: src/components/NewWorkspaceForm.tsx:78
+msgid "Workspace name"
+msgstr "Name des Workspaces"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:15
+msgid "Workspace name cannot exceed 24 characters"
+msgstr "Der Workspace-Name darf nicht länger als 24 Zeichen sein"
+
+#: 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"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:43
+msgid "Workspace name updated"
+msgstr "Workspace-Name aktualisiert"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:60
+msgid "Workspace slug updated"
+msgstr "Workspace-Slug aktualisiert"
+
+#: src/views/settings/index.tsx:138
+msgid "Workspace URL"
+msgstr "Workspace-URL"
+
+#: src/views/home/components/Pricing.tsx:19
+msgid "Yearly"
+msgstr "Jährlich"
+
+#: src/views/home/components/Faqs.tsx:86
+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/home/components/Faqs.tsx:67
+msgid "You can get a custom workspace URL, like <0>kan.bn/kan0>, by going into your <1>workspace settings1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
+msgstr "Du kannst eine benutzerdefinierte workspace-URL, wie <0>kan.bn/kan0>, erhalten, indem du in deine <1>workspace-einstellungen1> gehst und ein pro-workspace-abonnement kaufst. Alle abonnements helfen, die entwicklung des projekts zu finanzieren!"
+
+#: src/views/home/components/Faqs.tsx:111
+msgid "You can invite team members by clicking the \"Invite\" button in the top right corner of the <0>members page0> and entering their email address. They will receive an email with a link to join the workspace."
+msgstr "Du kannst teammitglieder einladen, indem du auf die schaltfläche \"Einladen\" in der oberen rechten ecke der <0>mitgliederseite0> klickst und ihre e-mail-adresse eingibst. Sie erhalten eine e-mail mit einem link zum beitreten zum workspace."
+
+#: src/views/home/components/Faqs.tsx:127
+msgid "You can self-host by following the instructions in our <0>repo0>."
+msgstr "Sie können selbst hosten, indem sie den anweisungen in unserem <0>repo0> folgen."
+
+#: src/components/AuthForm.tsx:206
+msgid "You have been logged in successfully."
+msgstr "Sie haben sich erfolgreich angemeldet."
+
+#: src/components/AuthForm.tsx:189
+msgid "You have been signed up successfully."
+msgstr "Sie haben sich erfolgreich registriert."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
+msgid "Your account has been deleted."
+msgstr "Dein Konto wurde gelöscht."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:192
+msgid "Your boards have been imported."
+msgstr "Deine Boards wurden importiert."
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:42
+msgid "Your display name has been updated."
+msgstr "Dein Anzeigename wurde aktualisiert."
+
+#: src/views/settings/components/Avatar.tsx:25
+msgid "Your profile image has been updated."
+msgstr "Dein Profilbild wurde aktualisiert."
+
+#: src/views/settings/index.tsx:70
+msgid "Your Trello account has been disconnected."
+msgstr "Dein Trello-Konto wurde getrennt."
+
+#: src/views/settings/index.tsx:214
+msgid "Your Trello account is connected."
+msgstr "Dein Trello-Konto ist verbunden."
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:49
+msgid "Your workspace description has been updated."
+msgstr "Deine Workspace-Beschreibung wurde aktualisiert."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:27
+msgid "Your workspace has been deleted."
+msgstr "Dein Arbeitsbereich wurde gelöscht."
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:44
+msgid "Your workspace name has been updated."
+msgstr "Der Name deines Arbeitsbereichs wurde aktualisiert."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:61
+msgid "Your workspace slug has been updated."
+msgstr "Dein Workspace-Slug wurde aktualisiert."
diff --git a/apps/web/src/locales/de/messages.ts b/apps/web/src/locales/de/messages.ts
new file mode 100644
index 00000000..2e170e16
--- /dev/null
+++ b/apps/web/src/locales/de/messages.ts
@@ -0,0 +1 @@
+/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"X0N0PA\":[\" (bearbeitet)\"],\"lGjicL\":[\", oder besuche unsere\"],\"JArWcF\":[[\"0\"],\" | \",[\"1\"]],\"CJukzS\":[[\"0\"],\" Labels\"],\"0xWkkH\":[[\"boardCount\",\"plural\",{\"one\":[\"Board importieren (1)\"],\"other\":[\"Boards importieren (\",[\"boardCount\"],\")\"]}]],\"qrT8WB\":[\"#1 Hacker News\"],\"zMlxCA\":[\"1 Benutzer\"],\"d7XqZJ\":[\"A powerful, flexible kanban app that helps you organise work,\\n track progress, and deliver results—all in one place.\"],\"/rn4RE\":[\"Eine leistungsstarke, flexible Kanban-App, die dir hilft, Arbeit zu organisieren, Fortschritte zu verfolgen und Ergebnisse zu liefern – alles an einem Ort.\"],\"TKFUnX\":[\"Konto gelöscht\"],\"XJOV1Y\":[\"Aktivität\"],\"tMYIu7\":[\"Aktivitätsprotokolle\"],\"B3xxao\":[\"Karte hinzufügen\"],\"1ZVGyT\":[\"Kommentar hinzufügen...\"],\"/Blkmk\":[\"Beschreibung hinzufügen... (tippe '/' um Befehle zu öffnen)\"],\"lyqwgn\":[\"Label hinzufügen\"],\"PCIlOO\":[\"Mitglied hinzufügen\"],\"T21jY/\":[\"hat ein Label zur Karte hinzugefügt\"],\"rs7L54\":[\"hat ein Mitglied zur Karte hinzugefügt\"],\"SKqXzW\":[\"hat Label <0>\",[\"label\"],\"0> hinzugefügt\"],\"3pIq39\":[\"Administratorrollen\"],\"lSNkXg\":[\"Alle Plätze sind während der Beta-Phase bis zum 1. September kostenlos!\"],\"UQbwrz\":[\"Alle Systeme funktionieren\"],\"WnEwDO\":[\"Du hast bereits ein Konto? <0><1>Anmelden1>0>\"],\"WmPhYW\":[\"Beim Trennen deines Trello-Kontos ist ein Fehler aufgetreten.\"],\"5h8ooz\":[\"API-Schlüssel\"],\"j2+d/o\":[\"API-Referenz\"],\"lo8xBK\":[\"Bist du sicher, dass du \",[\"entityLabel\"],\" entfernen möchtest?\"],\"BhDZlc\":[\"Bist du sicher, dass du den Workspace \",[\"0\"],\" löschen möchtest?\"],\"ZT4Khw\":[\"Bist du sicher, dass du diese Karte löschen möchtest?\"],\"PRjvDT\":[\"Bist du sicher, dass du diesen Kommentar löschen möchtest?\"],\"74F7N/\":[\"Bist du sicher, dass du dein Konto löschen möchtest?\"],\"EEQaqX\":[\"hat <0>\",[\"memberName\"],\"0> der Karte zugewiesen\"],\"R+w/Va\":[\"Abrechnung\"],\"9wdpwp\":[\"Abrechnungsportal\"],\"QD8opX\":[\"Board\"],\"jwI32v\":[\"Board nicht gefunden\"],\"Xid3K6\":[\"Board-URL darf nur Buchstaben, Zahlen und Bindestriche enthalten\"],\"gv5kbo\":[\"Board-URL darf 60 Zeichen nicht überschreiten\"],\"8+BY11\":[\"Board-URL in die Zwischenablage kopiert\"],\"TmvrjU\":[\"Board-URL muss mindestens 3 Zeichen lang sein\"],\"qzdST2\":[\"Board-Sichtbarkeit\"],\"PTzsxH\":[\"Board-Sichtbarkeit aktualisiert\"],\"8TveY+\":[\"Boards\"],\"seaklU\":[\"Boards | \",[\"0\"]],\"dEgA5A\":[\"Abbrechen\"],\"fEY2vP\":[\"Karte nicht gefunden\"],\"ZH7TVS\":[\"Kartentitel\"],\"Bosey8\":[\"Ändere die Sprache der App.\"],\"5IXWmO\":[\"Überprüfe deinen Posteingang\"],\"u8JHrO\":[\"Filter löschen\"],\"RRn9jf\":[\"Klicke auf den Link, den wir an \",[\"magicLinkRecipient\"],\" gesendet haben, um dich anzumelden.\"],\"EvArWh\":[\"Arbeite nahtlos mit deinem Team zusammen.\"],\"AUYALh\":[\"Demnächst verfügbar\"],\"VbyRUy\":[\"Kommentare\"],\"7i8j3G\":[\"Unternehmen\"],\"cAgBMh\":[\"Vollständige Kontrolle und Eigentum:\"],\"8ZoISG\":[\"URL-Änderung bestätigen\"],\"nk7caK\":[\"Trello verbinden\"],\"sDLCvT\":[\"Verbinde deine Lieblingstools, um deinen Arbeitsablauf zu optimieren.\"],\"5eZwRW\":[\"Verbinde dein Trello-Konto, um Boards zu importieren.\"],\"jfC/xh\":[\"Kontakt\"],\"Bhgd0l\":[\"Kontaktiere uns\"],\"J2Wbjt\":[\"Fortfahren mit \"],\"gkzAEM\":[\"Fortfahren mit \",[\"0\"]],\"va/3u1\":[\"Kontrolliere, wer deine Boards ansehen und bearbeiten kann.\"],\"vgdzLf\":[\"Weitere erstellen\"],\"uXGLuq\":[\"Create API key\"],\"Pa9/o1\":[\"Create API keys to access the Kan API.\"],\"9QmxLI\":[\"Board erstellen\"],\"dsLT3m\":[\"Karte erstellen\"],\"QtACvI\":[\"Label erstellen\"],\"XTKtey\":[\"Liste erstellen\"],\"poDo/D\":[\"Neues Board erstellen\"],\"okpxfB\":[\"Neuen Schlüssel erstellen\"],\"0+0/3e\":[\"Neues Label erstellen\"],\"aWlSc/\":[\"Neue Liste erstellen\"],\"FdtSNC\":[\"Arbeitsbereich erstellen\"],\"f8lDFq\":[\"hat die Karte erstellt\"],\"GAD3Dx\":[\"Benutzerdefinierte Domain\"],\"91W07W\":[\"Benutzerdefinierte URLs sind eine Premium-Funktion. Du wirst zur Aktualisierung deines Kontos weitergeleitet.\"],\"pvnfJD\":[\"Dunkel\"],\"cnGeoo\":[\"Löschen\"],\"ZDGm40\":[\"Konto löschen\"],\"tmpW+w\":[\"Board löschen\"],\"nabda1\":[\"Karte löschen\"],\"njJFtc\":[\"Kommentar löschen\"],\"lYT7pQ\":[\"Liste löschen\"],\"kYu0eF\":[\"Workspace löschen\"],\"YBBifR\":[\"Trello trennen\"],\"1sRmLC\":[\"Diskutiere und arbeite gemeinsam an Karten.\"],\"pfa8F0\":[\"Anzeigename\"],\"MlyjJu\":[\"Anzeigename darf nicht länger als 280 Zeichen sein\"],\"KFJgmZ\":[\"Anzeigename muss mindestens 3 Zeichen lang sein\"],\"x8GeCD\":[\"Anzeigename aktualisiert\"],\"evj0lK\":[\"Bietet ihr einen kostenlosen Plan an?\"],\"JyXBgS\":[\"Dokumente\"],\"TbjyhA\":[\"Dokumente\"],\"TvY/XA\":[\"Dokumentation\"],\"vUr5JT\":[\"Du hast noch kein Konto? <0><1>Registrieren1>0>\"],\"tIdipJ\":[\"Board-URL bearbeiten\"],\"rF8SEQ\":[\"Kommentar bearbeiten\"],\"dgr4Kq\":[\"Label bearbeiten\"],\"b/LfJo\":[\"E-Mail\"],\"O3oNi5\":[\"E-Mail\"],\"xRPn3U\":[\"Gib deine E-Mail-Adresse ein\"],\"n9V+ps\":[\"Gib deinen Namen ein\"],\"NgaR6B\":[\"Gib dein Passwort ein\"],\"bqAQaT\":[\"Fehler beim Löschen des Kontos\"],\"9s9O5h\":[\"Fehler beim Löschen des Arbeitsbereichs\"],\"lKAvEd\":[\"Fehler beim Trennen von Trello\"],\"sVBn4K\":[\"Fehler beim Aktualisieren des Anzeigenamens\"],\"4ix5kl\":[\"Fehler beim Aktualisieren des Profilbilds\"],\"CkVV1t\":[\"Fehler beim Aktualisieren der Workspace-Beschreibung\"],\"LoUCpj\":[\"Fehler beim Aktualisieren des Arbeitsbereichsnamens\"],\"x0kMO/\":[\"Fehler beim Aktualisieren der Workspace-URL\"],\"CYWHT+\":[\"Fehler beim Hochladen des Profilbilds\"],\"8iP0S8\":[\"Alles im kostenlosen Plan, plus:\"],\"ANyn0x\":[\"Alles was du brauchst, für immer kostenlos. Unbegrenzte Boards, unbegrenzte Listen, unbegrenzte Karten. Jederzeit upgraden.\"],\"YtUfwW\":[\"Anmeldung mit \",[\"0\"],\" fehlgeschlagen. Bitte versuche es erneut.\"],\"aJ4pMe\":[\"Häufig gestellte Fragen\"],\"PpZkda\":[\"Features\"],\"YirHq7\":[\"Feedback\"],\"2roTVj\":[\"Feedback gesendet\"],\"o7J4JM\":[\"Filter\"],\"iFxrHK\":[\"Finden Sie Antworten auf häufige Fragen zum Projekt. Nicht gefunden, wonach Sie suchen? Zögern Sie nicht, uns zu <0>kontaktieren0>.\"],\"aj40Mw\":[\"Für langfristige Nachhaltigkeit erkennen wir an, dass alle guten Open-Source-Projekte eine Einnahmequelle benötigen. Unsere stammt aus dem kostenpflichtigen Cloud-Angebot für Workspaces mit mehreren Benutzern (kostenlos während der Beta-Phase) und für benutzerdefinierte Workspace-Slugs. Es besteht keine Verpflichtung, dieses Angebot zu nutzen, und Sie können die Software kostenlos auf Ihrer eigenen Infrastruktur selbst hosten.\"],\"2POOFK\":[\"Kostenlos\"],\"gpfJ3v\":[\"Kostenlos, für immer\"],\"ZDIydz\":[\"Loslegen\"],\"c3b0B0\":[\"Loslegen\"],\"YQqv2e\":[\"Beginne, indem du ein neues Board erstellst\"],\"zC8Whw\":[\"Beginne mit dem Erstellen einer neuen Liste\"],\"oW13KZ\":[\"Starten Sie noch heute kostenlos\"],\"+OhFss\":[\"Starten Sie kostenlos ohne Nutzungsbeschränkungen. Für die Zusammenarbeit wechseln Sie zu einem Plan, der zur Größe Ihres Teams passt.\"],\"rD6UIt\":[\"In der Cloud starten\"],\"7hktsm\":[\"Erste Schritte\"],\"RkXlPZ\":[\"GitHub\"],\"UveK6V\":[\"Zur App\"],\"LrcnbT\":[\"Hosten Sie Kan auf Ihrer eigenen Infrastruktur. Ideal für Organisationen, die vollständige Kontrolle über ihre Daten benötigen.\"],\"WI4eGo\":[\"Wie erhalte ich eine benutzerdefinierte URL?\"],\"yV7o5I\":[\"Wie importiere ich meine Trello-Boards?\"],\"nol/Fb\":[\"Wie lade ich Teammitglieder ein?\"],\"KuSt9W\":[\"Wie kann ich selbst hosten?\"],\"UeDFpo\":[\"Wie wird das Projekt finanziert?\"],\"2liqDZ\":[\"Ich bestätige, dass alle meine Kontodaten dauerhaft gelöscht werden, und möchte fortfahren.\"],\"2Py5S/\":[\"Ich bestätige, dass alle Daten des Arbeitsbereichs dauerhaft gelöscht werden, und möchte fortfahren.\"],\"F/vB2g\":[\"Ideen zur Verbesserung dieser Seite...\"],\"l3s5ri\":[\"Importieren\"],\"2MPcep\":[\"Import abgeschlossen\"],\"BEVzjL\":[\"Import fehlgeschlagen\"],\"rRM7r0\":[\"Importieren Sie Ihre Trello-Boards und starten Sie sofort durch.\"],\"xMn+V9\":[\"Import von Trello\"],\"g2xBxu\":[\"Der Import Ihrer Trello-Boards in Kan ist einfach. Sie können unserer Schritt-für-Schritt-Anleitung <0>hier0> folgen.\"],\"6mbe4b\":[\"Einzelpersonen\"],\"nbfdhU\":[\"Integrationen\"],\"MFKlMB\":[\"Einladen\"],\"+djOzj\":[\"Mitglied einladen\"],\"aWDhU5\":[\"Kanban funktioniert besser im Team. Perfekt für kleine und wachsende Teams, die zusammenarbeiten möchten.\"],\"Xjj/kS\":[\"Kanban neu gedacht\"],\"JbXXUW\":[\"Beachten Sie, dass diese Aktion nicht rückgängig gemacht werden kann.\"],\"h8DugX\":[\"Labels\"],\"+nvZ6j\":[\"Labels & Filter\"],\"vXIe7J\":[\"Sprache\"],\"vifyyw\":[\"Rechtliches\"],\"iQmbPb\":[\"Lizenz\"],\"1njn7W\":[\"Hell\"],\"edWbV6\":[\"Link kopiert\"],\"2BBAbc\":[\"Liste\"],\"zQX5Dj\":[\"Listenname\"],\"N/bcWA\":[\"Login | kan.bn\"],\"nOhz3x\":[\"Abmelden\"],\"JnWJXY\":[\"Magic Link\"],\"wlQNTg\":[\"Mitglieder\"],\"9u5BOr\":[\"Mitglieder | \",[\"0\"]],\"+8Nek/\":[\"Monatlich\"],\"EM/caO\":[\"hat die Karte von <0>\",[\"fromList\"],\"0> nach <1>\",[\"toList\"],\"1> verschoben\"],\"T7LJic\":[\"hat die Karte in eine andere Liste verschoben\"],\"6YtxFj\":[\"Name\"],\"HBI6nY\":[\"Brauchst du Hilfe?\"],\"isRobC\":[\"Neu\"],\"zDw80P\":[\"Neues Board\"],\"pnrmSP\":[\"Neue Karte\"],\"WYwN1G\":[\"Neuer Import\"],\"n1GRql\":[\"Neues Label\"],\"Sb2gYF\":[\"Neue Liste\"],\"curoK5\":[\"Neuer Workspace\"],\"DhLN1b\":[\"Keine Boards\"],\"2Bu8xj\":[\"Keine Boards gefunden\"],\"OpNhRn\":[\"Keine Kreditkarte erforderlich\"],\"hXMFoN\":[\"Keine Listen\"],\"usVytm\":[\"Sobald Sie Ihr Konto löschen, gibt es kein Zurück mehr. Diese Aktion kann nicht rückgängig gemacht werden.\"],\"dmKdk0\":[\"Sobald Sie Ihren Arbeitsbereich löschen, gibt es kein Zurück mehr. Diese Aktion kann nicht rückgängig gemacht werden.\"],\"BzEFor\":[\"oder\"],\"ZqDqbi\":[\"Organisiere und finde Karten schnell mit leistungsstarken Filterwerkzeugen.\"],\"SPLN9O\":[\"Besitze deine Daten\"],\"UbYdrA\":[\"Zahlungshäufigkeit\"],\"UbRKMZ\":[\"Ausstehend\"],\"oVBq1w\":[\"pro Benutzer/Monat\"],\"OtjenF\":[\"Bitte gib eine gültige E-Mail-Adresse ein\"],\"CJ3zUq\":[\"Bitte gib einen gültigen Namen ein\"],\"7b2yuC\":[\"Bitte gib ein gültiges Passwort ein\"],\"wPZBpR\":[\"Bitte wähle eine Datei zum Hochladen aus.\"],\"tyHiOa\":[\"Bitte versuche es später noch einmal oder kontaktiere den Kundensupport.\"],\"aHCEmh\":[\"Preise\"],\"ESClHO\":[\"Prioritäts-E-Mail-Support\"],\"ScJ9fj\":[\"Datenschutzrichtlinie\"],\"zwBp5t\":[\"Privat\"],\"0rPv1T\":[\"Profilbild aktualisiert\"],\"4XF0BB\":[\"Profilbild\"],\"7d1a0d\":[\"Öffentlich\"],\"1H5u1m\":[\"Fragen?\"],\"t/YqKh\":[\"Entfernen\"],\"99VIgC\":[\"Mitglied entfernen\"],\"kQwvU8\":[\"hat ein Label von der Karte entfernt\"],\"uck1tz\":[\"hat ein Mitglied von der Karte entfernt\"],\"zdMPUq\":[\"hat Label <0>\",[\"label\"],\"0> entfernt\"],\"s+MGs7\":[\"Ressourcen\"],\"GXsAby\":[\"Widerrufen\"],\"/gaSVU\":[\"Roadmap\"],\"GDvlUT\":[\"Rolle\"],\"vAR/I8\":[\"Auf eigener Infrastruktur betreiben\"],\"tfDRzk\":[\"Speichern\"],\"MdwUGG\":[\"Spare Zeit mit wiederverwendbaren Board-Vorlagen.\"],\"wgNoIs\":[\"Alle auswählen\"],\"rYUZIe\":[\"Quelle auswählen\"],\"ppaRWv\":[\"Selbst hosten\"],\"l2PIAy\":[\"Selbst hosten mit Github\"],\"VXk54Y\":[\"hat sich selbst die Karte zugewiesen\"],\"JlFcis\":[\"Senden\"],\"Tz0i8g\":[\"Einstellungen\"],\"5wo3jF\":[\"Einstellungen | \",[\"0\"]],\"5lWFkC\":[\"Anmelden\"],\"sUZo7y\":[\"Registrieren | kan.bn\"],\"WRkpB1\":[\"Registrierung deaktiviert\"],\"s6iE/c\":[\"Die Registrierung ist derzeit deaktiviert. Bitte versuche es später erneut.\"],\"6FDocz\":[\"Registrieren mit \"],\"m2nk0i\":[\"Einfache Preisgestaltung\"],\"sBhOFG\":[\"Einfaches, visuelles Aufgabenmanagement, das einfach funktioniert. Ziehe Karten per Drag-and-drop, arbeite mit deinem Team zusammen und erledige mehr.\"],\"R6pB8R\":[\"Stern auf Github\"],\"zzDlyQ\":[\"Erfolg\"],\"wruKPE\":[\"Unterstütze die Entwicklung des Projekts\"],\"D+NlUC\":[\"System\"],\"CAL6E9\":[\"Teams\"],\"iTylMl\":[\"Vorlagen\"],\"UCLeG0\":[\"Nutzungsbedingungen\"],\"nhMhRr\":[\"Vielen Dank für dein Feedback!\"],\"lkz85l\":[\"Der hauptunterschied zwischen Kan und Trello ist, dass Kan open source ist und jedem ermöglicht, unseren code einzusehen, zu ändern und dazu beizutragen. Unser cloud-angebot bietet außerdem keine einschränkungen bei funktionen für die individuelle nutzung, während Trello grundlegende funktionen wie die anzahl der boards, die du erstellen kannst, hinter einer paywall versteckt.\"],\"gUX7b+\":[\"Die open source <0/> alternative zu Trello\"],\"fQCrjt\":[\"Die Sichtbarkeit deines Boards wurde auf \",[\"0\"],\" gesetzt.\"],\"FEr96N\":[\"Design\"],\"Yf9FAx\":[\"Sie werden keinen Zugriff mehr auf diesen Workspace haben.\"],\"3LDCpD\":[\"Diese Aktion kann nicht rückgängig gemacht werden.\"],\"wY+6Ye\":[\"Diese Board-URL ist bereits vergeben\"],\"MeO/vH\":[\"Dies führt zur permanenten Löschung aller mit diesem Workspace verbundenen Daten.\"],\"mwBdZ2\":[\"Dies führt zur permanenten Löschung aller mit deinem Konto verbundenen Daten.\"],\"kp6L3T\":[\"Dieser Workspace-Benutzername ist bereits vergeben\"],\"4gAX8s\":[\"Menü umschalten\"],\"eEQyz+\":[\"Verfolge alle kartenänderungen mit detaillierter aktivitätshistorie.\"],\"zto8aj\":[\"Trello getrennt\"],\"kxEs5t\":[\"Trello-importe\"],\"T7DJ2k\":[\"Kommentar konnte nicht hinzugefügt werden\"],\"zl1b97\":[\"Karte konnte nicht erstellt werden\"],\"TztLaN\":[\"Liste konnte nicht erstellt werden\"],\"MxQXhL\":[\"Workspace konnte nicht erstellt werden\"],\"Z6r9z1\":[\"Karte konnte nicht gelöscht werden\"],\"2QGEbi\":[\"Kommentar konnte nicht gelöscht werden\"],\"8yFGGF\":[\"Mitglied konnte nicht entfernt werden\"],\"A8jqN7\":[\"Feedback konnte nicht gesendet werden\"],\"XpcjLO\":[\"Board-URL kann nicht aktualisiert werden\"],\"Wy6pcF\":[\"Board-Sichtbarkeit konnte nicht aktualisiert werden\"],\"o9WLwO\":[\"Karte konnte nicht aktualisiert werden\"],\"fYVH36\":[\"Kommentar konnte nicht aktualisiert werden\"],\"delOXn\":[\"Labels konnten nicht aktualisiert werden\"],\"I0gAKM\":[\"Liste konnte nicht aktualisiert werden\"],\"5P4rhH\":[\"Mitglieder konnten nicht aktualisiert werden\"],\"nxb+xc\":[\"<0>\",[\"memberName\"],\"0> von der Karte entfernt\"],\"hAMddS\":[\"hat sich selbst von der Karte entfernt\"],\"M9p3Vw\":[\"Unbegrenztes aktivitätsprotokoll\"],\"1wCGT0\":[\"Unbegrenzte boards\"],\"ZU5IYI\":[\"Unbegrenzte boards, unbegrenzte listen, unbegrenzte karten. Keine kreditkarte erforderlich.\"],\"Zz1qkk\":[\"Unbegrenzte karten\"],\"fziA2d\":[\"Unbegrenzte kommentare\"],\"7Ufoyg\":[\"Unbegrenzte listen\"],\"EkH9pt\":[\"Aktualisieren\"],\"7EhE4k\":[\"Label aktualisieren\"],\"tGwwnq\":[\"hat die Beschreibung aktualisiert\"],\"V3MPSQ\":[\"hat den Titel aktualisiert\"],\"xJO7ca\":[\"hat den Titel zu <0>\",[\"toTitle\"],\"0> aktualisiert\"],\"kwkhPe\":[\"Upgrade\"],\"MI5OBT\":[\"URL darf nur Buchstaben, Zahlen und Bindestriche enthalten\"],\"vMCCIc\":[\"URL darf nicht länger als 24 Zeichen sein\"],\"SWEskc\":[\"URL muss mindestens 3 Zeichen lang sein\"],\"7PzzBU\":[\"Benutzer\"],\"FmfJjN\":[\"API-Schlüssel anzeigen und verwalten.\"],\"t2nDzl\":[\"Verwalte deine Abrechnung und dein Abonnement.\"],\"aiHZVP\":[\"Dokumentation ansehen\"],\"fSf2ee\":[\"Sieh dir unsere roadmap an.\"],\"2q/Q7x\":[\"Sichtbarkeit\"],\"BJbLe4\":[\"Wir verwenden die <0>AGPL-3.0 lizenz0>.\"],\"9y1RcT\":[\"Wir stehen erst am anfang. \"],\"9eF5oV\":[\"Willkommen zurück\"],\"xEbBrW\":[\"Welche lizenz verwendet ihr?\"],\"H5G+qG\":[\"Was ist der unterschied zwischen Kan und Trello?\"],\"oBndex\":[\"Als Trello 2011 auf den markt kam, beeindruckte es alle mit seiner sorgfältig gestalteten einfachheit, aber mit der zeit (und der atlassifizierung) verlor es seinen zauber und entwickelte sich zu etwas, das eher einem \\\"Jira Lite\\\" ähnelt. Dieses projekt ist unser versuch, den ursprünglichen zauber von Trellos einfachheit als open source wiederzubeleben.\"],\"/DGOJs\":[\"When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \\\"Jira Lite\\\". This project is our attempt to recapture the original magic of Trello’s simplicity, in open source.\"],\"SFnH1j\":[\"Warum ein open source Trello entwickeln?\"],\"pmUArF\":[\"Arbeitsbereich\"],\"UlhdTP\":[\"Workspace gelöscht\"],\"chyf4J\":[\"Workspace-Beschreibung\"],\"Ax/hYa\":[\"Workspace-Beschreibung darf nicht länger als 280 Zeichen sein\"],\"XDRXbZ\":[\"Workspace-Beschreibung muss mindestens 3 Zeichen lang sein\"],\"F4PLG4\":[\"Workspace-Beschreibung aktualisiert\"],\"wtxjAY\":[\"Workspace-mitglieder\"],\"CozWO1\":[\"Name des Workspaces\"],\"wIkTTk\":[\"Der Workspace-Name darf nicht länger als 24 Zeichen sein\"],\"jZBHkN\":[\"Der Workspace-Name muss mindestens 3 Zeichen lang sein\"],\"OIA0ad\":[\"Workspace-Name aktualisiert\"],\"MN6YzG\":[\"Workspace-Slug aktualisiert\"],\"ASjvm9\":[\"Workspace-URL\"],\"zkWmBh\":[\"Jährlich\"],\"eZCGbT\":[\"Ja, wir bieten einen dauerhaft kostenlosen plan für die individuelle nutzung an. Keine einschränkungen, keine paywalls, keine limits.\"],\"aelko+\":[\"Du kannst eine benutzerdefinierte workspace-URL, wie <0>kan.bn/kan0>, erhalten, indem du in deine <1>workspace-einstellungen1> gehst und ein pro-workspace-abonnement kaufst. Alle abonnements helfen, die entwicklung des projekts zu finanzieren!\"],\"kSxwQL\":[\"Du kannst teammitglieder einladen, indem du auf die schaltfläche \\\"Einladen\\\" in der oberen rechten ecke der <0>mitgliederseite0> klickst und ihre e-mail-adresse eingibst. Sie erhalten eine e-mail mit einem link zum beitreten zum workspace.\"],\"vAj6xG\":[\"Sie können selbst hosten, indem sie den anweisungen in unserem <0>repo0> folgen.\"],\"p/hk9N\":[\"Sie haben sich erfolgreich angemeldet.\"],\"mchgzf\":[\"Sie haben sich erfolgreich registriert.\"],\"GoDLB9\":[\"Dein Konto wurde gelöscht.\"],\"evg7+A\":[\"Deine Boards wurden importiert.\"],\"LqWW5F\":[\"Dein Anzeigename wurde aktualisiert.\"],\"/tOdd2\":[\"Dein Profilbild wurde aktualisiert.\"],\"CJWDTP\":[\"Dein Trello-Konto wurde getrennt.\"],\"WRsbHO\":[\"Dein Trello-Konto ist verbunden.\"],\"GnSSGm\":[\"Deine Workspace-Beschreibung wurde aktualisiert.\"],\"qkjvgj\":[\"Dein Arbeitsbereich wurde gelöscht.\"],\"2h4PVB\":[\"Der Name deines Arbeitsbereichs wurde aktualisiert.\"],\"Hg1qE9\":[\"Dein Workspace-Slug wurde aktualisiert.\"]}")as Messages;
\ No newline at end of file
diff --git a/apps/web/src/locales/en/messages.po b/apps/web/src/locales/en/messages.po
new file mode 100644
index 00000000..acf0bdcd
--- /dev/null
+++ b/apps/web/src/locales/en/messages.po
@@ -0,0 +1,1463 @@
+msgid ""
+msgstr ""
+"POT-Creation-Date: 2025-06-23 23:21+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: @lingui/cli\n"
+"Language: en\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Plural-Forms: \n"
+
+#: src/views/card/components/Comment.tsx:121
+msgid " (edited)"
+msgstr " (edited)"
+
+#: src/components/FeedbackButton.tsx:123
+msgid ", or see our"
+msgstr ", or see our"
+
+#. placeholder {0}: card?.title ?? "Card"
+#. placeholder {1}: board?.name ?? "Board"
+#: src/views/card/index.tsx:148
+msgid "{0} | {1}"
+msgstr "{0} | {1}"
+
+#. placeholder {0}: labelPublicIds.length
+#: src/views/board/components/NewCardForm.tsx:365
+msgid "{0} labels"
+msgstr "{0} labels"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:299
+msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
+msgstr "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
+
+#: src/views/home/index.tsx:51
+msgid "#1 Hacker News"
+msgstr "#1 Hacker News"
+
+#: src/views/home/components/Pricing.tsx:36
+msgid "1 user"
+msgstr "1 user"
+
+#: src/views/home/index.tsx:71
+#~ msgid ""
+#~ "A powerful, flexible kanban app that helps you organise work,\n"
+#~ " track progress, and deliver results—all in one place."
+#~ msgstr ""
+#~ "A powerful, flexible kanban app that helps you organise work,\n"
+#~ " track progress, and deliver results—all in one place."
+
+#: src/views/home/index.tsx:71
+msgid "A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place."
+msgstr "A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:27
+msgid "Account deleted"
+msgstr "Account deleted"
+
+#: src/views/public/board/CardModal.tsx:104
+#: src/views/card/index.tsx:215
+msgid "Activity"
+msgstr "Activity"
+
+#: src/views/home/components/Features.tsx:103
+msgid "Activity logs"
+msgstr "Activity logs"
+
+#: src/views/board/components/List.tsx:110
+msgid "Add a card"
+msgstr "Add a card"
+
+#: src/views/card/components/NewCommentForm.tsx:57
+#: src/views/card/components/Comment.tsx:144
+msgid "Add a comment..."
+msgstr "Add a comment..."
+
+#: src/components/Editor.tsx:302
+msgid "Add description... (type '/' to open commands)"
+msgstr "Add description... (type '/' to open commands)"
+
+#: src/views/card/components/LabelSelector.tsx:110
+#: src/views/card/components/LabelSelector.tsx:118
+msgid "Add label"
+msgstr "Add label"
+
+#: src/views/members/components/InviteMemberForm.tsx:50
+#: src/views/card/components/MemberSelector.tsx:130
+msgid "Add member"
+msgstr "Add member"
+
+#: src/views/card/components/ActivityList.tsx:56
+msgid "added a label to the card"
+msgstr "added a label to the card"
+
+#: src/views/card/components/ActivityList.tsx:58
+msgid "added a member to the card"
+msgstr "added a member to the card"
+
+#: src/views/card/components/ActivityList.tsx:110
+msgid "added label <0>{label}0>"
+msgstr "added label <0>{label}0>"
+
+#: src/views/home/components/Pricing.tsx:55
+msgid "Admin roles"
+msgstr "Admin roles"
+
+#: src/views/home/components/Pricing.tsx:97
+msgid "All seats are free during the beta until Sept 1st!"
+msgstr "All seats are free during the beta until Sept 1st!"
+
+#: src/views/home/components/Footer.tsx:18
+msgid "All systems operational"
+msgstr "All systems operational"
+
+#: src/views/auth/signup/index.tsx:86
+msgid "Already have an account? <0><1>Sign in1>0>"
+msgstr "Already have an account? <0><1>Sign in1>0>"
+
+#: src/views/settings/index.tsx:77
+msgid "An error occurred while disconnecting your Trello account."
+msgstr "An error occurred while disconnecting your Trello account."
+
+#: src/views/settings/index.tsx:229
+msgid "API keys"
+msgstr "API keys"
+
+#: src/views/home/components/Footer.tsx:31
+msgid "API Reference"
+msgstr "API Reference"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:47
+msgid "Are you sure want to remove {entityLabel}?"
+msgstr "Are you sure want to remove {entityLabel}?"
+
+#. placeholder {0}: workspace.name
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:62
+msgid "Are you sure you want to delete the workspace {0}?"
+msgstr "Are you sure you want to delete the workspace {0}?"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:75
+msgid "Are you sure you want to delete this card?"
+msgstr "Are you sure you want to delete this card?"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:65
+msgid "Are you sure you want to delete this comment?"
+msgstr "Are you sure you want to delete this comment?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:54
+msgid "Are you sure you want to delete your account?"
+msgstr "Are you sure you want to delete your account?"
+
+#: src/views/card/components/ActivityList.tsx:92
+msgid "assigned <0>{memberName}0> to the card"
+msgstr "assigned <0>{memberName}0> to the card"
+
+#: src/views/settings/index.tsx:168
+msgid "Billing"
+msgstr "Billing"
+
+#: src/views/settings/index.tsx:178
+msgid "Billing portal"
+msgstr "Billing portal"
+
+#: src/views/board/index.tsx:239
+msgid "Board"
+msgstr "Board"
+
+#: src/views/board/index.tsx:265
+msgid "Board not found"
+msgstr "Board not found"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:45
+msgid "Board URL can only contain letters, numbers, and hyphens"
+msgstr "Board URL can only contain letters, numbers, and hyphens"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:43
+msgid "Board URL cannot exceed 60 characters"
+msgstr "Board URL cannot exceed 60 characters"
+
+#: src/views/public/board/index.tsx:53
+msgid "Board URL copied to clipboard"
+msgstr "Board URL copied to clipboard"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:41
+msgid "Board URL must be at least 3 characters long"
+msgstr "Board URL must be at least 3 characters long"
+
+#: src/views/home/components/Features.tsx:78
+msgid "Board visibility"
+msgstr "Board visibility"
+
+#: src/views/board/components/VisibilityButton.tsx:45
+msgid "Board visibility updated"
+msgstr "Board visibility updated"
+
+#: src/views/boards/index.tsx:25
+#: src/components/SideNavigation.tsx:39
+msgid "Boards"
+msgstr "Boards"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/boards/index.tsx:21
+msgid "Boards | {0}"
+msgstr "Boards | {0}"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
+#: src/views/settings/components/CustomURLConfirmation.tsx:50
+#: src/views/members/components/DeleteMemberConfirmation.tsx:55
+#: src/views/card/components/DeleteCommentConfirmation.tsx:76
+#: src/views/card/components/DeleteCardConfirmation.tsx:86
+#: src/views/card/components/Comment.tsx:156
+msgid "Cancel"
+msgstr "Cancel"
+
+#: src/views/card/index.tsx:193
+msgid "Card not found"
+msgstr "Card not found"
+
+#: src/views/board/components/NewCardForm.tsx:254
+msgid "Card title"
+msgstr "Card title"
+
+#: src/views/settings/index.tsx:160
+msgid "Change the language of the app."
+msgstr "Change the language of the app."
+
+#: src/views/auth/signup/index.tsx:67
+#: src/views/auth/login/index.tsx:41
+msgid "Check your inbox"
+msgstr "Check your inbox"
+
+#: src/views/board/components/Filters.tsx:155
+msgid "Clear filters"
+msgstr "Clear filters"
+
+#: src/views/auth/signup/index.tsx:72
+#: src/views/auth/login/index.tsx:46
+msgid "Click on the link we've sent to {magicLinkRecipient} to sign in."
+msgstr "Click on the link we've sent to {magicLinkRecipient} to sign in."
+
+#: src/views/home/components/Features.tsx:84
+msgid "Collaborate seamlessly with your team."
+msgstr "Collaborate seamlessly with your team."
+
+#: src/views/home/components/Features.tsx:66
+msgid "Coming soon"
+msgstr "Coming soon"
+
+#: src/views/home/components/Features.tsx:98
+msgid "Comments"
+msgstr "Comments"
+
+#: src/views/home/components/Footer.tsx:94
+msgid "Company"
+msgstr "Company"
+
+#: src/views/home/components/Pricing.tsx:70
+msgid "Complete control and ownership:"
+msgstr "Complete control and ownership:"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:42
+msgid "Confirm URL change"
+msgstr "Confirm URL change"
+
+#: src/views/settings/index.tsx:205
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Connect Trello"
+msgstr "Connect Trello"
+
+#: src/views/home/components/Features.tsx:115
+msgid "Connect your favorite tools to streamline your workflow."
+msgstr "Connect your favorite tools to streamline your workflow."
+
+#: src/views/settings/index.tsx:192
+msgid "Connect your Trello account to import boards."
+msgstr "Connect your Trello account to import boards."
+
+#: src/views/home/components/Footer.tsx:38
+msgid "Contact"
+msgstr "Contact"
+
+#: src/components/FeedbackButton.tsx:121
+msgid "Contact us"
+msgstr "Contact us"
+
+#: src/components/AuthForm.tsx:334
+msgid "Continue with "
+msgstr "Continue with "
+
+#. placeholder {0}: provider.name
+#: src/components/AuthForm.tsx:268
+msgid "Continue with {0}"
+msgstr "Continue with {0}"
+
+#: src/views/home/components/Features.tsx:79
+msgid "Control who can view and edit your boards."
+msgstr "Control who can view and edit your boards."
+
+#: src/views/board/components/NewListForm.tsx:140
+#: src/views/board/components/NewCardForm.tsx:391
+#: src/components/LabelForm.tsx:212
+msgid "Create another"
+msgstr "Create another"
+
+#: src/views/settings/index.tsx:238
+#~ msgid "Create API key"
+#~ msgstr "Create API key"
+
+#: src/views/settings/index.tsx:232
+#~ msgid "Create API keys to access the Kan API."
+#~ msgstr "Create API keys to access the Kan API."
+
+#: src/views/boards/components/NewBoardForm.tsx:77
+msgid "Create board"
+msgstr "Create board"
+
+#: src/views/board/components/NewCardForm.tsx:401
+msgid "Create card"
+msgstr "Create card"
+
+#: src/components/LabelForm.tsx:233
+msgid "Create label"
+msgstr "Create label"
+
+#: src/views/board/components/NewListForm.tsx:148
+msgid "Create list"
+msgstr "Create list"
+
+#: src/views/boards/components/BoardsList.tsx:42
+msgid "Create new board"
+msgstr "Create new board"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:54
+msgid "Create new key"
+msgstr "Create new key"
+
+#: src/views/card/components/LabelSelector.tsx:98
+#: src/views/board/components/NewCardForm.tsx:327
+msgid "Create new label"
+msgstr "Create new label"
+
+#: src/views/board/index.tsx:327
+msgid "Create new list"
+msgstr "Create new list"
+
+#: src/components/WorkspaceMenu.tsx:85
+#: src/components/NewWorkspaceForm.tsx:91
+msgid "Create workspace"
+msgstr "Create workspace"
+
+#: src/views/card/components/ActivityList.tsx:52
+msgid "created the card"
+msgstr "created the card"
+
+#: src/views/home/components/Pricing.tsx:74
+msgid "Custom domain"
+msgstr "Custom domain"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:45
+msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
+msgstr "Custom URLs are a premium feature. You'll be directed to upgrade your account."
+
+#: src/components/UserMenu.tsx:112
+msgid "Dark"
+msgstr "Dark"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:82
+#: src/views/card/components/DeleteCardConfirmation.tsx:92
+#: src/components/LabelForm.tsx:226
+msgid "Delete"
+msgstr "Delete"
+
+#: src/views/settings/index.tsx:260
+#: src/views/settings/index.tsx:270
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
+msgid "Delete account"
+msgstr "Delete account"
+
+#: src/views/board/components/BoardDropdown.tsx:20
+msgid "Delete board"
+msgstr "Delete board"
+
+#: src/views/card/components/Dropdown.tsx:14
+msgid "Delete card"
+msgstr "Delete card"
+
+#: src/views/card/components/Comment.tsx:89
+msgid "Delete comment"
+msgstr "Delete comment"
+
+#: src/views/board/components/List.tsx:117
+msgid "Delete list"
+msgstr "Delete list"
+
+#: src/views/settings/index.tsx:242
+#: src/views/settings/index.tsx:253
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
+msgid "Delete workspace"
+msgstr "Delete workspace"
+
+#: src/views/settings/index.tsx:220
+msgid "Disconnect Trello"
+msgstr "Disconnect Trello"
+
+#: src/views/home/components/Features.tsx:99
+msgid "Discuss and collaborate on cards."
+msgstr "Discuss and collaborate on cards."
+
+#: src/views/settings/index.tsx:123
+msgid "Display name"
+msgstr "Display name"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:22
+msgid "Display name cannot exceed 280 characters"
+msgstr "Display name cannot exceed 280 characters"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:19
+msgid "Display name must be at least 3 characters long"
+msgstr "Display name must be at least 3 characters long"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:41
+msgid "Display name updated"
+msgstr "Display name updated"
+
+#: src/views/home/components/Faqs.tsx:83
+msgid "Do you offer a free plan?"
+msgstr "Do you offer a free plan?"
+
+#: src/components/FeedbackButton.tsx:130
+msgid "docs"
+msgstr "docs"
+
+#: src/views/home/components/Header.tsx:16
+msgid "Docs"
+msgstr "Docs"
+
+#: src/views/home/components/Footer.tsx:77
+msgid "Documentation"
+msgstr "Documentation"
+
+#: src/views/auth/login/index.tsx:61
+msgid "Don't have an account? <0><1>Sign up1>0>"
+msgstr "Don't have an account? <0><1>Sign up1>0>"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:115
+#: src/views/board/components/BoardDropdown.tsx:15
+msgid "Edit board URL"
+msgstr "Edit board URL"
+
+#: src/views/card/components/Comment.tsx:80
+msgid "Edit comment"
+msgstr "Edit comment"
+
+#: src/components/LabelForm.tsx:118
+msgid "Edit label"
+msgstr "Edit label"
+
+#: src/components/AuthForm.tsx:336
+msgid "email"
+msgstr "email"
+
+#: src/views/members/components/InviteMemberForm.tsx:64
+msgid "Email"
+msgstr "Email"
+
+#: src/components/AuthForm.tsx:301
+msgid "Enter your email address"
+msgstr "Enter your email address"
+
+#: src/components/AuthForm.tsx:289
+msgid "Enter your name"
+msgstr "Enter your name"
+
+#: src/components/AuthForm.tsx:314
+msgid "Enter your password"
+msgstr "Enter your password"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
+msgid "Error deleting account"
+msgstr "Error deleting account"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
+msgid "Error deleting workspace"
+msgstr "Error deleting workspace"
+
+#: src/views/settings/index.tsx:76
+msgid "Error disconnecting Trello"
+msgstr "Error disconnecting Trello"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:54
+msgid "Error updating display name"
+msgstr "Error updating display name"
+
+#: src/views/settings/components/Avatar.tsx:37
+msgid "Error updating profile image"
+msgstr "Error updating profile image"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:61
+msgid "Error updating workspace description"
+msgstr "Error updating workspace description"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:56
+msgid "Error updating workspace name"
+msgstr "Error updating workspace name"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:73
+msgid "Error updating workspace URL"
+msgstr "Error updating workspace URL"
+
+#: src/views/settings/components/Avatar.tsx:54
+#: src/views/settings/components/Avatar.tsx:95
+msgid "Error uploading profile image"
+msgstr "Error uploading profile image"
+
+#: src/views/home/components/Pricing.tsx:52
+msgid "Everything in the free plan, plus:"
+msgstr "Everything in the free plan, plus:"
+
+#: src/views/home/components/Pricing.tsx:33
+msgid "Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time."
+msgstr "Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time."
+
+#. placeholder {0}: provider.at(0)?.toUpperCase() + provider.slice(1)
+#: src/components/AuthForm.tsx:241
+msgid "Failed to login with {0}. Please try again."
+msgstr "Failed to login with {0}. Please try again."
+
+#: src/views/home/components/Footer.tsx:51
+#: src/views/home/components/Faqs.tsx:143
+msgid "FAQs"
+msgstr "FAQs"
+
+#: src/views/home/components/Header.tsx:14
+#: src/views/home/components/Footer.tsx:49
+#: src/views/home/components/Features.tsx:125
+msgid "Features"
+msgstr "Features"
+
+#: src/components/FeedbackButton.tsx:78
+msgid "Feedback"
+msgstr "Feedback"
+
+#: src/components/FeedbackButton.tsx:38
+msgid "Feedback sent"
+msgstr "Feedback sent"
+
+#: src/views/board/components/Filters.tsx:149
+msgid "Filter"
+msgstr "Filter"
+
+#: src/views/home/components/Faqs.tsx:150
+msgid "Find answers to common questions about the project. Can't find what you're looking for? Feel free to <0>contact us0>."
+msgstr "Find answers to common questions about the project. Can't find what you're looking for? Feel free to <0>contact us0>."
+
+#: src/views/home/components/Faqs.tsx:41
+msgid "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users (free during the beta) and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge."
+msgstr "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users (free during the beta) and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge."
+
+#: src/views/home/components/Pricing.tsx:32
+#: src/views/home/components/Pricing.tsx:32
+msgid "Free"
+msgstr "Free"
+
+#: src/views/home/components/Pricing.tsx:34
+msgid "Free, forever"
+msgstr "Free, forever"
+
+#: src/views/home/components/Header.tsx:102
+#: src/views/home/components/Header.tsx:141
+#: src/views/home/components/Cta.tsx:61
+#: src/views/auth/signup/index.tsx:67
+msgid "Get started"
+msgstr "Get started"
+
+#: src/views/home/components/Pricing.tsx:31
+#: src/views/home/components/Pricing.tsx:49
+msgid "Get Started"
+msgstr "Get Started"
+
+#: src/views/boards/components/BoardsList.tsx:38
+msgid "Get started by creating a new board"
+msgstr "Get started by creating a new board"
+
+#: src/views/board/index.tsx:319
+msgid "Get started by creating a new list"
+msgstr "Get started by creating a new list"
+
+#: src/views/home/components/Cta.tsx:54
+msgid "Get started for free today"
+msgstr "Get started for free today"
+
+#: src/views/home/components/Pricing.tsx:92
+msgid "Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team."
+msgstr "Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team."
+
+#: src/views/home/index.tsx:75
+msgid "Get started on Cloud"
+msgstr "Get started on Cloud"
+
+#: src/views/home/components/Footer.tsx:25
+msgid "Getting started"
+msgstr "Getting started"
+
+#: src/views/home/components/Footer.tsx:37
+msgid "GitHub"
+msgstr "GitHub"
+
+#: src/views/home/components/Header.tsx:96
+#: src/views/home/components/Header.tsx:133
+msgid "Go to app"
+msgstr "Go to app"
+
+#: src/views/home/components/Pricing.tsx:69
+msgid "Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data."
+msgstr "Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data."
+
+#: src/views/home/components/Faqs.tsx:64
+msgid "How do I get a custom URL?"
+msgstr "How do I get a custom URL?"
+
+#: src/views/home/components/Faqs.tsx:46
+msgid "How do I import my Trello boards?"
+msgstr "How do I import my Trello boards?"
+
+#: src/views/home/components/Faqs.tsx:108
+msgid "How do I invite team members?"
+msgstr "How do I invite team members?"
+
+#: src/views/home/components/Faqs.tsx:124
+msgid "How do I self-host?"
+msgstr "How do I self-host?"
+
+#: src/views/home/components/Faqs.tsx:38
+msgid "How is the project funded?"
+msgstr "How is the project funded?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:82
+msgid "I acknowledge that all of my account data will be permanently deleted and want to proceed."
+msgstr "I acknowledge that all of my account data will be permanently deleted and want to proceed."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:92
+msgid "I acknowledge that all of the workspace data will be permanently deleted and want to proceed."
+msgstr "I acknowledge that all of the workspace data will be permanently deleted and want to proceed."
+
+#: src/components/FeedbackButton.tsx:98
+msgid "Ideas to improve this page..."
+msgstr "Ideas to improve this page..."
+
+#: src/views/boards/index.tsx:39
+msgid "Import"
+msgstr "Import"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:191
+msgid "Import complete"
+msgstr "Import complete"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:204
+msgid "Import failed"
+msgstr "Import failed"
+
+#: src/views/home/components/Features.tsx:89
+msgid "Import your Trello boards and hit the ground running."
+msgstr "Import your Trello boards and hit the ground running."
+
+#: src/views/home/components/Footer.tsx:27
+msgid "Importing from Trello"
+msgstr "Importing from Trello"
+
+#: src/views/home/components/Faqs.tsx:49
+msgid "Importing your Trello boards into Kan is easy. You can follow our step-by-step guide <0>here0>."
+msgstr "Importing your Trello boards into Kan is easy. You can follow our step-by-step guide <0>here0>."
+
+#: src/views/home/components/Pricing.tsx:28
+msgid "Individuals"
+msgstr "Individuals"
+
+#: src/views/home/components/Features.tsx:114
+msgid "Integrations"
+msgstr "Integrations"
+
+#: src/views/members/index.tsx:156
+msgid "Invite"
+msgstr "Invite"
+
+#: src/views/members/components/InviteMemberForm.tsx:82
+#: src/views/card/components/MemberSelector.tsx:112
+msgid "Invite member"
+msgstr "Invite member"
+
+#: src/views/home/components/Pricing.tsx:51
+msgid "Kanban is better with a team. Perfect for small and growing teams looking to collaborate."
+msgstr "Kanban is better with a team. Perfect for small and growing teams looking to collaborate."
+
+#: src/views/home/components/Features.tsx:129
+msgid "Kanban reimagined"
+msgstr "Kanban reimagined"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:67
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:57
+msgid "Keep in mind that this action is irreversible."
+msgstr "Keep in mind that this action is irreversible."
+
+#: src/views/card/index.tsx:243
+#: src/views/board/components/NewCardForm.tsx:331
+#: src/views/board/components/Filters.tsx:101
+msgid "Labels"
+msgstr "Labels"
+
+#: src/views/home/components/Features.tsx:93
+msgid "Labels & Filters"
+msgstr "Labels & Filters"
+
+#: src/views/settings/index.tsx:157
+msgid "Language"
+msgstr "Language"
+
+#: src/views/home/components/Footer.tsx:130
+msgid "Legal"
+msgstr "Legal"
+
+#: src/views/home/components/Footer.tsx:44
+msgid "License"
+msgstr "License"
+
+#: src/components/UserMenu.tsx:126
+msgid "Light"
+msgstr "Light"
+
+#: src/views/public/board/index.tsx:51
+msgid "Link copied"
+msgstr "Link copied"
+
+#: src/views/card/index.tsx:235
+msgid "List"
+msgstr "List"
+
+#: src/views/board/components/NewListForm.tsx:128
+msgid "List name"
+msgstr "List name"
+
+#: src/views/auth/login/index.tsx:31
+msgid "Login | kan.bn"
+msgstr "Login | kan.bn"
+
+#: src/components/UserMenu.tsx:136
+msgid "Logout"
+msgstr "Logout"
+
+#: src/components/AuthForm.tsx:337
+msgid "magic link"
+msgstr "magic link"
+
+#: src/views/members/index.tsx:148
+#: src/views/card/index.tsx:251
+#: src/views/board/components/NewCardForm.tsx:290
+#: src/views/board/components/Filters.tsx:93
+#: src/components/SideNavigation.tsx:44
+msgid "Members"
+msgstr "Members"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/members/index.tsx:144
+msgid "Members | {0}"
+msgstr "Members | {0}"
+
+#: src/views/home/components/Pricing.tsx:14
+msgid "Monthly"
+msgstr "Monthly"
+
+#: src/views/card/components/ActivityList.tsx:81
+msgid "moved the card from <0>{fromList}0> to<1>{toList}1>"
+msgstr "moved the card from <0>{fromList}0> to<1>{toList}1>"
+
+#: src/views/card/components/ActivityList.tsx:55
+msgid "moved the card to another list"
+msgstr "moved the card to another list"
+
+#: src/views/boards/components/NewBoardForm.tsx:63
+#: src/components/LabelForm.tsx:134
+msgid "Name"
+msgstr "Name"
+
+#: src/components/FeedbackButton.tsx:116
+msgid "Need help?"
+msgstr "Need help?"
+
+#: src/views/boards/index.tsx:52
+msgid "New"
+msgstr "New"
+
+#: src/views/boards/components/NewBoardForm.tsx:49
+msgid "New board"
+msgstr "New board"
+
+#: src/views/board/components/NewCardForm.tsx:237
+msgid "New card"
+msgstr "New card"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:322
+msgid "New import"
+msgstr "New import"
+
+#: src/components/LabelForm.tsx:118
+msgid "New label"
+msgstr "New label"
+
+#: src/views/board/index.tsx:296
+#: src/views/board/components/NewListForm.tsx:112
+msgid "New list"
+msgstr "New list"
+
+#: src/components/NewWorkspaceForm.tsx:62
+msgid "New workspace"
+msgstr "New workspace"
+
+#: src/views/boards/components/BoardsList.tsx:35
+msgid "No boards"
+msgstr "No boards"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:242
+msgid "No boards found"
+msgstr "No boards found"
+
+#: src/views/home/index.tsx:85
+msgid "No credit card required"
+msgstr "No credit card required"
+
+#: src/views/board/index.tsx:316
+msgid "No lists"
+msgstr "No lists"
+
+#: src/views/settings/index.tsx:263
+msgid "Once you delete your account, there is no going back. This action cannot be undone."
+msgstr "Once you delete your account, there is no going back. This action cannot be undone."
+
+#: src/views/settings/index.tsx:245
+msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
+msgstr "Once you delete your workspace, there is no going back. This action cannot be undone."
+
+#: src/components/AuthForm.tsx:279
+msgid "or"
+msgstr "or"
+
+#: src/views/home/components/Features.tsx:94
+msgid "Organize and find cards quickly with powerful filtering tools."
+msgstr "Organize and find cards quickly with powerful filtering tools."
+
+#: src/views/home/components/Pricing.tsx:73
+msgid "Own your data"
+msgstr "Own your data"
+
+#: src/views/home/components/Pricing.tsx:101
+msgid "Payment frequency"
+msgstr "Payment frequency"
+
+#: src/views/members/index.tsx:107
+msgid "Pending"
+msgstr "Pending"
+
+#: src/views/home/components/Pricing.tsx:15
+#: src/views/home/components/Pricing.tsx:20
+msgid "per user/month"
+msgstr "per user/month"
+
+#: src/components/AuthForm.tsx:305
+msgid "Please enter a valid email address"
+msgstr "Please enter a valid email address"
+
+#: src/components/AuthForm.tsx:293
+msgid "Please enter a valid name"
+msgstr "Please enter a valid name"
+
+#: src/components/AuthForm.tsx:318
+msgid "Please enter a valid password"
+msgstr "Please enter a valid password"
+
+#: src/views/settings/components/Avatar.tsx:55
+msgid "Please select a file to upload."
+msgstr "Please select a file to upload."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:55
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:46
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
+#: src/views/settings/components/Avatar.tsx:38
+#: src/views/settings/components/Avatar.tsx:96
+#: src/views/members/components/DeleteMemberConfirmation.tsx:28
+#: src/views/card/index.tsx:116
+#: src/views/card/components/NewCommentForm.tsx:31
+#: src/views/card/components/MemberSelector.tsx:80
+#: src/views/card/components/ListSelector.tsx:53
+#: src/views/card/components/LabelSelector.tsx:73
+#: src/views/card/components/DeleteCommentConfirmation.tsx:45
+#: src/views/card/components/DeleteCardConfirmation.tsx:52
+#: src/views/card/components/Comment.tsx:62
+#: src/views/boards/components/ImportBoardsForm.tsx:205
+#: src/views/board/index.tsx:133
+#: src/views/board/index.tsx:189
+#: src/views/board/components/VisibilityButton.tsx:53
+#: src/views/board/components/UpdateBoardSlugForm.tsx:72
+#: src/views/board/components/NewListForm.tsx:78
+#: src/views/board/components/NewCardForm.tsx:128
+#: src/components/NewWorkspaceForm.tsx:39
+#: src/components/FeedbackButton.tsx:46
+msgid "Please try again later, or contact customer support."
+msgstr "Please try again later, or contact customer support."
+
+#: src/views/home/components/Pricing.tsx:85
+#: src/views/home/components/Header.tsx:15
+#: src/views/home/components/Footer.tsx:50
+msgid "Pricing"
+msgstr "Pricing"
+
+#: src/views/home/components/Pricing.tsx:56
+msgid "Priority email support"
+msgstr "Priority email support"
+
+#: src/views/home/components/Footer.tsx:42
+msgid "Privacy policy"
+msgstr "Privacy policy"
+
+#: src/views/board/components/VisibilityButton.tsx:73
+msgid "Private"
+msgstr "Private"
+
+#: src/views/settings/components/Avatar.tsx:24
+msgid "Profile image updated"
+msgstr "Profile image updated"
+
+#: src/views/settings/index.tsx:118
+msgid "Profile picture"
+msgstr "Profile picture"
+
+#: src/views/board/components/VisibilityButton.tsx:68
+msgid "Public"
+msgstr "Public"
+
+#: src/views/home/components/Faqs.tsx:147
+msgid "Questions?"
+msgstr "Questions?"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:58
+msgid "Remove"
+msgstr "Remove"
+
+#: src/views/members/index.tsx:120
+msgid "Remove member"
+msgstr "Remove member"
+
+#: src/views/card/components/ActivityList.tsx:57
+msgid "removed a label from the card"
+msgstr "removed a label from the card"
+
+#: src/views/card/components/ActivityList.tsx:59
+msgid "removed a member from the card"
+msgstr "removed a member from the card"
+
+#: src/views/card/components/ActivityList.tsx:118
+msgid "removed label <0>{label}0>"
+msgstr "removed label <0>{label}0>"
+
+#: src/views/home/components/Footer.tsx:113
+msgid "Resources"
+msgstr "Resources"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:49
+msgid "Revoke"
+msgstr "Revoke"
+
+#: src/views/home/components/Header.tsx:13
+#: src/views/home/components/Footer.tsx:36
+msgid "Roadmap"
+msgstr "Roadmap"
+
+#: src/views/members/index.tsx:178
+msgid "Role"
+msgstr "Role"
+
+#: src/views/home/components/Pricing.tsx:72
+msgid "Run on your own infrastructure"
+msgstr "Run on your own infrastructure"
+
+#: src/views/card/components/Comment.tsx:163
+msgid "Save"
+msgstr "Save"
+
+#: src/views/home/components/Features.tsx:109
+msgid "Save time with reusable board templates."
+msgstr "Save time with reusable board templates."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:274
+msgid "Select all"
+msgstr "Select all"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Select source"
+msgstr "Select source"
+
+#: src/views/home/components/Pricing.tsx:64
+msgid "Self Host"
+msgstr "Self Host"
+
+#: src/views/home/index.tsx:81
+msgid "Self host with Github"
+msgstr "Self host with Github"
+
+#: src/views/card/components/ActivityList.tsx:89
+msgid "self-assigned the card"
+msgstr "self-assigned the card"
+
+#: src/components/FeedbackButton.tsx:137
+msgid "Send"
+msgstr "Send"
+
+#: src/views/settings/index.tsx:112
+#: src/components/SideNavigation.tsx:49
+msgid "Settings"
+msgstr "Settings"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/settings/index.tsx:108
+msgid "Settings | {0}"
+msgstr "Settings | {0}"
+
+#: src/views/home/components/Header.tsx:100
+#: src/views/home/components/Header.tsx:138
+msgid "Sign in"
+msgstr "Sign in"
+
+#: src/views/auth/signup/index.tsx:32
+#: src/views/auth/signup/index.tsx:57
+msgid "Sign up | kan.bn"
+msgstr "Sign up | kan.bn"
+
+#: src/views/auth/signup/index.tsx:42
+msgid "Sign up disabled"
+msgstr "Sign up disabled"
+
+#: src/views/auth/signup/index.tsx:45
+msgid "Sign up is currently disabled. Please try again later."
+msgstr "Sign up is currently disabled. Please try again later."
+
+#: src/components/AuthForm.tsx:334
+msgid "Sign up with "
+msgstr "Sign up with "
+
+#: src/views/home/components/Pricing.tsx:89
+msgid "Simple pricing"
+msgstr "Simple pricing"
+
+#: src/views/home/components/Features.tsx:132
+msgid "Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done."
+msgstr "Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done."
+
+#: src/views/home/index.tsx:37
+msgid "Star on Github"
+msgstr "Star on Github"
+
+#: src/components/AuthForm.tsx:188
+#: src/components/AuthForm.tsx:205
+msgid "Success"
+msgstr "Success"
+
+#: src/views/home/components/Pricing.tsx:57
+msgid "Support the development of the project"
+msgstr "Support the development of the project"
+
+#: src/components/UserMenu.tsx:98
+msgid "System"
+msgstr "System"
+
+#: src/views/home/components/Pricing.tsx:46
+msgid "Teams"
+msgstr "Teams"
+
+#: src/views/home/components/Features.tsx:108
+msgid "Templates"
+msgstr "Templates"
+
+#: src/views/home/components/Footer.tsx:41
+msgid "Terms of service"
+msgstr "Terms of service"
+
+#: src/components/FeedbackButton.tsx:39
+msgid "Thank you for your feedback!"
+msgstr "Thank you for your feedback!"
+
+#: src/views/home/components/Faqs.tsx:33
+msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
+msgstr "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
+
+#: src/views/home/index.tsx:65
+msgid "The open source <0/> alternative to Trello"
+msgstr "The open source <0/> alternative to Trello"
+
+#. placeholder {0}: isPublic ? "public" : "private"
+#: src/views/board/components/VisibilityButton.tsx:46
+msgid "The visibility of your board has been set to {0}."
+msgstr "The visibility of your board has been set to {0}."
+
+#: src/components/UserMenu.tsx:85
+msgid "Theme"
+msgstr "Theme"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:50
+msgid "They won't be able to access this workspace."
+msgstr "They won't be able to access this workspace."
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:68
+#: src/views/card/components/DeleteCardConfirmation.tsx:78
+msgid "This action can't be undone."
+msgstr "This action can't be undone."
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:135
+msgid "This board URL has already been taken"
+msgstr "This board URL has already been taken"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:70
+msgid "This will result in the permanent deletion of all data associated with this workspace."
+msgstr "This will result in the permanent deletion of all data associated with this workspace."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:60
+msgid "This will result in the permanent deletion of all data associated with your account."
+msgstr "This will result in the permanent deletion of all data associated with your account."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:123
+msgid "This workspace username has already been taken"
+msgstr "This workspace username has already been taken"
+
+#: src/views/home/components/Header.tsx:73
+msgid "Toggle menu"
+msgstr "Toggle menu"
+
+#: src/views/home/components/Features.tsx:104
+msgid "Track all card changes with detailed activity history."
+msgstr "Track all card changes with detailed activity history."
+
+#: src/views/settings/index.tsx:69
+msgid "Trello disconnected"
+msgstr "Trello disconnected"
+
+#: src/views/home/components/Features.tsx:88
+msgid "Trello imports"
+msgstr "Trello imports"
+
+#: src/views/card/components/NewCommentForm.tsx:30
+msgid "Unable to add comment"
+msgstr "Unable to add comment"
+
+#: src/views/board/components/NewCardForm.tsx:125
+msgid "Unable to create card"
+msgstr "Unable to create card"
+
+#: src/views/board/components/NewListForm.tsx:77
+msgid "Unable to create list"
+msgstr "Unable to create list"
+
+#: src/components/NewWorkspaceForm.tsx:38
+msgid "Unable to create workspace"
+msgstr "Unable to create workspace"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:51
+msgid "Unable to delete card"
+msgstr "Unable to delete card"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:44
+msgid "Unable to delete comment"
+msgstr "Unable to delete comment"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:27
+msgid "Unable to remove member"
+msgstr "Unable to remove member"
+
+#: src/components/FeedbackButton.tsx:45
+msgid "Unable to send feedback"
+msgstr "Unable to send feedback"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:71
+msgid "Unable to update board URL"
+msgstr "Unable to update board URL"
+
+#: src/views/board/components/VisibilityButton.tsx:52
+msgid "Unable to update board visibility"
+msgstr "Unable to update board visibility"
+
+#: src/views/card/index.tsx:115
+#: src/views/board/index.tsx:188
+msgid "Unable to update card"
+msgstr "Unable to update card"
+
+#: src/views/card/components/Comment.tsx:61
+msgid "Unable to update comment"
+msgstr "Unable to update comment"
+
+#: src/views/card/components/LabelSelector.tsx:72
+msgid "Unable to update labels"
+msgstr "Unable to update labels"
+
+#: src/views/card/components/ListSelector.tsx:52
+#: src/views/board/index.tsx:132
+msgid "Unable to update list"
+msgstr "Unable to update list"
+
+#: src/views/card/components/MemberSelector.tsx:79
+msgid "Unable to update members"
+msgstr "Unable to update members"
+
+#: src/views/card/components/ActivityList.tsx:102
+msgid "unassigned <0>{memberName}0> from the card"
+msgstr "unassigned <0>{memberName}0> from the card"
+
+#: src/views/card/components/ActivityList.tsx:99
+msgid "unassigned themselves from the card"
+msgstr "unassigned themselves from the card"
+
+#: src/views/home/components/Pricing.tsx:41
+msgid "Unlimited activity log"
+msgstr "Unlimited activity log"
+
+#: src/views/home/components/Pricing.tsx:37
+msgid "Unlimited boards"
+msgstr "Unlimited boards"
+
+#: src/views/home/components/Cta.tsx:57
+msgid "Unlimited boards, unlimited lists, unlimited cards. No credit card required."
+msgstr "Unlimited boards, unlimited lists, unlimited cards. No credit card required."
+
+#: src/views/home/components/Pricing.tsx:39
+msgid "Unlimited cards"
+msgstr "Unlimited cards"
+
+#: src/views/home/components/Pricing.tsx:40
+msgid "Unlimited comments"
+msgstr "Unlimited comments"
+
+#: src/views/home/components/Pricing.tsx:38
+msgid "Unlimited lists"
+msgstr "Unlimited lists"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:154
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:82
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
+#: src/views/board/components/UpdateBoardSlugForm.tsx:166
+msgid "Update"
+msgstr "Update"
+
+#: src/components/LabelForm.tsx:233
+msgid "Update label"
+msgstr "Update label"
+
+#: src/views/card/components/ActivityList.tsx:54
+msgid "updated the description"
+msgstr "updated the description"
+
+#: src/views/card/components/ActivityList.tsx:53
+msgid "updated the title"
+msgstr "updated the title"
+
+#: src/views/card/components/ActivityList.tsx:73
+msgid "updated the title to <0>{toTitle}0>"
+msgstr "updated the title to <0>{toTitle}0>"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:52
+msgid "Upgrade"
+msgstr "Upgrade"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:36
+msgid "URL can only contain letters, numbers, and hyphens"
+msgstr "URL can only contain letters, numbers, and hyphens"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:34
+msgid "URL cannot exceed 24 characters"
+msgstr "URL cannot exceed 24 characters"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:32
+msgid "URL must be at least 3 characters long"
+msgstr "URL must be at least 3 characters long"
+
+#: src/views/members/index.tsx:172
+msgid "User"
+msgstr "User"
+
+#: src/views/settings/index.tsx:232
+msgid "View and manage your API keys."
+msgstr "View and manage your API keys."
+
+#: src/views/settings/index.tsx:171
+msgid "View and manage your billing and subscription."
+msgstr "View and manage your billing and subscription."
+
+#: src/views/home/components/Pricing.tsx:67
+msgid "View docs"
+msgstr "View docs"
+
+#: src/views/home/components/Features.tsx:147
+msgid "View our roadmap."
+msgstr "View our roadmap."
+
+#: src/views/board/components/VisibilityButton.tsx:91
+msgid "Visibility"
+msgstr "Visibility"
+
+#: src/views/home/components/Faqs.tsx:94
+msgid "We are using the <0>AGPL-3.0 license0>."
+msgstr "We are using the <0>AGPL-3.0 license0>."
+
+#: src/views/home/components/Features.tsx:145
+msgid "We're just getting started. "
+msgstr "We're just getting started. "
+
+#: src/views/auth/login/index.tsx:41
+msgid "Welcome back"
+msgstr "Welcome back"
+
+#: src/views/home/components/Faqs.tsx:91
+msgid "What license are you using?"
+msgstr "What license are you using?"
+
+#: src/views/home/components/Faqs.tsx:30
+msgid "What's the difference between Kan and Trello?"
+msgstr "What's the difference between Kan and Trello?"
+
+#: src/views/home/components/Faqs.tsx:25
+msgid "When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \"Jira Lite\". This project is our attempt to recapture the original magic of Trello's simplicity, in open source."
+msgstr "When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \"Jira Lite\". This project is our attempt to recapture the original magic of Trello's simplicity, in open source."
+
+#: src/views/home/components/Faqs.tsx:25
+#~ msgid "When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \"Jira Lite\". This project is our attempt to recapture the original magic of Trello’s simplicity, in open source."
+#~ msgstr "When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \"Jira Lite\". This project is our attempt to recapture the original magic of Trello’s simplicity, in open source."
+
+#: src/views/home/components/Faqs.tsx:22
+msgid "Why make an open source Trello?"
+msgstr "Why make an open source Trello?"
+
+#: src/views/board/index.tsx:239
+msgid "Workspace"
+msgstr "Workspace"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:26
+msgid "Workspace deleted"
+msgstr "Workspace deleted"
+
+#: src/views/settings/index.tsx:147
+msgid "Workspace description"
+msgstr "Workspace description"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:28
+msgid "Workspace description cannot exceed 280 characters"
+msgstr "Workspace description cannot exceed 280 characters"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:25
+msgid "Workspace description must be at least 3 characters long"
+msgstr "Workspace description must be at least 3 characters long"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:48
+msgid "Workspace description updated"
+msgstr "Workspace description updated"
+
+#: src/views/home/components/Pricing.tsx:54
+#: src/views/home/components/Features.tsx:83
+msgid "Workspace members"
+msgstr "Workspace members"
+
+#: src/views/settings/index.tsx:130
+#: src/components/NewWorkspaceForm.tsx:78
+msgid "Workspace name"
+msgstr "Workspace name"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:15
+msgid "Workspace name cannot exceed 24 characters"
+msgstr "Workspace name cannot exceed 24 characters"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:14
+msgid "Workspace name must be at least 3 characters long"
+msgstr "Workspace name must be at least 3 characters long"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:43
+msgid "Workspace name updated"
+msgstr "Workspace name updated"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:60
+msgid "Workspace slug updated"
+msgstr "Workspace slug updated"
+
+#: src/views/settings/index.tsx:138
+msgid "Workspace URL"
+msgstr "Workspace URL"
+
+#: src/views/home/components/Pricing.tsx:19
+msgid "Yearly"
+msgstr "Yearly"
+
+#: src/views/home/components/Faqs.tsx:86
+msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
+msgstr "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
+
+#: src/views/home/components/Faqs.tsx:67
+msgid "You can get a custom workspace URL, like <0>kan.bn/kan0>, by going into your <1>workspace settings1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
+msgstr "You can get a custom workspace URL, like <0>kan.bn/kan0>, by going into your <1>workspace settings1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
+
+#: src/views/home/components/Faqs.tsx:111
+msgid "You can invite team members by clicking the \"Invite\" button in the top right corner of the <0>members page0> and entering their email address. They will receive an email with a link to join the workspace."
+msgstr "You can invite team members by clicking the \"Invite\" button in the top right corner of the <0>members page0> and entering their email address. They will receive an email with a link to join the workspace."
+
+#: src/views/home/components/Faqs.tsx:127
+msgid "You can self-host by following the instructions in our <0>repo0>."
+msgstr "You can self-host by following the instructions in our <0>repo0>."
+
+#: src/components/AuthForm.tsx:206
+msgid "You have been logged in successfully."
+msgstr "You have been logged in successfully."
+
+#: src/components/AuthForm.tsx:189
+msgid "You have been signed up successfully."
+msgstr "You have been signed up successfully."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
+msgid "Your account has been deleted."
+msgstr "Your account has been deleted."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:192
+msgid "Your boards have been imported."
+msgstr "Your boards have been imported."
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:42
+msgid "Your display name has been updated."
+msgstr "Your display name has been updated."
+
+#: src/views/settings/components/Avatar.tsx:25
+msgid "Your profile image has been updated."
+msgstr "Your profile image has been updated."
+
+#: src/views/settings/index.tsx:70
+msgid "Your Trello account has been disconnected."
+msgstr "Your Trello account has been disconnected."
+
+#: src/views/settings/index.tsx:214
+msgid "Your Trello account is connected."
+msgstr "Your Trello account is connected."
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:49
+msgid "Your workspace description has been updated."
+msgstr "Your workspace description has been updated."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:27
+msgid "Your workspace has been deleted."
+msgstr "Your workspace has been deleted."
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:44
+msgid "Your workspace name has been updated."
+msgstr "Your workspace name has been updated."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:61
+msgid "Your workspace slug has been updated."
+msgstr "Your workspace slug has been updated."
diff --git a/apps/web/src/locales/en/messages.ts b/apps/web/src/locales/en/messages.ts
new file mode 100644
index 00000000..e79ee312
--- /dev/null
+++ b/apps/web/src/locales/en/messages.ts
@@ -0,0 +1 @@
+/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"X0N0PA\":[\" (edited)\"],\"lGjicL\":[\", or see our\"],\"JArWcF\":[[\"0\"],\" | \",[\"1\"]],\"CJukzS\":[[\"0\"],\" labels\"],\"0xWkkH\":[[\"boardCount\",\"plural\",{\"one\":[\"Import board (1)\"],\"other\":[\"Import boards (\",[\"boardCount\"],\")\"]}]],\"qrT8WB\":[\"#1 Hacker News\"],\"zMlxCA\":[\"1 user\"],\"d7XqZJ\":[\"A powerful, flexible kanban app that helps you organise work,\\n track progress, and deliver results—all in one place.\"],\"/rn4RE\":[\"A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place.\"],\"TKFUnX\":[\"Account deleted\"],\"XJOV1Y\":[\"Activity\"],\"tMYIu7\":[\"Activity logs\"],\"B3xxao\":[\"Add a card\"],\"1ZVGyT\":[\"Add a comment...\"],\"/Blkmk\":[\"Add description... (type '/' to open commands)\"],\"lyqwgn\":[\"Add label\"],\"PCIlOO\":[\"Add member\"],\"T21jY/\":[\"added a label to the card\"],\"rs7L54\":[\"added a member to the card\"],\"SKqXzW\":[\"added label <0>\",[\"label\"],\"0>\"],\"3pIq39\":[\"Admin roles\"],\"lSNkXg\":[\"All seats are free during the beta until Sept 1st!\"],\"UQbwrz\":[\"All systems operational\"],\"WnEwDO\":[\"Already have an account? <0><1>Sign in1>0>\"],\"WmPhYW\":[\"An error occurred while disconnecting your Trello account.\"],\"5h8ooz\":[\"API keys\"],\"j2+d/o\":[\"API Reference\"],\"lo8xBK\":[\"Are you sure want to remove \",[\"entityLabel\"],\"?\"],\"BhDZlc\":[\"Are you sure you want to delete the workspace \",[\"0\"],\"?\"],\"ZT4Khw\":[\"Are you sure you want to delete this card?\"],\"PRjvDT\":[\"Are you sure you want to delete this comment?\"],\"74F7N/\":[\"Are you sure you want to delete your account?\"],\"EEQaqX\":[\"assigned <0>\",[\"memberName\"],\"0> to the card\"],\"R+w/Va\":[\"Billing\"],\"9wdpwp\":[\"Billing portal\"],\"QD8opX\":[\"Board\"],\"jwI32v\":[\"Board not found\"],\"Xid3K6\":[\"Board URL can only contain letters, numbers, and hyphens\"],\"gv5kbo\":[\"Board URL cannot exceed 60 characters\"],\"8+BY11\":[\"Board URL copied to clipboard\"],\"TmvrjU\":[\"Board URL must be at least 3 characters long\"],\"qzdST2\":[\"Board visibility\"],\"PTzsxH\":[\"Board visibility updated\"],\"8TveY+\":[\"Boards\"],\"seaklU\":[\"Boards | \",[\"0\"]],\"dEgA5A\":[\"Cancel\"],\"fEY2vP\":[\"Card not found\"],\"ZH7TVS\":[\"Card title\"],\"Bosey8\":[\"Change the language of the app.\"],\"5IXWmO\":[\"Check your inbox\"],\"u8JHrO\":[\"Clear filters\"],\"RRn9jf\":[\"Click on the link we've sent to \",[\"magicLinkRecipient\"],\" to sign in.\"],\"EvArWh\":[\"Collaborate seamlessly with your team.\"],\"AUYALh\":[\"Coming soon\"],\"VbyRUy\":[\"Comments\"],\"7i8j3G\":[\"Company\"],\"cAgBMh\":[\"Complete control and ownership:\"],\"8ZoISG\":[\"Confirm URL change\"],\"nk7caK\":[\"Connect Trello\"],\"sDLCvT\":[\"Connect your favorite tools to streamline your workflow.\"],\"5eZwRW\":[\"Connect your Trello account to import boards.\"],\"jfC/xh\":[\"Contact\"],\"Bhgd0l\":[\"Contact us\"],\"J2Wbjt\":[\"Continue with \"],\"gkzAEM\":[\"Continue with \",[\"0\"]],\"va/3u1\":[\"Control who can view and edit your boards.\"],\"vgdzLf\":[\"Create another\"],\"uXGLuq\":[\"Create API key\"],\"Pa9/o1\":[\"Create API keys to access the Kan API.\"],\"9QmxLI\":[\"Create board\"],\"dsLT3m\":[\"Create card\"],\"QtACvI\":[\"Create label\"],\"XTKtey\":[\"Create list\"],\"poDo/D\":[\"Create new board\"],\"okpxfB\":[\"Create new key\"],\"0+0/3e\":[\"Create new label\"],\"aWlSc/\":[\"Create new list\"],\"FdtSNC\":[\"Create workspace\"],\"f8lDFq\":[\"created the card\"],\"GAD3Dx\":[\"Custom domain\"],\"91W07W\":[\"Custom URLs are a premium feature. You'll be directed to upgrade your account.\"],\"pvnfJD\":[\"Dark\"],\"cnGeoo\":[\"Delete\"],\"ZDGm40\":[\"Delete account\"],\"tmpW+w\":[\"Delete board\"],\"nabda1\":[\"Delete card\"],\"njJFtc\":[\"Delete comment\"],\"lYT7pQ\":[\"Delete list\"],\"kYu0eF\":[\"Delete workspace\"],\"YBBifR\":[\"Disconnect Trello\"],\"1sRmLC\":[\"Discuss and collaborate on cards.\"],\"pfa8F0\":[\"Display name\"],\"MlyjJu\":[\"Display name cannot exceed 280 characters\"],\"KFJgmZ\":[\"Display name must be at least 3 characters long\"],\"x8GeCD\":[\"Display name updated\"],\"evj0lK\":[\"Do you offer a free plan?\"],\"JyXBgS\":[\"docs\"],\"TbjyhA\":[\"Docs\"],\"TvY/XA\":[\"Documentation\"],\"vUr5JT\":[\"Don't have an account? <0><1>Sign up1>0>\"],\"tIdipJ\":[\"Edit board URL\"],\"rF8SEQ\":[\"Edit comment\"],\"dgr4Kq\":[\"Edit label\"],\"b/LfJo\":[\"email\"],\"O3oNi5\":[\"Email\"],\"xRPn3U\":[\"Enter your email address\"],\"n9V+ps\":[\"Enter your name\"],\"NgaR6B\":[\"Enter your password\"],\"bqAQaT\":[\"Error deleting account\"],\"9s9O5h\":[\"Error deleting workspace\"],\"lKAvEd\":[\"Error disconnecting Trello\"],\"sVBn4K\":[\"Error updating display name\"],\"4ix5kl\":[\"Error updating profile image\"],\"CkVV1t\":[\"Error updating workspace description\"],\"LoUCpj\":[\"Error updating workspace name\"],\"x0kMO/\":[\"Error updating workspace URL\"],\"CYWHT+\":[\"Error uploading profile image\"],\"8iP0S8\":[\"Everything in the free plan, plus:\"],\"ANyn0x\":[\"Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time.\"],\"YtUfwW\":[\"Failed to login with \",[\"0\"],\". Please try again.\"],\"aJ4pMe\":[\"FAQs\"],\"PpZkda\":[\"Features\"],\"YirHq7\":[\"Feedback\"],\"2roTVj\":[\"Feedback sent\"],\"o7J4JM\":[\"Filter\"],\"iFxrHK\":[\"Find answers to common questions about the project. Can't find what you're looking for? Feel free to <0>contact us0>.\"],\"aj40Mw\":[\"For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users (free during the beta) and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.\"],\"2POOFK\":[\"Free\"],\"gpfJ3v\":[\"Free, forever\"],\"ZDIydz\":[\"Get started\"],\"c3b0B0\":[\"Get Started\"],\"YQqv2e\":[\"Get started by creating a new board\"],\"zC8Whw\":[\"Get started by creating a new list\"],\"oW13KZ\":[\"Get started for free today\"],\"+OhFss\":[\"Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team.\"],\"rD6UIt\":[\"Get started on Cloud\"],\"7hktsm\":[\"Getting started\"],\"RkXlPZ\":[\"GitHub\"],\"UveK6V\":[\"Go to app\"],\"LrcnbT\":[\"Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data.\"],\"WI4eGo\":[\"How do I get a custom URL?\"],\"yV7o5I\":[\"How do I import my Trello boards?\"],\"nol/Fb\":[\"How do I invite team members?\"],\"KuSt9W\":[\"How do I self-host?\"],\"UeDFpo\":[\"How is the project funded?\"],\"2liqDZ\":[\"I acknowledge that all of my account data will be permanently deleted and want to proceed.\"],\"2Py5S/\":[\"I acknowledge that all of the workspace data will be permanently deleted and want to proceed.\"],\"F/vB2g\":[\"Ideas to improve this page...\"],\"l3s5ri\":[\"Import\"],\"2MPcep\":[\"Import complete\"],\"BEVzjL\":[\"Import failed\"],\"rRM7r0\":[\"Import your Trello boards and hit the ground running.\"],\"xMn+V9\":[\"Importing from Trello\"],\"g2xBxu\":[\"Importing your Trello boards into Kan is easy. You can follow our step-by-step guide <0>here0>.\"],\"6mbe4b\":[\"Individuals\"],\"nbfdhU\":[\"Integrations\"],\"MFKlMB\":[\"Invite\"],\"+djOzj\":[\"Invite member\"],\"aWDhU5\":[\"Kanban is better with a team. Perfect for small and growing teams looking to collaborate.\"],\"Xjj/kS\":[\"Kanban reimagined\"],\"JbXXUW\":[\"Keep in mind that this action is irreversible.\"],\"h8DugX\":[\"Labels\"],\"+nvZ6j\":[\"Labels & Filters\"],\"vXIe7J\":[\"Language\"],\"vifyyw\":[\"Legal\"],\"iQmbPb\":[\"License\"],\"1njn7W\":[\"Light\"],\"edWbV6\":[\"Link copied\"],\"2BBAbc\":[\"List\"],\"zQX5Dj\":[\"List name\"],\"N/bcWA\":[\"Login | kan.bn\"],\"nOhz3x\":[\"Logout\"],\"JnWJXY\":[\"magic link\"],\"wlQNTg\":[\"Members\"],\"9u5BOr\":[\"Members | \",[\"0\"]],\"+8Nek/\":[\"Monthly\"],\"EM/caO\":[\"moved the card from <0>\",[\"fromList\"],\"0> to<1>\",[\"toList\"],\"1>\"],\"T7LJic\":[\"moved the card to another list\"],\"6YtxFj\":[\"Name\"],\"HBI6nY\":[\"Need help?\"],\"isRobC\":[\"New\"],\"zDw80P\":[\"New board\"],\"pnrmSP\":[\"New card\"],\"WYwN1G\":[\"New import\"],\"n1GRql\":[\"New label\"],\"Sb2gYF\":[\"New list\"],\"curoK5\":[\"New workspace\"],\"DhLN1b\":[\"No boards\"],\"2Bu8xj\":[\"No boards found\"],\"OpNhRn\":[\"No credit card required\"],\"hXMFoN\":[\"No lists\"],\"usVytm\":[\"Once you delete your account, there is no going back. This action cannot be undone.\"],\"dmKdk0\":[\"Once you delete your workspace, there is no going back. This action cannot be undone.\"],\"BzEFor\":[\"or\"],\"ZqDqbi\":[\"Organize and find cards quickly with powerful filtering tools.\"],\"SPLN9O\":[\"Own your data\"],\"UbYdrA\":[\"Payment frequency\"],\"UbRKMZ\":[\"Pending\"],\"oVBq1w\":[\"per user/month\"],\"OtjenF\":[\"Please enter a valid email address\"],\"CJ3zUq\":[\"Please enter a valid name\"],\"7b2yuC\":[\"Please enter a valid password\"],\"wPZBpR\":[\"Please select a file to upload.\"],\"tyHiOa\":[\"Please try again later, or contact customer support.\"],\"aHCEmh\":[\"Pricing\"],\"ESClHO\":[\"Priority email support\"],\"ScJ9fj\":[\"Privacy policy\"],\"zwBp5t\":[\"Private\"],\"0rPv1T\":[\"Profile image updated\"],\"4XF0BB\":[\"Profile picture\"],\"7d1a0d\":[\"Public\"],\"1H5u1m\":[\"Questions?\"],\"t/YqKh\":[\"Remove\"],\"99VIgC\":[\"Remove member\"],\"kQwvU8\":[\"removed a label from the card\"],\"uck1tz\":[\"removed a member from the card\"],\"zdMPUq\":[\"removed label <0>\",[\"label\"],\"0>\"],\"s+MGs7\":[\"Resources\"],\"GXsAby\":[\"Revoke\"],\"/gaSVU\":[\"Roadmap\"],\"GDvlUT\":[\"Role\"],\"vAR/I8\":[\"Run on your own infrastructure\"],\"tfDRzk\":[\"Save\"],\"MdwUGG\":[\"Save time with reusable board templates.\"],\"wgNoIs\":[\"Select all\"],\"rYUZIe\":[\"Select source\"],\"ppaRWv\":[\"Self Host\"],\"l2PIAy\":[\"Self host with Github\"],\"VXk54Y\":[\"self-assigned the card\"],\"JlFcis\":[\"Send\"],\"Tz0i8g\":[\"Settings\"],\"5wo3jF\":[\"Settings | \",[\"0\"]],\"5lWFkC\":[\"Sign in\"],\"sUZo7y\":[\"Sign up | kan.bn\"],\"WRkpB1\":[\"Sign up disabled\"],\"s6iE/c\":[\"Sign up is currently disabled. Please try again later.\"],\"6FDocz\":[\"Sign up with \"],\"m2nk0i\":[\"Simple pricing\"],\"sBhOFG\":[\"Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done.\"],\"R6pB8R\":[\"Star on Github\"],\"zzDlyQ\":[\"Success\"],\"wruKPE\":[\"Support the development of the project\"],\"D+NlUC\":[\"System\"],\"CAL6E9\":[\"Teams\"],\"iTylMl\":[\"Templates\"],\"UCLeG0\":[\"Terms of service\"],\"nhMhRr\":[\"Thank you for your feedback!\"],\"lkz85l\":[\"The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall.\"],\"gUX7b+\":[\"The open source <0/> alternative to Trello\"],\"fQCrjt\":[\"The visibility of your board has been set to \",[\"0\"],\".\"],\"FEr96N\":[\"Theme\"],\"Yf9FAx\":[\"They won't be able to access this workspace.\"],\"3LDCpD\":[\"This action can't be undone.\"],\"wY+6Ye\":[\"This board URL has already been taken\"],\"MeO/vH\":[\"This will result in the permanent deletion of all data associated with this workspace.\"],\"mwBdZ2\":[\"This will result in the permanent deletion of all data associated with your account.\"],\"kp6L3T\":[\"This workspace username has already been taken\"],\"4gAX8s\":[\"Toggle menu\"],\"eEQyz+\":[\"Track all card changes with detailed activity history.\"],\"zto8aj\":[\"Trello disconnected\"],\"kxEs5t\":[\"Trello imports\"],\"T7DJ2k\":[\"Unable to add comment\"],\"zl1b97\":[\"Unable to create card\"],\"TztLaN\":[\"Unable to create list\"],\"MxQXhL\":[\"Unable to create workspace\"],\"Z6r9z1\":[\"Unable to delete card\"],\"2QGEbi\":[\"Unable to delete comment\"],\"8yFGGF\":[\"Unable to remove member\"],\"A8jqN7\":[\"Unable to send feedback\"],\"XpcjLO\":[\"Unable to update board URL\"],\"Wy6pcF\":[\"Unable to update board visibility\"],\"o9WLwO\":[\"Unable to update card\"],\"fYVH36\":[\"Unable to update comment\"],\"delOXn\":[\"Unable to update labels\"],\"I0gAKM\":[\"Unable to update list\"],\"5P4rhH\":[\"Unable to update members\"],\"nxb+xc\":[\"unassigned <0>\",[\"memberName\"],\"0> from the card\"],\"hAMddS\":[\"unassigned themselves from the card\"],\"M9p3Vw\":[\"Unlimited activity log\"],\"1wCGT0\":[\"Unlimited boards\"],\"ZU5IYI\":[\"Unlimited boards, unlimited lists, unlimited cards. No credit card required.\"],\"Zz1qkk\":[\"Unlimited cards\"],\"fziA2d\":[\"Unlimited comments\"],\"7Ufoyg\":[\"Unlimited lists\"],\"EkH9pt\":[\"Update\"],\"7EhE4k\":[\"Update label\"],\"tGwwnq\":[\"updated the description\"],\"V3MPSQ\":[\"updated the title\"],\"xJO7ca\":[\"updated the title to <0>\",[\"toTitle\"],\"0>\"],\"kwkhPe\":[\"Upgrade\"],\"MI5OBT\":[\"URL can only contain letters, numbers, and hyphens\"],\"vMCCIc\":[\"URL cannot exceed 24 characters\"],\"SWEskc\":[\"URL must be at least 3 characters long\"],\"7PzzBU\":[\"User\"],\"FmfJjN\":[\"View and manage your API keys.\"],\"t2nDzl\":[\"View and manage your billing and subscription.\"],\"aiHZVP\":[\"View docs\"],\"fSf2ee\":[\"View our roadmap.\"],\"2q/Q7x\":[\"Visibility\"],\"BJbLe4\":[\"We are using the <0>AGPL-3.0 license0>.\"],\"9y1RcT\":[\"We're just getting started. \"],\"9eF5oV\":[\"Welcome back\"],\"xEbBrW\":[\"What license are you using?\"],\"H5G+qG\":[\"What's the difference between Kan and Trello?\"],\"oBndex\":[\"When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \\\"Jira Lite\\\". This project is our attempt to recapture the original magic of Trello's simplicity, in open source.\"],\"/DGOJs\":[\"When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \\\"Jira Lite\\\". This project is our attempt to recapture the original magic of Trello’s simplicity, in open source.\"],\"SFnH1j\":[\"Why make an open source Trello?\"],\"pmUArF\":[\"Workspace\"],\"UlhdTP\":[\"Workspace deleted\"],\"chyf4J\":[\"Workspace description\"],\"Ax/hYa\":[\"Workspace description cannot exceed 280 characters\"],\"XDRXbZ\":[\"Workspace description must be at least 3 characters long\"],\"F4PLG4\":[\"Workspace description updated\"],\"wtxjAY\":[\"Workspace members\"],\"CozWO1\":[\"Workspace name\"],\"wIkTTk\":[\"Workspace name cannot exceed 24 characters\"],\"jZBHkN\":[\"Workspace name must be at least 3 characters long\"],\"OIA0ad\":[\"Workspace name updated\"],\"MN6YzG\":[\"Workspace slug updated\"],\"ASjvm9\":[\"Workspace URL\"],\"zkWmBh\":[\"Yearly\"],\"eZCGbT\":[\"Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits.\"],\"aelko+\":[\"You can get a custom workspace URL, like <0>kan.bn/kan0>, by going into your <1>workspace settings1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!\"],\"kSxwQL\":[\"You can invite team members by clicking the \\\"Invite\\\" button in the top right corner of the <0>members page0> and entering their email address. They will receive an email with a link to join the workspace.\"],\"vAj6xG\":[\"You can self-host by following the instructions in our <0>repo0>.\"],\"p/hk9N\":[\"You have been logged in successfully.\"],\"mchgzf\":[\"You have been signed up successfully.\"],\"GoDLB9\":[\"Your account has been deleted.\"],\"evg7+A\":[\"Your boards have been imported.\"],\"LqWW5F\":[\"Your display name has been updated.\"],\"/tOdd2\":[\"Your profile image has been updated.\"],\"CJWDTP\":[\"Your Trello account has been disconnected.\"],\"WRsbHO\":[\"Your Trello account is connected.\"],\"GnSSGm\":[\"Your workspace description has been updated.\"],\"qkjvgj\":[\"Your workspace has been deleted.\"],\"2h4PVB\":[\"Your workspace name has been updated.\"],\"Hg1qE9\":[\"Your workspace slug has been updated.\"]}")as Messages;
\ No newline at end of file
diff --git a/apps/web/src/locales/es/messages.po b/apps/web/src/locales/es/messages.po
new file mode 100644
index 00000000..e355a488
--- /dev/null
+++ b/apps/web/src/locales/es/messages.po
@@ -0,0 +1,1443 @@
+msgid ""
+msgstr ""
+"POT-Creation-Date: 2025-06-24 22:31+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: @lingui/cli\n"
+"Language: es\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Plural-Forms: \n"
+
+#: src/views/card/components/Comment.tsx:121
+msgid " (edited)"
+msgstr " (editado)"
+
+#: src/components/FeedbackButton.tsx:123
+msgid ", or see our"
+msgstr ", o consulta nuestra"
+
+#. placeholder {0}: card?.title ?? "Card"
+#. placeholder {1}: board?.name ?? "Board"
+#: src/views/card/index.tsx:148
+msgid "{0} | {1}"
+msgstr "{0} | {1}"
+
+#. placeholder {0}: labelPublicIds.length
+#: src/views/board/components/NewCardForm.tsx:365
+msgid "{0} labels"
+msgstr "{0} etiquetas"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:299
+msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
+msgstr "{boardCount, plural, one {Importar tablero (1)} other {Importar tableros ({boardCount})}}"
+
+#: src/views/home/index.tsx:51
+msgid "#1 Hacker News"
+msgstr "#1 Hacker News"
+
+#: src/views/home/components/Pricing.tsx:36
+msgid "1 user"
+msgstr "1 usuario"
+
+#: src/views/home/index.tsx:71
+msgid "A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place."
+msgstr "Una aplicación kanban potente y flexible que te ayuda a organizar el trabajo, seguir el progreso y entregar resultados, todo en un solo lugar."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:27
+msgid "Account deleted"
+msgstr "Cuenta eliminada"
+
+#: src/views/public/board/CardModal.tsx:104
+#: src/views/card/index.tsx:215
+msgid "Activity"
+msgstr "Actividad"
+
+#: src/views/home/components/Features.tsx:103
+msgid "Activity logs"
+msgstr "Registros de actividad"
+
+#: src/views/board/components/List.tsx:110
+msgid "Add a card"
+msgstr "Añadir una tarjeta"
+
+#: src/views/card/components/NewCommentForm.tsx:57
+#: src/views/card/components/Comment.tsx:144
+msgid "Add a comment..."
+msgstr "Añadir un comentario..."
+
+#: src/components/Editor.tsx:302
+msgid "Add description... (type '/' to open commands)"
+msgstr "Añadir descripción... (escribe '/' para abrir comandos)"
+
+#: src/views/card/components/LabelSelector.tsx:110
+#: src/views/card/components/LabelSelector.tsx:118
+msgid "Add label"
+msgstr "Añadir etiqueta"
+
+#: src/views/members/components/InviteMemberForm.tsx:50
+#: src/views/card/components/MemberSelector.tsx:130
+msgid "Add member"
+msgstr "Añadir miembro"
+
+#: src/views/card/components/ActivityList.tsx:56
+msgid "added a label to the card"
+msgstr "añadió una etiqueta a la tarjeta"
+
+#: src/views/card/components/ActivityList.tsx:58
+msgid "added a member to the card"
+msgstr "añadió un miembro a la tarjeta"
+
+#: src/views/card/components/ActivityList.tsx:110
+msgid "added label <0>{label}0>"
+msgstr "añadió la etiqueta <0>{label}0>"
+
+#: src/views/home/components/Pricing.tsx:55
+msgid "Admin roles"
+msgstr "Roles de administrador"
+
+#: src/views/home/components/Pricing.tsx:97
+msgid "All seats are free during the beta until Sept 1st!"
+msgstr "¡Todos los puestos son gratuitos durante la beta hasta el 1 de septiembre!"
+
+#: src/views/home/components/Footer.tsx:18
+msgid "All systems operational"
+msgstr "Todos los sistemas operativos"
+
+#: src/views/auth/signup/index.tsx:86
+msgid "Already have an account? <0><1>Sign in1>0>"
+msgstr "¿Ya tienes una cuenta? <0><1>Iniciar sesión1>0>"
+
+#: src/views/settings/index.tsx:77
+msgid "An error occurred while disconnecting your Trello account."
+msgstr "Ocurrió un error al desconectar tu cuenta de Trello."
+
+#: src/views/settings/index.tsx:229
+msgid "API keys"
+msgstr "Claves API"
+
+#: src/views/home/components/Footer.tsx:31
+msgid "API Reference"
+msgstr "Referencia de API"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:47
+msgid "Are you sure want to remove {entityLabel}?"
+msgstr "¿Estás seguro de que quieres eliminar {entityLabel}?"
+
+#. placeholder {0}: workspace.name
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:62
+msgid "Are you sure you want to delete the workspace {0}?"
+msgstr "¿Estás seguro de que quieres eliminar el espacio de trabajo {0}?"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:75
+msgid "Are you sure you want to delete this card?"
+msgstr "¿Estás seguro de que quieres eliminar esta tarjeta?"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:65
+msgid "Are you sure you want to delete this comment?"
+msgstr "¿Estás seguro de que quieres eliminar este comentario?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:54
+msgid "Are you sure you want to delete your account?"
+msgstr "¿Estás seguro de que quieres eliminar tu cuenta?"
+
+#: src/views/card/components/ActivityList.tsx:92
+msgid "assigned <0>{memberName}0> to the card"
+msgstr "asignó a <0>{memberName}0> a la tarjeta"
+
+#: src/views/settings/index.tsx:168
+msgid "Billing"
+msgstr "Facturación"
+
+#: src/views/settings/index.tsx:178
+msgid "Billing portal"
+msgstr "Portal de facturación"
+
+#: src/views/board/index.tsx:239
+msgid "Board"
+msgstr "Tablero"
+
+#: src/views/board/index.tsx:265
+msgid "Board not found"
+msgstr "Tablero no encontrado"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:45
+msgid "Board URL can only contain letters, numbers, and hyphens"
+msgstr "La URL del tablero solo puede contener letras, números y guiones"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:43
+msgid "Board URL cannot exceed 60 characters"
+msgstr "La URL del tablero no puede exceder los 60 caracteres"
+
+#: src/views/public/board/index.tsx:53
+msgid "Board URL copied to clipboard"
+msgstr "URL del tablero copiada al portapapeles"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:41
+msgid "Board URL must be at least 3 characters long"
+msgstr "La URL del tablero debe tener al menos 3 caracteres"
+
+#: src/views/home/components/Features.tsx:78
+msgid "Board visibility"
+msgstr "Visibilidad del tablero"
+
+#: src/views/board/components/VisibilityButton.tsx:45
+msgid "Board visibility updated"
+msgstr "Visibilidad del tablero actualizada"
+
+#: src/views/boards/index.tsx:25
+#: src/components/SideNavigation.tsx:39
+msgid "Boards"
+msgstr "Tableros"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/boards/index.tsx:21
+msgid "Boards | {0}"
+msgstr "Tableros | {0}"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
+#: src/views/settings/components/CustomURLConfirmation.tsx:50
+#: src/views/members/components/DeleteMemberConfirmation.tsx:55
+#: src/views/card/components/DeleteCommentConfirmation.tsx:76
+#: src/views/card/components/DeleteCardConfirmation.tsx:86
+#: src/views/card/components/Comment.tsx:156
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: src/views/card/index.tsx:193
+msgid "Card not found"
+msgstr "Tarjeta no encontrada"
+
+#: src/views/board/components/NewCardForm.tsx:254
+msgid "Card title"
+msgstr "Título de la tarjeta"
+
+#: src/views/settings/index.tsx:160
+msgid "Change the language of the app."
+msgstr "Cambiar el idioma de la aplicación."
+
+#: src/views/auth/signup/index.tsx:67
+#: src/views/auth/login/index.tsx:41
+msgid "Check your inbox"
+msgstr "Revisa tu bandeja de entrada"
+
+#: src/views/board/components/Filters.tsx:155
+msgid "Clear filters"
+msgstr "Borrar filtros"
+
+#: src/views/auth/signup/index.tsx:72
+#: src/views/auth/login/index.tsx:46
+msgid "Click on the link we've sent to {magicLinkRecipient} to sign in."
+msgstr "Haz clic en el enlace que hemos enviado a {magicLinkRecipient} para iniciar sesión."
+
+#: src/views/home/components/Features.tsx:84
+msgid "Collaborate seamlessly with your team."
+msgstr "Colabora sin problemas con tu equipo."
+
+#: src/views/home/components/Features.tsx:66
+msgid "Coming soon"
+msgstr "Próximamente"
+
+#: src/views/home/components/Features.tsx:98
+msgid "Comments"
+msgstr "Comentarios"
+
+#: src/views/home/components/Footer.tsx:94
+msgid "Company"
+msgstr "Empresa"
+
+#: src/views/home/components/Pricing.tsx:70
+msgid "Complete control and ownership:"
+msgstr "Control y propiedad completos:"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:42
+msgid "Confirm URL change"
+msgstr "Confirmar cambio de URL"
+
+#: src/views/settings/index.tsx:205
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Connect Trello"
+msgstr "Conectar Trello"
+
+#: src/views/home/components/Features.tsx:115
+msgid "Connect your favorite tools to streamline your workflow."
+msgstr "Conecta tus herramientas favoritas para agilizar tu flujo de trabajo."
+
+#: src/views/settings/index.tsx:192
+msgid "Connect your Trello account to import boards."
+msgstr "Conecta tu cuenta de Trello para importar tableros."
+
+#: src/views/home/components/Footer.tsx:38
+msgid "Contact"
+msgstr "Contacto"
+
+#: src/components/FeedbackButton.tsx:121
+msgid "Contact us"
+msgstr "Contáctanos"
+
+#: src/components/AuthForm.tsx:334
+msgid "Continue with "
+msgstr "Continuar con "
+
+#. placeholder {0}: provider.name
+#: src/components/AuthForm.tsx:268
+msgid "Continue with {0}"
+msgstr "Continuar con {0}"
+
+#: src/views/home/components/Features.tsx:79
+msgid "Control who can view and edit your boards."
+msgstr "Controla quién puede ver y editar tus tableros."
+
+#: src/views/board/components/NewListForm.tsx:140
+#: src/views/board/components/NewCardForm.tsx:391
+#: src/components/LabelForm.tsx:212
+msgid "Create another"
+msgstr "Crear otro"
+
+#: src/views/boards/components/NewBoardForm.tsx:77
+msgid "Create board"
+msgstr "Crear tablero"
+
+#: src/views/board/components/NewCardForm.tsx:401
+msgid "Create card"
+msgstr "Crear tarjeta"
+
+#: src/components/LabelForm.tsx:233
+msgid "Create label"
+msgstr "Crear etiqueta"
+
+#: src/views/board/components/NewListForm.tsx:148
+msgid "Create list"
+msgstr "Crear lista"
+
+#: src/views/boards/components/BoardsList.tsx:42
+msgid "Create new board"
+msgstr "Crear nuevo tablero"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:54
+msgid "Create new key"
+msgstr "Crear nueva clave"
+
+#: src/views/card/components/LabelSelector.tsx:98
+#: src/views/board/components/NewCardForm.tsx:327
+msgid "Create new label"
+msgstr "Crear nueva etiqueta"
+
+#: src/views/board/index.tsx:327
+msgid "Create new list"
+msgstr "Crear nueva lista"
+
+#: src/components/WorkspaceMenu.tsx:85
+#: src/components/NewWorkspaceForm.tsx:91
+msgid "Create workspace"
+msgstr "Crear espacio de trabajo"
+
+#: src/views/card/components/ActivityList.tsx:52
+msgid "created the card"
+msgstr "creó la tarjeta"
+
+#: src/views/home/components/Pricing.tsx:74
+msgid "Custom domain"
+msgstr "Dominio personalizado"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:45
+msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
+msgstr "Las URL personalizadas son una función premium. Serás dirigido a actualizar tu cuenta."
+
+#: src/components/UserMenu.tsx:112
+msgid "Dark"
+msgstr "Oscuro"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:82
+#: src/views/card/components/DeleteCardConfirmation.tsx:92
+#: src/components/LabelForm.tsx:226
+msgid "Delete"
+msgstr "Eliminar"
+
+#: src/views/settings/index.tsx:260
+#: src/views/settings/index.tsx:270
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
+msgid "Delete account"
+msgstr "Eliminar cuenta"
+
+#: src/views/board/components/BoardDropdown.tsx:20
+msgid "Delete board"
+msgstr "Eliminar tablero"
+
+#: src/views/card/components/Dropdown.tsx:14
+msgid "Delete card"
+msgstr "Eliminar tarjeta"
+
+#: src/views/card/components/Comment.tsx:89
+msgid "Delete comment"
+msgstr "Eliminar comentario"
+
+#: src/views/board/components/List.tsx:117
+msgid "Delete list"
+msgstr "Eliminar lista"
+
+#: src/views/settings/index.tsx:242
+#: src/views/settings/index.tsx:253
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
+msgid "Delete workspace"
+msgstr "Eliminar espacio de trabajo"
+
+#: src/views/settings/index.tsx:220
+msgid "Disconnect Trello"
+msgstr "Desconectar Trello"
+
+#: src/views/home/components/Features.tsx:99
+msgid "Discuss and collaborate on cards."
+msgstr "Discute y colabora en las tarjetas."
+
+#: src/views/settings/index.tsx:123
+msgid "Display name"
+msgstr "Nombre visible"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:22
+msgid "Display name cannot exceed 280 characters"
+msgstr "El nombre visible no puede exceder los 280 caracteres"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:19
+msgid "Display name must be at least 3 characters long"
+msgstr "El nombre visible debe tener al menos 3 caracteres"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:41
+msgid "Display name updated"
+msgstr "Nombre visible actualizado"
+
+#: src/views/home/components/Faqs.tsx:83
+msgid "Do you offer a free plan?"
+msgstr "¿Ofrecen un plan gratuito?"
+
+#: src/components/FeedbackButton.tsx:130
+msgid "docs"
+msgstr "documentos"
+
+#: src/views/home/components/Header.tsx:16
+msgid "Docs"
+msgstr "Documentos"
+
+#: src/views/home/components/Footer.tsx:77
+msgid "Documentation"
+msgstr "Documentación"
+
+#: src/views/auth/login/index.tsx:61
+msgid "Don't have an account? <0><1>Sign up1>0>"
+msgstr "¿No tienes una cuenta? <0><1>Regístrate1>0>"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:115
+#: src/views/board/components/BoardDropdown.tsx:15
+msgid "Edit board URL"
+msgstr "Editar URL del tablero"
+
+#: src/views/card/components/Comment.tsx:80
+msgid "Edit comment"
+msgstr "Editar comentario"
+
+#: src/components/LabelForm.tsx:118
+msgid "Edit label"
+msgstr "Editar etiqueta"
+
+#: src/components/AuthForm.tsx:336
+msgid "email"
+msgstr "correo electrónico"
+
+#: src/views/members/components/InviteMemberForm.tsx:64
+msgid "Email"
+msgstr "Correo electrónico"
+
+#: src/components/AuthForm.tsx:301
+msgid "Enter your email address"
+msgstr "Introduce tu dirección de correo electrónico"
+
+#: src/components/AuthForm.tsx:289
+msgid "Enter your name"
+msgstr "Introduce tu nombre"
+
+#: src/components/AuthForm.tsx:314
+msgid "Enter your password"
+msgstr "Introduce tu contraseña"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
+msgid "Error deleting account"
+msgstr "Error al eliminar la cuenta"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
+msgid "Error deleting workspace"
+msgstr "Error al eliminar el espacio de trabajo"
+
+#: src/views/settings/index.tsx:76
+msgid "Error disconnecting Trello"
+msgstr "Error al desconectar Trello"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:54
+msgid "Error updating display name"
+msgstr "Error al actualizar el nombre visible"
+
+#: src/views/settings/components/Avatar.tsx:37
+msgid "Error updating profile image"
+msgstr "Error al actualizar la imagen de perfil"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:61
+msgid "Error updating workspace description"
+msgstr "Error al actualizar la descripción del espacio de trabajo"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:56
+msgid "Error updating workspace name"
+msgstr "Error al actualizar el nombre del espacio de trabajo"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:73
+msgid "Error updating workspace URL"
+msgstr "Error al actualizar la URL del espacio de trabajo"
+
+#: src/views/settings/components/Avatar.tsx:54
+#: src/views/settings/components/Avatar.tsx:95
+msgid "Error uploading profile image"
+msgstr "Error al subir la imagen de perfil"
+
+#: src/views/home/components/Pricing.tsx:52
+msgid "Everything in the free plan, plus:"
+msgstr "Todo lo que hay en el plan gratuito, más:"
+
+#: src/views/home/components/Pricing.tsx:33
+msgid "Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time."
+msgstr "Todo lo que necesitas, gratis para siempre. Tableros ilimitados, listas ilimitadas, tarjetas ilimitadas. Actualiza en cualquier momento."
+
+#. placeholder {0}: provider.at(0)?.toUpperCase() + provider.slice(1)
+#: src/components/AuthForm.tsx:241
+msgid "Failed to login with {0}. Please try again."
+msgstr "Error al iniciar sesión con {0}. Por favor, inténtalo de nuevo."
+
+#: src/views/home/components/Footer.tsx:51
+#: src/views/home/components/Faqs.tsx:143
+msgid "FAQs"
+msgstr "Preguntas frecuentes"
+
+#: src/views/home/components/Header.tsx:14
+#: src/views/home/components/Footer.tsx:49
+#: src/views/home/components/Features.tsx:125
+msgid "Features"
+msgstr "Características"
+
+#: src/components/FeedbackButton.tsx:78
+msgid "Feedback"
+msgstr "Comentarios"
+
+#: src/components/FeedbackButton.tsx:38
+msgid "Feedback sent"
+msgstr "Comentarios enviados"
+
+#: src/views/board/components/Filters.tsx:149
+msgid "Filter"
+msgstr "Filtrar"
+
+#: src/views/home/components/Faqs.tsx:150
+msgid "Find answers to common questions about the project. Can't find what you're looking for? Feel free to <0>contact us0>."
+msgstr "Encuentra respuestas a preguntas frecuentes sobre el proyecto. ¿No encuentras lo que buscas? No dudes en <0>contactarnos0>."
+
+#: src/views/home/components/Faqs.tsx:41
+msgid "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users (free during the beta) and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge."
+msgstr "Para la sostenibilidad a largo plazo, reconocemos que todos los buenos proyectos de código abierto necesitan una fuente de ingresos. La nuestra proviene de la oferta de pago en la nube para espacios de trabajo con múltiples usuarios (gratuita durante la beta) y para slugs personalizados de espacios de trabajo. No hay obligación de usarla, y puedes autoalojar el software en tu propia infraestructura sin costo alguno."
+
+#: src/views/home/components/Pricing.tsx:32
+#: src/views/home/components/Pricing.tsx:32
+msgid "Free"
+msgstr "Gratis"
+
+#: src/views/home/components/Pricing.tsx:34
+msgid "Free, forever"
+msgstr "Gratis, para siempre"
+
+#: src/views/home/components/Header.tsx:102
+#: src/views/home/components/Header.tsx:141
+#: src/views/home/components/Cta.tsx:61
+#: src/views/auth/signup/index.tsx:67
+msgid "Get started"
+msgstr "Comenzar"
+
+#: src/views/home/components/Pricing.tsx:31
+#: src/views/home/components/Pricing.tsx:49
+msgid "Get Started"
+msgstr "Comenzar"
+
+#: src/views/boards/components/BoardsList.tsx:38
+msgid "Get started by creating a new board"
+msgstr "Comienza creando un nuevo tablero"
+
+#: src/views/board/index.tsx:319
+msgid "Get started by creating a new list"
+msgstr "Comienza creando una nueva lista"
+
+#: src/views/home/components/Cta.tsx:54
+msgid "Get started for free today"
+msgstr "Comienza gratis hoy mismo"
+
+#: src/views/home/components/Pricing.tsx:92
+msgid "Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team."
+msgstr "Comienza gratis, sin límites de uso. Para colaboración, actualiza a un plan que se ajuste al tamaño de tu equipo."
+
+#: src/views/home/index.tsx:75
+msgid "Get started on Cloud"
+msgstr "Comenzar en la nube"
+
+#: src/views/home/components/Footer.tsx:25
+msgid "Getting started"
+msgstr "Primeros pasos"
+
+#: src/views/home/components/Footer.tsx:37
+msgid "GitHub"
+msgstr "GitHub"
+
+#: src/views/home/components/Header.tsx:96
+#: src/views/home/components/Header.tsx:133
+msgid "Go to app"
+msgstr "Ir a la aplicación"
+
+#: src/views/home/components/Pricing.tsx:69
+msgid "Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data."
+msgstr "Aloja Kan en tu propia infraestructura. Ideal para organizaciones que necesitan control completo sobre sus datos."
+
+#: src/views/home/components/Faqs.tsx:64
+msgid "How do I get a custom URL?"
+msgstr "¿Cómo obtengo una URL personalizada?"
+
+#: src/views/home/components/Faqs.tsx:46
+msgid "How do I import my Trello boards?"
+msgstr "¿Cómo importo mis tableros de Trello?"
+
+#: src/views/home/components/Faqs.tsx:108
+msgid "How do I invite team members?"
+msgstr "¿Cómo invito a miembros del equipo?"
+
+#: src/views/home/components/Faqs.tsx:124
+msgid "How do I self-host?"
+msgstr "¿Cómo puedo autoalojar?"
+
+#: src/views/home/components/Faqs.tsx:38
+msgid "How is the project funded?"
+msgstr "¿Cómo se financia el proyecto?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:82
+msgid "I acknowledge that all of my account data will be permanently deleted and want to proceed."
+msgstr "Reconozco que todos los datos de mi cuenta serán eliminados permanentemente y quiero continuar."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:92
+msgid "I acknowledge that all of the workspace data will be permanently deleted and want to proceed."
+msgstr "Reconozco que todos los datos del espacio de trabajo serán eliminados permanentemente y quiero continuar."
+
+#: src/components/FeedbackButton.tsx:98
+msgid "Ideas to improve this page..."
+msgstr "Ideas para mejorar esta página..."
+
+#: src/views/boards/index.tsx:39
+msgid "Import"
+msgstr "Importar"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:191
+msgid "Import complete"
+msgstr "Importación completada"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:204
+msgid "Import failed"
+msgstr "Importación fallida"
+
+#: src/views/home/components/Features.tsx:89
+msgid "Import your Trello boards and hit the ground running."
+msgstr "Importa tus tableros de Trello y comienza a trabajar de inmediato."
+
+#: src/views/home/components/Footer.tsx:27
+msgid "Importing from Trello"
+msgstr "Importando desde Trello"
+
+#: src/views/home/components/Faqs.tsx:49
+msgid "Importing your Trello boards into Kan is easy. You can follow our step-by-step guide <0>here0>."
+msgstr "Importar tus tableros de Trello a Kan es fácil. Puedes seguir nuestra guía paso a paso <0>aquí0>."
+
+#: src/views/home/components/Pricing.tsx:28
+msgid "Individuals"
+msgstr "Individuos"
+
+#: src/views/home/components/Features.tsx:114
+msgid "Integrations"
+msgstr "Integraciones"
+
+#: src/views/members/index.tsx:156
+msgid "Invite"
+msgstr "Invitar"
+
+#: src/views/members/components/InviteMemberForm.tsx:82
+#: src/views/card/components/MemberSelector.tsx:112
+msgid "Invite member"
+msgstr "Invitar miembro"
+
+#: src/views/home/components/Pricing.tsx:51
+msgid "Kanban is better with a team. Perfect for small and growing teams looking to collaborate."
+msgstr "Kanban es mejor con un equipo. Perfecto para equipos pequeños y en crecimiento que buscan colaborar."
+
+#: src/views/home/components/Features.tsx:129
+msgid "Kanban reimagined"
+msgstr "Kanban reinventado"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:67
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:57
+msgid "Keep in mind that this action is irreversible."
+msgstr "Ten en cuenta que esta acción es irreversible."
+
+#: src/views/card/index.tsx:243
+#: src/views/board/components/NewCardForm.tsx:331
+#: src/views/board/components/Filters.tsx:101
+msgid "Labels"
+msgstr "Etiquetas"
+
+#: src/views/home/components/Features.tsx:93
+msgid "Labels & Filters"
+msgstr "Etiquetas y filtros"
+
+#: src/views/settings/index.tsx:157
+msgid "Language"
+msgstr "Idioma"
+
+#: src/views/home/components/Footer.tsx:130
+msgid "Legal"
+msgstr "Legal"
+
+#: src/views/home/components/Footer.tsx:44
+msgid "License"
+msgstr "Licencia"
+
+#: src/components/UserMenu.tsx:126
+msgid "Light"
+msgstr "Claro"
+
+#: src/views/public/board/index.tsx:51
+msgid "Link copied"
+msgstr "Enlace copiado"
+
+#: src/views/card/index.tsx:235
+msgid "List"
+msgstr "Lista"
+
+#: src/views/board/components/NewListForm.tsx:128
+msgid "List name"
+msgstr "Nombre de la lista"
+
+#: src/views/auth/login/index.tsx:31
+msgid "Login | kan.bn"
+msgstr "Iniciar sesión | kan.bn"
+
+#: src/components/UserMenu.tsx:136
+msgid "Logout"
+msgstr "Cerrar sesión"
+
+#: src/components/AuthForm.tsx:337
+msgid "magic link"
+msgstr "enlace mágico"
+
+#: src/views/members/index.tsx:148
+#: src/views/card/index.tsx:251
+#: src/views/board/components/NewCardForm.tsx:290
+#: src/views/board/components/Filters.tsx:93
+#: src/components/SideNavigation.tsx:44
+msgid "Members"
+msgstr "Miembros"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/members/index.tsx:144
+msgid "Members | {0}"
+msgstr "Miembros | {0}"
+
+#: src/views/home/components/Pricing.tsx:14
+msgid "Monthly"
+msgstr "Mensual"
+
+#: src/views/card/components/ActivityList.tsx:81
+msgid "moved the card from <0>{fromList}0> to<1>{toList}1>"
+msgstr "movió la tarjeta de <0>{fromList}0> a<1>{toList}1>"
+
+#: src/views/card/components/ActivityList.tsx:55
+msgid "moved the card to another list"
+msgstr "movió la tarjeta a otra lista"
+
+#: src/views/boards/components/NewBoardForm.tsx:63
+#: src/components/LabelForm.tsx:134
+msgid "Name"
+msgstr "Nombre"
+
+#: src/components/FeedbackButton.tsx:116
+msgid "Need help?"
+msgstr "¿Necesitas ayuda?"
+
+#: src/views/boards/index.tsx:52
+msgid "New"
+msgstr "Nuevo"
+
+#: src/views/boards/components/NewBoardForm.tsx:49
+msgid "New board"
+msgstr "Nuevo tablero"
+
+#: src/views/board/components/NewCardForm.tsx:237
+msgid "New card"
+msgstr "Nueva tarjeta"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:322
+msgid "New import"
+msgstr "Nueva importación"
+
+#: src/components/LabelForm.tsx:118
+msgid "New label"
+msgstr "Nueva etiqueta"
+
+#: src/views/board/index.tsx:296
+#: src/views/board/components/NewListForm.tsx:112
+msgid "New list"
+msgstr "Nueva lista"
+
+#: src/components/NewWorkspaceForm.tsx:62
+msgid "New workspace"
+msgstr "Nuevo espacio de trabajo"
+
+#: src/views/boards/components/BoardsList.tsx:35
+msgid "No boards"
+msgstr "Sin tableros"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:242
+msgid "No boards found"
+msgstr "No se encontraron tableros"
+
+#: src/views/home/index.tsx:85
+msgid "No credit card required"
+msgstr "No se requiere tarjeta de crédito"
+
+#: src/views/board/index.tsx:316
+msgid "No lists"
+msgstr "Sin listas"
+
+#: src/views/settings/index.tsx:263
+msgid "Once you delete your account, there is no going back. This action cannot be undone."
+msgstr "Una vez que elimines tu cuenta, no hay vuelta atrás. Esta acción no se puede deshacer."
+
+#: src/views/settings/index.tsx:245
+msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
+msgstr "Una vez que elimines tu espacio de trabajo, no hay vuelta atrás. Esta acción no se puede deshacer."
+
+#: src/components/AuthForm.tsx:279
+msgid "or"
+msgstr "o"
+
+#: src/views/home/components/Features.tsx:94
+msgid "Organize and find cards quickly with powerful filtering tools."
+msgstr "Organiza y encuentra tarjetas rápidamente con potentes herramientas de filtrado."
+
+#: src/views/home/components/Pricing.tsx:73
+msgid "Own your data"
+msgstr "Sé dueño de tus datos"
+
+#: src/views/home/components/Pricing.tsx:101
+msgid "Payment frequency"
+msgstr "Frecuencia de pago"
+
+#: src/views/members/index.tsx:107
+msgid "Pending"
+msgstr "Pendiente"
+
+#: src/views/home/components/Pricing.tsx:15
+#: src/views/home/components/Pricing.tsx:20
+msgid "per user/month"
+msgstr "por usuario/mes"
+
+#: src/components/AuthForm.tsx:305
+msgid "Please enter a valid email address"
+msgstr "Por favor, introduce una dirección de correo electrónico válida"
+
+#: src/components/AuthForm.tsx:293
+msgid "Please enter a valid name"
+msgstr "Por favor, introduce un nombre válido"
+
+#: src/components/AuthForm.tsx:318
+msgid "Please enter a valid password"
+msgstr "Por favor, introduce una contraseña válida"
+
+#: src/views/settings/components/Avatar.tsx:55
+msgid "Please select a file to upload."
+msgstr "Por favor selecciona un archivo para subir."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:55
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:46
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
+#: src/views/settings/components/Avatar.tsx:38
+#: src/views/settings/components/Avatar.tsx:96
+#: src/views/members/components/DeleteMemberConfirmation.tsx:28
+#: src/views/card/index.tsx:116
+#: src/views/card/components/NewCommentForm.tsx:31
+#: src/views/card/components/MemberSelector.tsx:80
+#: src/views/card/components/ListSelector.tsx:53
+#: src/views/card/components/LabelSelector.tsx:73
+#: src/views/card/components/DeleteCommentConfirmation.tsx:45
+#: src/views/card/components/DeleteCardConfirmation.tsx:52
+#: src/views/card/components/Comment.tsx:62
+#: src/views/boards/components/ImportBoardsForm.tsx:205
+#: src/views/board/index.tsx:133
+#: src/views/board/index.tsx:189
+#: src/views/board/components/VisibilityButton.tsx:53
+#: src/views/board/components/UpdateBoardSlugForm.tsx:72
+#: src/views/board/components/NewListForm.tsx:78
+#: src/views/board/components/NewCardForm.tsx:128
+#: src/components/NewWorkspaceForm.tsx:39
+#: src/components/FeedbackButton.tsx:46
+msgid "Please try again later, or contact customer support."
+msgstr "Por favor, inténtalo de nuevo más tarde o contacta con atención al cliente."
+
+#: src/views/home/components/Pricing.tsx:85
+#: src/views/home/components/Header.tsx:15
+#: src/views/home/components/Footer.tsx:50
+msgid "Pricing"
+msgstr "Precios"
+
+#: src/views/home/components/Pricing.tsx:56
+msgid "Priority email support"
+msgstr "Soporte prioritario por email"
+
+#: src/views/home/components/Footer.tsx:42
+msgid "Privacy policy"
+msgstr "Política de privacidad"
+
+#: src/views/board/components/VisibilityButton.tsx:73
+msgid "Private"
+msgstr "Privado"
+
+#: src/views/settings/components/Avatar.tsx:24
+msgid "Profile image updated"
+msgstr "Imagen de perfil actualizada"
+
+#: src/views/settings/index.tsx:118
+msgid "Profile picture"
+msgstr "Foto de perfil"
+
+#: src/views/board/components/VisibilityButton.tsx:68
+msgid "Public"
+msgstr "Público"
+
+#: src/views/home/components/Faqs.tsx:147
+msgid "Questions?"
+msgstr "¿Preguntas?"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:58
+msgid "Remove"
+msgstr "Eliminar"
+
+#: src/views/members/index.tsx:120
+msgid "Remove member"
+msgstr "Eliminar miembro"
+
+#: src/views/card/components/ActivityList.tsx:57
+msgid "removed a label from the card"
+msgstr "eliminó una etiqueta de la tarjeta"
+
+#: src/views/card/components/ActivityList.tsx:59
+msgid "removed a member from the card"
+msgstr "eliminó un miembro de la tarjeta"
+
+#: src/views/card/components/ActivityList.tsx:118
+msgid "removed label <0>{label}0>"
+msgstr "eliminó la etiqueta <0>{label}0>"
+
+#: src/views/home/components/Footer.tsx:113
+msgid "Resources"
+msgstr "Recursos"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:49
+msgid "Revoke"
+msgstr "Revocar"
+
+#: src/views/home/components/Header.tsx:13
+#: src/views/home/components/Footer.tsx:36
+msgid "Roadmap"
+msgstr "Hoja de ruta"
+
+#: src/views/members/index.tsx:178
+msgid "Role"
+msgstr "Rol"
+
+#: src/views/home/components/Pricing.tsx:72
+msgid "Run on your own infrastructure"
+msgstr "Ejecuta en tu propia infraestructura"
+
+#: src/views/card/components/Comment.tsx:163
+msgid "Save"
+msgstr "Guardar"
+
+#: src/views/home/components/Features.tsx:109
+msgid "Save time with reusable board templates."
+msgstr "Ahorra tiempo con plantillas de tableros reutilizables."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:274
+msgid "Select all"
+msgstr "Seleccionar todo"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Select source"
+msgstr "Seleccionar origen"
+
+#: src/views/home/components/Pricing.tsx:64
+msgid "Self Host"
+msgstr "Autoalojamiento"
+
+#: src/views/home/index.tsx:81
+msgid "Self host with Github"
+msgstr "Autoalojamiento con Github"
+
+#: src/views/card/components/ActivityList.tsx:89
+msgid "self-assigned the card"
+msgstr "se autoasignó la tarjeta"
+
+#: src/components/FeedbackButton.tsx:137
+msgid "Send"
+msgstr "Enviar"
+
+#: src/views/settings/index.tsx:112
+#: src/components/SideNavigation.tsx:49
+msgid "Settings"
+msgstr "Configuración"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/settings/index.tsx:108
+msgid "Settings | {0}"
+msgstr "Configuración | {0}"
+
+#: src/views/home/components/Header.tsx:100
+#: src/views/home/components/Header.tsx:138
+msgid "Sign in"
+msgstr "Iniciar sesión"
+
+#: src/views/auth/signup/index.tsx:32
+#: src/views/auth/signup/index.tsx:57
+msgid "Sign up | kan.bn"
+msgstr "Registrarse | kan.bn"
+
+#: src/views/auth/signup/index.tsx:42
+msgid "Sign up disabled"
+msgstr "Registro deshabilitado"
+
+#: src/views/auth/signup/index.tsx:45
+msgid "Sign up is currently disabled. Please try again later."
+msgstr "El registro está actualmente deshabilitado. Por favor, inténtalo de nuevo más tarde."
+
+#: src/components/AuthForm.tsx:334
+msgid "Sign up with "
+msgstr "Registrarse con "
+
+#: src/views/home/components/Pricing.tsx:89
+msgid "Simple pricing"
+msgstr "Precios simples"
+
+#: src/views/home/components/Features.tsx:132
+msgid "Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done."
+msgstr "Gestión de tareas visual y sencilla que simplemente funciona. Arrastra y suelta tarjetas, colabora con tu equipo y logra más."
+
+#: src/views/home/index.tsx:37
+msgid "Star on Github"
+msgstr "Estrella en Github"
+
+#: src/components/AuthForm.tsx:188
+#: src/components/AuthForm.tsx:205
+msgid "Success"
+msgstr "Éxito"
+
+#: src/views/home/components/Pricing.tsx:57
+msgid "Support the development of the project"
+msgstr "Apoya el desarrollo del proyecto"
+
+#: src/components/UserMenu.tsx:98
+msgid "System"
+msgstr "Sistema"
+
+#: src/views/home/components/Pricing.tsx:46
+msgid "Teams"
+msgstr "Equipos"
+
+#: src/views/home/components/Features.tsx:108
+msgid "Templates"
+msgstr "Plantillas"
+
+#: src/views/home/components/Footer.tsx:41
+msgid "Terms of service"
+msgstr "Términos de servicio"
+
+#: src/components/FeedbackButton.tsx:39
+msgid "Thank you for your feedback!"
+msgstr "¡Gracias por tus comentarios!"
+
+#: src/views/home/components/Faqs.tsx:33
+msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
+msgstr "La principal diferencia entre Kan y Trello es que Kan es de código abierto, permitiendo a cualquiera ver, modificar y contribuir a nuestro código. Nuestra oferta en la nube también ofrece funciones sin restricciones para uso individual, mientras que Trello bloquea características básicas como el número de tableros que puedes crear detrás de un muro de pago."
+
+#: src/views/home/index.tsx:65
+msgid "The open source <0/> alternative to Trello"
+msgstr "La alternativa de código abierto <0/> a Trello"
+
+#. placeholder {0}: isPublic ? "public" : "private"
+#: src/views/board/components/VisibilityButton.tsx:46
+msgid "The visibility of your board has been set to {0}."
+msgstr "La visibilidad de tu tablero ha sido establecida a {0}."
+
+#: src/components/UserMenu.tsx:85
+msgid "Theme"
+msgstr "Tema"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:50
+msgid "They won't be able to access this workspace."
+msgstr "No podrán acceder a este espacio de trabajo."
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:68
+#: src/views/card/components/DeleteCardConfirmation.tsx:78
+msgid "This action can't be undone."
+msgstr "Esta acción no se puede deshacer."
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:135
+msgid "This board URL has already been taken"
+msgstr "Esta URL de tablero ya ha sido utilizada"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:70
+msgid "This will result in the permanent deletion of all data associated with this workspace."
+msgstr "Esto resultará en la eliminación permanente de todos los datos asociados con este espacio de trabajo."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:60
+msgid "This will result in the permanent deletion of all data associated with your account."
+msgstr "Esto resultará en la eliminación permanente de todos los datos asociados con tu cuenta."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:123
+msgid "This workspace username has already been taken"
+msgstr "Este nombre de usuario del espacio de trabajo ya ha sido tomado"
+
+#: src/views/home/components/Header.tsx:73
+msgid "Toggle menu"
+msgstr "Alternar menú"
+
+#: src/views/home/components/Features.tsx:104
+msgid "Track all card changes with detailed activity history."
+msgstr "Rastrea todos los cambios en las tarjetas con un historial de actividad detallado."
+
+#: src/views/settings/index.tsx:69
+msgid "Trello disconnected"
+msgstr "Trello desconectado"
+
+#: src/views/home/components/Features.tsx:88
+msgid "Trello imports"
+msgstr "Importaciones de Trello"
+
+#: src/views/card/components/NewCommentForm.tsx:30
+msgid "Unable to add comment"
+msgstr "No se puede añadir el comentario"
+
+#: src/views/board/components/NewCardForm.tsx:125
+msgid "Unable to create card"
+msgstr "No se puede crear la tarjeta"
+
+#: src/views/board/components/NewListForm.tsx:77
+msgid "Unable to create list"
+msgstr "No se puede crear la lista"
+
+#: src/components/NewWorkspaceForm.tsx:38
+msgid "Unable to create workspace"
+msgstr "No se puede crear el espacio de trabajo"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:51
+msgid "Unable to delete card"
+msgstr "No se puede eliminar la tarjeta"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:44
+msgid "Unable to delete comment"
+msgstr "No se puede eliminar el comentario"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:27
+msgid "Unable to remove member"
+msgstr "No se puede eliminar al miembro"
+
+#: src/components/FeedbackButton.tsx:45
+msgid "Unable to send feedback"
+msgstr "No se pudieron enviar los comentarios"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:71
+msgid "Unable to update board URL"
+msgstr "No se puede actualizar la URL del tablero"
+
+#: src/views/board/components/VisibilityButton.tsx:52
+msgid "Unable to update board visibility"
+msgstr "No se puede actualizar la visibilidad del tablero"
+
+#: src/views/card/index.tsx:115
+#: src/views/board/index.tsx:188
+msgid "Unable to update card"
+msgstr "No se puede actualizar la tarjeta"
+
+#: src/views/card/components/Comment.tsx:61
+msgid "Unable to update comment"
+msgstr "No se puede actualizar el comentario"
+
+#: src/views/card/components/LabelSelector.tsx:72
+msgid "Unable to update labels"
+msgstr "No se pueden actualizar las etiquetas"
+
+#: src/views/card/components/ListSelector.tsx:52
+#: src/views/board/index.tsx:132
+msgid "Unable to update list"
+msgstr "No se puede actualizar la lista"
+
+#: src/views/card/components/MemberSelector.tsx:79
+msgid "Unable to update members"
+msgstr "No se pueden actualizar los miembros"
+
+#: src/views/card/components/ActivityList.tsx:102
+msgid "unassigned <0>{memberName}0> from the card"
+msgstr "desasignó a <0>{memberName}0> de la tarjeta"
+
+#: src/views/card/components/ActivityList.tsx:99
+msgid "unassigned themselves from the card"
+msgstr "se desasignó de la tarjeta"
+
+#: src/views/home/components/Pricing.tsx:41
+msgid "Unlimited activity log"
+msgstr "Registro de actividad ilimitado"
+
+#: src/views/home/components/Pricing.tsx:37
+msgid "Unlimited boards"
+msgstr "Tableros ilimitados"
+
+#: src/views/home/components/Cta.tsx:57
+msgid "Unlimited boards, unlimited lists, unlimited cards. No credit card required."
+msgstr "Tableros ilimitados, listas ilimitadas, tarjetas ilimitadas. No se requiere tarjeta de crédito."
+
+#: src/views/home/components/Pricing.tsx:39
+msgid "Unlimited cards"
+msgstr "Tarjetas ilimitadas"
+
+#: src/views/home/components/Pricing.tsx:40
+msgid "Unlimited comments"
+msgstr "Comentarios ilimitados"
+
+#: src/views/home/components/Pricing.tsx:38
+msgid "Unlimited lists"
+msgstr "Listas ilimitadas"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:154
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:82
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
+#: src/views/board/components/UpdateBoardSlugForm.tsx:166
+msgid "Update"
+msgstr "Actualizar"
+
+#: src/components/LabelForm.tsx:233
+msgid "Update label"
+msgstr "Actualizar etiqueta"
+
+#: src/views/card/components/ActivityList.tsx:54
+msgid "updated the description"
+msgstr "actualizó la descripción"
+
+#: src/views/card/components/ActivityList.tsx:53
+msgid "updated the title"
+msgstr "actualizó el título"
+
+#: src/views/card/components/ActivityList.tsx:73
+msgid "updated the title to <0>{toTitle}0>"
+msgstr "actualizó el título a <0>{toTitle}0>"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:52
+msgid "Upgrade"
+msgstr "Actualizar"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:36
+msgid "URL can only contain letters, numbers, and hyphens"
+msgstr "La URL solo puede contener letras, números y guiones"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:34
+msgid "URL cannot exceed 24 characters"
+msgstr "La URL no puede exceder los 24 caracteres"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:32
+msgid "URL must be at least 3 characters long"
+msgstr "La URL debe tener al menos 3 caracteres"
+
+#: src/views/members/index.tsx:172
+msgid "User"
+msgstr "Usuario"
+
+#: src/views/settings/index.tsx:232
+msgid "View and manage your API keys."
+msgstr "Ver y gestionar tus claves API."
+
+#: src/views/settings/index.tsx:171
+msgid "View and manage your billing and subscription."
+msgstr "Ver y gestionar tu facturación y suscripción."
+
+#: src/views/home/components/Pricing.tsx:67
+msgid "View docs"
+msgstr "Ver documentación"
+
+#: src/views/home/components/Features.tsx:147
+msgid "View our roadmap."
+msgstr "Ver nuestra hoja de ruta."
+
+#: src/views/board/components/VisibilityButton.tsx:91
+msgid "Visibility"
+msgstr "Visibilidad"
+
+#: src/views/home/components/Faqs.tsx:94
+msgid "We are using the <0>AGPL-3.0 license0>."
+msgstr "Estamos usando la <0>licencia AGPL-3.00>."
+
+#: src/views/home/components/Features.tsx:145
+msgid "We're just getting started. "
+msgstr "Apenas estamos comenzando. "
+
+#: src/views/auth/login/index.tsx:41
+msgid "Welcome back"
+msgstr "Bienvenido de nuevo"
+
+#: src/views/home/components/Faqs.tsx:91
+msgid "What license are you using?"
+msgstr "¿Qué licencia están usando?"
+
+#: src/views/home/components/Faqs.tsx:30
+msgid "What's the difference between Kan and Trello?"
+msgstr "¿Cuál es la diferencia entre Kan y Trello?"
+
+#: src/views/home/components/Faqs.tsx:25
+msgid "When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \"Jira Lite\". This project is our attempt to recapture the original magic of Trello's simplicity, in open source."
+msgstr "Cuando Trello se lanzó en 2011, impresionó a todos con su simplicidad cuidadosamente diseñada, pero con el tiempo (y la atlassificación) perdió su magia y se convirtió en algo más cercano a \"Jira Lite\". Este proyecto es nuestro intento de recuperar la magia original de la simplicidad de Trello, en código abierto."
+
+#: src/views/home/components/Faqs.tsx:22
+msgid "Why make an open source Trello?"
+msgstr "¿Por qué crear un Trello de código abierto?"
+
+#: src/views/board/index.tsx:239
+msgid "Workspace"
+msgstr "Espacio de trabajo"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:26
+msgid "Workspace deleted"
+msgstr "Espacio de trabajo eliminado"
+
+#: src/views/settings/index.tsx:147
+msgid "Workspace description"
+msgstr "Descripción del espacio de trabajo"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:28
+msgid "Workspace description cannot exceed 280 characters"
+msgstr "La descripción del espacio de trabajo no puede exceder los 280 caracteres"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:25
+msgid "Workspace description must be at least 3 characters long"
+msgstr "La descripción del espacio de trabajo debe tener al menos 3 caracteres"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:48
+msgid "Workspace description updated"
+msgstr "Descripción del espacio de trabajo actualizada"
+
+#: src/views/home/components/Pricing.tsx:54
+#: src/views/home/components/Features.tsx:83
+msgid "Workspace members"
+msgstr "Miembros del espacio de trabajo"
+
+#: src/views/settings/index.tsx:130
+#: src/components/NewWorkspaceForm.tsx:78
+msgid "Workspace name"
+msgstr "Nombre del espacio de trabajo"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:15
+msgid "Workspace name cannot exceed 24 characters"
+msgstr "El nombre del espacio de trabajo no puede exceder los 24 caracteres"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:14
+msgid "Workspace name must be at least 3 characters long"
+msgstr "El nombre del espacio de trabajo debe tener al menos 3 caracteres"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:43
+msgid "Workspace name updated"
+msgstr "Nombre del espacio de trabajo actualizado"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:60
+msgid "Workspace slug updated"
+msgstr "Slug del espacio de trabajo actualizado"
+
+#: src/views/settings/index.tsx:138
+msgid "Workspace URL"
+msgstr "URL del espacio de trabajo"
+
+#: src/views/home/components/Pricing.tsx:19
+msgid "Yearly"
+msgstr "Anual"
+
+#: src/views/home/components/Faqs.tsx:86
+msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
+msgstr "Sí, ofrecemos un plan gratuito para siempre para uso individual. Sin restricciones, sin muros de pago, sin límites."
+
+#: src/views/home/components/Faqs.tsx:67
+msgid "You can get a custom workspace URL, like <0>kan.bn/kan0>, by going into your <1>workspace settings1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
+msgstr "Puedes obtener una URL personalizada para tu espacio de trabajo, como <0>kan.bn/kan0>, yendo a la <1>configuración de tu espacio de trabajo1> y comprando una suscripción pro. ¡Todas las suscripciones ayudan a financiar el desarrollo del proyecto!"
+
+#: src/views/home/components/Faqs.tsx:111
+msgid "You can invite team members by clicking the \"Invite\" button in the top right corner of the <0>members page0> and entering their email address. They will receive an email with a link to join the workspace."
+msgstr "Puedes invitar a miembros del equipo haciendo clic en el botón \"Invitar\" en la esquina superior derecha de la <0>página de miembros0> e introduciendo su dirección de correo electrónico. Recibirán un email con un enlace para unirse al espacio de trabajo."
+
+#: src/views/home/components/Faqs.tsx:127
+msgid "You can self-host by following the instructions in our <0>repo0>."
+msgstr "Puedes autoalojar siguiendo las instrucciones en nuestro <0>repositorio0>."
+
+#: src/components/AuthForm.tsx:206
+msgid "You have been logged in successfully."
+msgstr "Has iniciado sesión correctamente."
+
+#: src/components/AuthForm.tsx:189
+msgid "You have been signed up successfully."
+msgstr "Te has registrado correctamente."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
+msgid "Your account has been deleted."
+msgstr "Tu cuenta ha sido eliminada."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:192
+msgid "Your boards have been imported."
+msgstr "Tus tableros han sido importados."
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:42
+msgid "Your display name has been updated."
+msgstr "Tu nombre de visualización ha sido actualizado."
+
+#: src/views/settings/components/Avatar.tsx:25
+msgid "Your profile image has been updated."
+msgstr "Tu imagen de perfil ha sido actualizada."
+
+#: src/views/settings/index.tsx:70
+msgid "Your Trello account has been disconnected."
+msgstr "Tu cuenta de Trello ha sido desconectada."
+
+#: src/views/settings/index.tsx:214
+msgid "Your Trello account is connected."
+msgstr "Tu cuenta de Trello está conectada."
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:49
+msgid "Your workspace description has been updated."
+msgstr "La descripción de tu espacio de trabajo ha sido actualizada."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:27
+msgid "Your workspace has been deleted."
+msgstr "Tu espacio de trabajo ha sido eliminado."
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:44
+msgid "Your workspace name has been updated."
+msgstr "El nombre de tu espacio de trabajo ha sido actualizado."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:61
+msgid "Your workspace slug has been updated."
+msgstr "El slug de tu espacio de trabajo ha sido actualizado."
diff --git a/apps/web/src/locales/es/messages.ts b/apps/web/src/locales/es/messages.ts
new file mode 100644
index 00000000..da049753
--- /dev/null
+++ b/apps/web/src/locales/es/messages.ts
@@ -0,0 +1 @@
+/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"X0N0PA\":[\" (editado)\"],\"lGjicL\":[\", o consulta nuestra\"],\"JArWcF\":[[\"0\"],\" | \",[\"1\"]],\"CJukzS\":[[\"0\"],\" etiquetas\"],\"0xWkkH\":[[\"boardCount\",\"plural\",{\"one\":[\"Importar tablero (1)\"],\"other\":[\"Importar tableros (\",[\"boardCount\"],\")\"]}]],\"qrT8WB\":[\"#1 Hacker News\"],\"zMlxCA\":[\"1 usuario\"],\"d7XqZJ\":[\"A powerful, flexible kanban app that helps you organise work,\\n track progress, and deliver results—all in one place.\"],\"/rn4RE\":[\"Una aplicación kanban potente y flexible que te ayuda a organizar el trabajo, seguir el progreso y entregar resultados, todo en un solo lugar.\"],\"TKFUnX\":[\"Cuenta eliminada\"],\"XJOV1Y\":[\"Actividad\"],\"tMYIu7\":[\"Registros de actividad\"],\"B3xxao\":[\"Añadir una tarjeta\"],\"1ZVGyT\":[\"Añadir un comentario...\"],\"/Blkmk\":[\"Añadir descripción... (escribe '/' para abrir comandos)\"],\"lyqwgn\":[\"Añadir etiqueta\"],\"PCIlOO\":[\"Añadir miembro\"],\"T21jY/\":[\"añadió una etiqueta a la tarjeta\"],\"rs7L54\":[\"añadió un miembro a la tarjeta\"],\"SKqXzW\":[\"añadió la etiqueta <0>\",[\"label\"],\"0>\"],\"3pIq39\":[\"Roles de administrador\"],\"lSNkXg\":[\"¡Todos los puestos son gratuitos durante la beta hasta el 1 de septiembre!\"],\"UQbwrz\":[\"Todos los sistemas operativos\"],\"WnEwDO\":[\"¿Ya tienes una cuenta? <0><1>Iniciar sesión1>0>\"],\"WmPhYW\":[\"Ocurrió un error al desconectar tu cuenta de Trello.\"],\"5h8ooz\":[\"Claves API\"],\"j2+d/o\":[\"Referencia de API\"],\"lo8xBK\":[\"¿Estás seguro de que quieres eliminar \",[\"entityLabel\"],\"?\"],\"BhDZlc\":[\"¿Estás seguro de que quieres eliminar el espacio de trabajo \",[\"0\"],\"?\"],\"ZT4Khw\":[\"¿Estás seguro de que quieres eliminar esta tarjeta?\"],\"PRjvDT\":[\"¿Estás seguro de que quieres eliminar este comentario?\"],\"74F7N/\":[\"¿Estás seguro de que quieres eliminar tu cuenta?\"],\"EEQaqX\":[\"asignó a <0>\",[\"memberName\"],\"0> a la tarjeta\"],\"R+w/Va\":[\"Facturación\"],\"9wdpwp\":[\"Portal de facturación\"],\"QD8opX\":[\"Tablero\"],\"jwI32v\":[\"Tablero no encontrado\"],\"Xid3K6\":[\"La URL del tablero solo puede contener letras, números y guiones\"],\"gv5kbo\":[\"La URL del tablero no puede exceder los 60 caracteres\"],\"8+BY11\":[\"URL del tablero copiada al portapapeles\"],\"TmvrjU\":[\"La URL del tablero debe tener al menos 3 caracteres\"],\"qzdST2\":[\"Visibilidad del tablero\"],\"PTzsxH\":[\"Visibilidad del tablero actualizada\"],\"8TveY+\":[\"Tableros\"],\"seaklU\":[\"Tableros | \",[\"0\"]],\"dEgA5A\":[\"Cancelar\"],\"fEY2vP\":[\"Tarjeta no encontrada\"],\"ZH7TVS\":[\"Título de la tarjeta\"],\"Bosey8\":[\"Cambiar el idioma de la aplicación.\"],\"5IXWmO\":[\"Revisa tu bandeja de entrada\"],\"u8JHrO\":[\"Borrar filtros\"],\"RRn9jf\":[\"Haz clic en el enlace que hemos enviado a \",[\"magicLinkRecipient\"],\" para iniciar sesión.\"],\"EvArWh\":[\"Colabora sin problemas con tu equipo.\"],\"AUYALh\":[\"Próximamente\"],\"VbyRUy\":[\"Comentarios\"],\"7i8j3G\":[\"Empresa\"],\"cAgBMh\":[\"Control y propiedad completos:\"],\"8ZoISG\":[\"Confirmar cambio de URL\"],\"nk7caK\":[\"Conectar Trello\"],\"sDLCvT\":[\"Conecta tus herramientas favoritas para agilizar tu flujo de trabajo.\"],\"5eZwRW\":[\"Conecta tu cuenta de Trello para importar tableros.\"],\"jfC/xh\":[\"Contacto\"],\"Bhgd0l\":[\"Contáctanos\"],\"J2Wbjt\":[\"Continuar con \"],\"gkzAEM\":[\"Continuar con \",[\"0\"]],\"va/3u1\":[\"Controla quién puede ver y editar tus tableros.\"],\"vgdzLf\":[\"Crear otro\"],\"uXGLuq\":[\"Create API key\"],\"Pa9/o1\":[\"Create API keys to access the Kan API.\"],\"9QmxLI\":[\"Crear tablero\"],\"dsLT3m\":[\"Crear tarjeta\"],\"QtACvI\":[\"Crear etiqueta\"],\"XTKtey\":[\"Crear lista\"],\"poDo/D\":[\"Crear nuevo tablero\"],\"okpxfB\":[\"Crear nueva clave\"],\"0+0/3e\":[\"Crear nueva etiqueta\"],\"aWlSc/\":[\"Crear nueva lista\"],\"FdtSNC\":[\"Crear espacio de trabajo\"],\"f8lDFq\":[\"creó la tarjeta\"],\"GAD3Dx\":[\"Dominio personalizado\"],\"91W07W\":[\"Las URL personalizadas son una función premium. Serás dirigido a actualizar tu cuenta.\"],\"pvnfJD\":[\"Oscuro\"],\"cnGeoo\":[\"Eliminar\"],\"ZDGm40\":[\"Eliminar cuenta\"],\"tmpW+w\":[\"Eliminar tablero\"],\"nabda1\":[\"Eliminar tarjeta\"],\"njJFtc\":[\"Eliminar comentario\"],\"lYT7pQ\":[\"Eliminar lista\"],\"kYu0eF\":[\"Eliminar espacio de trabajo\"],\"YBBifR\":[\"Desconectar Trello\"],\"1sRmLC\":[\"Discute y colabora en las tarjetas.\"],\"pfa8F0\":[\"Nombre visible\"],\"MlyjJu\":[\"El nombre visible no puede exceder los 280 caracteres\"],\"KFJgmZ\":[\"El nombre visible debe tener al menos 3 caracteres\"],\"x8GeCD\":[\"Nombre visible actualizado\"],\"evj0lK\":[\"¿Ofrecen un plan gratuito?\"],\"JyXBgS\":[\"documentos\"],\"TbjyhA\":[\"Documentos\"],\"TvY/XA\":[\"Documentación\"],\"vUr5JT\":[\"¿No tienes una cuenta? <0><1>Regístrate1>0>\"],\"tIdipJ\":[\"Editar URL del tablero\"],\"rF8SEQ\":[\"Editar comentario\"],\"dgr4Kq\":[\"Editar etiqueta\"],\"b/LfJo\":[\"correo electrónico\"],\"O3oNi5\":[\"Correo electrónico\"],\"xRPn3U\":[\"Introduce tu dirección de correo electrónico\"],\"n9V+ps\":[\"Introduce tu nombre\"],\"NgaR6B\":[\"Introduce tu contraseña\"],\"bqAQaT\":[\"Error al eliminar la cuenta\"],\"9s9O5h\":[\"Error al eliminar el espacio de trabajo\"],\"lKAvEd\":[\"Error al desconectar Trello\"],\"sVBn4K\":[\"Error al actualizar el nombre visible\"],\"4ix5kl\":[\"Error al actualizar la imagen de perfil\"],\"CkVV1t\":[\"Error al actualizar la descripción del espacio de trabajo\"],\"LoUCpj\":[\"Error al actualizar el nombre del espacio de trabajo\"],\"x0kMO/\":[\"Error al actualizar la URL del espacio de trabajo\"],\"CYWHT+\":[\"Error al subir la imagen de perfil\"],\"8iP0S8\":[\"Todo lo que hay en el plan gratuito, más:\"],\"ANyn0x\":[\"Todo lo que necesitas, gratis para siempre. Tableros ilimitados, listas ilimitadas, tarjetas ilimitadas. Actualiza en cualquier momento.\"],\"YtUfwW\":[\"Error al iniciar sesión con \",[\"0\"],\". Por favor, inténtalo de nuevo.\"],\"aJ4pMe\":[\"Preguntas frecuentes\"],\"PpZkda\":[\"Características\"],\"YirHq7\":[\"Comentarios\"],\"2roTVj\":[\"Comentarios enviados\"],\"o7J4JM\":[\"Filtrar\"],\"iFxrHK\":[\"Encuentra respuestas a preguntas frecuentes sobre el proyecto. ¿No encuentras lo que buscas? No dudes en <0>contactarnos0>.\"],\"aj40Mw\":[\"Para la sostenibilidad a largo plazo, reconocemos que todos los buenos proyectos de código abierto necesitan una fuente de ingresos. La nuestra proviene de la oferta de pago en la nube para espacios de trabajo con múltiples usuarios (gratuita durante la beta) y para slugs personalizados de espacios de trabajo. No hay obligación de usarla, y puedes autoalojar el software en tu propia infraestructura sin costo alguno.\"],\"2POOFK\":[\"Gratis\"],\"gpfJ3v\":[\"Gratis, para siempre\"],\"ZDIydz\":[\"Comenzar\"],\"c3b0B0\":[\"Comenzar\"],\"YQqv2e\":[\"Comienza creando un nuevo tablero\"],\"zC8Whw\":[\"Comienza creando una nueva lista\"],\"oW13KZ\":[\"Comienza gratis hoy mismo\"],\"+OhFss\":[\"Comienza gratis, sin límites de uso. Para colaboración, actualiza a un plan que se ajuste al tamaño de tu equipo.\"],\"rD6UIt\":[\"Comenzar en la nube\"],\"7hktsm\":[\"Primeros pasos\"],\"RkXlPZ\":[\"GitHub\"],\"UveK6V\":[\"Ir a la aplicación\"],\"LrcnbT\":[\"Aloja Kan en tu propia infraestructura. Ideal para organizaciones que necesitan control completo sobre sus datos.\"],\"WI4eGo\":[\"¿Cómo obtengo una URL personalizada?\"],\"yV7o5I\":[\"¿Cómo importo mis tableros de Trello?\"],\"nol/Fb\":[\"¿Cómo invito a miembros del equipo?\"],\"KuSt9W\":[\"¿Cómo puedo autoalojar?\"],\"UeDFpo\":[\"¿Cómo se financia el proyecto?\"],\"2liqDZ\":[\"Reconozco que todos los datos de mi cuenta serán eliminados permanentemente y quiero continuar.\"],\"2Py5S/\":[\"Reconozco que todos los datos del espacio de trabajo serán eliminados permanentemente y quiero continuar.\"],\"F/vB2g\":[\"Ideas para mejorar esta página...\"],\"l3s5ri\":[\"Importar\"],\"2MPcep\":[\"Importación completada\"],\"BEVzjL\":[\"Importación fallida\"],\"rRM7r0\":[\"Importa tus tableros de Trello y comienza a trabajar de inmediato.\"],\"xMn+V9\":[\"Importando desde Trello\"],\"g2xBxu\":[\"Importar tus tableros de Trello a Kan es fácil. Puedes seguir nuestra guía paso a paso <0>aquí0>.\"],\"6mbe4b\":[\"Individuos\"],\"nbfdhU\":[\"Integraciones\"],\"MFKlMB\":[\"Invitar\"],\"+djOzj\":[\"Invitar miembro\"],\"aWDhU5\":[\"Kanban es mejor con un equipo. Perfecto para equipos pequeños y en crecimiento que buscan colaborar.\"],\"Xjj/kS\":[\"Kanban reinventado\"],\"JbXXUW\":[\"Ten en cuenta que esta acción es irreversible.\"],\"h8DugX\":[\"Etiquetas\"],\"+nvZ6j\":[\"Etiquetas y filtros\"],\"vXIe7J\":[\"Idioma\"],\"vifyyw\":[\"Legal\"],\"iQmbPb\":[\"Licencia\"],\"1njn7W\":[\"Claro\"],\"edWbV6\":[\"Enlace copiado\"],\"2BBAbc\":[\"Lista\"],\"zQX5Dj\":[\"Nombre de la lista\"],\"N/bcWA\":[\"Iniciar sesión | kan.bn\"],\"nOhz3x\":[\"Cerrar sesión\"],\"JnWJXY\":[\"enlace mágico\"],\"wlQNTg\":[\"Miembros\"],\"9u5BOr\":[\"Miembros | \",[\"0\"]],\"+8Nek/\":[\"Mensual\"],\"EM/caO\":[\"movió la tarjeta de <0>\",[\"fromList\"],\"0> a<1>\",[\"toList\"],\"1>\"],\"T7LJic\":[\"movió la tarjeta a otra lista\"],\"6YtxFj\":[\"Nombre\"],\"HBI6nY\":[\"¿Necesitas ayuda?\"],\"isRobC\":[\"Nuevo\"],\"zDw80P\":[\"Nuevo tablero\"],\"pnrmSP\":[\"Nueva tarjeta\"],\"WYwN1G\":[\"Nueva importación\"],\"n1GRql\":[\"Nueva etiqueta\"],\"Sb2gYF\":[\"Nueva lista\"],\"curoK5\":[\"Nuevo espacio de trabajo\"],\"DhLN1b\":[\"Sin tableros\"],\"2Bu8xj\":[\"No se encontraron tableros\"],\"OpNhRn\":[\"No se requiere tarjeta de crédito\"],\"hXMFoN\":[\"Sin listas\"],\"usVytm\":[\"Una vez que elimines tu cuenta, no hay vuelta atrás. Esta acción no se puede deshacer.\"],\"dmKdk0\":[\"Una vez que elimines tu espacio de trabajo, no hay vuelta atrás. Esta acción no se puede deshacer.\"],\"BzEFor\":[\"o\"],\"ZqDqbi\":[\"Organiza y encuentra tarjetas rápidamente con potentes herramientas de filtrado.\"],\"SPLN9O\":[\"Sé dueño de tus datos\"],\"UbYdrA\":[\"Frecuencia de pago\"],\"UbRKMZ\":[\"Pendiente\"],\"oVBq1w\":[\"por usuario/mes\"],\"OtjenF\":[\"Por favor, introduce una dirección de correo electrónico válida\"],\"CJ3zUq\":[\"Por favor, introduce un nombre válido\"],\"7b2yuC\":[\"Por favor, introduce una contraseña válida\"],\"wPZBpR\":[\"Por favor selecciona un archivo para subir.\"],\"tyHiOa\":[\"Por favor, inténtalo de nuevo más tarde o contacta con atención al cliente.\"],\"aHCEmh\":[\"Precios\"],\"ESClHO\":[\"Soporte prioritario por email\"],\"ScJ9fj\":[\"Política de privacidad\"],\"zwBp5t\":[\"Privado\"],\"0rPv1T\":[\"Imagen de perfil actualizada\"],\"4XF0BB\":[\"Foto de perfil\"],\"7d1a0d\":[\"Público\"],\"1H5u1m\":[\"¿Preguntas?\"],\"t/YqKh\":[\"Eliminar\"],\"99VIgC\":[\"Eliminar miembro\"],\"kQwvU8\":[\"eliminó una etiqueta de la tarjeta\"],\"uck1tz\":[\"eliminó un miembro de la tarjeta\"],\"zdMPUq\":[\"eliminó la etiqueta <0>\",[\"label\"],\"0>\"],\"s+MGs7\":[\"Recursos\"],\"GXsAby\":[\"Revocar\"],\"/gaSVU\":[\"Hoja de ruta\"],\"GDvlUT\":[\"Rol\"],\"vAR/I8\":[\"Ejecuta en tu propia infraestructura\"],\"tfDRzk\":[\"Guardar\"],\"MdwUGG\":[\"Ahorra tiempo con plantillas de tableros reutilizables.\"],\"wgNoIs\":[\"Seleccionar todo\"],\"rYUZIe\":[\"Seleccionar origen\"],\"ppaRWv\":[\"Autoalojamiento\"],\"l2PIAy\":[\"Autoalojamiento con Github\"],\"VXk54Y\":[\"se autoasignó la tarjeta\"],\"JlFcis\":[\"Enviar\"],\"Tz0i8g\":[\"Configuración\"],\"5wo3jF\":[\"Configuración | \",[\"0\"]],\"5lWFkC\":[\"Iniciar sesión\"],\"sUZo7y\":[\"Registrarse | kan.bn\"],\"WRkpB1\":[\"Registro deshabilitado\"],\"s6iE/c\":[\"El registro está actualmente deshabilitado. Por favor, inténtalo de nuevo más tarde.\"],\"6FDocz\":[\"Registrarse con \"],\"m2nk0i\":[\"Precios simples\"],\"sBhOFG\":[\"Gestión de tareas visual y sencilla que simplemente funciona. Arrastra y suelta tarjetas, colabora con tu equipo y logra más.\"],\"R6pB8R\":[\"Estrella en Github\"],\"zzDlyQ\":[\"Éxito\"],\"wruKPE\":[\"Apoya el desarrollo del proyecto\"],\"D+NlUC\":[\"Sistema\"],\"CAL6E9\":[\"Equipos\"],\"iTylMl\":[\"Plantillas\"],\"UCLeG0\":[\"Términos de servicio\"],\"nhMhRr\":[\"¡Gracias por tus comentarios!\"],\"lkz85l\":[\"La principal diferencia entre Kan y Trello es que Kan es de código abierto, permitiendo a cualquiera ver, modificar y contribuir a nuestro código. Nuestra oferta en la nube también ofrece funciones sin restricciones para uso individual, mientras que Trello bloquea características básicas como el número de tableros que puedes crear detrás de un muro de pago.\"],\"gUX7b+\":[\"La alternativa de código abierto <0/> a Trello\"],\"fQCrjt\":[\"La visibilidad de tu tablero ha sido establecida a \",[\"0\"],\".\"],\"FEr96N\":[\"Tema\"],\"Yf9FAx\":[\"No podrán acceder a este espacio de trabajo.\"],\"3LDCpD\":[\"Esta acción no se puede deshacer.\"],\"wY+6Ye\":[\"Esta URL de tablero ya ha sido utilizada\"],\"MeO/vH\":[\"Esto resultará en la eliminación permanente de todos los datos asociados con este espacio de trabajo.\"],\"mwBdZ2\":[\"Esto resultará en la eliminación permanente de todos los datos asociados con tu cuenta.\"],\"kp6L3T\":[\"Este nombre de usuario del espacio de trabajo ya ha sido tomado\"],\"4gAX8s\":[\"Alternar menú\"],\"eEQyz+\":[\"Rastrea todos los cambios en las tarjetas con un historial de actividad detallado.\"],\"zto8aj\":[\"Trello desconectado\"],\"kxEs5t\":[\"Importaciones de Trello\"],\"T7DJ2k\":[\"No se puede añadir el comentario\"],\"zl1b97\":[\"No se puede crear la tarjeta\"],\"TztLaN\":[\"No se puede crear la lista\"],\"MxQXhL\":[\"No se puede crear el espacio de trabajo\"],\"Z6r9z1\":[\"No se puede eliminar la tarjeta\"],\"2QGEbi\":[\"No se puede eliminar el comentario\"],\"8yFGGF\":[\"No se puede eliminar al miembro\"],\"A8jqN7\":[\"No se pudieron enviar los comentarios\"],\"XpcjLO\":[\"No se puede actualizar la URL del tablero\"],\"Wy6pcF\":[\"No se puede actualizar la visibilidad del tablero\"],\"o9WLwO\":[\"No se puede actualizar la tarjeta\"],\"fYVH36\":[\"No se puede actualizar el comentario\"],\"delOXn\":[\"No se pueden actualizar las etiquetas\"],\"I0gAKM\":[\"No se puede actualizar la lista\"],\"5P4rhH\":[\"No se pueden actualizar los miembros\"],\"nxb+xc\":[\"desasignó a <0>\",[\"memberName\"],\"0> de la tarjeta\"],\"hAMddS\":[\"se desasignó de la tarjeta\"],\"M9p3Vw\":[\"Registro de actividad ilimitado\"],\"1wCGT0\":[\"Tableros ilimitados\"],\"ZU5IYI\":[\"Tableros ilimitados, listas ilimitadas, tarjetas ilimitadas. No se requiere tarjeta de crédito.\"],\"Zz1qkk\":[\"Tarjetas ilimitadas\"],\"fziA2d\":[\"Comentarios ilimitados\"],\"7Ufoyg\":[\"Listas ilimitadas\"],\"EkH9pt\":[\"Actualizar\"],\"7EhE4k\":[\"Actualizar etiqueta\"],\"tGwwnq\":[\"actualizó la descripción\"],\"V3MPSQ\":[\"actualizó el título\"],\"xJO7ca\":[\"actualizó el título a <0>\",[\"toTitle\"],\"0>\"],\"kwkhPe\":[\"Actualizar\"],\"MI5OBT\":[\"La URL solo puede contener letras, números y guiones\"],\"vMCCIc\":[\"La URL no puede exceder los 24 caracteres\"],\"SWEskc\":[\"La URL debe tener al menos 3 caracteres\"],\"7PzzBU\":[\"Usuario\"],\"FmfJjN\":[\"Ver y gestionar tus claves API.\"],\"t2nDzl\":[\"Ver y gestionar tu facturación y suscripción.\"],\"aiHZVP\":[\"Ver documentación\"],\"fSf2ee\":[\"Ver nuestra hoja de ruta.\"],\"2q/Q7x\":[\"Visibilidad\"],\"BJbLe4\":[\"Estamos usando la <0>licencia AGPL-3.00>.\"],\"9y1RcT\":[\"Apenas estamos comenzando. \"],\"9eF5oV\":[\"Bienvenido de nuevo\"],\"xEbBrW\":[\"¿Qué licencia están usando?\"],\"H5G+qG\":[\"¿Cuál es la diferencia entre Kan y Trello?\"],\"oBndex\":[\"Cuando Trello se lanzó en 2011, impresionó a todos con su simplicidad cuidadosamente diseñada, pero con el tiempo (y la atlassificación) perdió su magia y se convirtió en algo más cercano a \\\"Jira Lite\\\". Este proyecto es nuestro intento de recuperar la magia original de la simplicidad de Trello, en código abierto.\"],\"/DGOJs\":[\"When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \\\"Jira Lite\\\". This project is our attempt to recapture the original magic of Trello’s simplicity, in open source.\"],\"SFnH1j\":[\"¿Por qué crear un Trello de código abierto?\"],\"pmUArF\":[\"Espacio de trabajo\"],\"UlhdTP\":[\"Espacio de trabajo eliminado\"],\"chyf4J\":[\"Descripción del espacio de trabajo\"],\"Ax/hYa\":[\"La descripción del espacio de trabajo no puede exceder los 280 caracteres\"],\"XDRXbZ\":[\"La descripción del espacio de trabajo debe tener al menos 3 caracteres\"],\"F4PLG4\":[\"Descripción del espacio de trabajo actualizada\"],\"wtxjAY\":[\"Miembros del espacio de trabajo\"],\"CozWO1\":[\"Nombre del espacio de trabajo\"],\"wIkTTk\":[\"El nombre del espacio de trabajo no puede exceder los 24 caracteres\"],\"jZBHkN\":[\"El nombre del espacio de trabajo debe tener al menos 3 caracteres\"],\"OIA0ad\":[\"Nombre del espacio de trabajo actualizado\"],\"MN6YzG\":[\"Slug del espacio de trabajo actualizado\"],\"ASjvm9\":[\"URL del espacio de trabajo\"],\"zkWmBh\":[\"Anual\"],\"eZCGbT\":[\"Sí, ofrecemos un plan gratuito para siempre para uso individual. Sin restricciones, sin muros de pago, sin límites.\"],\"aelko+\":[\"Puedes obtener una URL personalizada para tu espacio de trabajo, como <0>kan.bn/kan0>, yendo a la <1>configuración de tu espacio de trabajo1> y comprando una suscripción pro. ¡Todas las suscripciones ayudan a financiar el desarrollo del proyecto!\"],\"kSxwQL\":[\"Puedes invitar a miembros del equipo haciendo clic en el botón \\\"Invitar\\\" en la esquina superior derecha de la <0>página de miembros0> e introduciendo su dirección de correo electrónico. Recibirán un email con un enlace para unirse al espacio de trabajo.\"],\"vAj6xG\":[\"Puedes autoalojar siguiendo las instrucciones en nuestro <0>repositorio0>.\"],\"p/hk9N\":[\"Has iniciado sesión correctamente.\"],\"mchgzf\":[\"Te has registrado correctamente.\"],\"GoDLB9\":[\"Tu cuenta ha sido eliminada.\"],\"evg7+A\":[\"Tus tableros han sido importados.\"],\"LqWW5F\":[\"Tu nombre de visualización ha sido actualizado.\"],\"/tOdd2\":[\"Tu imagen de perfil ha sido actualizada.\"],\"CJWDTP\":[\"Tu cuenta de Trello ha sido desconectada.\"],\"WRsbHO\":[\"Tu cuenta de Trello está conectada.\"],\"GnSSGm\":[\"La descripción de tu espacio de trabajo ha sido actualizada.\"],\"qkjvgj\":[\"Tu espacio de trabajo ha sido eliminado.\"],\"2h4PVB\":[\"El nombre de tu espacio de trabajo ha sido actualizado.\"],\"Hg1qE9\":[\"El slug de tu espacio de trabajo ha sido actualizado.\"]}")as Messages;
\ No newline at end of file
diff --git a/apps/web/src/locales/fr/messages.po b/apps/web/src/locales/fr/messages.po
new file mode 100644
index 00000000..275a0a0d
--- /dev/null
+++ b/apps/web/src/locales/fr/messages.po
@@ -0,0 +1,1443 @@
+msgid ""
+msgstr ""
+"POT-Creation-Date: 2025-06-23 23:21+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: @lingui/cli\n"
+"Language: fr\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Plural-Forms: \n"
+
+#: src/views/card/components/Comment.tsx:121
+msgid " (edited)"
+msgstr " (modifié)"
+
+#: src/components/FeedbackButton.tsx:123
+msgid ", or see our"
+msgstr ", ou consultez notre"
+
+#. placeholder {0}: card?.title ?? "Card"
+#. placeholder {1}: board?.name ?? "Board"
+#: src/views/card/index.tsx:148
+msgid "{0} | {1}"
+msgstr "{0} | {1}"
+
+#. placeholder {0}: labelPublicIds.length
+#: src/views/board/components/NewCardForm.tsx:365
+msgid "{0} labels"
+msgstr "{0} étiquettes"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:299
+msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
+msgstr "{boardCount, plural, one {Importer le tableau (1)} other {Importer les tableaux ({boardCount})}}"
+
+#: src/views/home/index.tsx:51
+msgid "#1 Hacker News"
+msgstr "#1 Hacker News"
+
+#: src/views/home/components/Pricing.tsx:36
+msgid "1 user"
+msgstr "1 utilisateur"
+
+#: src/views/home/index.tsx:71
+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/views/settings/components/DeleteAccountConfirmation.tsx:27
+msgid "Account deleted"
+msgstr "Compte supprimé"
+
+#: src/views/public/board/CardModal.tsx:104
+#: src/views/card/index.tsx:215
+msgid "Activity"
+msgstr "Activité"
+
+#: src/views/home/components/Features.tsx:103
+msgid "Activity logs"
+msgstr "Journaux d'activité"
+
+#: src/views/board/components/List.tsx:110
+msgid "Add a card"
+msgstr "Ajouter une carte"
+
+#: src/views/card/components/NewCommentForm.tsx:57
+#: src/views/card/components/Comment.tsx:144
+msgid "Add a comment..."
+msgstr "Ajouter un commentaire..."
+
+#: src/components/Editor.tsx:302
+msgid "Add description... (type '/' to open commands)"
+msgstr "Ajouter une description... (tapez '/' pour ouvrir les commandes)"
+
+#: src/views/card/components/LabelSelector.tsx:110
+#: src/views/card/components/LabelSelector.tsx:118
+msgid "Add label"
+msgstr "Ajouter une étiquette"
+
+#: src/views/members/components/InviteMemberForm.tsx:50
+#: src/views/card/components/MemberSelector.tsx:130
+msgid "Add member"
+msgstr "Ajouter un membre"
+
+#: src/views/card/components/ActivityList.tsx:56
+msgid "added a label to the card"
+msgstr "a ajouté une étiquette à la carte"
+
+#: src/views/card/components/ActivityList.tsx:58
+msgid "added a member to the card"
+msgstr "a ajouté un membre à la carte"
+
+#: src/views/card/components/ActivityList.tsx:110
+msgid "added label <0>{label}0>"
+msgstr "a ajouté l'étiquette <0>{label}0>"
+
+#: src/views/home/components/Pricing.tsx:55
+msgid "Admin roles"
+msgstr "Rôles d'administrateur"
+
+#: src/views/home/components/Pricing.tsx:97
+msgid "All seats are free during the beta until Sept 1st!"
+msgstr "Tous les sièges sont gratuits pendant la bêta jusqu'au 1er sept. !"
+
+#: src/views/home/components/Footer.tsx:18
+msgid "All systems operational"
+msgstr "Tous les systèmes opérationnels"
+
+#: src/views/auth/signup/index.tsx:86
+msgid "Already have an account? <0><1>Sign in1>0>"
+msgstr "Vous avez déjà un compte ? <0><1>Connectez-vous1>0>"
+
+#: src/views/settings/index.tsx:77
+msgid "An error occurred while disconnecting your Trello account."
+msgstr "Une erreur s'est produite lors de la déconnexion de votre compte Trello."
+
+#: src/views/settings/index.tsx:229
+msgid "API keys"
+msgstr "Clés API"
+
+#: src/views/home/components/Footer.tsx:31
+msgid "API Reference"
+msgstr "Référence API"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:47
+msgid "Are you sure want to remove {entityLabel}?"
+msgstr "Êtes-vous sûr de vouloir supprimer {entityLabel} ?"
+
+#. placeholder {0}: workspace.name
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:62
+msgid "Are you sure you want to delete the workspace {0}?"
+msgstr "Êtes-vous sûr de vouloir supprimer l'espace de travail {0} ?"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:75
+msgid "Are you sure you want to delete this card?"
+msgstr "Êtes-vous sûr de vouloir supprimer cette carte ?"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:65
+msgid "Are you sure you want to delete this comment?"
+msgstr "Êtes-vous sûr de vouloir supprimer ce commentaire ?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:54
+msgid "Are you sure you want to delete your account?"
+msgstr "Êtes-vous sûr de vouloir supprimer votre compte ?"
+
+#: src/views/card/components/ActivityList.tsx:92
+msgid "assigned <0>{memberName}0> to the card"
+msgstr "a assigné <0>{memberName}0> à la carte"
+
+#: src/views/settings/index.tsx:168
+msgid "Billing"
+msgstr "Facturation"
+
+#: src/views/settings/index.tsx:178
+msgid "Billing portal"
+msgstr "Portail de facturation"
+
+#: src/views/board/index.tsx:239
+msgid "Board"
+msgstr "Tableau"
+
+#: src/views/board/index.tsx:265
+msgid "Board not found"
+msgstr "Tableau introuvable"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:45
+msgid "Board URL can only contain letters, numbers, and hyphens"
+msgstr "L'URL du tableau ne peut contenir que des lettres, des chiffres et des traits d'union"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:43
+msgid "Board URL cannot exceed 60 characters"
+msgstr "L'URL du tableau ne peut pas dépasser 60 caractères"
+
+#: src/views/public/board/index.tsx:53
+msgid "Board URL copied to clipboard"
+msgstr "URL du tableau copiée dans le presse-papiers"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:41
+msgid "Board URL must be at least 3 characters long"
+msgstr "L'URL du tableau doit comporter au moins 3 caractères"
+
+#: src/views/home/components/Features.tsx:78
+msgid "Board visibility"
+msgstr "Visibilité du tableau"
+
+#: src/views/board/components/VisibilityButton.tsx:45
+msgid "Board visibility updated"
+msgstr "Visibilité du tableau mise à jour"
+
+#: src/views/boards/index.tsx:25
+#: src/components/SideNavigation.tsx:39
+msgid "Boards"
+msgstr "Tableaux"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/boards/index.tsx:21
+msgid "Boards | {0}"
+msgstr "Tableaux | {0}"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
+#: src/views/settings/components/CustomURLConfirmation.tsx:50
+#: src/views/members/components/DeleteMemberConfirmation.tsx:55
+#: src/views/card/components/DeleteCommentConfirmation.tsx:76
+#: src/views/card/components/DeleteCardConfirmation.tsx:86
+#: src/views/card/components/Comment.tsx:156
+msgid "Cancel"
+msgstr "Annuler"
+
+#: src/views/card/index.tsx:193
+msgid "Card not found"
+msgstr "Carte introuvable"
+
+#: src/views/board/components/NewCardForm.tsx:254
+msgid "Card title"
+msgstr "Titre de la carte"
+
+#: src/views/settings/index.tsx:160
+msgid "Change the language of the app."
+msgstr "Changer la langue de l'application."
+
+#: src/views/auth/signup/index.tsx:67
+#: src/views/auth/login/index.tsx:41
+msgid "Check your inbox"
+msgstr "Vérifiez votre boîte de réception"
+
+#: src/views/board/components/Filters.tsx:155
+msgid "Clear filters"
+msgstr "Effacer les filtres"
+
+#: src/views/auth/signup/index.tsx:72
+#: src/views/auth/login/index.tsx:46
+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/home/components/Features.tsx:84
+msgid "Collaborate seamlessly with your team."
+msgstr "Collaborez en toute fluidité avec votre équipe."
+
+#: src/views/home/components/Features.tsx:66
+msgid "Coming soon"
+msgstr "Bientôt disponible"
+
+#: src/views/home/components/Features.tsx:98
+msgid "Comments"
+msgstr "Commentaires"
+
+#: src/views/home/components/Footer.tsx:94
+msgid "Company"
+msgstr "Entreprise"
+
+#: src/views/home/components/Pricing.tsx:70
+msgid "Complete control and ownership:"
+msgstr "Contrôle et propriété complets :"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:42
+msgid "Confirm URL change"
+msgstr "Confirmer le changement d'URL"
+
+#: src/views/settings/index.tsx:205
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Connect Trello"
+msgstr "Connecter Trello"
+
+#: src/views/home/components/Features.tsx:115
+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:192
+msgid "Connect your Trello account to import boards."
+msgstr "Connectez votre compte Trello pour importer des tableaux."
+
+#: src/views/home/components/Footer.tsx:38
+msgid "Contact"
+msgstr "Contact"
+
+#: src/components/FeedbackButton.tsx:121
+msgid "Contact us"
+msgstr "Contactez-nous"
+
+#: src/components/AuthForm.tsx:334
+msgid "Continue with "
+msgstr "Continuer avec "
+
+#. placeholder {0}: provider.name
+#: src/components/AuthForm.tsx:268
+msgid "Continue with {0}"
+msgstr "Continuer avec {0}"
+
+#: src/views/home/components/Features.tsx:79
+msgid "Control who can view and edit your boards."
+msgstr "Contrôlez qui peut voir et modifier vos tableaux."
+
+#: src/views/board/components/NewListForm.tsx:140
+#: src/views/board/components/NewCardForm.tsx:391
+#: src/components/LabelForm.tsx:212
+msgid "Create another"
+msgstr "Créer un autre"
+
+#: src/views/boards/components/NewBoardForm.tsx:77
+msgid "Create board"
+msgstr "Créer un tableau"
+
+#: src/views/board/components/NewCardForm.tsx:401
+msgid "Create card"
+msgstr "Créer une carte"
+
+#: src/components/LabelForm.tsx:233
+msgid "Create label"
+msgstr "Créer une étiquette"
+
+#: src/views/board/components/NewListForm.tsx:148
+msgid "Create list"
+msgstr "Créer une liste"
+
+#: src/views/boards/components/BoardsList.tsx:42
+msgid "Create new board"
+msgstr "Créer un nouveau tableau"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:54
+msgid "Create new key"
+msgstr "Créer une nouvelle clé"
+
+#: src/views/card/components/LabelSelector.tsx:98
+#: src/views/board/components/NewCardForm.tsx:327
+msgid "Create new label"
+msgstr "Créer une nouvelle étiquette"
+
+#: src/views/board/index.tsx:327
+msgid "Create new list"
+msgstr "Créer une nouvelle liste"
+
+#: src/components/WorkspaceMenu.tsx:85
+#: src/components/NewWorkspaceForm.tsx:91
+msgid "Create workspace"
+msgstr "Créer un espace de travail"
+
+#: src/views/card/components/ActivityList.tsx:52
+msgid "created the card"
+msgstr "a créé la carte"
+
+#: src/views/home/components/Pricing.tsx:74
+msgid "Custom domain"
+msgstr "Domaine personnalisé"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:45
+msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
+msgstr "Les URL personnalisées sont une fonctionnalité premium. Vous serez dirigé vers la mise à niveau de votre compte."
+
+#: src/components/UserMenu.tsx:112
+msgid "Dark"
+msgstr "Sombre"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:82
+#: src/views/card/components/DeleteCardConfirmation.tsx:92
+#: src/components/LabelForm.tsx:226
+msgid "Delete"
+msgstr "Supprimer"
+
+#: src/views/settings/index.tsx:260
+#: src/views/settings/index.tsx:270
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
+msgid "Delete account"
+msgstr "Supprimer le compte"
+
+#: src/views/board/components/BoardDropdown.tsx:20
+msgid "Delete board"
+msgstr "Supprimer le tableau"
+
+#: src/views/card/components/Dropdown.tsx:14
+msgid "Delete card"
+msgstr "Supprimer la carte"
+
+#: src/views/card/components/Comment.tsx:89
+msgid "Delete comment"
+msgstr "Supprimer le commentaire"
+
+#: src/views/board/components/List.tsx:117
+msgid "Delete list"
+msgstr "Supprimer la liste"
+
+#: src/views/settings/index.tsx:242
+#: src/views/settings/index.tsx:253
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
+msgid "Delete workspace"
+msgstr "Supprimer l'espace de travail"
+
+#: src/views/settings/index.tsx:220
+msgid "Disconnect Trello"
+msgstr "Déconnecter Trello"
+
+#: src/views/home/components/Features.tsx:99
+msgid "Discuss and collaborate on cards."
+msgstr "Discutez et collaborez sur les cartes."
+
+#: src/views/settings/index.tsx:123
+msgid "Display name"
+msgstr "Nom d'affichage"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:22
+msgid "Display name cannot exceed 280 characters"
+msgstr "Le nom d'affichage ne peut pas dépasser 280 caractères"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:19
+msgid "Display name must be at least 3 characters long"
+msgstr "Le nom d'affichage doit comporter au moins 3 caractères"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:41
+msgid "Display name updated"
+msgstr "Nom d'affichage mis à jour"
+
+#: src/views/home/components/Faqs.tsx:83
+msgid "Do you offer a free plan?"
+msgstr "Proposez-vous un plan gratuit ?"
+
+#: src/components/FeedbackButton.tsx:130
+msgid "docs"
+msgstr "documentation"
+
+#: src/views/home/components/Header.tsx:16
+msgid "Docs"
+msgstr "Documentation"
+
+#: src/views/home/components/Footer.tsx:77
+msgid "Documentation"
+msgstr "Documentation"
+
+#: src/views/auth/login/index.tsx:61
+msgid "Don't have an account? <0><1>Sign up1>0>"
+msgstr "Vous n'avez pas de compte ? <0><1>Inscrivez-vous1>0>"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:115
+#: src/views/board/components/BoardDropdown.tsx:15
+msgid "Edit board URL"
+msgstr "Modifier l'URL du tableau"
+
+#: src/views/card/components/Comment.tsx:80
+msgid "Edit comment"
+msgstr "Modifier le commentaire"
+
+#: src/components/LabelForm.tsx:118
+msgid "Edit label"
+msgstr "Modifier l'étiquette"
+
+#: src/components/AuthForm.tsx:336
+msgid "email"
+msgstr "e-mail"
+
+#: src/views/members/components/InviteMemberForm.tsx:64
+msgid "Email"
+msgstr "E-mail"
+
+#: src/components/AuthForm.tsx:301
+msgid "Enter your email address"
+msgstr "Saisissez votre adresse e-mail"
+
+#: src/components/AuthForm.tsx:289
+msgid "Enter your name"
+msgstr "Saisissez votre nom"
+
+#: src/components/AuthForm.tsx:314
+msgid "Enter your password"
+msgstr "Saisissez votre mot de passe"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
+msgid "Error deleting account"
+msgstr "Erreur lors de la suppression du compte"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
+msgid "Error deleting workspace"
+msgstr "Erreur lors de la suppression de l'espace de travail"
+
+#: src/views/settings/index.tsx:76
+msgid "Error disconnecting Trello"
+msgstr "Erreur lors de la déconnexion de Trello"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:54
+msgid "Error updating display name"
+msgstr "Erreur lors de la mise à jour du nom d'affichage"
+
+#: src/views/settings/components/Avatar.tsx:37
+msgid "Error updating profile image"
+msgstr "Erreur lors de la mise à jour de l'image de profil"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:61
+msgid "Error updating workspace description"
+msgstr "Erreur lors de la mise à jour de la description de l'espace de travail"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:56
+msgid "Error updating workspace name"
+msgstr "Erreur lors de la mise à jour du nom de l'espace de travail"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:73
+msgid "Error updating workspace URL"
+msgstr "Erreur lors de la mise à jour de l'URL de l'espace de travail"
+
+#: src/views/settings/components/Avatar.tsx:54
+#: src/views/settings/components/Avatar.tsx:95
+msgid "Error uploading profile image"
+msgstr "Erreur lors du téléchargement de l'image de profil"
+
+#: src/views/home/components/Pricing.tsx:52
+msgid "Everything in the free plan, plus:"
+msgstr "Tout ce qui est inclus dans le plan gratuit, plus :"
+
+#: src/views/home/components/Pricing.tsx:33
+msgid "Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time."
+msgstr "Tout ce dont vous avez besoin, gratuit pour toujours. Tableaux illimités, listes illimitées, cartes illimitées. Possibilité de mise à niveau à tout moment."
+
+#. placeholder {0}: provider.at(0)?.toUpperCase() + provider.slice(1)
+#: src/components/AuthForm.tsx:241
+msgid "Failed to login with {0}. Please try again."
+msgstr "Échec de connexion avec {0}. Veuillez réessayer."
+
+#: src/views/home/components/Footer.tsx:51
+#: src/views/home/components/Faqs.tsx:143
+msgid "FAQs"
+msgstr "FAQ"
+
+#: src/views/home/components/Header.tsx:14
+#: src/views/home/components/Footer.tsx:49
+#: src/views/home/components/Features.tsx:125
+msgid "Features"
+msgstr "Fonctionnalités"
+
+#: src/components/FeedbackButton.tsx:78
+msgid "Feedback"
+msgstr "Commentaires"
+
+#: src/components/FeedbackButton.tsx:38
+msgid "Feedback sent"
+msgstr "Commentaires envoyés"
+
+#: src/views/board/components/Filters.tsx:149
+msgid "Filter"
+msgstr "Filtrer"
+
+#: src/views/home/components/Faqs.tsx:150
+msgid "Find answers to common questions about the project. Can't find what you're looking for? Feel free to <0>contact us0>."
+msgstr "Trouvez des réponses aux questions fréquentes sur le projet. Vous ne trouvez pas ce que vous cherchez ? N'hésitez pas à <0>nous contacter0>."
+
+#: src/views/home/components/Faqs.tsx:41
+msgid "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users (free during the beta) and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge."
+msgstr "Pour une durabilité à long terme, nous reconnaissons que tous les bons projets open source ont besoin d'une source de revenus. La nôtre provient de l'offre cloud payante pour les espaces de travail avec plusieurs utilisateurs (gratuite pendant la bêta) et pour les slugs d'espace de travail personnalisés. Il n'y a aucune obligation de l'utiliser, et vous pouvez auto-héberger le logiciel sur votre propre infrastructure gratuitement."
+
+#: src/views/home/components/Pricing.tsx:32
+#: src/views/home/components/Pricing.tsx:32
+msgid "Free"
+msgstr "Gratuit"
+
+#: src/views/home/components/Pricing.tsx:34
+msgid "Free, forever"
+msgstr "Gratuit, pour toujours"
+
+#: src/views/home/components/Header.tsx:102
+#: src/views/home/components/Header.tsx:141
+#: src/views/home/components/Cta.tsx:61
+#: src/views/auth/signup/index.tsx:67
+msgid "Get started"
+msgstr "Commencer"
+
+#: src/views/home/components/Pricing.tsx:31
+#: src/views/home/components/Pricing.tsx:49
+msgid "Get Started"
+msgstr "Commencer"
+
+#: src/views/boards/components/BoardsList.tsx:38
+msgid "Get started by creating a new board"
+msgstr "Commencez par créer un nouveau tableau"
+
+#: src/views/board/index.tsx:319
+msgid "Get started by creating a new list"
+msgstr "Commencez par créer une nouvelle liste"
+
+#: src/views/home/components/Cta.tsx:54
+msgid "Get started for free today"
+msgstr "Commencez gratuitement aujourd'hui"
+
+#: src/views/home/components/Pricing.tsx:92
+msgid "Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team."
+msgstr "Commencez gratuitement, sans limites d'utilisation. Pour la collaboration, passez à un forfait adapté à la taille de votre équipe."
+
+#: src/views/home/index.tsx:75
+msgid "Get started on Cloud"
+msgstr "Commencer sur le Cloud"
+
+#: src/views/home/components/Footer.tsx:25
+msgid "Getting started"
+msgstr "Premiers pas"
+
+#: src/views/home/components/Footer.tsx:37
+msgid "GitHub"
+msgstr "GitHub"
+
+#: src/views/home/components/Header.tsx:96
+#: src/views/home/components/Header.tsx:133
+msgid "Go to app"
+msgstr "Accéder à l'application"
+
+#: src/views/home/components/Pricing.tsx:69
+msgid "Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data."
+msgstr "Hébergez Kan sur votre propre infrastructure. Idéal pour les organisations qui ont besoin d'un contrôle total sur leurs données."
+
+#: src/views/home/components/Faqs.tsx:64
+msgid "How do I get a custom URL?"
+msgstr "Comment obtenir une URL personnalisée ?"
+
+#: src/views/home/components/Faqs.tsx:46
+msgid "How do I import my Trello boards?"
+msgstr "Comment importer mes tableaux Trello ?"
+
+#: src/views/home/components/Faqs.tsx:108
+msgid "How do I invite team members?"
+msgstr "Comment inviter des membres de l'équipe ?"
+
+#: src/views/home/components/Faqs.tsx:124
+msgid "How do I self-host?"
+msgstr "Comment faire pour auto-héberger ?"
+
+#: src/views/home/components/Faqs.tsx:38
+msgid "How is the project funded?"
+msgstr "Comment le projet est-il financé ?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:82
+msgid "I acknowledge that all of my account data will be permanently deleted and want to proceed."
+msgstr "Je reconnais que toutes les données de mon compte seront définitivement supprimées et je souhaite continuer."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:92
+msgid "I acknowledge that all of the workspace data will be permanently deleted and want to proceed."
+msgstr "Je reconnais que toutes les données de l'espace de travail seront définitivement supprimées et je souhaite continuer."
+
+#: src/components/FeedbackButton.tsx:98
+msgid "Ideas to improve this page..."
+msgstr "Idées pour améliorer cette page..."
+
+#: src/views/boards/index.tsx:39
+msgid "Import"
+msgstr "Importer"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:191
+msgid "Import complete"
+msgstr "Importation terminée"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:204
+msgid "Import failed"
+msgstr "Échec de l'importation"
+
+#: src/views/home/components/Features.tsx:89
+msgid "Import your Trello boards and hit the ground running."
+msgstr "Importez vos tableaux Trello et commencez immédiatement."
+
+#: src/views/home/components/Footer.tsx:27
+msgid "Importing from Trello"
+msgstr "Importation depuis Trello"
+
+#: src/views/home/components/Faqs.tsx:49
+msgid "Importing your Trello boards into Kan is easy. You can follow our step-by-step guide <0>here0>."
+msgstr "L'importation de vos tableaux Trello dans Kan est simple. Vous pouvez suivre notre guide étape par étape <0>ici0>."
+
+#: src/views/home/components/Pricing.tsx:28
+msgid "Individuals"
+msgstr "Particuliers"
+
+#: src/views/home/components/Features.tsx:114
+msgid "Integrations"
+msgstr "Intégrations"
+
+#: src/views/members/index.tsx:156
+msgid "Invite"
+msgstr "Inviter"
+
+#: src/views/members/components/InviteMemberForm.tsx:82
+#: src/views/card/components/MemberSelector.tsx:112
+msgid "Invite member"
+msgstr "Inviter un membre"
+
+#: src/views/home/components/Pricing.tsx:51
+msgid "Kanban is better with a team. Perfect for small and growing teams looking to collaborate."
+msgstr "Kanban est meilleur en équipe. Parfait pour les petites équipes et celles en croissance qui cherchent à collaborer."
+
+#: src/views/home/components/Features.tsx:129
+msgid "Kanban reimagined"
+msgstr "Kanban réinventé"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:67
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:57
+msgid "Keep in mind that this action is irreversible."
+msgstr "Gardez à l'esprit que cette action est irréversible."
+
+#: src/views/card/index.tsx:243
+#: src/views/board/components/NewCardForm.tsx:331
+#: src/views/board/components/Filters.tsx:101
+msgid "Labels"
+msgstr "Étiquettes"
+
+#: src/views/home/components/Features.tsx:93
+msgid "Labels & Filters"
+msgstr "Étiquettes & filtres"
+
+#: src/views/settings/index.tsx:157
+msgid "Language"
+msgstr "Langue"
+
+#: src/views/home/components/Footer.tsx:130
+msgid "Legal"
+msgstr "Mentions légales"
+
+#: src/views/home/components/Footer.tsx:44
+msgid "License"
+msgstr "Licence"
+
+#: src/components/UserMenu.tsx:126
+msgid "Light"
+msgstr "Clair"
+
+#: src/views/public/board/index.tsx:51
+msgid "Link copied"
+msgstr "Lien copié"
+
+#: src/views/card/index.tsx:235
+msgid "List"
+msgstr "Liste"
+
+#: src/views/board/components/NewListForm.tsx:128
+msgid "List name"
+msgstr "Nom de la liste"
+
+#: src/views/auth/login/index.tsx:31
+msgid "Login | kan.bn"
+msgstr "Connexion | kan.bn"
+
+#: src/components/UserMenu.tsx:136
+msgid "Logout"
+msgstr "Déconnexion"
+
+#: src/components/AuthForm.tsx:337
+msgid "magic link"
+msgstr "lien magique"
+
+#: src/views/members/index.tsx:148
+#: src/views/card/index.tsx:251
+#: src/views/board/components/NewCardForm.tsx:290
+#: src/views/board/components/Filters.tsx:93
+#: src/components/SideNavigation.tsx:44
+msgid "Members"
+msgstr "Membres"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/members/index.tsx:144
+msgid "Members | {0}"
+msgstr "Membres | {0}"
+
+#: src/views/home/components/Pricing.tsx:14
+msgid "Monthly"
+msgstr "Mensuel"
+
+#: src/views/card/components/ActivityList.tsx:81
+msgid "moved the card from <0>{fromList}0> to<1>{toList}1>"
+msgstr "a déplacé la carte de <0>{fromList}0> vers<1>{toList}1>"
+
+#: src/views/card/components/ActivityList.tsx:55
+msgid "moved the card to another list"
+msgstr "a déplacé la carte vers une autre liste"
+
+#: src/views/boards/components/NewBoardForm.tsx:63
+#: src/components/LabelForm.tsx:134
+msgid "Name"
+msgstr "Nom"
+
+#: src/components/FeedbackButton.tsx:116
+msgid "Need help?"
+msgstr "Besoin d'aide ?"
+
+#: src/views/boards/index.tsx:52
+msgid "New"
+msgstr "Nouveau"
+
+#: src/views/boards/components/NewBoardForm.tsx:49
+msgid "New board"
+msgstr "Nouveau tableau"
+
+#: src/views/board/components/NewCardForm.tsx:237
+msgid "New card"
+msgstr "Nouvelle carte"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:322
+msgid "New import"
+msgstr "Nouvel import"
+
+#: src/components/LabelForm.tsx:118
+msgid "New label"
+msgstr "Nouvelle étiquette"
+
+#: src/views/board/index.tsx:296
+#: src/views/board/components/NewListForm.tsx:112
+msgid "New list"
+msgstr "Nouvelle liste"
+
+#: src/components/NewWorkspaceForm.tsx:62
+msgid "New workspace"
+msgstr "Nouvel espace de travail"
+
+#: src/views/boards/components/BoardsList.tsx:35
+msgid "No boards"
+msgstr "Aucun tableau"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:242
+msgid "No boards found"
+msgstr "Aucun tableau trouvé"
+
+#: src/views/home/index.tsx:85
+msgid "No credit card required"
+msgstr "Aucune carte de crédit requise"
+
+#: src/views/board/index.tsx:316
+msgid "No lists"
+msgstr "Aucune liste"
+
+#: src/views/settings/index.tsx:263
+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:245
+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."
+
+#: src/components/AuthForm.tsx:279
+msgid "or"
+msgstr "ou"
+
+#: src/views/home/components/Features.tsx:94
+msgid "Organize and find cards quickly with powerful filtering tools."
+msgstr "Organisez et trouvez rapidement des cartes avec des outils de filtrage puissants."
+
+#: src/views/home/components/Pricing.tsx:73
+msgid "Own your data"
+msgstr "Maîtrisez vos données"
+
+#: src/views/home/components/Pricing.tsx:101
+msgid "Payment frequency"
+msgstr "Fréquence de paiement"
+
+#: src/views/members/index.tsx:107
+msgid "Pending"
+msgstr "En attente"
+
+#: src/views/home/components/Pricing.tsx:15
+#: src/views/home/components/Pricing.tsx:20
+msgid "per user/month"
+msgstr "par utilisateur/mois"
+
+#: src/components/AuthForm.tsx:305
+msgid "Please enter a valid email address"
+msgstr "Veuillez saisir une adresse e-mail valide"
+
+#: src/components/AuthForm.tsx:293
+msgid "Please enter a valid name"
+msgstr "Veuillez saisir un nom valide"
+
+#: src/components/AuthForm.tsx:318
+msgid "Please enter a valid password"
+msgstr "Veuillez saisir un mot de passe valide"
+
+#: src/views/settings/components/Avatar.tsx:55
+msgid "Please select a file to upload."
+msgstr "Veuillez sélectionner un fichier à télécharger."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:55
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:46
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
+#: src/views/settings/components/Avatar.tsx:38
+#: src/views/settings/components/Avatar.tsx:96
+#: src/views/members/components/DeleteMemberConfirmation.tsx:28
+#: src/views/card/index.tsx:116
+#: src/views/card/components/NewCommentForm.tsx:31
+#: src/views/card/components/MemberSelector.tsx:80
+#: src/views/card/components/ListSelector.tsx:53
+#: src/views/card/components/LabelSelector.tsx:73
+#: src/views/card/components/DeleteCommentConfirmation.tsx:45
+#: src/views/card/components/DeleteCardConfirmation.tsx:52
+#: src/views/card/components/Comment.tsx:62
+#: src/views/boards/components/ImportBoardsForm.tsx:205
+#: src/views/board/index.tsx:133
+#: src/views/board/index.tsx:189
+#: src/views/board/components/VisibilityButton.tsx:53
+#: src/views/board/components/UpdateBoardSlugForm.tsx:72
+#: src/views/board/components/NewListForm.tsx:78
+#: src/views/board/components/NewCardForm.tsx:128
+#: src/components/NewWorkspaceForm.tsx:39
+#: src/components/FeedbackButton.tsx:46
+msgid "Please try again later, or contact customer support."
+msgstr "Veuillez réessayer plus tard ou contacter le service client."
+
+#: src/views/home/components/Pricing.tsx:85
+#: src/views/home/components/Header.tsx:15
+#: src/views/home/components/Footer.tsx:50
+msgid "Pricing"
+msgstr "Tarifs"
+
+#: src/views/home/components/Pricing.tsx:56
+msgid "Priority email support"
+msgstr "Support par e-mail prioritaire"
+
+#: src/views/home/components/Footer.tsx:42
+msgid "Privacy policy"
+msgstr "Politique de confidentialité"
+
+#: src/views/board/components/VisibilityButton.tsx:73
+msgid "Private"
+msgstr "Privé"
+
+#: src/views/settings/components/Avatar.tsx:24
+msgid "Profile image updated"
+msgstr "Image de profil mise à jour"
+
+#: src/views/settings/index.tsx:118
+msgid "Profile picture"
+msgstr "Photo de profil"
+
+#: src/views/board/components/VisibilityButton.tsx:68
+msgid "Public"
+msgstr "Public"
+
+#: src/views/home/components/Faqs.tsx:147
+msgid "Questions?"
+msgstr "Des questions ?"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:58
+msgid "Remove"
+msgstr "Supprimer"
+
+#: src/views/members/index.tsx:120
+msgid "Remove member"
+msgstr "Supprimer le membre"
+
+#: src/views/card/components/ActivityList.tsx:57
+msgid "removed a label from the card"
+msgstr "a supprimé une étiquette de la carte"
+
+#: src/views/card/components/ActivityList.tsx:59
+msgid "removed a member from the card"
+msgstr "a retiré un membre de la carte"
+
+#: src/views/card/components/ActivityList.tsx:118
+msgid "removed label <0>{label}0>"
+msgstr "a supprimé l'étiquette <0>{label}0>"
+
+#: src/views/home/components/Footer.tsx:113
+msgid "Resources"
+msgstr "Ressources"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:49
+msgid "Revoke"
+msgstr "Révoquer"
+
+#: src/views/home/components/Header.tsx:13
+#: src/views/home/components/Footer.tsx:36
+msgid "Roadmap"
+msgstr "Feuille de route"
+
+#: src/views/members/index.tsx:178
+msgid "Role"
+msgstr "Rôle"
+
+#: src/views/home/components/Pricing.tsx:72
+msgid "Run on your own infrastructure"
+msgstr "Exécutez sur votre propre infrastructure"
+
+#: src/views/card/components/Comment.tsx:163
+msgid "Save"
+msgstr "Enregistrer"
+
+#: src/views/home/components/Features.tsx:109
+msgid "Save time with reusable board templates."
+msgstr "Gagnez du temps avec des modèles de tableaux réutilisables."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:274
+msgid "Select all"
+msgstr "Sélectionner tout"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Select source"
+msgstr "Sélectionner la source"
+
+#: src/views/home/components/Pricing.tsx:64
+msgid "Self Host"
+msgstr "Auto-hébergement"
+
+#: src/views/home/index.tsx:81
+msgid "Self host with Github"
+msgstr "Auto-hébergement avec Github"
+
+#: src/views/card/components/ActivityList.tsx:89
+msgid "self-assigned the card"
+msgstr "s'est auto-assigné la carte"
+
+#: src/components/FeedbackButton.tsx:137
+msgid "Send"
+msgstr "Envoyer"
+
+#: src/views/settings/index.tsx:112
+#: src/components/SideNavigation.tsx:49
+msgid "Settings"
+msgstr "Paramètres"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/settings/index.tsx:108
+msgid "Settings | {0}"
+msgstr "Paramètres | {0}"
+
+#: src/views/home/components/Header.tsx:100
+#: src/views/home/components/Header.tsx:138
+msgid "Sign in"
+msgstr "Se connecter"
+
+#: src/views/auth/signup/index.tsx:32
+#: src/views/auth/signup/index.tsx:57
+msgid "Sign up | kan.bn"
+msgstr "Inscription | kan.bn"
+
+#: src/views/auth/signup/index.tsx:42
+msgid "Sign up disabled"
+msgstr "Inscription désactivée"
+
+#: src/views/auth/signup/index.tsx:45
+msgid "Sign up is currently disabled. Please try again later."
+msgstr "L'inscription est actuellement désactivée. Veuillez réessayer plus tard."
+
+#: src/components/AuthForm.tsx:334
+msgid "Sign up with "
+msgstr "S'inscrire avec "
+
+#: src/views/home/components/Pricing.tsx:89
+msgid "Simple pricing"
+msgstr "Tarification simple"
+
+#: src/views/home/components/Features.tsx:132
+msgid "Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done."
+msgstr "Gestion de tâches visuelle et simple qui fonctionne parfaitement. Glissez-déposez des cartes, collaborez avec votre équipe et accomplissez davantage."
+
+#: src/views/home/index.tsx:37
+msgid "Star on Github"
+msgstr "Étoile sur Github"
+
+#: src/components/AuthForm.tsx:188
+#: src/components/AuthForm.tsx:205
+msgid "Success"
+msgstr "Succès"
+
+#: src/views/home/components/Pricing.tsx:57
+msgid "Support the development of the project"
+msgstr "Soutenir le développement du projet"
+
+#: src/components/UserMenu.tsx:98
+msgid "System"
+msgstr "Système"
+
+#: src/views/home/components/Pricing.tsx:46
+msgid "Teams"
+msgstr "Équipes"
+
+#: src/views/home/components/Features.tsx:108
+msgid "Templates"
+msgstr "Modèles"
+
+#: src/views/home/components/Footer.tsx:41
+msgid "Terms of service"
+msgstr "Conditions d'utilisation"
+
+#: src/components/FeedbackButton.tsx:39
+msgid "Thank you for your feedback!"
+msgstr "Merci pour vos commentaires !"
+
+#: src/views/home/components/Faqs.tsx:33
+msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
+msgstr "La principale différence entre Kan et Trello est que Kan est open source, permettant à chacun de consulter, modifier et contribuer à notre code. Notre offre cloud ne comporte également aucune restriction sur les fonctionnalités pour un usage individuel, alors que Trello verrouille des fonctionnalités de base comme le nombre de tableaux que vous pouvez créer derrière un paywall."
+
+#: src/views/home/index.tsx:65
+msgid "The open source <0/> alternative to Trello"
+msgstr "L'alternative open source <0/> à Trello"
+
+#. placeholder {0}: isPublic ? "public" : "private"
+#: src/views/board/components/VisibilityButton.tsx:46
+msgid "The visibility of your board has been set to {0}."
+msgstr "La visibilité de votre tableau a été définie sur {0}."
+
+#: src/components/UserMenu.tsx:85
+msgid "Theme"
+msgstr "Thème"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:50
+msgid "They won't be able to access this workspace."
+msgstr "Ils ne pourront plus accéder à cet espace de travail."
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:68
+#: src/views/card/components/DeleteCardConfirmation.tsx:78
+msgid "This action can't be undone."
+msgstr "Cette action ne peut pas être annulée."
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:135
+msgid "This board URL has already been taken"
+msgstr "Cette URL de tableau est déjà utilisée"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:70
+msgid "This will result in the permanent deletion of all data associated with this workspace."
+msgstr "Cela entraînera la suppression définitive de toutes les données associées à cet espace de travail."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:60
+msgid "This will result in the permanent deletion of all data associated with your account."
+msgstr "Cela entraînera la suppression définitive de toutes les données associées à votre compte."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:123
+msgid "This workspace username has already been taken"
+msgstr "Ce nom d'utilisateur d'espace de travail est déjà pris"
+
+#: src/views/home/components/Header.tsx:73
+msgid "Toggle menu"
+msgstr "Basculer le menu"
+
+#: src/views/home/components/Features.tsx:104
+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:69
+msgid "Trello disconnected"
+msgstr "Trello déconnecté"
+
+#: src/views/home/components/Features.tsx:88
+msgid "Trello imports"
+msgstr "Importations Trello"
+
+#: src/views/card/components/NewCommentForm.tsx:30
+msgid "Unable to add comment"
+msgstr "Impossible d'ajouter un commentaire"
+
+#: src/views/board/components/NewCardForm.tsx:125
+msgid "Unable to create card"
+msgstr "Impossible de créer la carte"
+
+#: src/views/board/components/NewListForm.tsx:77
+msgid "Unable to create list"
+msgstr "Impossible de créer une liste"
+
+#: src/components/NewWorkspaceForm.tsx:38
+msgid "Unable to create workspace"
+msgstr "Impossible de créer l'espace de travail"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:51
+msgid "Unable to delete card"
+msgstr "Impossible de supprimer la carte"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:44
+msgid "Unable to delete comment"
+msgstr "Impossible de supprimer le commentaire"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:27
+msgid "Unable to remove member"
+msgstr "Impossible de supprimer le membre"
+
+#: src/components/FeedbackButton.tsx:45
+msgid "Unable to send feedback"
+msgstr "Impossible d'envoyer les commentaires"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:71
+msgid "Unable to update board URL"
+msgstr "Impossible de mettre à jour l'URL du tableau"
+
+#: src/views/board/components/VisibilityButton.tsx:52
+msgid "Unable to update board visibility"
+msgstr "Impossible de mettre à jour la visibilité du tableau"
+
+#: src/views/card/index.tsx:115
+#: src/views/board/index.tsx:188
+msgid "Unable to update card"
+msgstr "Impossible de mettre à jour la carte"
+
+#: src/views/card/components/Comment.tsx:61
+msgid "Unable to update comment"
+msgstr "Impossible de mettre à jour le commentaire"
+
+#: src/views/card/components/LabelSelector.tsx:72
+msgid "Unable to update labels"
+msgstr "Impossible de mettre à jour les étiquettes"
+
+#: src/views/card/components/ListSelector.tsx:52
+#: src/views/board/index.tsx:132
+msgid "Unable to update list"
+msgstr "Impossible de mettre à jour la liste"
+
+#: src/views/card/components/MemberSelector.tsx:79
+msgid "Unable to update members"
+msgstr "Impossible de mettre à jour les membres"
+
+#: src/views/card/components/ActivityList.tsx:102
+msgid "unassigned <0>{memberName}0> from the card"
+msgstr "a retiré <0>{memberName}0> de la carte"
+
+#: src/views/card/components/ActivityList.tsx:99
+msgid "unassigned themselves from the card"
+msgstr "s'est retiré de la carte"
+
+#: src/views/home/components/Pricing.tsx:41
+msgid "Unlimited activity log"
+msgstr "Journal d'activité illimité"
+
+#: src/views/home/components/Pricing.tsx:37
+msgid "Unlimited boards"
+msgstr "Tableaux illimités"
+
+#: src/views/home/components/Cta.tsx:57
+msgid "Unlimited boards, unlimited lists, unlimited cards. No credit card required."
+msgstr "Tableaux illimités, listes illimitées, cartes illimitées. Aucune carte de crédit requise."
+
+#: src/views/home/components/Pricing.tsx:39
+msgid "Unlimited cards"
+msgstr "Cartes illimitées"
+
+#: src/views/home/components/Pricing.tsx:40
+msgid "Unlimited comments"
+msgstr "Commentaires illimités"
+
+#: src/views/home/components/Pricing.tsx:38
+msgid "Unlimited lists"
+msgstr "Listes illimitées"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:154
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:82
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
+#: src/views/board/components/UpdateBoardSlugForm.tsx:166
+msgid "Update"
+msgstr "Mettre à jour"
+
+#: src/components/LabelForm.tsx:233
+msgid "Update label"
+msgstr "Mettre à jour l'étiquette"
+
+#: src/views/card/components/ActivityList.tsx:54
+msgid "updated the description"
+msgstr "a mis à jour la description"
+
+#: src/views/card/components/ActivityList.tsx:53
+msgid "updated the title"
+msgstr "a mis à jour le titre"
+
+#: src/views/card/components/ActivityList.tsx:73
+msgid "updated the title to <0>{toTitle}0>"
+msgstr "a mis à jour le titre en <0>{toTitle}0>"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:52
+msgid "Upgrade"
+msgstr "Mettre à niveau"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:36
+msgid "URL can only contain letters, numbers, and hyphens"
+msgstr "L'URL ne peut contenir que des lettres, des chiffres et des traits d'union"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:34
+msgid "URL cannot exceed 24 characters"
+msgstr "L'URL ne peut pas dépasser 24 caractères"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:32
+msgid "URL must be at least 3 characters long"
+msgstr "L'URL doit comporter au moins 3 caractères"
+
+#: src/views/members/index.tsx:172
+msgid "User"
+msgstr "Utilisateur"
+
+#: src/views/settings/index.tsx:232
+msgid "View and manage your API keys."
+msgstr "Consultez et gérez vos clés API."
+
+#: src/views/settings/index.tsx:171
+msgid "View and manage your billing and subscription."
+msgstr "Consultez et gérez votre facturation et votre abonnement."
+
+#: src/views/home/components/Pricing.tsx:67
+msgid "View docs"
+msgstr "Voir la documentation"
+
+#: src/views/home/components/Features.tsx:147
+msgid "View our roadmap."
+msgstr "Consultez notre feuille de route."
+
+#: src/views/board/components/VisibilityButton.tsx:91
+msgid "Visibility"
+msgstr "Visibilité"
+
+#: src/views/home/components/Faqs.tsx:94
+msgid "We are using the <0>AGPL-3.0 license0>."
+msgstr "Nous utilisons la <0>licence AGPL-3.00>."
+
+#: src/views/home/components/Features.tsx:145
+msgid "We're just getting started. "
+msgstr "Nous ne faisons que commencer. "
+
+#: src/views/auth/login/index.tsx:41
+msgid "Welcome back"
+msgstr "Bienvenue à nouveau"
+
+#: src/views/home/components/Faqs.tsx:91
+msgid "What license are you using?"
+msgstr "Quelle licence utilisez-vous ?"
+
+#: src/views/home/components/Faqs.tsx:30
+msgid "What's the difference between Kan and Trello?"
+msgstr "Quelle est la différence entre Kan et Trello ?"
+
+#: src/views/home/components/Faqs.tsx:25
+msgid "When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \"Jira Lite\". This project is our attempt to recapture the original magic of Trello's simplicity, in open source."
+msgstr "Quand Trello a été lancé en 2011, il a impressionné tout le monde par sa simplicité soigneusement conçue, mais au fil du temps (et de l'\"atlassification\"), il a perdu sa magie et s'est transformé en quelque chose qui ressemble davantage à \"Jira Lite\". Ce projet est notre tentative de retrouver la magie originelle de la simplicité de Trello, en open source."
+
+#: src/views/home/components/Faqs.tsx:22
+msgid "Why make an open source Trello?"
+msgstr "Pourquoi créer un Trello open source ?"
+
+#: src/views/board/index.tsx:239
+msgid "Workspace"
+msgstr "Espace de travail"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:26
+msgid "Workspace deleted"
+msgstr "Espace de travail supprimé"
+
+#: src/views/settings/index.tsx:147
+msgid "Workspace description"
+msgstr "Description de l'espace de travail"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:28
+msgid "Workspace description cannot exceed 280 characters"
+msgstr "La description de l'espace de travail ne peut pas dépasser 280 caractères"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:25
+msgid "Workspace description must be at least 3 characters long"
+msgstr "La description de l'espace de travail doit comporter au moins 3 caractères"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:48
+msgid "Workspace description updated"
+msgstr "Description de l'espace de travail mise à jour"
+
+#: src/views/home/components/Pricing.tsx:54
+#: src/views/home/components/Features.tsx:83
+msgid "Workspace members"
+msgstr "Membres de l'espace de travail"
+
+#: src/views/settings/index.tsx:130
+#: src/components/NewWorkspaceForm.tsx:78
+msgid "Workspace name"
+msgstr "Nom de l'espace de travail"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:15
+msgid "Workspace name cannot exceed 24 characters"
+msgstr "Le nom de l'espace de travail ne peut pas dépasser 24 caractères"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:14
+msgid "Workspace name must be at least 3 characters long"
+msgstr "Le nom de l'espace de travail doit comporter au moins 3 caractères"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:43
+msgid "Workspace name updated"
+msgstr "Nom de l'espace de travail mis à jour"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:60
+msgid "Workspace slug updated"
+msgstr "Slug de l'espace de travail mis à jour"
+
+#: src/views/settings/index.tsx:138
+msgid "Workspace URL"
+msgstr "URL de l'espace de travail"
+
+#: src/views/home/components/Pricing.tsx:19
+msgid "Yearly"
+msgstr "Annuel"
+
+#: src/views/home/components/Faqs.tsx:86
+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/home/components/Faqs.tsx:67
+msgid "You can get a custom workspace URL, like <0>kan.bn/kan0>, by going into your <1>workspace settings1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
+msgstr "Vous pouvez obtenir une URL d'espace de travail personnalisée, comme <0>kan.bn/kan0>, en accédant à vos <1>paramètres d'espace de travail1> et en souscrivant à un abonnement pro. Tous les abonnements contribuent à financer le développement du projet !"
+
+#: src/views/home/components/Faqs.tsx:111
+msgid "You can invite team members by clicking the \"Invite\" button in the top right corner of the <0>members page0> and entering their email address. They will receive an email with a link to join the workspace."
+msgstr "Vous pouvez inviter des membres de l'équipe en cliquant sur le bouton \"Inviter\" dans le coin supérieur droit de la <0>page des membres0> et en saisissant leur adresse e-mail. Ils recevront un e-mail avec un lien pour rejoindre l'espace de travail."
+
+#: src/views/home/components/Faqs.tsx:127
+msgid "You can self-host by following the instructions in our <0>repo0>."
+msgstr "Vous pouvez auto-héberger en suivant les instructions dans notre <0>dépôt0>."
+
+#: src/components/AuthForm.tsx:206
+msgid "You have been logged in successfully."
+msgstr "Vous vous êtes connecté avec succès."
+
+#: src/components/AuthForm.tsx:189
+msgid "You have been signed up successfully."
+msgstr "Vous vous êtes inscrit avec succès."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
+msgid "Your account has been deleted."
+msgstr "Votre compte a été supprimé."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:192
+msgid "Your boards have been imported."
+msgstr "Vos tableaux ont été importés."
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:42
+msgid "Your display name has been updated."
+msgstr "Votre nom d'affichage a été mis à jour."
+
+#: src/views/settings/components/Avatar.tsx:25
+msgid "Your profile image has been updated."
+msgstr "Votre image de profil a été mise à jour."
+
+#: src/views/settings/index.tsx:70
+msgid "Your Trello account has been disconnected."
+msgstr "Votre compte Trello a été déconnecté."
+
+#: src/views/settings/index.tsx:214
+msgid "Your Trello account is connected."
+msgstr "Votre compte Trello est connecté."
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:49
+msgid "Your workspace description has been updated."
+msgstr "La description de votre espace de travail a été mise à jour."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:27
+msgid "Your workspace has been deleted."
+msgstr "Votre espace de travail a été supprimé."
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:44
+msgid "Your workspace name has been updated."
+msgstr "Le nom de votre espace de travail a été mis à jour."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:61
+msgid "Your workspace slug has been updated."
+msgstr "Le slug de votre espace de travail a été mis à jour."
diff --git a/apps/web/src/locales/fr/messages.ts b/apps/web/src/locales/fr/messages.ts
new file mode 100644
index 00000000..2a999238
--- /dev/null
+++ b/apps/web/src/locales/fr/messages.ts
@@ -0,0 +1 @@
+/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"X0N0PA\":[\" (modifié)\"],\"lGjicL\":[\", ou consultez notre\"],\"JArWcF\":[[\"0\"],\" | \",[\"1\"]],\"CJukzS\":[[\"0\"],\" étiquettes\"],\"0xWkkH\":[[\"boardCount\",\"plural\",{\"one\":[\"Importer le tableau (1)\"],\"other\":[\"Importer les tableaux (\",[\"boardCount\"],\")\"]}]],\"qrT8WB\":[\"#1 Hacker News\"],\"zMlxCA\":[\"1 utilisateur\"],\"d7XqZJ\":[\"A powerful, flexible kanban app that helps you organise work,\\n track progress, and deliver results—all in one place.\"],\"/rn4RE\":[\"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.\"],\"TKFUnX\":[\"Compte supprimé\"],\"XJOV1Y\":[\"Activité\"],\"tMYIu7\":[\"Journaux d'activité\"],\"B3xxao\":[\"Ajouter une carte\"],\"1ZVGyT\":[\"Ajouter un commentaire...\"],\"/Blkmk\":[\"Ajouter une description... (tapez '/' pour ouvrir les commandes)\"],\"lyqwgn\":[\"Ajouter une étiquette\"],\"PCIlOO\":[\"Ajouter un membre\"],\"T21jY/\":[\"a ajouté une étiquette à la carte\"],\"rs7L54\":[\"a ajouté un membre à la carte\"],\"SKqXzW\":[\"a ajouté l'étiquette <0>\",[\"label\"],\"0>\"],\"3pIq39\":[\"Rôles d'administrateur\"],\"lSNkXg\":[\"Tous les sièges sont gratuits pendant la bêta jusqu'au 1er sept. !\"],\"UQbwrz\":[\"Tous les systèmes opérationnels\"],\"WnEwDO\":[\"Vous avez déjà un compte ? <0><1>Connectez-vous1>0>\"],\"WmPhYW\":[\"Une erreur s'est produite lors de la déconnexion de votre compte Trello.\"],\"5h8ooz\":[\"Clés API\"],\"j2+d/o\":[\"Référence API\"],\"lo8xBK\":[\"Êtes-vous sûr de vouloir supprimer \",[\"entityLabel\"],\" ?\"],\"BhDZlc\":[\"Êtes-vous sûr de vouloir supprimer l'espace de travail \",[\"0\"],\" ?\"],\"ZT4Khw\":[\"Êtes-vous sûr de vouloir supprimer cette carte ?\"],\"PRjvDT\":[\"Êtes-vous sûr de vouloir supprimer ce commentaire ?\"],\"74F7N/\":[\"Êtes-vous sûr de vouloir supprimer votre compte ?\"],\"EEQaqX\":[\"a assigné <0>\",[\"memberName\"],\"0> à la carte\"],\"R+w/Va\":[\"Facturation\"],\"9wdpwp\":[\"Portail de facturation\"],\"QD8opX\":[\"Tableau\"],\"jwI32v\":[\"Tableau introuvable\"],\"Xid3K6\":[\"L'URL du tableau ne peut contenir que des lettres, des chiffres et des traits d'union\"],\"gv5kbo\":[\"L'URL du tableau ne peut pas dépasser 60 caractères\"],\"8+BY11\":[\"URL du tableau copiée dans le presse-papiers\"],\"TmvrjU\":[\"L'URL du tableau doit comporter au moins 3 caractères\"],\"qzdST2\":[\"Visibilité du tableau\"],\"PTzsxH\":[\"Visibilité du tableau mise à jour\"],\"8TveY+\":[\"Tableaux\"],\"seaklU\":[\"Tableaux | \",[\"0\"]],\"dEgA5A\":[\"Annuler\"],\"fEY2vP\":[\"Carte introuvable\"],\"ZH7TVS\":[\"Titre de la carte\"],\"Bosey8\":[\"Changer la langue de l'application.\"],\"5IXWmO\":[\"Vérifiez votre boîte de réception\"],\"u8JHrO\":[\"Effacer les filtres\"],\"RRn9jf\":[\"Cliquez sur le lien que nous avons envoyé à \",[\"magicLinkRecipient\"],\" pour vous connecter.\"],\"EvArWh\":[\"Collaborez en toute fluidité avec votre équipe.\"],\"AUYALh\":[\"Bientôt disponible\"],\"VbyRUy\":[\"Commentaires\"],\"7i8j3G\":[\"Entreprise\"],\"cAgBMh\":[\"Contrôle et propriété complets :\"],\"8ZoISG\":[\"Confirmer le changement d'URL\"],\"nk7caK\":[\"Connecter Trello\"],\"sDLCvT\":[\"Connectez vos outils favoris pour simplifier votre flux de travail.\"],\"5eZwRW\":[\"Connectez votre compte Trello pour importer des tableaux.\"],\"jfC/xh\":[\"Contact\"],\"Bhgd0l\":[\"Contactez-nous\"],\"J2Wbjt\":[\"Continuer avec \"],\"gkzAEM\":[\"Continuer avec \",[\"0\"]],\"va/3u1\":[\"Contrôlez qui peut voir et modifier vos tableaux.\"],\"vgdzLf\":[\"Créer un autre\"],\"uXGLuq\":[\"Create API key\"],\"Pa9/o1\":[\"Create API keys to access the Kan API.\"],\"9QmxLI\":[\"Créer un tableau\"],\"dsLT3m\":[\"Créer une carte\"],\"QtACvI\":[\"Créer une étiquette\"],\"XTKtey\":[\"Créer une liste\"],\"poDo/D\":[\"Créer un nouveau tableau\"],\"okpxfB\":[\"Créer une nouvelle clé\"],\"0+0/3e\":[\"Créer une nouvelle étiquette\"],\"aWlSc/\":[\"Créer une nouvelle liste\"],\"FdtSNC\":[\"Créer un espace de travail\"],\"f8lDFq\":[\"a créé la carte\"],\"GAD3Dx\":[\"Domaine personnalisé\"],\"91W07W\":[\"Les URL personnalisées sont une fonctionnalité premium. Vous serez dirigé vers la mise à niveau de votre compte.\"],\"pvnfJD\":[\"Sombre\"],\"cnGeoo\":[\"Supprimer\"],\"ZDGm40\":[\"Supprimer le compte\"],\"tmpW+w\":[\"Supprimer le tableau\"],\"nabda1\":[\"Supprimer la carte\"],\"njJFtc\":[\"Supprimer le commentaire\"],\"lYT7pQ\":[\"Supprimer la liste\"],\"kYu0eF\":[\"Supprimer l'espace de travail\"],\"YBBifR\":[\"Déconnecter Trello\"],\"1sRmLC\":[\"Discutez et collaborez sur les cartes.\"],\"pfa8F0\":[\"Nom d'affichage\"],\"MlyjJu\":[\"Le nom d'affichage ne peut pas dépasser 280 caractères\"],\"KFJgmZ\":[\"Le nom d'affichage doit comporter au moins 3 caractères\"],\"x8GeCD\":[\"Nom d'affichage mis à jour\"],\"evj0lK\":[\"Proposez-vous un plan gratuit ?\"],\"JyXBgS\":[\"documentation\"],\"TbjyhA\":[\"Documentation\"],\"TvY/XA\":[\"Documentation\"],\"vUr5JT\":[\"Vous n'avez pas de compte ? <0><1>Inscrivez-vous1>0>\"],\"tIdipJ\":[\"Modifier l'URL du tableau\"],\"rF8SEQ\":[\"Modifier le commentaire\"],\"dgr4Kq\":[\"Modifier l'étiquette\"],\"b/LfJo\":[\"e-mail\"],\"O3oNi5\":[\"E-mail\"],\"xRPn3U\":[\"Saisissez votre adresse e-mail\"],\"n9V+ps\":[\"Saisissez votre nom\"],\"NgaR6B\":[\"Saisissez votre mot de passe\"],\"bqAQaT\":[\"Erreur lors de la suppression du compte\"],\"9s9O5h\":[\"Erreur lors de la suppression de l'espace de travail\"],\"lKAvEd\":[\"Erreur lors de la déconnexion de Trello\"],\"sVBn4K\":[\"Erreur lors de la mise à jour du nom d'affichage\"],\"4ix5kl\":[\"Erreur lors de la mise à jour de l'image de profil\"],\"CkVV1t\":[\"Erreur lors de la mise à jour de la description de l'espace de travail\"],\"LoUCpj\":[\"Erreur lors de la mise à jour du nom de l'espace de travail\"],\"x0kMO/\":[\"Erreur lors de la mise à jour de l'URL de l'espace de travail\"],\"CYWHT+\":[\"Erreur lors du téléchargement de l'image de profil\"],\"8iP0S8\":[\"Tout ce qui est inclus dans le plan gratuit, plus :\"],\"ANyn0x\":[\"Tout ce dont vous avez besoin, gratuit pour toujours. Tableaux illimités, listes illimitées, cartes illimitées. Possibilité de mise à niveau à tout moment.\"],\"YtUfwW\":[\"Échec de connexion avec \",[\"0\"],\". Veuillez réessayer.\"],\"aJ4pMe\":[\"FAQ\"],\"PpZkda\":[\"Fonctionnalités\"],\"YirHq7\":[\"Commentaires\"],\"2roTVj\":[\"Commentaires envoyés\"],\"o7J4JM\":[\"Filtrer\"],\"iFxrHK\":[\"Trouvez des réponses aux questions fréquentes sur le projet. Vous ne trouvez pas ce que vous cherchez ? N'hésitez pas à <0>nous contacter0>.\"],\"aj40Mw\":[\"Pour une durabilité à long terme, nous reconnaissons que tous les bons projets open source ont besoin d'une source de revenus. La nôtre provient de l'offre cloud payante pour les espaces de travail avec plusieurs utilisateurs (gratuite pendant la bêta) et pour les slugs d'espace de travail personnalisés. Il n'y a aucune obligation de l'utiliser, et vous pouvez auto-héberger le logiciel sur votre propre infrastructure gratuitement.\"],\"2POOFK\":[\"Gratuit\"],\"gpfJ3v\":[\"Gratuit, pour toujours\"],\"ZDIydz\":[\"Commencer\"],\"c3b0B0\":[\"Commencer\"],\"YQqv2e\":[\"Commencez par créer un nouveau tableau\"],\"zC8Whw\":[\"Commencez par créer une nouvelle liste\"],\"oW13KZ\":[\"Commencez gratuitement aujourd'hui\"],\"+OhFss\":[\"Commencez gratuitement, sans limites d'utilisation. Pour la collaboration, passez à un forfait adapté à la taille de votre équipe.\"],\"rD6UIt\":[\"Commencer sur le Cloud\"],\"7hktsm\":[\"Premiers pas\"],\"RkXlPZ\":[\"GitHub\"],\"UveK6V\":[\"Accéder à l'application\"],\"LrcnbT\":[\"Hébergez Kan sur votre propre infrastructure. Idéal pour les organisations qui ont besoin d'un contrôle total sur leurs données.\"],\"WI4eGo\":[\"Comment obtenir une URL personnalisée ?\"],\"yV7o5I\":[\"Comment importer mes tableaux Trello ?\"],\"nol/Fb\":[\"Comment inviter des membres de l'équipe ?\"],\"KuSt9W\":[\"Comment faire pour auto-héberger ?\"],\"UeDFpo\":[\"Comment le projet est-il financé ?\"],\"2liqDZ\":[\"Je reconnais que toutes les données de mon compte seront définitivement supprimées et je souhaite continuer.\"],\"2Py5S/\":[\"Je reconnais que toutes les données de l'espace de travail seront définitivement supprimées et je souhaite continuer.\"],\"F/vB2g\":[\"Idées pour améliorer cette page...\"],\"l3s5ri\":[\"Importer\"],\"2MPcep\":[\"Importation terminée\"],\"BEVzjL\":[\"Échec de l'importation\"],\"rRM7r0\":[\"Importez vos tableaux Trello et commencez immédiatement.\"],\"xMn+V9\":[\"Importation depuis Trello\"],\"g2xBxu\":[\"L'importation de vos tableaux Trello dans Kan est simple. Vous pouvez suivre notre guide étape par étape <0>ici0>.\"],\"6mbe4b\":[\"Particuliers\"],\"nbfdhU\":[\"Intégrations\"],\"MFKlMB\":[\"Inviter\"],\"+djOzj\":[\"Inviter un membre\"],\"aWDhU5\":[\"Kanban est meilleur en équipe. Parfait pour les petites équipes et celles en croissance qui cherchent à collaborer.\"],\"Xjj/kS\":[\"Kanban réinventé\"],\"JbXXUW\":[\"Gardez à l'esprit que cette action est irréversible.\"],\"h8DugX\":[\"Étiquettes\"],\"+nvZ6j\":[\"Étiquettes & filtres\"],\"vXIe7J\":[\"Langue\"],\"vifyyw\":[\"Mentions légales\"],\"iQmbPb\":[\"Licence\"],\"1njn7W\":[\"Clair\"],\"edWbV6\":[\"Lien copié\"],\"2BBAbc\":[\"Liste\"],\"zQX5Dj\":[\"Nom de la liste\"],\"N/bcWA\":[\"Connexion | kan.bn\"],\"nOhz3x\":[\"Déconnexion\"],\"JnWJXY\":[\"lien magique\"],\"wlQNTg\":[\"Membres\"],\"9u5BOr\":[\"Membres | \",[\"0\"]],\"+8Nek/\":[\"Mensuel\"],\"EM/caO\":[\"a déplacé la carte de <0>\",[\"fromList\"],\"0> vers<1>\",[\"toList\"],\"1>\"],\"T7LJic\":[\"a déplacé la carte vers une autre liste\"],\"6YtxFj\":[\"Nom\"],\"HBI6nY\":[\"Besoin d'aide ?\"],\"isRobC\":[\"Nouveau\"],\"zDw80P\":[\"Nouveau tableau\"],\"pnrmSP\":[\"Nouvelle carte\"],\"WYwN1G\":[\"Nouvel import\"],\"n1GRql\":[\"Nouvelle étiquette\"],\"Sb2gYF\":[\"Nouvelle liste\"],\"curoK5\":[\"Nouvel espace de travail\"],\"DhLN1b\":[\"Aucun tableau\"],\"2Bu8xj\":[\"Aucun tableau trouvé\"],\"OpNhRn\":[\"Aucune carte de crédit requise\"],\"hXMFoN\":[\"Aucune liste\"],\"usVytm\":[\"Une fois que vous supprimez votre compte, il n'y a pas de retour possible. Cette action ne peut pas être annulée.\"],\"dmKdk0\":[\"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.\"],\"BzEFor\":[\"ou\"],\"ZqDqbi\":[\"Organisez et trouvez rapidement des cartes avec des outils de filtrage puissants.\"],\"SPLN9O\":[\"Maîtrisez vos données\"],\"UbYdrA\":[\"Fréquence de paiement\"],\"UbRKMZ\":[\"En attente\"],\"oVBq1w\":[\"par utilisateur/mois\"],\"OtjenF\":[\"Veuillez saisir une adresse e-mail valide\"],\"CJ3zUq\":[\"Veuillez saisir un nom valide\"],\"7b2yuC\":[\"Veuillez saisir un mot de passe valide\"],\"wPZBpR\":[\"Veuillez sélectionner un fichier à télécharger.\"],\"tyHiOa\":[\"Veuillez réessayer plus tard ou contacter le service client.\"],\"aHCEmh\":[\"Tarifs\"],\"ESClHO\":[\"Support par e-mail prioritaire\"],\"ScJ9fj\":[\"Politique de confidentialité\"],\"zwBp5t\":[\"Privé\"],\"0rPv1T\":[\"Image de profil mise à jour\"],\"4XF0BB\":[\"Photo de profil\"],\"7d1a0d\":[\"Public\"],\"1H5u1m\":[\"Des questions ?\"],\"t/YqKh\":[\"Supprimer\"],\"99VIgC\":[\"Supprimer le membre\"],\"kQwvU8\":[\"a supprimé une étiquette de la carte\"],\"uck1tz\":[\"a retiré un membre de la carte\"],\"zdMPUq\":[\"a supprimé l'étiquette <0>\",[\"label\"],\"0>\"],\"s+MGs7\":[\"Ressources\"],\"GXsAby\":[\"Révoquer\"],\"/gaSVU\":[\"Feuille de route\"],\"GDvlUT\":[\"Rôle\"],\"vAR/I8\":[\"Exécutez sur votre propre infrastructure\"],\"tfDRzk\":[\"Enregistrer\"],\"MdwUGG\":[\"Gagnez du temps avec des modèles de tableaux réutilisables.\"],\"wgNoIs\":[\"Sélectionner tout\"],\"rYUZIe\":[\"Sélectionner la source\"],\"ppaRWv\":[\"Auto-hébergement\"],\"l2PIAy\":[\"Auto-hébergement avec Github\"],\"VXk54Y\":[\"s'est auto-assigné la carte\"],\"JlFcis\":[\"Envoyer\"],\"Tz0i8g\":[\"Paramètres\"],\"5wo3jF\":[\"Paramètres | \",[\"0\"]],\"5lWFkC\":[\"Se connecter\"],\"sUZo7y\":[\"Inscription | kan.bn\"],\"WRkpB1\":[\"Inscription désactivée\"],\"s6iE/c\":[\"L'inscription est actuellement désactivée. Veuillez réessayer plus tard.\"],\"6FDocz\":[\"S'inscrire avec \"],\"m2nk0i\":[\"Tarification simple\"],\"sBhOFG\":[\"Gestion de tâches visuelle et simple qui fonctionne parfaitement. Glissez-déposez des cartes, collaborez avec votre équipe et accomplissez davantage.\"],\"R6pB8R\":[\"Étoile sur Github\"],\"zzDlyQ\":[\"Succès\"],\"wruKPE\":[\"Soutenir le développement du projet\"],\"D+NlUC\":[\"Système\"],\"CAL6E9\":[\"Équipes\"],\"iTylMl\":[\"Modèles\"],\"UCLeG0\":[\"Conditions d'utilisation\"],\"nhMhRr\":[\"Merci pour vos commentaires !\"],\"lkz85l\":[\"La principale différence entre Kan et Trello est que Kan est open source, permettant à chacun de consulter, modifier et contribuer à notre code. Notre offre cloud ne comporte également aucune restriction sur les fonctionnalités pour un usage individuel, alors que Trello verrouille des fonctionnalités de base comme le nombre de tableaux que vous pouvez créer derrière un paywall.\"],\"gUX7b+\":[\"L'alternative open source <0/> à Trello\"],\"fQCrjt\":[\"La visibilité de votre tableau a été définie sur \",[\"0\"],\".\"],\"FEr96N\":[\"Thème\"],\"Yf9FAx\":[\"Ils ne pourront plus accéder à cet espace de travail.\"],\"3LDCpD\":[\"Cette action ne peut pas être annulée.\"],\"wY+6Ye\":[\"Cette URL de tableau est déjà utilisée\"],\"MeO/vH\":[\"Cela entraînera la suppression définitive de toutes les données associées à cet espace de travail.\"],\"mwBdZ2\":[\"Cela entraînera la suppression définitive de toutes les données associées à votre compte.\"],\"kp6L3T\":[\"Ce nom d'utilisateur d'espace de travail est déjà pris\"],\"4gAX8s\":[\"Basculer le menu\"],\"eEQyz+\":[\"Suivez tous les changements de cartes avec un historique d'activité détaillé.\"],\"zto8aj\":[\"Trello déconnecté\"],\"kxEs5t\":[\"Importations Trello\"],\"T7DJ2k\":[\"Impossible d'ajouter un commentaire\"],\"zl1b97\":[\"Impossible de créer la carte\"],\"TztLaN\":[\"Impossible de créer une liste\"],\"MxQXhL\":[\"Impossible de créer l'espace de travail\"],\"Z6r9z1\":[\"Impossible de supprimer la carte\"],\"2QGEbi\":[\"Impossible de supprimer le commentaire\"],\"8yFGGF\":[\"Impossible de supprimer le membre\"],\"A8jqN7\":[\"Impossible d'envoyer les commentaires\"],\"XpcjLO\":[\"Impossible de mettre à jour l'URL du tableau\"],\"Wy6pcF\":[\"Impossible de mettre à jour la visibilité du tableau\"],\"o9WLwO\":[\"Impossible de mettre à jour la carte\"],\"fYVH36\":[\"Impossible de mettre à jour le commentaire\"],\"delOXn\":[\"Impossible de mettre à jour les étiquettes\"],\"I0gAKM\":[\"Impossible de mettre à jour la liste\"],\"5P4rhH\":[\"Impossible de mettre à jour les membres\"],\"nxb+xc\":[\"a retiré <0>\",[\"memberName\"],\"0> de la carte\"],\"hAMddS\":[\"s'est retiré de la carte\"],\"M9p3Vw\":[\"Journal d'activité illimité\"],\"1wCGT0\":[\"Tableaux illimités\"],\"ZU5IYI\":[\"Tableaux illimités, listes illimitées, cartes illimitées. Aucune carte de crédit requise.\"],\"Zz1qkk\":[\"Cartes illimitées\"],\"fziA2d\":[\"Commentaires illimités\"],\"7Ufoyg\":[\"Listes illimitées\"],\"EkH9pt\":[\"Mettre à jour\"],\"7EhE4k\":[\"Mettre à jour l'étiquette\"],\"tGwwnq\":[\"a mis à jour la description\"],\"V3MPSQ\":[\"a mis à jour le titre\"],\"xJO7ca\":[\"a mis à jour le titre en <0>\",[\"toTitle\"],\"0>\"],\"kwkhPe\":[\"Mettre à niveau\"],\"MI5OBT\":[\"L'URL ne peut contenir que des lettres, des chiffres et des traits d'union\"],\"vMCCIc\":[\"L'URL ne peut pas dépasser 24 caractères\"],\"SWEskc\":[\"L'URL doit comporter au moins 3 caractères\"],\"7PzzBU\":[\"Utilisateur\"],\"FmfJjN\":[\"Consultez et gérez vos clés API.\"],\"t2nDzl\":[\"Consultez et gérez votre facturation et votre abonnement.\"],\"aiHZVP\":[\"Voir la documentation\"],\"fSf2ee\":[\"Consultez notre feuille de route.\"],\"2q/Q7x\":[\"Visibilité\"],\"BJbLe4\":[\"Nous utilisons la <0>licence AGPL-3.00>.\"],\"9y1RcT\":[\"Nous ne faisons que commencer. \"],\"9eF5oV\":[\"Bienvenue à nouveau\"],\"xEbBrW\":[\"Quelle licence utilisez-vous ?\"],\"H5G+qG\":[\"Quelle est la différence entre Kan et Trello ?\"],\"oBndex\":[\"Quand Trello a été lancé en 2011, il a impressionné tout le monde par sa simplicité soigneusement conçue, mais au fil du temps (et de l'\\\"atlassification\\\"), il a perdu sa magie et s'est transformé en quelque chose qui ressemble davantage à \\\"Jira Lite\\\". Ce projet est notre tentative de retrouver la magie originelle de la simplicité de Trello, en open source.\"],\"/DGOJs\":[\"When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \\\"Jira Lite\\\". This project is our attempt to recapture the original magic of Trello’s simplicity, in open source.\"],\"SFnH1j\":[\"Pourquoi créer un Trello open source ?\"],\"pmUArF\":[\"Espace de travail\"],\"UlhdTP\":[\"Espace de travail supprimé\"],\"chyf4J\":[\"Description de l'espace de travail\"],\"Ax/hYa\":[\"La description de l'espace de travail ne peut pas dépasser 280 caractères\"],\"XDRXbZ\":[\"La description de l'espace de travail doit comporter au moins 3 caractères\"],\"F4PLG4\":[\"Description de l'espace de travail mise à jour\"],\"wtxjAY\":[\"Membres de l'espace de travail\"],\"CozWO1\":[\"Nom de l'espace de travail\"],\"wIkTTk\":[\"Le nom de l'espace de travail ne peut pas dépasser 24 caractères\"],\"jZBHkN\":[\"Le nom de l'espace de travail doit comporter au moins 3 caractères\"],\"OIA0ad\":[\"Nom de l'espace de travail mis à jour\"],\"MN6YzG\":[\"Slug de l'espace de travail mis à jour\"],\"ASjvm9\":[\"URL de l'espace de travail\"],\"zkWmBh\":[\"Annuel\"],\"eZCGbT\":[\"Oui, nous proposons un plan gratuit à vie pour un usage individuel. Aucune restriction, aucun paywall, aucune limite.\"],\"aelko+\":[\"Vous pouvez obtenir une URL d'espace de travail personnalisée, comme <0>kan.bn/kan0>, en accédant à vos <1>paramètres d'espace de travail1> et en souscrivant à un abonnement pro. Tous les abonnements contribuent à financer le développement du projet !\"],\"kSxwQL\":[\"Vous pouvez inviter des membres de l'équipe en cliquant sur le bouton \\\"Inviter\\\" dans le coin supérieur droit de la <0>page des membres0> et en saisissant leur adresse e-mail. Ils recevront un e-mail avec un lien pour rejoindre l'espace de travail.\"],\"vAj6xG\":[\"Vous pouvez auto-héberger en suivant les instructions dans notre <0>dépôt0>.\"],\"p/hk9N\":[\"Vous vous êtes connecté avec succès.\"],\"mchgzf\":[\"Vous vous êtes inscrit avec succès.\"],\"GoDLB9\":[\"Votre compte a été supprimé.\"],\"evg7+A\":[\"Vos tableaux ont été importés.\"],\"LqWW5F\":[\"Votre nom d'affichage a été mis à jour.\"],\"/tOdd2\":[\"Votre image de profil a été mise à jour.\"],\"CJWDTP\":[\"Votre compte Trello a été déconnecté.\"],\"WRsbHO\":[\"Votre compte Trello est connecté.\"],\"GnSSGm\":[\"La description de votre espace de travail a été mise à jour.\"],\"qkjvgj\":[\"Votre espace de travail a été supprimé.\"],\"2h4PVB\":[\"Le nom de votre espace de travail a été mis à jour.\"],\"Hg1qE9\":[\"Le slug de votre espace de travail a été mis à jour.\"]}")as Messages;
\ No newline at end of file
diff --git a/apps/web/src/locales/index.ts b/apps/web/src/locales/index.ts
new file mode 100644
index 00000000..a49a5a29
--- /dev/null
+++ b/apps/web/src/locales/index.ts
@@ -0,0 +1,14 @@
+export const locales = ["en", "fr", "de", "es", "it", "nl"] as const;
+
+export type Locale = (typeof locales)[number];
+
+export const defaultLocale: Locale = "en";
+
+export const localeNames: Record
= {
+ en: "English",
+ fr: "Français",
+ de: "Deutsch",
+ es: "Español",
+ it: "Italiano",
+ nl: "Nederlands",
+};
diff --git a/apps/web/src/locales/it/messages.po b/apps/web/src/locales/it/messages.po
new file mode 100644
index 00000000..33dd7978
--- /dev/null
+++ b/apps/web/src/locales/it/messages.po
@@ -0,0 +1,1443 @@
+msgid ""
+msgstr ""
+"POT-Creation-Date: 2025-06-24 22:31+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: @lingui/cli\n"
+"Language: it\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Plural-Forms: \n"
+
+#: src/views/card/components/Comment.tsx:121
+msgid " (edited)"
+msgstr " (modificato)"
+
+#: src/components/FeedbackButton.tsx:123
+msgid ", or see our"
+msgstr ", o consulta i nostri"
+
+#. placeholder {0}: card?.title ?? "Card"
+#. placeholder {1}: board?.name ?? "Board"
+#: src/views/card/index.tsx:148
+msgid "{0} | {1}"
+msgstr "{0} | {1}"
+
+#. placeholder {0}: labelPublicIds.length
+#: src/views/board/components/NewCardForm.tsx:365
+msgid "{0} labels"
+msgstr "{0} etichette"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:299
+msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
+msgstr "{boardCount, plural, one {Importa bacheca (1)} other {Importa bacheche ({boardCount})}}"
+
+#: src/views/home/index.tsx:51
+msgid "#1 Hacker News"
+msgstr "#1 Hacker News"
+
+#: src/views/home/components/Pricing.tsx:36
+msgid "1 user"
+msgstr "1 utente"
+
+#: src/views/home/index.tsx:71
+msgid "A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place."
+msgstr "Un'app kanban potente e flessibile che ti aiuta a organizzare il lavoro, monitorare i progressi e ottenere risultati, tutto in un unico posto."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:27
+msgid "Account deleted"
+msgstr "Account eliminato"
+
+#: src/views/public/board/CardModal.tsx:104
+#: src/views/card/index.tsx:215
+msgid "Activity"
+msgstr "Attività"
+
+#: src/views/home/components/Features.tsx:103
+msgid "Activity logs"
+msgstr "Registri attività"
+
+#: src/views/board/components/List.tsx:110
+msgid "Add a card"
+msgstr "Aggiungi una carta"
+
+#: src/views/card/components/NewCommentForm.tsx:57
+#: src/views/card/components/Comment.tsx:144
+msgid "Add a comment..."
+msgstr "Aggiungi un commento..."
+
+#: src/components/Editor.tsx:302
+msgid "Add description... (type '/' to open commands)"
+msgstr "Aggiungi descrizione... (digita '/' per aprire i comandi)"
+
+#: src/views/card/components/LabelSelector.tsx:110
+#: src/views/card/components/LabelSelector.tsx:118
+msgid "Add label"
+msgstr "Aggiungi etichetta"
+
+#: src/views/members/components/InviteMemberForm.tsx:50
+#: src/views/card/components/MemberSelector.tsx:130
+msgid "Add member"
+msgstr "Aggiungi membro"
+
+#: src/views/card/components/ActivityList.tsx:56
+msgid "added a label to the card"
+msgstr "ha aggiunto un'etichetta alla carta"
+
+#: src/views/card/components/ActivityList.tsx:58
+msgid "added a member to the card"
+msgstr "ha aggiunto un membro alla carta"
+
+#: src/views/card/components/ActivityList.tsx:110
+msgid "added label <0>{label}0>"
+msgstr "ha aggiunto l'etichetta <0>{label}0>"
+
+#: src/views/home/components/Pricing.tsx:55
+msgid "Admin roles"
+msgstr "Ruoli amministratore"
+
+#: src/views/home/components/Pricing.tsx:97
+msgid "All seats are free during the beta until Sept 1st!"
+msgstr "Tutti i posti sono gratuiti durante la beta fino al 1° settembre!"
+
+#: src/views/home/components/Footer.tsx:18
+msgid "All systems operational"
+msgstr "Tutti i sistemi operativi"
+
+#: src/views/auth/signup/index.tsx:86
+msgid "Already have an account? <0><1>Sign in1>0>"
+msgstr "Hai già un account? <0><1>Accedi1>0>"
+
+#: src/views/settings/index.tsx:77
+msgid "An error occurred while disconnecting your Trello account."
+msgstr "Si è verificato un errore durante la disconnessione del tuo account Trello."
+
+#: src/views/settings/index.tsx:229
+msgid "API keys"
+msgstr "Chiavi API"
+
+#: src/views/home/components/Footer.tsx:31
+msgid "API Reference"
+msgstr "Riferimento API"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:47
+msgid "Are you sure want to remove {entityLabel}?"
+msgstr "Sei sicuro di voler rimuovere {entityLabel}?"
+
+#. placeholder {0}: workspace.name
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:62
+msgid "Are you sure you want to delete the workspace {0}?"
+msgstr "Sei sicuro di voler eliminare lo spazio di lavoro {0}?"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:75
+msgid "Are you sure you want to delete this card?"
+msgstr "Sei sicuro di voler eliminare questa carta?"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:65
+msgid "Are you sure you want to delete this comment?"
+msgstr "Sei sicuro di voler eliminare questo commento?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:54
+msgid "Are you sure you want to delete your account?"
+msgstr "Sei sicuro di voler eliminare il tuo account?"
+
+#: src/views/card/components/ActivityList.tsx:92
+msgid "assigned <0>{memberName}0> to the card"
+msgstr "ha assegnato <0>{memberName}0> alla carta"
+
+#: src/views/settings/index.tsx:168
+msgid "Billing"
+msgstr "Fatturazione"
+
+#: src/views/settings/index.tsx:178
+msgid "Billing portal"
+msgstr "Portale di fatturazione"
+
+#: src/views/board/index.tsx:239
+msgid "Board"
+msgstr "Bacheca"
+
+#: src/views/board/index.tsx:265
+msgid "Board not found"
+msgstr "Bacheca non trovata"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:45
+msgid "Board URL can only contain letters, numbers, and hyphens"
+msgstr "L'URL della bacheca può contenere solo lettere, numeri e trattini"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:43
+msgid "Board URL cannot exceed 60 characters"
+msgstr "L'URL della bacheca non può superare i 60 caratteri"
+
+#: src/views/public/board/index.tsx:53
+msgid "Board URL copied to clipboard"
+msgstr "URL della bacheca copiato negli appunti"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:41
+msgid "Board URL must be at least 3 characters long"
+msgstr "L'URL della bacheca deve contenere almeno 3 caratteri"
+
+#: src/views/home/components/Features.tsx:78
+msgid "Board visibility"
+msgstr "Visibilità bacheca"
+
+#: src/views/board/components/VisibilityButton.tsx:45
+msgid "Board visibility updated"
+msgstr "Visibilità della bacheca aggiornata"
+
+#: src/views/boards/index.tsx:25
+#: src/components/SideNavigation.tsx:39
+msgid "Boards"
+msgstr "Bacheche"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/boards/index.tsx:21
+msgid "Boards | {0}"
+msgstr "Bacheche | {0}"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
+#: src/views/settings/components/CustomURLConfirmation.tsx:50
+#: src/views/members/components/DeleteMemberConfirmation.tsx:55
+#: src/views/card/components/DeleteCommentConfirmation.tsx:76
+#: src/views/card/components/DeleteCardConfirmation.tsx:86
+#: src/views/card/components/Comment.tsx:156
+msgid "Cancel"
+msgstr "Annulla"
+
+#: src/views/card/index.tsx:193
+msgid "Card not found"
+msgstr "Carta non trovata"
+
+#: src/views/board/components/NewCardForm.tsx:254
+msgid "Card title"
+msgstr "Titolo della carta"
+
+#: src/views/settings/index.tsx:160
+msgid "Change the language of the app."
+msgstr "Cambia la lingua dell'app."
+
+#: src/views/auth/signup/index.tsx:67
+#: src/views/auth/login/index.tsx:41
+msgid "Check your inbox"
+msgstr "Controlla la tua casella di posta"
+
+#: src/views/board/components/Filters.tsx:155
+msgid "Clear filters"
+msgstr "Cancella filtri"
+
+#: src/views/auth/signup/index.tsx:72
+#: src/views/auth/login/index.tsx:46
+msgid "Click on the link we've sent to {magicLinkRecipient} to sign in."
+msgstr "Clicca sul link che abbiamo inviato a {magicLinkRecipient} per accedere."
+
+#: src/views/home/components/Features.tsx:84
+msgid "Collaborate seamlessly with your team."
+msgstr "Collabora senza problemi con il tuo team."
+
+#: src/views/home/components/Features.tsx:66
+msgid "Coming soon"
+msgstr "Prossimamente"
+
+#: src/views/home/components/Features.tsx:98
+msgid "Comments"
+msgstr "Commenti"
+
+#: src/views/home/components/Footer.tsx:94
+msgid "Company"
+msgstr "Azienda"
+
+#: src/views/home/components/Pricing.tsx:70
+msgid "Complete control and ownership:"
+msgstr "Controllo e proprietà completi:"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:42
+msgid "Confirm URL change"
+msgstr "Conferma modifica URL"
+
+#: src/views/settings/index.tsx:205
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Connect Trello"
+msgstr "Connetti Trello"
+
+#: src/views/home/components/Features.tsx:115
+msgid "Connect your favorite tools to streamline your workflow."
+msgstr "Connetti i tuoi strumenti preferiti per semplificare il tuo flusso di lavoro."
+
+#: src/views/settings/index.tsx:192
+msgid "Connect your Trello account to import boards."
+msgstr "Connetti il tuo account Trello per importare le bacheche."
+
+#: src/views/home/components/Footer.tsx:38
+msgid "Contact"
+msgstr "Contatti"
+
+#: src/components/FeedbackButton.tsx:121
+msgid "Contact us"
+msgstr "Contattaci"
+
+#: src/components/AuthForm.tsx:334
+msgid "Continue with "
+msgstr "Continua con "
+
+#. placeholder {0}: provider.name
+#: src/components/AuthForm.tsx:268
+msgid "Continue with {0}"
+msgstr "Continua con {0}"
+
+#: src/views/home/components/Features.tsx:79
+msgid "Control who can view and edit your boards."
+msgstr "Controlla chi può visualizzare e modificare le tue bacheche."
+
+#: src/views/board/components/NewListForm.tsx:140
+#: src/views/board/components/NewCardForm.tsx:391
+#: src/components/LabelForm.tsx:212
+msgid "Create another"
+msgstr "Crea un altro"
+
+#: src/views/boards/components/NewBoardForm.tsx:77
+msgid "Create board"
+msgstr "Crea bacheca"
+
+#: src/views/board/components/NewCardForm.tsx:401
+msgid "Create card"
+msgstr "Crea carta"
+
+#: src/components/LabelForm.tsx:233
+msgid "Create label"
+msgstr "Crea etichetta"
+
+#: src/views/board/components/NewListForm.tsx:148
+msgid "Create list"
+msgstr "Crea lista"
+
+#: src/views/boards/components/BoardsList.tsx:42
+msgid "Create new board"
+msgstr "Crea nuova bacheca"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:54
+msgid "Create new key"
+msgstr "Crea nuova chiave"
+
+#: src/views/card/components/LabelSelector.tsx:98
+#: src/views/board/components/NewCardForm.tsx:327
+msgid "Create new label"
+msgstr "Crea nuova etichetta"
+
+#: src/views/board/index.tsx:327
+msgid "Create new list"
+msgstr "Crea nuova lista"
+
+#: src/components/WorkspaceMenu.tsx:85
+#: src/components/NewWorkspaceForm.tsx:91
+msgid "Create workspace"
+msgstr "Crea spazio di lavoro"
+
+#: src/views/card/components/ActivityList.tsx:52
+msgid "created the card"
+msgstr "ha creato la carta"
+
+#: src/views/home/components/Pricing.tsx:74
+msgid "Custom domain"
+msgstr "Dominio personalizzato"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:45
+msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
+msgstr "Gli URL personalizzati sono una funzionalità premium. Sarai indirizzato all'aggiornamento del tuo account."
+
+#: src/components/UserMenu.tsx:112
+msgid "Dark"
+msgstr "Scuro"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:82
+#: src/views/card/components/DeleteCardConfirmation.tsx:92
+#: src/components/LabelForm.tsx:226
+msgid "Delete"
+msgstr "Elimina"
+
+#: src/views/settings/index.tsx:260
+#: src/views/settings/index.tsx:270
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
+msgid "Delete account"
+msgstr "Elimina account"
+
+#: src/views/board/components/BoardDropdown.tsx:20
+msgid "Delete board"
+msgstr "Elimina bacheca"
+
+#: src/views/card/components/Dropdown.tsx:14
+msgid "Delete card"
+msgstr "Elimina carta"
+
+#: src/views/card/components/Comment.tsx:89
+msgid "Delete comment"
+msgstr "Elimina commento"
+
+#: src/views/board/components/List.tsx:117
+msgid "Delete list"
+msgstr "Elimina lista"
+
+#: src/views/settings/index.tsx:242
+#: src/views/settings/index.tsx:253
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
+msgid "Delete workspace"
+msgstr "Elimina spazio di lavoro"
+
+#: src/views/settings/index.tsx:220
+msgid "Disconnect Trello"
+msgstr "Disconnetti Trello"
+
+#: src/views/home/components/Features.tsx:99
+msgid "Discuss and collaborate on cards."
+msgstr "Discuti e collabora sulle schede."
+
+#: src/views/settings/index.tsx:123
+msgid "Display name"
+msgstr "Nome visualizzato"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:22
+msgid "Display name cannot exceed 280 characters"
+msgstr "Il nome visualizzato non può superare i 280 caratteri"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:19
+msgid "Display name must be at least 3 characters long"
+msgstr "Il nome visualizzato deve contenere almeno 3 caratteri"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:41
+msgid "Display name updated"
+msgstr "Nome visualizzato aggiornato"
+
+#: src/views/home/components/Faqs.tsx:83
+msgid "Do you offer a free plan?"
+msgstr "Offrite un piano gratuito?"
+
+#: src/components/FeedbackButton.tsx:130
+msgid "docs"
+msgstr "documenti"
+
+#: src/views/home/components/Header.tsx:16
+msgid "Docs"
+msgstr "Documenti"
+
+#: src/views/home/components/Footer.tsx:77
+msgid "Documentation"
+msgstr "Documentazione"
+
+#: src/views/auth/login/index.tsx:61
+msgid "Don't have an account? <0><1>Sign up1>0>"
+msgstr "Non hai un account? <0><1>Registrati1>0>"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:115
+#: src/views/board/components/BoardDropdown.tsx:15
+msgid "Edit board URL"
+msgstr "Modifica URL della bacheca"
+
+#: src/views/card/components/Comment.tsx:80
+msgid "Edit comment"
+msgstr "Modifica commento"
+
+#: src/components/LabelForm.tsx:118
+msgid "Edit label"
+msgstr "Modifica etichetta"
+
+#: src/components/AuthForm.tsx:336
+msgid "email"
+msgstr "email"
+
+#: src/views/members/components/InviteMemberForm.tsx:64
+msgid "Email"
+msgstr "Email"
+
+#: src/components/AuthForm.tsx:301
+msgid "Enter your email address"
+msgstr "Inserisci il tuo indirizzo email"
+
+#: src/components/AuthForm.tsx:289
+msgid "Enter your name"
+msgstr "Inserisci il tuo nome"
+
+#: src/components/AuthForm.tsx:314
+msgid "Enter your password"
+msgstr "Inserisci la tua password"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
+msgid "Error deleting account"
+msgstr "Errore durante l'eliminazione dell'account"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
+msgid "Error deleting workspace"
+msgstr "Errore durante l'eliminazione dell'area di lavoro"
+
+#: src/views/settings/index.tsx:76
+msgid "Error disconnecting Trello"
+msgstr "Errore durante la disconnessione da Trello"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:54
+msgid "Error updating display name"
+msgstr "Errore durante l'aggiornamento del nome visualizzato"
+
+#: src/views/settings/components/Avatar.tsx:37
+msgid "Error updating profile image"
+msgstr "Errore durante l'aggiornamento dell'immagine del profilo"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:61
+msgid "Error updating workspace description"
+msgstr "Errore durante l'aggiornamento della descrizione dell'area di lavoro"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:56
+msgid "Error updating workspace name"
+msgstr "Errore durante l'aggiornamento del nome dell'area di lavoro"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:73
+msgid "Error updating workspace URL"
+msgstr "Errore durante l'aggiornamento dell'URL dell'area di lavoro"
+
+#: src/views/settings/components/Avatar.tsx:54
+#: src/views/settings/components/Avatar.tsx:95
+msgid "Error uploading profile image"
+msgstr "Errore durante il caricamento dell'immagine del profilo"
+
+#: src/views/home/components/Pricing.tsx:52
+msgid "Everything in the free plan, plus:"
+msgstr "Tutto ciò che è incluso nel piano gratuito, più:"
+
+#: src/views/home/components/Pricing.tsx:33
+msgid "Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time."
+msgstr "Tutto ciò di cui hai bisogno, gratis per sempre. Bacheche illimitate, liste illimitate, schede illimitate. Aggiorna in qualsiasi momento."
+
+#. placeholder {0}: provider.at(0)?.toUpperCase() + provider.slice(1)
+#: src/components/AuthForm.tsx:241
+msgid "Failed to login with {0}. Please try again."
+msgstr "Accesso con {0} fallito. Riprova."
+
+#: src/views/home/components/Footer.tsx:51
+#: src/views/home/components/Faqs.tsx:143
+msgid "FAQs"
+msgstr "FAQ"
+
+#: src/views/home/components/Header.tsx:14
+#: src/views/home/components/Footer.tsx:49
+#: src/views/home/components/Features.tsx:125
+msgid "Features"
+msgstr "Funzionalità"
+
+#: src/components/FeedbackButton.tsx:78
+msgid "Feedback"
+msgstr "Feedback"
+
+#: src/components/FeedbackButton.tsx:38
+msgid "Feedback sent"
+msgstr "Feedback inviato"
+
+#: src/views/board/components/Filters.tsx:149
+msgid "Filter"
+msgstr "Filtra"
+
+#: src/views/home/components/Faqs.tsx:150
+msgid "Find answers to common questions about the project. Can't find what you're looking for? Feel free to <0>contact us0>."
+msgstr "Trova risposte alle domande comuni sul progetto. Non trovi quello che stai cercando? Non esitare a <0>contattarci0>."
+
+#: src/views/home/components/Faqs.tsx:41
+msgid "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users (free during the beta) and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge."
+msgstr "Per la sostenibilità a lungo termine, riconosciamo che tutti i buoni progetti open source necessitano di una fonte di entrate. La nostra proviene dall'offerta cloud a pagamento per workspace con più utenti (gratuita durante la beta) e per slug di workspace personalizzati. Non c'è alcun obbligo di utilizzarla, e puoi ospitare autonomamente il software sulla tua infrastruttura gratuitamente."
+
+#: src/views/home/components/Pricing.tsx:32
+#: src/views/home/components/Pricing.tsx:32
+msgid "Free"
+msgstr "Gratuito"
+
+#: src/views/home/components/Pricing.tsx:34
+msgid "Free, forever"
+msgstr "Gratuito, per sempre"
+
+#: src/views/home/components/Header.tsx:102
+#: src/views/home/components/Header.tsx:141
+#: src/views/home/components/Cta.tsx:61
+#: src/views/auth/signup/index.tsx:67
+msgid "Get started"
+msgstr "Inizia ora"
+
+#: src/views/home/components/Pricing.tsx:31
+#: src/views/home/components/Pricing.tsx:49
+msgid "Get Started"
+msgstr "Inizia ora"
+
+#: src/views/boards/components/BoardsList.tsx:38
+msgid "Get started by creating a new board"
+msgstr "Inizia creando una nuova bacheca"
+
+#: src/views/board/index.tsx:319
+msgid "Get started by creating a new list"
+msgstr "Inizia creando una nuova lista"
+
+#: src/views/home/components/Cta.tsx:54
+msgid "Get started for free today"
+msgstr "Inizia gratuitamente oggi"
+
+#: src/views/home/components/Pricing.tsx:92
+msgid "Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team."
+msgstr "Inizia gratuitamente, senza limiti di utilizzo. Per la collaborazione, passa a un piano adatto alle dimensioni del tuo team."
+
+#: src/views/home/index.tsx:75
+msgid "Get started on Cloud"
+msgstr "Inizia su Cloud"
+
+#: src/views/home/components/Footer.tsx:25
+msgid "Getting started"
+msgstr "Primi passi"
+
+#: src/views/home/components/Footer.tsx:37
+msgid "GitHub"
+msgstr "GitHub"
+
+#: src/views/home/components/Header.tsx:96
+#: src/views/home/components/Header.tsx:133
+msgid "Go to app"
+msgstr "Vai all'app"
+
+#: src/views/home/components/Pricing.tsx:69
+msgid "Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data."
+msgstr "Ospita Kan sulla tua infrastruttura. Ideale per organizzazioni che necessitano di controllo completo sui propri dati."
+
+#: src/views/home/components/Faqs.tsx:64
+msgid "How do I get a custom URL?"
+msgstr "Come posso ottenere un URL personalizzato?"
+
+#: src/views/home/components/Faqs.tsx:46
+msgid "How do I import my Trello boards?"
+msgstr "Come posso importare le mie bacheche Trello?"
+
+#: src/views/home/components/Faqs.tsx:108
+msgid "How do I invite team members?"
+msgstr "Come posso invitare i membri del team?"
+
+#: src/views/home/components/Faqs.tsx:124
+msgid "How do I self-host?"
+msgstr "Come posso effettuare il self-hosting?"
+
+#: src/views/home/components/Faqs.tsx:38
+msgid "How is the project funded?"
+msgstr "Come viene finanziato il progetto?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:82
+msgid "I acknowledge that all of my account data will be permanently deleted and want to proceed."
+msgstr "Riconosco che tutti i dati del mio account saranno eliminati permanentemente e voglio procedere."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:92
+msgid "I acknowledge that all of the workspace data will be permanently deleted and want to proceed."
+msgstr "Riconosco che tutti i dati dell'area di lavoro saranno eliminati permanentemente e voglio procedere."
+
+#: src/components/FeedbackButton.tsx:98
+msgid "Ideas to improve this page..."
+msgstr "Idee per migliorare questa pagina..."
+
+#: src/views/boards/index.tsx:39
+msgid "Import"
+msgstr "Importa"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:191
+msgid "Import complete"
+msgstr "Importazione completata"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:204
+msgid "Import failed"
+msgstr "Importazione fallita"
+
+#: src/views/home/components/Features.tsx:89
+msgid "Import your Trello boards and hit the ground running."
+msgstr "Importa le tue bacheche Trello e parti subito."
+
+#: src/views/home/components/Footer.tsx:27
+msgid "Importing from Trello"
+msgstr "Importazione da Trello"
+
+#: src/views/home/components/Faqs.tsx:49
+msgid "Importing your Trello boards into Kan is easy. You can follow our step-by-step guide <0>here0>."
+msgstr "Importare le tue bacheche Trello in Kan è facile. Puoi seguire la nostra guida passo-passo <0>qui0>."
+
+#: src/views/home/components/Pricing.tsx:28
+msgid "Individuals"
+msgstr "Privati"
+
+#: src/views/home/components/Features.tsx:114
+msgid "Integrations"
+msgstr "Integrazioni"
+
+#: src/views/members/index.tsx:156
+msgid "Invite"
+msgstr "Invita"
+
+#: src/views/members/components/InviteMemberForm.tsx:82
+#: src/views/card/components/MemberSelector.tsx:112
+msgid "Invite member"
+msgstr "Invita membro"
+
+#: src/views/home/components/Pricing.tsx:51
+msgid "Kanban is better with a team. Perfect for small and growing teams looking to collaborate."
+msgstr "Kanban è migliore con un team. Perfetto per piccoli team in crescita che cercano di collaborare."
+
+#: src/views/home/components/Features.tsx:129
+msgid "Kanban reimagined"
+msgstr "Kanban reinventato"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:67
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:57
+msgid "Keep in mind that this action is irreversible."
+msgstr "Tieni presente che questa azione è irreversibile."
+
+#: src/views/card/index.tsx:243
+#: src/views/board/components/NewCardForm.tsx:331
+#: src/views/board/components/Filters.tsx:101
+msgid "Labels"
+msgstr "Etichette"
+
+#: src/views/home/components/Features.tsx:93
+msgid "Labels & Filters"
+msgstr "Etichette & Filtri"
+
+#: src/views/settings/index.tsx:157
+msgid "Language"
+msgstr "Lingua"
+
+#: src/views/home/components/Footer.tsx:130
+msgid "Legal"
+msgstr "Legale"
+
+#: src/views/home/components/Footer.tsx:44
+msgid "License"
+msgstr "Licenza"
+
+#: src/components/UserMenu.tsx:126
+msgid "Light"
+msgstr "Chiaro"
+
+#: src/views/public/board/index.tsx:51
+msgid "Link copied"
+msgstr "Link copiato"
+
+#: src/views/card/index.tsx:235
+msgid "List"
+msgstr "Lista"
+
+#: src/views/board/components/NewListForm.tsx:128
+msgid "List name"
+msgstr "Nome lista"
+
+#: src/views/auth/login/index.tsx:31
+msgid "Login | kan.bn"
+msgstr "Login | kan.bn"
+
+#: src/components/UserMenu.tsx:136
+msgid "Logout"
+msgstr "Esci"
+
+#: src/components/AuthForm.tsx:337
+msgid "magic link"
+msgstr "link magico"
+
+#: src/views/members/index.tsx:148
+#: src/views/card/index.tsx:251
+#: src/views/board/components/NewCardForm.tsx:290
+#: src/views/board/components/Filters.tsx:93
+#: src/components/SideNavigation.tsx:44
+msgid "Members"
+msgstr "Membri"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/members/index.tsx:144
+msgid "Members | {0}"
+msgstr "Membri | {0}"
+
+#: src/views/home/components/Pricing.tsx:14
+msgid "Monthly"
+msgstr "Mensile"
+
+#: src/views/card/components/ActivityList.tsx:81
+msgid "moved the card from <0>{fromList}0> to<1>{toList}1>"
+msgstr "ha spostato la scheda da <0>{fromList}0> a<1>{toList}1>"
+
+#: src/views/card/components/ActivityList.tsx:55
+msgid "moved the card to another list"
+msgstr "ha spostato la scheda in un'altra lista"
+
+#: src/views/boards/components/NewBoardForm.tsx:63
+#: src/components/LabelForm.tsx:134
+msgid "Name"
+msgstr "Nome"
+
+#: src/components/FeedbackButton.tsx:116
+msgid "Need help?"
+msgstr "Hai bisogno di aiuto?"
+
+#: src/views/boards/index.tsx:52
+msgid "New"
+msgstr "Nuovo"
+
+#: src/views/boards/components/NewBoardForm.tsx:49
+msgid "New board"
+msgstr "Nuova bacheca"
+
+#: src/views/board/components/NewCardForm.tsx:237
+msgid "New card"
+msgstr "Nuova carta"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:322
+msgid "New import"
+msgstr "Nuova importazione"
+
+#: src/components/LabelForm.tsx:118
+msgid "New label"
+msgstr "Nuova etichetta"
+
+#: src/views/board/index.tsx:296
+#: src/views/board/components/NewListForm.tsx:112
+msgid "New list"
+msgstr "Nuova lista"
+
+#: src/components/NewWorkspaceForm.tsx:62
+msgid "New workspace"
+msgstr "Nuovo spazio di lavoro"
+
+#: src/views/boards/components/BoardsList.tsx:35
+msgid "No boards"
+msgstr "Nessuna bacheca"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:242
+msgid "No boards found"
+msgstr "Nessuna bacheca trovata"
+
+#: src/views/home/index.tsx:85
+msgid "No credit card required"
+msgstr "Nessuna carta di credito richiesta"
+
+#: src/views/board/index.tsx:316
+msgid "No lists"
+msgstr "Nessuna lista"
+
+#: src/views/settings/index.tsx:263
+msgid "Once you delete your account, there is no going back. This action cannot be undone."
+msgstr "Una volta eliminato il tuo account, non si può tornare indietro. Questa azione non può essere annullata."
+
+#: src/views/settings/index.tsx:245
+msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
+msgstr "Una volta eliminata l'area di lavoro, non si può tornare indietro. Questa azione non può essere annullata."
+
+#: src/components/AuthForm.tsx:279
+msgid "or"
+msgstr "o"
+
+#: src/views/home/components/Features.tsx:94
+msgid "Organize and find cards quickly with powerful filtering tools."
+msgstr "Organizza e trova le schede rapidamente con potenti strumenti di filtraggio."
+
+#: src/views/home/components/Pricing.tsx:73
+msgid "Own your data"
+msgstr "Possiedi i tuoi dati"
+
+#: src/views/home/components/Pricing.tsx:101
+msgid "Payment frequency"
+msgstr "Frequenza di pagamento"
+
+#: src/views/members/index.tsx:107
+msgid "Pending"
+msgstr "In attesa"
+
+#: src/views/home/components/Pricing.tsx:15
+#: src/views/home/components/Pricing.tsx:20
+msgid "per user/month"
+msgstr "per utente/mese"
+
+#: src/components/AuthForm.tsx:305
+msgid "Please enter a valid email address"
+msgstr "Inserisci un indirizzo email valido"
+
+#: src/components/AuthForm.tsx:293
+msgid "Please enter a valid name"
+msgstr "Inserisci un nome valido"
+
+#: src/components/AuthForm.tsx:318
+msgid "Please enter a valid password"
+msgstr "Inserisci una password valida"
+
+#: src/views/settings/components/Avatar.tsx:55
+msgid "Please select a file to upload."
+msgstr "Seleziona un file da caricare."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:55
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:46
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
+#: src/views/settings/components/Avatar.tsx:38
+#: src/views/settings/components/Avatar.tsx:96
+#: src/views/members/components/DeleteMemberConfirmation.tsx:28
+#: src/views/card/index.tsx:116
+#: src/views/card/components/NewCommentForm.tsx:31
+#: src/views/card/components/MemberSelector.tsx:80
+#: src/views/card/components/ListSelector.tsx:53
+#: src/views/card/components/LabelSelector.tsx:73
+#: src/views/card/components/DeleteCommentConfirmation.tsx:45
+#: src/views/card/components/DeleteCardConfirmation.tsx:52
+#: src/views/card/components/Comment.tsx:62
+#: src/views/boards/components/ImportBoardsForm.tsx:205
+#: src/views/board/index.tsx:133
+#: src/views/board/index.tsx:189
+#: src/views/board/components/VisibilityButton.tsx:53
+#: src/views/board/components/UpdateBoardSlugForm.tsx:72
+#: src/views/board/components/NewListForm.tsx:78
+#: src/views/board/components/NewCardForm.tsx:128
+#: src/components/NewWorkspaceForm.tsx:39
+#: src/components/FeedbackButton.tsx:46
+msgid "Please try again later, or contact customer support."
+msgstr "Riprova più tardi o contatta l'assistenza clienti."
+
+#: src/views/home/components/Pricing.tsx:85
+#: src/views/home/components/Header.tsx:15
+#: src/views/home/components/Footer.tsx:50
+msgid "Pricing"
+msgstr "Prezzi"
+
+#: src/views/home/components/Pricing.tsx:56
+msgid "Priority email support"
+msgstr "Supporto email prioritario"
+
+#: src/views/home/components/Footer.tsx:42
+msgid "Privacy policy"
+msgstr "Informativa sulla privacy"
+
+#: src/views/board/components/VisibilityButton.tsx:73
+msgid "Private"
+msgstr "Privato"
+
+#: src/views/settings/components/Avatar.tsx:24
+msgid "Profile image updated"
+msgstr "Immagine del profilo aggiornata"
+
+#: src/views/settings/index.tsx:118
+msgid "Profile picture"
+msgstr "Immagine del profilo"
+
+#: src/views/board/components/VisibilityButton.tsx:68
+msgid "Public"
+msgstr "Pubblico"
+
+#: src/views/home/components/Faqs.tsx:147
+msgid "Questions?"
+msgstr "Domande?"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:58
+msgid "Remove"
+msgstr "Rimuovi"
+
+#: src/views/members/index.tsx:120
+msgid "Remove member"
+msgstr "Rimuovi membro"
+
+#: src/views/card/components/ActivityList.tsx:57
+msgid "removed a label from the card"
+msgstr "ha rimosso un'etichetta dalla scheda"
+
+#: src/views/card/components/ActivityList.tsx:59
+msgid "removed a member from the card"
+msgstr "ha rimosso un membro dalla scheda"
+
+#: src/views/card/components/ActivityList.tsx:118
+msgid "removed label <0>{label}0>"
+msgstr "ha rimosso l'etichetta <0>{label}0>"
+
+#: src/views/home/components/Footer.tsx:113
+msgid "Resources"
+msgstr "Risorse"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:49
+msgid "Revoke"
+msgstr "Revoca"
+
+#: src/views/home/components/Header.tsx:13
+#: src/views/home/components/Footer.tsx:36
+msgid "Roadmap"
+msgstr "Roadmap"
+
+#: src/views/members/index.tsx:178
+msgid "Role"
+msgstr "Ruolo"
+
+#: src/views/home/components/Pricing.tsx:72
+msgid "Run on your own infrastructure"
+msgstr "Esegui sulla tua infrastruttura"
+
+#: src/views/card/components/Comment.tsx:163
+msgid "Save"
+msgstr "Salva"
+
+#: src/views/home/components/Features.tsx:109
+msgid "Save time with reusable board templates."
+msgstr "Risparmia tempo con modelli di bacheca riutilizzabili."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:274
+msgid "Select all"
+msgstr "Seleziona tutto"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Select source"
+msgstr "Seleziona fonte"
+
+#: src/views/home/components/Pricing.tsx:64
+msgid "Self Host"
+msgstr "Self Host"
+
+#: src/views/home/index.tsx:81
+msgid "Self host with Github"
+msgstr "Self host con Github"
+
+#: src/views/card/components/ActivityList.tsx:89
+msgid "self-assigned the card"
+msgstr "si è auto-assegnato la scheda"
+
+#: src/components/FeedbackButton.tsx:137
+msgid "Send"
+msgstr "Invia"
+
+#: src/views/settings/index.tsx:112
+#: src/components/SideNavigation.tsx:49
+msgid "Settings"
+msgstr "Impostazioni"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/settings/index.tsx:108
+msgid "Settings | {0}"
+msgstr "Impostazioni | {0}"
+
+#: src/views/home/components/Header.tsx:100
+#: src/views/home/components/Header.tsx:138
+msgid "Sign in"
+msgstr "Accedi"
+
+#: src/views/auth/signup/index.tsx:32
+#: src/views/auth/signup/index.tsx:57
+msgid "Sign up | kan.bn"
+msgstr "Registrati | kan.bn"
+
+#: src/views/auth/signup/index.tsx:42
+msgid "Sign up disabled"
+msgstr "Registrazione disabilitata"
+
+#: src/views/auth/signup/index.tsx:45
+msgid "Sign up is currently disabled. Please try again later."
+msgstr "La registrazione è attualmente disabilitata. Riprova più tardi."
+
+#: src/components/AuthForm.tsx:334
+msgid "Sign up with "
+msgstr "Registrati con "
+
+#: src/views/home/components/Pricing.tsx:89
+msgid "Simple pricing"
+msgstr "Prezzi semplici"
+
+#: src/views/home/components/Features.tsx:132
+msgid "Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done."
+msgstr "Gestione delle attività semplice e visuale che funziona. Trascina e rilascia le schede, collabora con il tuo team e ottieni di più."
+
+#: src/views/home/index.tsx:37
+msgid "Star on Github"
+msgstr "Metti una stella su Github"
+
+#: src/components/AuthForm.tsx:188
+#: src/components/AuthForm.tsx:205
+msgid "Success"
+msgstr "Operazione riuscita"
+
+#: src/views/home/components/Pricing.tsx:57
+msgid "Support the development of the project"
+msgstr "Sostieni lo sviluppo del progetto"
+
+#: src/components/UserMenu.tsx:98
+msgid "System"
+msgstr "Sistema"
+
+#: src/views/home/components/Pricing.tsx:46
+msgid "Teams"
+msgstr "Team"
+
+#: src/views/home/components/Features.tsx:108
+msgid "Templates"
+msgstr "Template"
+
+#: src/views/home/components/Footer.tsx:41
+msgid "Terms of service"
+msgstr "Termini di servizio"
+
+#: src/components/FeedbackButton.tsx:39
+msgid "Thank you for your feedback!"
+msgstr "Grazie per il tuo feedback!"
+
+#: src/views/home/components/Faqs.tsx:33
+msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
+msgstr "La principale differenza tra Kan e Trello è che Kan è open source, permettendo a chiunque di visualizzare, modificare e contribuire al nostro codice. La nostra offerta cloud non impone inoltre alcuna restrizione sulle funzionalità per uso individuale, mentre Trello blocca funzionalità di base come il numero di bacheche che puoi creare dietro un paywall."
+
+#: src/views/home/index.tsx:65
+msgid "The open source <0/> alternative to Trello"
+msgstr "L'alternativa open source <0/> a Trello"
+
+#. placeholder {0}: isPublic ? "public" : "private"
+#: src/views/board/components/VisibilityButton.tsx:46
+msgid "The visibility of your board has been set to {0}."
+msgstr "La visibilità della tua bacheca è stata impostata su {0}."
+
+#: src/components/UserMenu.tsx:85
+msgid "Theme"
+msgstr "Tema"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:50
+msgid "They won't be able to access this workspace."
+msgstr "Non potranno accedere a questo spazio di lavoro."
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:68
+#: src/views/card/components/DeleteCardConfirmation.tsx:78
+msgid "This action can't be undone."
+msgstr "Questa azione non può essere annullata."
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:135
+msgid "This board URL has already been taken"
+msgstr "Questo URL della bacheca è già stato utilizzato"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:70
+msgid "This will result in the permanent deletion of all data associated with this workspace."
+msgstr "Questo comporterà l'eliminazione permanente di tutti i dati associati a questo spazio di lavoro."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:60
+msgid "This will result in the permanent deletion of all data associated with your account."
+msgstr "Questo comporterà l'eliminazione permanente di tutti i dati associati al tuo account."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:123
+msgid "This workspace username has already been taken"
+msgstr "Questo nome utente dell'area di lavoro è già stato utilizzato"
+
+#: src/views/home/components/Header.tsx:73
+msgid "Toggle menu"
+msgstr "Attiva/disattiva menu"
+
+#: src/views/home/components/Features.tsx:104
+msgid "Track all card changes with detailed activity history."
+msgstr "Tieni traccia di tutte le modifiche alle schede con una cronologia dettagliata delle attività."
+
+#: src/views/settings/index.tsx:69
+msgid "Trello disconnected"
+msgstr "Trello disconnesso"
+
+#: src/views/home/components/Features.tsx:88
+msgid "Trello imports"
+msgstr "Importazioni da Trello"
+
+#: src/views/card/components/NewCommentForm.tsx:30
+msgid "Unable to add comment"
+msgstr "Impossibile aggiungere il commento"
+
+#: src/views/board/components/NewCardForm.tsx:125
+msgid "Unable to create card"
+msgstr "Impossibile creare la scheda"
+
+#: src/views/board/components/NewListForm.tsx:77
+msgid "Unable to create list"
+msgstr "Impossibile creare la lista"
+
+#: src/components/NewWorkspaceForm.tsx:38
+msgid "Unable to create workspace"
+msgstr "Impossibile creare lo spazio di lavoro"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:51
+msgid "Unable to delete card"
+msgstr "Impossibile eliminare la scheda"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:44
+msgid "Unable to delete comment"
+msgstr "Impossibile eliminare il commento"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:27
+msgid "Unable to remove member"
+msgstr "Impossibile rimuovere il membro"
+
+#: src/components/FeedbackButton.tsx:45
+msgid "Unable to send feedback"
+msgstr "Impossibile inviare feedback"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:71
+msgid "Unable to update board URL"
+msgstr "Impossibile aggiornare l'URL della bacheca"
+
+#: src/views/board/components/VisibilityButton.tsx:52
+msgid "Unable to update board visibility"
+msgstr "Impossibile aggiornare la visibilità della bacheca"
+
+#: src/views/card/index.tsx:115
+#: src/views/board/index.tsx:188
+msgid "Unable to update card"
+msgstr "Impossibile aggiornare la scheda"
+
+#: src/views/card/components/Comment.tsx:61
+msgid "Unable to update comment"
+msgstr "Impossibile aggiornare il commento"
+
+#: src/views/card/components/LabelSelector.tsx:72
+msgid "Unable to update labels"
+msgstr "Impossibile aggiornare le etichette"
+
+#: src/views/card/components/ListSelector.tsx:52
+#: src/views/board/index.tsx:132
+msgid "Unable to update list"
+msgstr "Impossibile aggiornare la lista"
+
+#: src/views/card/components/MemberSelector.tsx:79
+msgid "Unable to update members"
+msgstr "Impossibile aggiornare i membri"
+
+#: src/views/card/components/ActivityList.tsx:102
+msgid "unassigned <0>{memberName}0> from the card"
+msgstr "ha rimosso l'assegnazione di <0>{memberName}0> dalla scheda"
+
+#: src/views/card/components/ActivityList.tsx:99
+msgid "unassigned themselves from the card"
+msgstr "si è rimosso dall'assegnazione della scheda"
+
+#: src/views/home/components/Pricing.tsx:41
+msgid "Unlimited activity log"
+msgstr "Registro attività illimitato"
+
+#: src/views/home/components/Pricing.tsx:37
+msgid "Unlimited boards"
+msgstr "Bacheche illimitate"
+
+#: src/views/home/components/Cta.tsx:57
+msgid "Unlimited boards, unlimited lists, unlimited cards. No credit card required."
+msgstr "Bacheche illimitate, liste illimitate, schede illimitate. Nessuna carta di credito richiesta."
+
+#: src/views/home/components/Pricing.tsx:39
+msgid "Unlimited cards"
+msgstr "Schede illimitate"
+
+#: src/views/home/components/Pricing.tsx:40
+msgid "Unlimited comments"
+msgstr "Commenti illimitati"
+
+#: src/views/home/components/Pricing.tsx:38
+msgid "Unlimited lists"
+msgstr "Liste illimitate"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:154
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:82
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
+#: src/views/board/components/UpdateBoardSlugForm.tsx:166
+msgid "Update"
+msgstr "Aggiorna"
+
+#: src/components/LabelForm.tsx:233
+msgid "Update label"
+msgstr "Aggiorna etichetta"
+
+#: src/views/card/components/ActivityList.tsx:54
+msgid "updated the description"
+msgstr "ha aggiornato la descrizione"
+
+#: src/views/card/components/ActivityList.tsx:53
+msgid "updated the title"
+msgstr "ha aggiornato il titolo"
+
+#: src/views/card/components/ActivityList.tsx:73
+msgid "updated the title to <0>{toTitle}0>"
+msgstr "ha aggiornato il titolo in <0>{toTitle}0>"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:52
+msgid "Upgrade"
+msgstr "Aggiorna"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:36
+msgid "URL can only contain letters, numbers, and hyphens"
+msgstr "L'URL può contenere solo lettere, numeri e trattini"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:34
+msgid "URL cannot exceed 24 characters"
+msgstr "L'URL non può superare i 24 caratteri"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:32
+msgid "URL must be at least 3 characters long"
+msgstr "L'URL deve contenere almeno 3 caratteri"
+
+#: src/views/members/index.tsx:172
+msgid "User"
+msgstr "Utente"
+
+#: src/views/settings/index.tsx:232
+msgid "View and manage your API keys."
+msgstr "Visualizza e gestisci le tue chiavi API."
+
+#: src/views/settings/index.tsx:171
+msgid "View and manage your billing and subscription."
+msgstr "Visualizza e gestisci la tua fatturazione e abbonamento."
+
+#: src/views/home/components/Pricing.tsx:67
+msgid "View docs"
+msgstr "Visualizza documenti"
+
+#: src/views/home/components/Features.tsx:147
+msgid "View our roadmap."
+msgstr "Visualizza la nostra roadmap."
+
+#: src/views/board/components/VisibilityButton.tsx:91
+msgid "Visibility"
+msgstr "Visibilità"
+
+#: src/views/home/components/Faqs.tsx:94
+msgid "We are using the <0>AGPL-3.0 license0>."
+msgstr "Utilizziamo la <0>licenza AGPL-3.00>."
+
+#: src/views/home/components/Features.tsx:145
+msgid "We're just getting started. "
+msgstr "Siamo solo all'inizio. "
+
+#: src/views/auth/login/index.tsx:41
+msgid "Welcome back"
+msgstr "Bentornato"
+
+#: src/views/home/components/Faqs.tsx:91
+msgid "What license are you using?"
+msgstr "Quale licenza state utilizzando?"
+
+#: src/views/home/components/Faqs.tsx:30
+msgid "What's the difference between Kan and Trello?"
+msgstr "Qual è la differenza tra Kan e Trello?"
+
+#: src/views/home/components/Faqs.tsx:25
+msgid "When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \"Jira Lite\". This project is our attempt to recapture the original magic of Trello's simplicity, in open source."
+msgstr "Quando Trello fu lanciato nel 2011, stupì tutti con la sua semplicità attentamente progettata, ma col tempo (e con l'atlassificazione) ha perso la sua magia trasformandosi in qualcosa di più simile a \"Jira Lite\". Questo progetto è il nostro tentativo di recuperare la magia originale della semplicità di Trello, in versione open source."
+
+#: src/views/home/components/Faqs.tsx:22
+msgid "Why make an open source Trello?"
+msgstr "Perché creare un Trello open source?"
+
+#: src/views/board/index.tsx:239
+msgid "Workspace"
+msgstr "Spazio di lavoro"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:26
+msgid "Workspace deleted"
+msgstr "Spazio di lavoro eliminato"
+
+#: src/views/settings/index.tsx:147
+msgid "Workspace description"
+msgstr "Descrizione dello spazio di lavoro"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:28
+msgid "Workspace description cannot exceed 280 characters"
+msgstr "La descrizione dell'area di lavoro non può superare i 280 caratteri"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:25
+msgid "Workspace description must be at least 3 characters long"
+msgstr "La descrizione dell'area di lavoro deve contenere almeno 3 caratteri"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:48
+msgid "Workspace description updated"
+msgstr "Descrizione dell'area di lavoro aggiornata"
+
+#: src/views/home/components/Pricing.tsx:54
+#: src/views/home/components/Features.tsx:83
+msgid "Workspace members"
+msgstr "Membri del workspace"
+
+#: src/views/settings/index.tsx:130
+#: src/components/NewWorkspaceForm.tsx:78
+msgid "Workspace name"
+msgstr "Nome dello spazio di lavoro"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:15
+msgid "Workspace name cannot exceed 24 characters"
+msgstr "Il nome dello spazio di lavoro non può superare i 24 caratteri"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:14
+msgid "Workspace name must be at least 3 characters long"
+msgstr "Il nome dello spazio di lavoro deve contenere almeno 3 caratteri"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:43
+msgid "Workspace name updated"
+msgstr "Nome dello spazio di lavoro aggiornato"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:60
+msgid "Workspace slug updated"
+msgstr "Slug dell'area di lavoro aggiornato"
+
+#: src/views/settings/index.tsx:138
+msgid "Workspace URL"
+msgstr "URL dello spazio di lavoro"
+
+#: src/views/home/components/Pricing.tsx:19
+msgid "Yearly"
+msgstr "Annuale"
+
+#: src/views/home/components/Faqs.tsx:86
+msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
+msgstr "Sì, offriamo un piano gratuito per sempre per uso individuale. Nessuna restrizione, nessun paywall, nessun limite."
+
+#: src/views/home/components/Faqs.tsx:67
+msgid "You can get a custom workspace URL, like <0>kan.bn/kan0>, by going into your <1>workspace settings1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
+msgstr "Puoi ottenere un URL personalizzato per il tuo workspace, come <0>kan.bn/kan0>, accedendo alle tue <1>impostazioni del workspace1> e acquistando un abbonamento pro. Tutti gli abbonamenti contribuiscono a finanziare lo sviluppo del progetto!"
+
+#: src/views/home/components/Faqs.tsx:111
+msgid "You can invite team members by clicking the \"Invite\" button in the top right corner of the <0>members page0> and entering their email address. They will receive an email with a link to join the workspace."
+msgstr "Puoi invitare i membri del team cliccando sul pulsante \"Invita\" nell'angolo in alto a destra della <0>pagina dei membri0> e inserendo il loro indirizzo email. Riceveranno un'email con un link per unirsi al workspace."
+
+#: src/views/home/components/Faqs.tsx:127
+msgid "You can self-host by following the instructions in our <0>repo0>."
+msgstr "Puoi effettuare il self-hosting seguendo le istruzioni nel nostro <0>repo0>."
+
+#: src/components/AuthForm.tsx:206
+msgid "You have been logged in successfully."
+msgstr "Hai effettuato l'accesso con successo."
+
+#: src/components/AuthForm.tsx:189
+msgid "You have been signed up successfully."
+msgstr "Ti sei registrato con successo."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
+msgid "Your account has been deleted."
+msgstr "Il tuo account è stato eliminato."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:192
+msgid "Your boards have been imported."
+msgstr "Le tue bacheche sono state importate."
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:42
+msgid "Your display name has been updated."
+msgstr "Il tuo nome visualizzato è stato aggiornato."
+
+#: src/views/settings/components/Avatar.tsx:25
+msgid "Your profile image has been updated."
+msgstr "La tua immagine del profilo è stata aggiornata."
+
+#: src/views/settings/index.tsx:70
+msgid "Your Trello account has been disconnected."
+msgstr "Il tuo account Trello è stato disconnesso."
+
+#: src/views/settings/index.tsx:214
+msgid "Your Trello account is connected."
+msgstr "Il tuo account Trello è connesso."
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:49
+msgid "Your workspace description has been updated."
+msgstr "La descrizione della tua area di lavoro è stata aggiornata."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:27
+msgid "Your workspace has been deleted."
+msgstr "Il tuo spazio di lavoro è stato eliminato."
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:44
+msgid "Your workspace name has been updated."
+msgstr "Il nome del tuo spazio di lavoro è stato aggiornato."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:61
+msgid "Your workspace slug has been updated."
+msgstr "Lo slug della tua area di lavoro è stato aggiornato."
diff --git a/apps/web/src/locales/it/messages.ts b/apps/web/src/locales/it/messages.ts
new file mode 100644
index 00000000..de6c3d4a
--- /dev/null
+++ b/apps/web/src/locales/it/messages.ts
@@ -0,0 +1 @@
+/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"X0N0PA\":[\" (modificato)\"],\"lGjicL\":[\", o consulta i nostri\"],\"JArWcF\":[[\"0\"],\" | \",[\"1\"]],\"CJukzS\":[[\"0\"],\" etichette\"],\"0xWkkH\":[[\"boardCount\",\"plural\",{\"one\":[\"Importa bacheca (1)\"],\"other\":[\"Importa bacheche (\",[\"boardCount\"],\")\"]}]],\"qrT8WB\":[\"#1 Hacker News\"],\"zMlxCA\":[\"1 utente\"],\"d7XqZJ\":[\"A powerful, flexible kanban app that helps you organise work,\\n track progress, and deliver results—all in one place.\"],\"/rn4RE\":[\"Un'app kanban potente e flessibile che ti aiuta a organizzare il lavoro, monitorare i progressi e ottenere risultati, tutto in un unico posto.\"],\"TKFUnX\":[\"Account eliminato\"],\"XJOV1Y\":[\"Attività\"],\"tMYIu7\":[\"Registri attività\"],\"B3xxao\":[\"Aggiungi una carta\"],\"1ZVGyT\":[\"Aggiungi un commento...\"],\"/Blkmk\":[\"Aggiungi descrizione... (digita '/' per aprire i comandi)\"],\"lyqwgn\":[\"Aggiungi etichetta\"],\"PCIlOO\":[\"Aggiungi membro\"],\"T21jY/\":[\"ha aggiunto un'etichetta alla carta\"],\"rs7L54\":[\"ha aggiunto un membro alla carta\"],\"SKqXzW\":[\"ha aggiunto l'etichetta <0>\",[\"label\"],\"0>\"],\"3pIq39\":[\"Ruoli amministratore\"],\"lSNkXg\":[\"Tutti i posti sono gratuiti durante la beta fino al 1° settembre!\"],\"UQbwrz\":[\"Tutti i sistemi operativi\"],\"WnEwDO\":[\"Hai già un account? <0><1>Accedi1>0>\"],\"WmPhYW\":[\"Si è verificato un errore durante la disconnessione del tuo account Trello.\"],\"5h8ooz\":[\"Chiavi API\"],\"j2+d/o\":[\"Riferimento API\"],\"lo8xBK\":[\"Sei sicuro di voler rimuovere \",[\"entityLabel\"],\"?\"],\"BhDZlc\":[\"Sei sicuro di voler eliminare lo spazio di lavoro \",[\"0\"],\"?\"],\"ZT4Khw\":[\"Sei sicuro di voler eliminare questa carta?\"],\"PRjvDT\":[\"Sei sicuro di voler eliminare questo commento?\"],\"74F7N/\":[\"Sei sicuro di voler eliminare il tuo account?\"],\"EEQaqX\":[\"ha assegnato <0>\",[\"memberName\"],\"0> alla carta\"],\"R+w/Va\":[\"Fatturazione\"],\"9wdpwp\":[\"Portale di fatturazione\"],\"QD8opX\":[\"Bacheca\"],\"jwI32v\":[\"Bacheca non trovata\"],\"Xid3K6\":[\"L'URL della bacheca può contenere solo lettere, numeri e trattini\"],\"gv5kbo\":[\"L'URL della bacheca non può superare i 60 caratteri\"],\"8+BY11\":[\"URL della bacheca copiato negli appunti\"],\"TmvrjU\":[\"L'URL della bacheca deve contenere almeno 3 caratteri\"],\"qzdST2\":[\"Visibilità bacheca\"],\"PTzsxH\":[\"Visibilità della bacheca aggiornata\"],\"8TveY+\":[\"Bacheche\"],\"seaklU\":[\"Bacheche | \",[\"0\"]],\"dEgA5A\":[\"Annulla\"],\"fEY2vP\":[\"Carta non trovata\"],\"ZH7TVS\":[\"Titolo della carta\"],\"Bosey8\":[\"Cambia la lingua dell'app.\"],\"5IXWmO\":[\"Controlla la tua casella di posta\"],\"u8JHrO\":[\"Cancella filtri\"],\"RRn9jf\":[\"Clicca sul link che abbiamo inviato a \",[\"magicLinkRecipient\"],\" per accedere.\"],\"EvArWh\":[\"Collabora senza problemi con il tuo team.\"],\"AUYALh\":[\"Prossimamente\"],\"VbyRUy\":[\"Commenti\"],\"7i8j3G\":[\"Azienda\"],\"cAgBMh\":[\"Controllo e proprietà completi:\"],\"8ZoISG\":[\"Conferma modifica URL\"],\"nk7caK\":[\"Connetti Trello\"],\"sDLCvT\":[\"Connetti i tuoi strumenti preferiti per semplificare il tuo flusso di lavoro.\"],\"5eZwRW\":[\"Connetti il tuo account Trello per importare le bacheche.\"],\"jfC/xh\":[\"Contatti\"],\"Bhgd0l\":[\"Contattaci\"],\"J2Wbjt\":[\"Continua con \"],\"gkzAEM\":[\"Continua con \",[\"0\"]],\"va/3u1\":[\"Controlla chi può visualizzare e modificare le tue bacheche.\"],\"vgdzLf\":[\"Crea un altro\"],\"uXGLuq\":[\"Create API key\"],\"Pa9/o1\":[\"Create API keys to access the Kan API.\"],\"9QmxLI\":[\"Crea bacheca\"],\"dsLT3m\":[\"Crea carta\"],\"QtACvI\":[\"Crea etichetta\"],\"XTKtey\":[\"Crea lista\"],\"poDo/D\":[\"Crea nuova bacheca\"],\"okpxfB\":[\"Crea nuova chiave\"],\"0+0/3e\":[\"Crea nuova etichetta\"],\"aWlSc/\":[\"Crea nuova lista\"],\"FdtSNC\":[\"Crea spazio di lavoro\"],\"f8lDFq\":[\"ha creato la carta\"],\"GAD3Dx\":[\"Dominio personalizzato\"],\"91W07W\":[\"Gli URL personalizzati sono una funzionalità premium. Sarai indirizzato all'aggiornamento del tuo account.\"],\"pvnfJD\":[\"Scuro\"],\"cnGeoo\":[\"Elimina\"],\"ZDGm40\":[\"Elimina account\"],\"tmpW+w\":[\"Elimina bacheca\"],\"nabda1\":[\"Elimina carta\"],\"njJFtc\":[\"Elimina commento\"],\"lYT7pQ\":[\"Elimina lista\"],\"kYu0eF\":[\"Elimina spazio di lavoro\"],\"YBBifR\":[\"Disconnetti Trello\"],\"1sRmLC\":[\"Discuti e collabora sulle schede.\"],\"pfa8F0\":[\"Nome visualizzato\"],\"MlyjJu\":[\"Il nome visualizzato non può superare i 280 caratteri\"],\"KFJgmZ\":[\"Il nome visualizzato deve contenere almeno 3 caratteri\"],\"x8GeCD\":[\"Nome visualizzato aggiornato\"],\"evj0lK\":[\"Offrite un piano gratuito?\"],\"JyXBgS\":[\"documenti\"],\"TbjyhA\":[\"Documenti\"],\"TvY/XA\":[\"Documentazione\"],\"vUr5JT\":[\"Non hai un account? <0><1>Registrati1>0>\"],\"tIdipJ\":[\"Modifica URL della bacheca\"],\"rF8SEQ\":[\"Modifica commento\"],\"dgr4Kq\":[\"Modifica etichetta\"],\"b/LfJo\":[\"email\"],\"O3oNi5\":[\"Email\"],\"xRPn3U\":[\"Inserisci il tuo indirizzo email\"],\"n9V+ps\":[\"Inserisci il tuo nome\"],\"NgaR6B\":[\"Inserisci la tua password\"],\"bqAQaT\":[\"Errore durante l'eliminazione dell'account\"],\"9s9O5h\":[\"Errore durante l'eliminazione dell'area di lavoro\"],\"lKAvEd\":[\"Errore durante la disconnessione da Trello\"],\"sVBn4K\":[\"Errore durante l'aggiornamento del nome visualizzato\"],\"4ix5kl\":[\"Errore durante l'aggiornamento dell'immagine del profilo\"],\"CkVV1t\":[\"Errore durante l'aggiornamento della descrizione dell'area di lavoro\"],\"LoUCpj\":[\"Errore durante l'aggiornamento del nome dell'area di lavoro\"],\"x0kMO/\":[\"Errore durante l'aggiornamento dell'URL dell'area di lavoro\"],\"CYWHT+\":[\"Errore durante il caricamento dell'immagine del profilo\"],\"8iP0S8\":[\"Tutto ciò che è incluso nel piano gratuito, più:\"],\"ANyn0x\":[\"Tutto ciò di cui hai bisogno, gratis per sempre. Bacheche illimitate, liste illimitate, schede illimitate. Aggiorna in qualsiasi momento.\"],\"YtUfwW\":[\"Accesso con \",[\"0\"],\" fallito. Riprova.\"],\"aJ4pMe\":[\"FAQ\"],\"PpZkda\":[\"Funzionalità\"],\"YirHq7\":[\"Feedback\"],\"2roTVj\":[\"Feedback inviato\"],\"o7J4JM\":[\"Filtra\"],\"iFxrHK\":[\"Trova risposte alle domande comuni sul progetto. Non trovi quello che stai cercando? Non esitare a <0>contattarci0>.\"],\"aj40Mw\":[\"Per la sostenibilità a lungo termine, riconosciamo che tutti i buoni progetti open source necessitano di una fonte di entrate. La nostra proviene dall'offerta cloud a pagamento per workspace con più utenti (gratuita durante la beta) e per slug di workspace personalizzati. Non c'è alcun obbligo di utilizzarla, e puoi ospitare autonomamente il software sulla tua infrastruttura gratuitamente.\"],\"2POOFK\":[\"Gratuito\"],\"gpfJ3v\":[\"Gratuito, per sempre\"],\"ZDIydz\":[\"Inizia ora\"],\"c3b0B0\":[\"Inizia ora\"],\"YQqv2e\":[\"Inizia creando una nuova bacheca\"],\"zC8Whw\":[\"Inizia creando una nuova lista\"],\"oW13KZ\":[\"Inizia gratuitamente oggi\"],\"+OhFss\":[\"Inizia gratuitamente, senza limiti di utilizzo. Per la collaborazione, passa a un piano adatto alle dimensioni del tuo team.\"],\"rD6UIt\":[\"Inizia su Cloud\"],\"7hktsm\":[\"Primi passi\"],\"RkXlPZ\":[\"GitHub\"],\"UveK6V\":[\"Vai all'app\"],\"LrcnbT\":[\"Ospita Kan sulla tua infrastruttura. Ideale per organizzazioni che necessitano di controllo completo sui propri dati.\"],\"WI4eGo\":[\"Come posso ottenere un URL personalizzato?\"],\"yV7o5I\":[\"Come posso importare le mie bacheche Trello?\"],\"nol/Fb\":[\"Come posso invitare i membri del team?\"],\"KuSt9W\":[\"Come posso effettuare il self-hosting?\"],\"UeDFpo\":[\"Come viene finanziato il progetto?\"],\"2liqDZ\":[\"Riconosco che tutti i dati del mio account saranno eliminati permanentemente e voglio procedere.\"],\"2Py5S/\":[\"Riconosco che tutti i dati dell'area di lavoro saranno eliminati permanentemente e voglio procedere.\"],\"F/vB2g\":[\"Idee per migliorare questa pagina...\"],\"l3s5ri\":[\"Importa\"],\"2MPcep\":[\"Importazione completata\"],\"BEVzjL\":[\"Importazione fallita\"],\"rRM7r0\":[\"Importa le tue bacheche Trello e parti subito.\"],\"xMn+V9\":[\"Importazione da Trello\"],\"g2xBxu\":[\"Importare le tue bacheche Trello in Kan è facile. Puoi seguire la nostra guida passo-passo <0>qui0>.\"],\"6mbe4b\":[\"Privati\"],\"nbfdhU\":[\"Integrazioni\"],\"MFKlMB\":[\"Invita\"],\"+djOzj\":[\"Invita membro\"],\"aWDhU5\":[\"Kanban è migliore con un team. Perfetto per piccoli team in crescita che cercano di collaborare.\"],\"Xjj/kS\":[\"Kanban reinventato\"],\"JbXXUW\":[\"Tieni presente che questa azione è irreversibile.\"],\"h8DugX\":[\"Etichette\"],\"+nvZ6j\":[\"Etichette & Filtri\"],\"vXIe7J\":[\"Lingua\"],\"vifyyw\":[\"Legale\"],\"iQmbPb\":[\"Licenza\"],\"1njn7W\":[\"Chiaro\"],\"edWbV6\":[\"Link copiato\"],\"2BBAbc\":[\"Lista\"],\"zQX5Dj\":[\"Nome lista\"],\"N/bcWA\":[\"Login | kan.bn\"],\"nOhz3x\":[\"Esci\"],\"JnWJXY\":[\"link magico\"],\"wlQNTg\":[\"Membri\"],\"9u5BOr\":[\"Membri | \",[\"0\"]],\"+8Nek/\":[\"Mensile\"],\"EM/caO\":[\"ha spostato la scheda da <0>\",[\"fromList\"],\"0> a<1>\",[\"toList\"],\"1>\"],\"T7LJic\":[\"ha spostato la scheda in un'altra lista\"],\"6YtxFj\":[\"Nome\"],\"HBI6nY\":[\"Hai bisogno di aiuto?\"],\"isRobC\":[\"Nuovo\"],\"zDw80P\":[\"Nuova bacheca\"],\"pnrmSP\":[\"Nuova carta\"],\"WYwN1G\":[\"Nuova importazione\"],\"n1GRql\":[\"Nuova etichetta\"],\"Sb2gYF\":[\"Nuova lista\"],\"curoK5\":[\"Nuovo spazio di lavoro\"],\"DhLN1b\":[\"Nessuna bacheca\"],\"2Bu8xj\":[\"Nessuna bacheca trovata\"],\"OpNhRn\":[\"Nessuna carta di credito richiesta\"],\"hXMFoN\":[\"Nessuna lista\"],\"usVytm\":[\"Una volta eliminato il tuo account, non si può tornare indietro. Questa azione non può essere annullata.\"],\"dmKdk0\":[\"Una volta eliminata l'area di lavoro, non si può tornare indietro. Questa azione non può essere annullata.\"],\"BzEFor\":[\"o\"],\"ZqDqbi\":[\"Organizza e trova le schede rapidamente con potenti strumenti di filtraggio.\"],\"SPLN9O\":[\"Possiedi i tuoi dati\"],\"UbYdrA\":[\"Frequenza di pagamento\"],\"UbRKMZ\":[\"In attesa\"],\"oVBq1w\":[\"per utente/mese\"],\"OtjenF\":[\"Inserisci un indirizzo email valido\"],\"CJ3zUq\":[\"Inserisci un nome valido\"],\"7b2yuC\":[\"Inserisci una password valida\"],\"wPZBpR\":[\"Seleziona un file da caricare.\"],\"tyHiOa\":[\"Riprova più tardi o contatta l'assistenza clienti.\"],\"aHCEmh\":[\"Prezzi\"],\"ESClHO\":[\"Supporto email prioritario\"],\"ScJ9fj\":[\"Informativa sulla privacy\"],\"zwBp5t\":[\"Privato\"],\"0rPv1T\":[\"Immagine del profilo aggiornata\"],\"4XF0BB\":[\"Immagine del profilo\"],\"7d1a0d\":[\"Pubblico\"],\"1H5u1m\":[\"Domande?\"],\"t/YqKh\":[\"Rimuovi\"],\"99VIgC\":[\"Rimuovi membro\"],\"kQwvU8\":[\"ha rimosso un'etichetta dalla scheda\"],\"uck1tz\":[\"ha rimosso un membro dalla scheda\"],\"zdMPUq\":[\"ha rimosso l'etichetta <0>\",[\"label\"],\"0>\"],\"s+MGs7\":[\"Risorse\"],\"GXsAby\":[\"Revoca\"],\"/gaSVU\":[\"Roadmap\"],\"GDvlUT\":[\"Ruolo\"],\"vAR/I8\":[\"Esegui sulla tua infrastruttura\"],\"tfDRzk\":[\"Salva\"],\"MdwUGG\":[\"Risparmia tempo con modelli di bacheca riutilizzabili.\"],\"wgNoIs\":[\"Seleziona tutto\"],\"rYUZIe\":[\"Seleziona fonte\"],\"ppaRWv\":[\"Self Host\"],\"l2PIAy\":[\"Self host con Github\"],\"VXk54Y\":[\"si è auto-assegnato la scheda\"],\"JlFcis\":[\"Invia\"],\"Tz0i8g\":[\"Impostazioni\"],\"5wo3jF\":[\"Impostazioni | \",[\"0\"]],\"5lWFkC\":[\"Accedi\"],\"sUZo7y\":[\"Registrati | kan.bn\"],\"WRkpB1\":[\"Registrazione disabilitata\"],\"s6iE/c\":[\"La registrazione è attualmente disabilitata. Riprova più tardi.\"],\"6FDocz\":[\"Registrati con \"],\"m2nk0i\":[\"Prezzi semplici\"],\"sBhOFG\":[\"Gestione delle attività semplice e visuale che funziona. Trascina e rilascia le schede, collabora con il tuo team e ottieni di più.\"],\"R6pB8R\":[\"Metti una stella su Github\"],\"zzDlyQ\":[\"Operazione riuscita\"],\"wruKPE\":[\"Sostieni lo sviluppo del progetto\"],\"D+NlUC\":[\"Sistema\"],\"CAL6E9\":[\"Team\"],\"iTylMl\":[\"Template\"],\"UCLeG0\":[\"Termini di servizio\"],\"nhMhRr\":[\"Grazie per il tuo feedback!\"],\"lkz85l\":[\"La principale differenza tra Kan e Trello è che Kan è open source, permettendo a chiunque di visualizzare, modificare e contribuire al nostro codice. La nostra offerta cloud non impone inoltre alcuna restrizione sulle funzionalità per uso individuale, mentre Trello blocca funzionalità di base come il numero di bacheche che puoi creare dietro un paywall.\"],\"gUX7b+\":[\"L'alternativa open source <0/> a Trello\"],\"fQCrjt\":[\"La visibilità della tua bacheca è stata impostata su \",[\"0\"],\".\"],\"FEr96N\":[\"Tema\"],\"Yf9FAx\":[\"Non potranno accedere a questo spazio di lavoro.\"],\"3LDCpD\":[\"Questa azione non può essere annullata.\"],\"wY+6Ye\":[\"Questo URL della bacheca è già stato utilizzato\"],\"MeO/vH\":[\"Questo comporterà l'eliminazione permanente di tutti i dati associati a questo spazio di lavoro.\"],\"mwBdZ2\":[\"Questo comporterà l'eliminazione permanente di tutti i dati associati al tuo account.\"],\"kp6L3T\":[\"Questo nome utente dell'area di lavoro è già stato utilizzato\"],\"4gAX8s\":[\"Attiva/disattiva menu\"],\"eEQyz+\":[\"Tieni traccia di tutte le modifiche alle schede con una cronologia dettagliata delle attività.\"],\"zto8aj\":[\"Trello disconnesso\"],\"kxEs5t\":[\"Importazioni da Trello\"],\"T7DJ2k\":[\"Impossibile aggiungere il commento\"],\"zl1b97\":[\"Impossibile creare la scheda\"],\"TztLaN\":[\"Impossibile creare la lista\"],\"MxQXhL\":[\"Impossibile creare lo spazio di lavoro\"],\"Z6r9z1\":[\"Impossibile eliminare la scheda\"],\"2QGEbi\":[\"Impossibile eliminare il commento\"],\"8yFGGF\":[\"Impossibile rimuovere il membro\"],\"A8jqN7\":[\"Impossibile inviare feedback\"],\"XpcjLO\":[\"Impossibile aggiornare l'URL della bacheca\"],\"Wy6pcF\":[\"Impossibile aggiornare la visibilità della bacheca\"],\"o9WLwO\":[\"Impossibile aggiornare la scheda\"],\"fYVH36\":[\"Impossibile aggiornare il commento\"],\"delOXn\":[\"Impossibile aggiornare le etichette\"],\"I0gAKM\":[\"Impossibile aggiornare la lista\"],\"5P4rhH\":[\"Impossibile aggiornare i membri\"],\"nxb+xc\":[\"ha rimosso l'assegnazione di <0>\",[\"memberName\"],\"0> dalla scheda\"],\"hAMddS\":[\"si è rimosso dall'assegnazione della scheda\"],\"M9p3Vw\":[\"Registro attività illimitato\"],\"1wCGT0\":[\"Bacheche illimitate\"],\"ZU5IYI\":[\"Bacheche illimitate, liste illimitate, schede illimitate. Nessuna carta di credito richiesta.\"],\"Zz1qkk\":[\"Schede illimitate\"],\"fziA2d\":[\"Commenti illimitati\"],\"7Ufoyg\":[\"Liste illimitate\"],\"EkH9pt\":[\"Aggiorna\"],\"7EhE4k\":[\"Aggiorna etichetta\"],\"tGwwnq\":[\"ha aggiornato la descrizione\"],\"V3MPSQ\":[\"ha aggiornato il titolo\"],\"xJO7ca\":[\"ha aggiornato il titolo in <0>\",[\"toTitle\"],\"0>\"],\"kwkhPe\":[\"Aggiorna\"],\"MI5OBT\":[\"L'URL può contenere solo lettere, numeri e trattini\"],\"vMCCIc\":[\"L'URL non può superare i 24 caratteri\"],\"SWEskc\":[\"L'URL deve contenere almeno 3 caratteri\"],\"7PzzBU\":[\"Utente\"],\"FmfJjN\":[\"Visualizza e gestisci le tue chiavi API.\"],\"t2nDzl\":[\"Visualizza e gestisci la tua fatturazione e abbonamento.\"],\"aiHZVP\":[\"Visualizza documenti\"],\"fSf2ee\":[\"Visualizza la nostra roadmap.\"],\"2q/Q7x\":[\"Visibilità\"],\"BJbLe4\":[\"Utilizziamo la <0>licenza AGPL-3.00>.\"],\"9y1RcT\":[\"Siamo solo all'inizio. \"],\"9eF5oV\":[\"Bentornato\"],\"xEbBrW\":[\"Quale licenza state utilizzando?\"],\"H5G+qG\":[\"Qual è la differenza tra Kan e Trello?\"],\"oBndex\":[\"Quando Trello fu lanciato nel 2011, stupì tutti con la sua semplicità attentamente progettata, ma col tempo (e con l'atlassificazione) ha perso la sua magia trasformandosi in qualcosa di più simile a \\\"Jira Lite\\\". Questo progetto è il nostro tentativo di recuperare la magia originale della semplicità di Trello, in versione open source.\"],\"/DGOJs\":[\"When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \\\"Jira Lite\\\". This project is our attempt to recapture the original magic of Trello’s simplicity, in open source.\"],\"SFnH1j\":[\"Perché creare un Trello open source?\"],\"pmUArF\":[\"Spazio di lavoro\"],\"UlhdTP\":[\"Spazio di lavoro eliminato\"],\"chyf4J\":[\"Descrizione dello spazio di lavoro\"],\"Ax/hYa\":[\"La descrizione dell'area di lavoro non può superare i 280 caratteri\"],\"XDRXbZ\":[\"La descrizione dell'area di lavoro deve contenere almeno 3 caratteri\"],\"F4PLG4\":[\"Descrizione dell'area di lavoro aggiornata\"],\"wtxjAY\":[\"Membri del workspace\"],\"CozWO1\":[\"Nome dello spazio di lavoro\"],\"wIkTTk\":[\"Il nome dello spazio di lavoro non può superare i 24 caratteri\"],\"jZBHkN\":[\"Il nome dello spazio di lavoro deve contenere almeno 3 caratteri\"],\"OIA0ad\":[\"Nome dello spazio di lavoro aggiornato\"],\"MN6YzG\":[\"Slug dell'area di lavoro aggiornato\"],\"ASjvm9\":[\"URL dello spazio di lavoro\"],\"zkWmBh\":[\"Annuale\"],\"eZCGbT\":[\"Sì, offriamo un piano gratuito per sempre per uso individuale. Nessuna restrizione, nessun paywall, nessun limite.\"],\"aelko+\":[\"Puoi ottenere un URL personalizzato per il tuo workspace, come <0>kan.bn/kan0>, accedendo alle tue <1>impostazioni del workspace1> e acquistando un abbonamento pro. Tutti gli abbonamenti contribuiscono a finanziare lo sviluppo del progetto!\"],\"kSxwQL\":[\"Puoi invitare i membri del team cliccando sul pulsante \\\"Invita\\\" nell'angolo in alto a destra della <0>pagina dei membri0> e inserendo il loro indirizzo email. Riceveranno un'email con un link per unirsi al workspace.\"],\"vAj6xG\":[\"Puoi effettuare il self-hosting seguendo le istruzioni nel nostro <0>repo0>.\"],\"p/hk9N\":[\"Hai effettuato l'accesso con successo.\"],\"mchgzf\":[\"Ti sei registrato con successo.\"],\"GoDLB9\":[\"Il tuo account è stato eliminato.\"],\"evg7+A\":[\"Le tue bacheche sono state importate.\"],\"LqWW5F\":[\"Il tuo nome visualizzato è stato aggiornato.\"],\"/tOdd2\":[\"La tua immagine del profilo è stata aggiornata.\"],\"CJWDTP\":[\"Il tuo account Trello è stato disconnesso.\"],\"WRsbHO\":[\"Il tuo account Trello è connesso.\"],\"GnSSGm\":[\"La descrizione della tua area di lavoro è stata aggiornata.\"],\"qkjvgj\":[\"Il tuo spazio di lavoro è stato eliminato.\"],\"2h4PVB\":[\"Il nome del tuo spazio di lavoro è stato aggiornato.\"],\"Hg1qE9\":[\"Lo slug della tua area di lavoro è stato aggiornato.\"]}")as Messages;
\ No newline at end of file
diff --git a/apps/web/src/locales/nl/messages.po b/apps/web/src/locales/nl/messages.po
new file mode 100644
index 00000000..83ef9aa7
--- /dev/null
+++ b/apps/web/src/locales/nl/messages.po
@@ -0,0 +1,1443 @@
+msgid ""
+msgstr ""
+"POT-Creation-Date: 2025-06-24 22:31+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: @lingui/cli\n"
+"Language: nl\n"
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"Plural-Forms: \n"
+
+#: src/views/card/components/Comment.tsx:121
+msgid " (edited)"
+msgstr " (bewerkt)"
+
+#: src/components/FeedbackButton.tsx:123
+msgid ", or see our"
+msgstr ", of bekijk onze"
+
+#. placeholder {0}: card?.title ?? "Card"
+#. placeholder {1}: board?.name ?? "Board"
+#: src/views/card/index.tsx:148
+msgid "{0} | {1}"
+msgstr "{0} | {1}"
+
+#. placeholder {0}: labelPublicIds.length
+#: src/views/board/components/NewCardForm.tsx:365
+msgid "{0} labels"
+msgstr "{0} labels"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:299
+msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
+msgstr "{boardCount, plural, one {Bord importeren (1)} other {Borden importeren ({boardCount})}}"
+
+#: src/views/home/index.tsx:51
+msgid "#1 Hacker News"
+msgstr "#1 Hacker News"
+
+#: src/views/home/components/Pricing.tsx:36
+msgid "1 user"
+msgstr "1 gebruiker"
+
+#: src/views/home/index.tsx:71
+msgid "A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place."
+msgstr "Een krachtige, flexibele kanban-app die je helpt werk te organiseren, voortgang bij te houden en resultaten te leveren—allemaal op één plek."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:27
+msgid "Account deleted"
+msgstr "Account verwijderd"
+
+#: src/views/public/board/CardModal.tsx:104
+#: src/views/card/index.tsx:215
+msgid "Activity"
+msgstr "Activiteit"
+
+#: src/views/home/components/Features.tsx:103
+msgid "Activity logs"
+msgstr "Activiteitenlogboeken"
+
+#: src/views/board/components/List.tsx:110
+msgid "Add a card"
+msgstr "Voeg een kaart toe"
+
+#: src/views/card/components/NewCommentForm.tsx:57
+#: src/views/card/components/Comment.tsx:144
+msgid "Add a comment..."
+msgstr "Voeg een reactie toe..."
+
+#: src/components/Editor.tsx:302
+msgid "Add description... (type '/' to open commands)"
+msgstr "Voeg beschrijving toe... (typ '/' om commando's te openen)"
+
+#: src/views/card/components/LabelSelector.tsx:110
+#: src/views/card/components/LabelSelector.tsx:118
+msgid "Add label"
+msgstr "Label toevoegen"
+
+#: src/views/members/components/InviteMemberForm.tsx:50
+#: src/views/card/components/MemberSelector.tsx:130
+msgid "Add member"
+msgstr "Lid toevoegen"
+
+#: src/views/card/components/ActivityList.tsx:56
+msgid "added a label to the card"
+msgstr "heeft een label aan de kaart toegevoegd"
+
+#: src/views/card/components/ActivityList.tsx:58
+msgid "added a member to the card"
+msgstr "heeft een lid aan de kaart toegevoegd"
+
+#: src/views/card/components/ActivityList.tsx:110
+msgid "added label <0>{label}0>"
+msgstr "heeft label <0>{label}0> toegevoegd"
+
+#: src/views/home/components/Pricing.tsx:55
+msgid "Admin roles"
+msgstr "Beheerdersrollen"
+
+#: src/views/home/components/Pricing.tsx:97
+msgid "All seats are free during the beta until Sept 1st!"
+msgstr "Alle plaatsen zijn gratis tijdens de bèta tot 1 september!"
+
+#: src/views/home/components/Footer.tsx:18
+msgid "All systems operational"
+msgstr "Alle systemen operationeel"
+
+#: src/views/auth/signup/index.tsx:86
+msgid "Already have an account? <0><1>Sign in1>0>"
+msgstr "Heb je al een account? <0><1>Log in1>0>"
+
+#: src/views/settings/index.tsx:77
+msgid "An error occurred while disconnecting your Trello account."
+msgstr "Er is een fout opgetreden bij het verbreken van de verbinding met je Trello-account."
+
+#: src/views/settings/index.tsx:229
+msgid "API keys"
+msgstr "API-sleutels"
+
+#: src/views/home/components/Footer.tsx:31
+msgid "API Reference"
+msgstr "API-referentie"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:47
+msgid "Are you sure want to remove {entityLabel}?"
+msgstr "Weet je zeker dat je {entityLabel} wilt verwijderen?"
+
+#. placeholder {0}: workspace.name
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:62
+msgid "Are you sure you want to delete the workspace {0}?"
+msgstr "Weet je zeker dat je de werkruimte {0} wilt verwijderen?"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:75
+msgid "Are you sure you want to delete this card?"
+msgstr "Weet je zeker dat je deze kaart wilt verwijderen?"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:65
+msgid "Are you sure you want to delete this comment?"
+msgstr "Weet je zeker dat je deze opmerking wilt verwijderen?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:54
+msgid "Are you sure you want to delete your account?"
+msgstr "Weet je zeker dat je je account wilt verwijderen?"
+
+#: src/views/card/components/ActivityList.tsx:92
+msgid "assigned <0>{memberName}0> to the card"
+msgstr "heeft <0>{memberName}0> aan de kaart toegewezen"
+
+#: src/views/settings/index.tsx:168
+msgid "Billing"
+msgstr "Facturering"
+
+#: src/views/settings/index.tsx:178
+msgid "Billing portal"
+msgstr "Factureringsportaal"
+
+#: src/views/board/index.tsx:239
+msgid "Board"
+msgstr "Bord"
+
+#: src/views/board/index.tsx:265
+msgid "Board not found"
+msgstr "Bord niet gevonden"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:45
+msgid "Board URL can only contain letters, numbers, and hyphens"
+msgstr "Board URL kan alleen letters, cijfers en koppeltekens bevatten"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:43
+msgid "Board URL cannot exceed 60 characters"
+msgstr "Board URL mag niet langer zijn dan 60 tekens"
+
+#: src/views/public/board/index.tsx:53
+msgid "Board URL copied to clipboard"
+msgstr "Board URL gekopieerd naar klembord"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:41
+msgid "Board URL must be at least 3 characters long"
+msgstr "Board URL moet minimaal 3 tekens lang zijn"
+
+#: src/views/home/components/Features.tsx:78
+msgid "Board visibility"
+msgstr "Bordzichtbaarheid"
+
+#: src/views/board/components/VisibilityButton.tsx:45
+msgid "Board visibility updated"
+msgstr "Zichtbaarheid van bord bijgewerkt"
+
+#: src/views/boards/index.tsx:25
+#: src/components/SideNavigation.tsx:39
+msgid "Boards"
+msgstr "Borden"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/boards/index.tsx:21
+msgid "Boards | {0}"
+msgstr "Borden | {0}"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
+#: src/views/settings/components/CustomURLConfirmation.tsx:50
+#: src/views/members/components/DeleteMemberConfirmation.tsx:55
+#: src/views/card/components/DeleteCommentConfirmation.tsx:76
+#: src/views/card/components/DeleteCardConfirmation.tsx:86
+#: src/views/card/components/Comment.tsx:156
+msgid "Cancel"
+msgstr "Annuleren"
+
+#: src/views/card/index.tsx:193
+msgid "Card not found"
+msgstr "Kaart niet gevonden"
+
+#: src/views/board/components/NewCardForm.tsx:254
+msgid "Card title"
+msgstr "Kaarttitel"
+
+#: src/views/settings/index.tsx:160
+msgid "Change the language of the app."
+msgstr "Wijzig de taal van de app."
+
+#: src/views/auth/signup/index.tsx:67
+#: src/views/auth/login/index.tsx:41
+msgid "Check your inbox"
+msgstr "Controleer je inbox"
+
+#: src/views/board/components/Filters.tsx:155
+msgid "Clear filters"
+msgstr "Filters wissen"
+
+#: src/views/auth/signup/index.tsx:72
+#: src/views/auth/login/index.tsx:46
+msgid "Click on the link we've sent to {magicLinkRecipient} to sign in."
+msgstr "Klik op de link die we naar {magicLinkRecipient} hebben gestuurd om in te loggen."
+
+#: src/views/home/components/Features.tsx:84
+msgid "Collaborate seamlessly with your team."
+msgstr "Werk naadloos samen met je team."
+
+#: src/views/home/components/Features.tsx:66
+msgid "Coming soon"
+msgstr "Binnenkort beschikbaar"
+
+#: src/views/home/components/Features.tsx:98
+msgid "Comments"
+msgstr "Opmerkingen"
+
+#: src/views/home/components/Footer.tsx:94
+msgid "Company"
+msgstr "Bedrijf"
+
+#: src/views/home/components/Pricing.tsx:70
+msgid "Complete control and ownership:"
+msgstr "Volledige controle en eigendom:"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:42
+msgid "Confirm URL change"
+msgstr "URL-wijziging bevestigen"
+
+#: src/views/settings/index.tsx:205
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Connect Trello"
+msgstr "Verbind Trello"
+
+#: src/views/home/components/Features.tsx:115
+msgid "Connect your favorite tools to streamline your workflow."
+msgstr "Verbind je favoriete tools om je werkstroom te stroomlijnen."
+
+#: src/views/settings/index.tsx:192
+msgid "Connect your Trello account to import boards."
+msgstr "Verbind je Trello-account om borden te importeren."
+
+#: src/views/home/components/Footer.tsx:38
+msgid "Contact"
+msgstr "Contact"
+
+#: src/components/FeedbackButton.tsx:121
+msgid "Contact us"
+msgstr "Neem contact op"
+
+#: src/components/AuthForm.tsx:334
+msgid "Continue with "
+msgstr "Doorgaan met "
+
+#. placeholder {0}: provider.name
+#: src/components/AuthForm.tsx:268
+msgid "Continue with {0}"
+msgstr "Doorgaan met {0}"
+
+#: src/views/home/components/Features.tsx:79
+msgid "Control who can view and edit your boards."
+msgstr "Bepaal wie je borden kan bekijken en bewerken."
+
+#: src/views/board/components/NewListForm.tsx:140
+#: src/views/board/components/NewCardForm.tsx:391
+#: src/components/LabelForm.tsx:212
+msgid "Create another"
+msgstr "Maak nog een"
+
+#: src/views/boards/components/NewBoardForm.tsx:77
+msgid "Create board"
+msgstr "Maak bord"
+
+#: src/views/board/components/NewCardForm.tsx:401
+msgid "Create card"
+msgstr "Maak kaart"
+
+#: src/components/LabelForm.tsx:233
+msgid "Create label"
+msgstr "Maak label"
+
+#: src/views/board/components/NewListForm.tsx:148
+msgid "Create list"
+msgstr "Lijst maken"
+
+#: src/views/boards/components/BoardsList.tsx:42
+msgid "Create new board"
+msgstr "Nieuw bord maken"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:54
+msgid "Create new key"
+msgstr "Nieuwe sleutel aanmaken"
+
+#: src/views/card/components/LabelSelector.tsx:98
+#: src/views/board/components/NewCardForm.tsx:327
+msgid "Create new label"
+msgstr "Maak nieuw label"
+
+#: src/views/board/index.tsx:327
+msgid "Create new list"
+msgstr "Maak nieuwe lijst"
+
+#: src/components/WorkspaceMenu.tsx:85
+#: src/components/NewWorkspaceForm.tsx:91
+msgid "Create workspace"
+msgstr "Werkruimte maken"
+
+#: src/views/card/components/ActivityList.tsx:52
+msgid "created the card"
+msgstr "heeft de kaart aangemaakt"
+
+#: src/views/home/components/Pricing.tsx:74
+msgid "Custom domain"
+msgstr "Aangepast domein"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:45
+msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
+msgstr "Aangepaste URL's zijn een premium functie. Je wordt doorgestuurd om je account te upgraden."
+
+#: src/components/UserMenu.tsx:112
+msgid "Dark"
+msgstr "Donker"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:82
+#: src/views/card/components/DeleteCardConfirmation.tsx:92
+#: src/components/LabelForm.tsx:226
+msgid "Delete"
+msgstr "Verwijderen"
+
+#: src/views/settings/index.tsx:260
+#: src/views/settings/index.tsx:270
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
+msgid "Delete account"
+msgstr "Account verwijderen"
+
+#: src/views/board/components/BoardDropdown.tsx:20
+msgid "Delete board"
+msgstr "Board verwijderen"
+
+#: src/views/card/components/Dropdown.tsx:14
+msgid "Delete card"
+msgstr "Kaart verwijderen"
+
+#: src/views/card/components/Comment.tsx:89
+msgid "Delete comment"
+msgstr "Reactie verwijderen"
+
+#: src/views/board/components/List.tsx:117
+msgid "Delete list"
+msgstr "Lijst verwijderen"
+
+#: src/views/settings/index.tsx:242
+#: src/views/settings/index.tsx:253
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
+msgid "Delete workspace"
+msgstr "Werkruimte verwijderen"
+
+#: src/views/settings/index.tsx:220
+msgid "Disconnect Trello"
+msgstr "Trello ontkoppelen"
+
+#: src/views/home/components/Features.tsx:99
+msgid "Discuss and collaborate on cards."
+msgstr "Bespreek en werk samen aan kaarten."
+
+#: src/views/settings/index.tsx:123
+msgid "Display name"
+msgstr "Weergavenaam"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:22
+msgid "Display name cannot exceed 280 characters"
+msgstr "Weergavenaam mag niet langer zijn dan 280 tekens"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:19
+msgid "Display name must be at least 3 characters long"
+msgstr "Weergavenaam moet minimaal 3 tekens lang zijn"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:41
+msgid "Display name updated"
+msgstr "Weergavenaam bijgewerkt"
+
+#: src/views/home/components/Faqs.tsx:83
+msgid "Do you offer a free plan?"
+msgstr "Bieden jullie een gratis abonnement aan?"
+
+#: src/components/FeedbackButton.tsx:130
+msgid "docs"
+msgstr "docs"
+
+#: src/views/home/components/Header.tsx:16
+msgid "Docs"
+msgstr "Docs"
+
+#: src/views/home/components/Footer.tsx:77
+msgid "Documentation"
+msgstr "Documentatie"
+
+#: src/views/auth/login/index.tsx:61
+msgid "Don't have an account? <0><1>Sign up1>0>"
+msgstr "Heb je geen account? <0><1>Registreer je1>0>"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:115
+#: src/views/board/components/BoardDropdown.tsx:15
+msgid "Edit board URL"
+msgstr "Board URL bewerken"
+
+#: src/views/card/components/Comment.tsx:80
+msgid "Edit comment"
+msgstr "Reactie bewerken"
+
+#: src/components/LabelForm.tsx:118
+msgid "Edit label"
+msgstr "Label bewerken"
+
+#: src/components/AuthForm.tsx:336
+msgid "email"
+msgstr "e-mail"
+
+#: src/views/members/components/InviteMemberForm.tsx:64
+msgid "Email"
+msgstr "E-mail"
+
+#: src/components/AuthForm.tsx:301
+msgid "Enter your email address"
+msgstr "Voer je e-mailadres in"
+
+#: src/components/AuthForm.tsx:289
+msgid "Enter your name"
+msgstr "Voer je naam in"
+
+#: src/components/AuthForm.tsx:314
+msgid "Enter your password"
+msgstr "Voer je wachtwoord in"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
+msgid "Error deleting account"
+msgstr "Fout bij verwijderen account"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:45
+msgid "Error deleting workspace"
+msgstr "Fout bij verwijderen werkruimte"
+
+#: src/views/settings/index.tsx:76
+msgid "Error disconnecting Trello"
+msgstr "Fout bij ontkoppelen van Trello"
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:54
+msgid "Error updating display name"
+msgstr "Fout bij bijwerken weergavenaam"
+
+#: src/views/settings/components/Avatar.tsx:37
+msgid "Error updating profile image"
+msgstr "Fout bij het bijwerken van profielafbeelding"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:61
+msgid "Error updating workspace description"
+msgstr "Fout bij het bijwerken van werkruimtebeschrijving"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:56
+msgid "Error updating workspace name"
+msgstr "Fout bij bijwerken naam werkruimte"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:73
+msgid "Error updating workspace URL"
+msgstr "Fout bij het bijwerken van werkruimte-URL"
+
+#: src/views/settings/components/Avatar.tsx:54
+#: src/views/settings/components/Avatar.tsx:95
+msgid "Error uploading profile image"
+msgstr "Fout bij het uploaden van profielafbeelding"
+
+#: src/views/home/components/Pricing.tsx:52
+msgid "Everything in the free plan, plus:"
+msgstr "Alles in het gratis abonnement, plus:"
+
+#: src/views/home/components/Pricing.tsx:33
+msgid "Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time."
+msgstr "Alles wat je nodig hebt, voor altijd gratis. Onbeperkte borden, onbeperkte lijsten, onbeperkte kaarten. Upgrade wanneer je maar wilt."
+
+#. placeholder {0}: provider.at(0)?.toUpperCase() + provider.slice(1)
+#: src/components/AuthForm.tsx:241
+msgid "Failed to login with {0}. Please try again."
+msgstr "Inloggen met {0} is mislukt. Probeer het opnieuw."
+
+#: src/views/home/components/Footer.tsx:51
+#: src/views/home/components/Faqs.tsx:143
+msgid "FAQs"
+msgstr "Veelgestelde vragen"
+
+#: src/views/home/components/Header.tsx:14
+#: src/views/home/components/Footer.tsx:49
+#: src/views/home/components/Features.tsx:125
+msgid "Features"
+msgstr "Functies"
+
+#: src/components/FeedbackButton.tsx:78
+msgid "Feedback"
+msgstr "Feedback"
+
+#: src/components/FeedbackButton.tsx:38
+msgid "Feedback sent"
+msgstr "Feedback verzonden"
+
+#: src/views/board/components/Filters.tsx:149
+msgid "Filter"
+msgstr "Filter"
+
+#: src/views/home/components/Faqs.tsx:150
+msgid "Find answers to common questions about the project. Can't find what you're looking for? Feel free to <0>contact us0>."
+msgstr "Vind antwoorden op veelgestelde vragen over het project. Kun je niet vinden wat je zoekt? Neem gerust <0>contact met ons op0>."
+
+#: src/views/home/components/Faqs.tsx:41
+msgid "For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users (free during the beta) and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge."
+msgstr "Voor duurzaamheid op lange termijn erkennen we dat alle goede open source projecten een inkomstenbron nodig hebben. De onze komt van de betaalde cloudoplossing voor werkruimtes met meerdere gebruikers (gratis tijdens de bèta) en voor aangepaste werkruimte-slugs. Je bent niet verplicht om hiervan gebruik te maken en je kunt de software gratis op je eigen infrastructuur hosten."
+
+#: src/views/home/components/Pricing.tsx:32
+#: src/views/home/components/Pricing.tsx:32
+msgid "Free"
+msgstr "Gratis"
+
+#: src/views/home/components/Pricing.tsx:34
+msgid "Free, forever"
+msgstr "Altijd gratis"
+
+#: src/views/home/components/Header.tsx:102
+#: src/views/home/components/Header.tsx:141
+#: src/views/home/components/Cta.tsx:61
+#: src/views/auth/signup/index.tsx:67
+msgid "Get started"
+msgstr "Aan de slag"
+
+#: src/views/home/components/Pricing.tsx:31
+#: src/views/home/components/Pricing.tsx:49
+msgid "Get Started"
+msgstr "Aan de slag"
+
+#: src/views/boards/components/BoardsList.tsx:38
+msgid "Get started by creating a new board"
+msgstr "Begin door een nieuw bord te maken"
+
+#: src/views/board/index.tsx:319
+msgid "Get started by creating a new list"
+msgstr "Begin door een nieuwe lijst te maken"
+
+#: src/views/home/components/Cta.tsx:54
+msgid "Get started for free today"
+msgstr "Begin vandaag nog gratis"
+
+#: src/views/home/components/Pricing.tsx:92
+msgid "Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team."
+msgstr "Begin gratis, zonder gebruikslimieten. Voor samenwerking kun je upgraden naar een abonnement dat past bij de grootte van je team."
+
+#: src/views/home/index.tsx:75
+msgid "Get started on Cloud"
+msgstr "Begin in de cloud"
+
+#: src/views/home/components/Footer.tsx:25
+msgid "Getting started"
+msgstr "Aan de slag"
+
+#: src/views/home/components/Footer.tsx:37
+msgid "GitHub"
+msgstr "GitHub"
+
+#: src/views/home/components/Header.tsx:96
+#: src/views/home/components/Header.tsx:133
+msgid "Go to app"
+msgstr "Naar de app"
+
+#: src/views/home/components/Pricing.tsx:69
+msgid "Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data."
+msgstr "Host Kan op je eigen infrastructuur. Ideaal voor organisaties die volledige controle over hun gegevens nodig hebben."
+
+#: src/views/home/components/Faqs.tsx:64
+msgid "How do I get a custom URL?"
+msgstr "Hoe krijg ik een aangepaste URL?"
+
+#: src/views/home/components/Faqs.tsx:46
+msgid "How do I import my Trello boards?"
+msgstr "Hoe importeer ik mijn Trello-borden?"
+
+#: src/views/home/components/Faqs.tsx:108
+msgid "How do I invite team members?"
+msgstr "Hoe nodig ik teamleden uit?"
+
+#: src/views/home/components/Faqs.tsx:124
+msgid "How do I self-host?"
+msgstr "Hoe kan ik zelf hosten?"
+
+#: src/views/home/components/Faqs.tsx:38
+msgid "How is the project funded?"
+msgstr "Hoe wordt het project gefinancierd?"
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:82
+msgid "I acknowledge that all of my account data will be permanently deleted and want to proceed."
+msgstr "Ik bevestig dat alle gegevens van mijn account permanent worden verwijderd en wil doorgaan."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:92
+msgid "I acknowledge that all of the workspace data will be permanently deleted and want to proceed."
+msgstr "Ik bevestig dat alle gegevens van de werkruimte permanent worden verwijderd en wil doorgaan."
+
+#: src/components/FeedbackButton.tsx:98
+msgid "Ideas to improve this page..."
+msgstr "Ideeën om deze pagina te verbeteren..."
+
+#: src/views/boards/index.tsx:39
+msgid "Import"
+msgstr "Importeren"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:191
+msgid "Import complete"
+msgstr "Import voltooid"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:204
+msgid "Import failed"
+msgstr "Import mislukt"
+
+#: src/views/home/components/Features.tsx:89
+msgid "Import your Trello boards and hit the ground running."
+msgstr "Importeer je Trello-borden en ga direct aan de slag."
+
+#: src/views/home/components/Footer.tsx:27
+msgid "Importing from Trello"
+msgstr "Importeren vanuit Trello"
+
+#: src/views/home/components/Faqs.tsx:49
+msgid "Importing your Trello boards into Kan is easy. You can follow our step-by-step guide <0>here0>."
+msgstr "Het importeren van je Trello-borden naar Kan is eenvoudig. Je kunt onze stap-voor-stap handleiding <0>hier0> volgen."
+
+#: src/views/home/components/Pricing.tsx:28
+msgid "Individuals"
+msgstr "Individuen"
+
+#: src/views/home/components/Features.tsx:114
+msgid "Integrations"
+msgstr "Integraties"
+
+#: src/views/members/index.tsx:156
+msgid "Invite"
+msgstr "Uitnodigen"
+
+#: src/views/members/components/InviteMemberForm.tsx:82
+#: src/views/card/components/MemberSelector.tsx:112
+msgid "Invite member"
+msgstr "Lid uitnodigen"
+
+#: src/views/home/components/Pricing.tsx:51
+msgid "Kanban is better with a team. Perfect for small and growing teams looking to collaborate."
+msgstr "Kanban werkt beter met een team. Perfect voor kleine en groeiende teams die willen samenwerken."
+
+#: src/views/home/components/Features.tsx:129
+msgid "Kanban reimagined"
+msgstr "Kanban opnieuw uitgevonden"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:67
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:57
+msgid "Keep in mind that this action is irreversible."
+msgstr "Houd er rekening mee dat deze actie onomkeerbaar is."
+
+#: src/views/card/index.tsx:243
+#: src/views/board/components/NewCardForm.tsx:331
+#: src/views/board/components/Filters.tsx:101
+msgid "Labels"
+msgstr "Labels"
+
+#: src/views/home/components/Features.tsx:93
+msgid "Labels & Filters"
+msgstr "Labels & filters"
+
+#: src/views/settings/index.tsx:157
+msgid "Language"
+msgstr "Taal"
+
+#: src/views/home/components/Footer.tsx:130
+msgid "Legal"
+msgstr "Juridisch"
+
+#: src/views/home/components/Footer.tsx:44
+msgid "License"
+msgstr "Licentie"
+
+#: src/components/UserMenu.tsx:126
+msgid "Light"
+msgstr "Licht"
+
+#: src/views/public/board/index.tsx:51
+msgid "Link copied"
+msgstr "Link gekopieerd"
+
+#: src/views/card/index.tsx:235
+msgid "List"
+msgstr "Lijst"
+
+#: src/views/board/components/NewListForm.tsx:128
+msgid "List name"
+msgstr "Lijstnaam"
+
+#: src/views/auth/login/index.tsx:31
+msgid "Login | kan.bn"
+msgstr "Login | kan.bn"
+
+#: src/components/UserMenu.tsx:136
+msgid "Logout"
+msgstr "Uitloggen"
+
+#: src/components/AuthForm.tsx:337
+msgid "magic link"
+msgstr "magische link"
+
+#: src/views/members/index.tsx:148
+#: src/views/card/index.tsx:251
+#: src/views/board/components/NewCardForm.tsx:290
+#: src/views/board/components/Filters.tsx:93
+#: src/components/SideNavigation.tsx:44
+msgid "Members"
+msgstr "Leden"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/members/index.tsx:144
+msgid "Members | {0}"
+msgstr "Leden | {0}"
+
+#: src/views/home/components/Pricing.tsx:14
+msgid "Monthly"
+msgstr "Maandelijks"
+
+#: src/views/card/components/ActivityList.tsx:81
+msgid "moved the card from <0>{fromList}0> to<1>{toList}1>"
+msgstr "heeft de kaart verplaatst van <0>{fromList}0> naar<1>{toList}1>"
+
+#: src/views/card/components/ActivityList.tsx:55
+msgid "moved the card to another list"
+msgstr "heeft de kaart naar een andere lijst verplaatst"
+
+#: src/views/boards/components/NewBoardForm.tsx:63
+#: src/components/LabelForm.tsx:134
+msgid "Name"
+msgstr "Naam"
+
+#: src/components/FeedbackButton.tsx:116
+msgid "Need help?"
+msgstr "Hulp nodig?"
+
+#: src/views/boards/index.tsx:52
+msgid "New"
+msgstr "Nieuw"
+
+#: src/views/boards/components/NewBoardForm.tsx:49
+msgid "New board"
+msgstr "Nieuw bord"
+
+#: src/views/board/components/NewCardForm.tsx:237
+msgid "New card"
+msgstr "Nieuwe kaart"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:322
+msgid "New import"
+msgstr "Nieuwe import"
+
+#: src/components/LabelForm.tsx:118
+msgid "New label"
+msgstr "Nieuw label"
+
+#: src/views/board/index.tsx:296
+#: src/views/board/components/NewListForm.tsx:112
+msgid "New list"
+msgstr "Nieuwe lijst"
+
+#: src/components/NewWorkspaceForm.tsx:62
+msgid "New workspace"
+msgstr "Nieuwe werkruimte"
+
+#: src/views/boards/components/BoardsList.tsx:35
+msgid "No boards"
+msgstr "Geen borden"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:242
+msgid "No boards found"
+msgstr "Geen borden gevonden"
+
+#: src/views/home/index.tsx:85
+msgid "No credit card required"
+msgstr "Geen creditcard vereist"
+
+#: src/views/board/index.tsx:316
+msgid "No lists"
+msgstr "Geen lijsten"
+
+#: src/views/settings/index.tsx:263
+msgid "Once you delete your account, there is no going back. This action cannot be undone."
+msgstr "Zodra je je account verwijdert, is er geen weg terug. Deze actie kan niet ongedaan worden gemaakt."
+
+#: src/views/settings/index.tsx:245
+msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
+msgstr "Zodra je je werkruimte verwijdert, is er geen weg terug. Deze actie kan niet ongedaan worden gemaakt."
+
+#: src/components/AuthForm.tsx:279
+msgid "or"
+msgstr "of"
+
+#: src/views/home/components/Features.tsx:94
+msgid "Organize and find cards quickly with powerful filtering tools."
+msgstr "Organiseer en vind kaarten snel met krachtige filtertools."
+
+#: src/views/home/components/Pricing.tsx:73
+msgid "Own your data"
+msgstr "Bezit je eigen data"
+
+#: src/views/home/components/Pricing.tsx:101
+msgid "Payment frequency"
+msgstr "Betalingsfrequentie"
+
+#: src/views/members/index.tsx:107
+msgid "Pending"
+msgstr "In behandeling"
+
+#: src/views/home/components/Pricing.tsx:15
+#: src/views/home/components/Pricing.tsx:20
+msgid "per user/month"
+msgstr "per gebruiker/maand"
+
+#: src/components/AuthForm.tsx:305
+msgid "Please enter a valid email address"
+msgstr "Voer een geldig e-mailadres in"
+
+#: src/components/AuthForm.tsx:293
+msgid "Please enter a valid name"
+msgstr "Voer een geldige naam in"
+
+#: src/components/AuthForm.tsx:318
+msgid "Please enter a valid password"
+msgstr "Voer een geldig wachtwoord in"
+
+#: src/views/settings/components/Avatar.tsx:55
+msgid "Please select a file to upload."
+msgstr "Selecteer een bestand om te uploaden."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:55
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:46
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
+#: src/views/settings/components/Avatar.tsx:38
+#: src/views/settings/components/Avatar.tsx:96
+#: src/views/members/components/DeleteMemberConfirmation.tsx:28
+#: src/views/card/index.tsx:116
+#: src/views/card/components/NewCommentForm.tsx:31
+#: src/views/card/components/MemberSelector.tsx:80
+#: src/views/card/components/ListSelector.tsx:53
+#: src/views/card/components/LabelSelector.tsx:73
+#: src/views/card/components/DeleteCommentConfirmation.tsx:45
+#: src/views/card/components/DeleteCardConfirmation.tsx:52
+#: src/views/card/components/Comment.tsx:62
+#: src/views/boards/components/ImportBoardsForm.tsx:205
+#: src/views/board/index.tsx:133
+#: src/views/board/index.tsx:189
+#: src/views/board/components/VisibilityButton.tsx:53
+#: src/views/board/components/UpdateBoardSlugForm.tsx:72
+#: src/views/board/components/NewListForm.tsx:78
+#: src/views/board/components/NewCardForm.tsx:128
+#: src/components/NewWorkspaceForm.tsx:39
+#: src/components/FeedbackButton.tsx:46
+msgid "Please try again later, or contact customer support."
+msgstr "Probeer het later opnieuw of neem contact op met de klantenservice."
+
+#: src/views/home/components/Pricing.tsx:85
+#: src/views/home/components/Header.tsx:15
+#: src/views/home/components/Footer.tsx:50
+msgid "Pricing"
+msgstr "Prijzen"
+
+#: src/views/home/components/Pricing.tsx:56
+msgid "Priority email support"
+msgstr "Prioriteit e-mailondersteuning"
+
+#: src/views/home/components/Footer.tsx:42
+msgid "Privacy policy"
+msgstr "Privacybeleid"
+
+#: src/views/board/components/VisibilityButton.tsx:73
+msgid "Private"
+msgstr "Privé"
+
+#: src/views/settings/components/Avatar.tsx:24
+msgid "Profile image updated"
+msgstr "Profielafbeelding bijgewerkt"
+
+#: src/views/settings/index.tsx:118
+msgid "Profile picture"
+msgstr "Profielfoto"
+
+#: src/views/board/components/VisibilityButton.tsx:68
+msgid "Public"
+msgstr "Openbaar"
+
+#: src/views/home/components/Faqs.tsx:147
+msgid "Questions?"
+msgstr "Vragen?"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:58
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: src/views/members/index.tsx:120
+msgid "Remove member"
+msgstr "Lid verwijderen"
+
+#: src/views/card/components/ActivityList.tsx:57
+msgid "removed a label from the card"
+msgstr "heeft een label van de kaart verwijderd"
+
+#: src/views/card/components/ActivityList.tsx:59
+msgid "removed a member from the card"
+msgstr "heeft een lid van de kaart verwijderd"
+
+#: src/views/card/components/ActivityList.tsx:118
+msgid "removed label <0>{label}0>"
+msgstr "heeft label <0>{label}0> verwijderd"
+
+#: src/views/home/components/Footer.tsx:113
+msgid "Resources"
+msgstr "Bronnen"
+
+#: src/views/settings/components/CreateAPIKeyForm.tsx:49
+msgid "Revoke"
+msgstr "Intrekken"
+
+#: src/views/home/components/Header.tsx:13
+#: src/views/home/components/Footer.tsx:36
+msgid "Roadmap"
+msgstr "Roadmap"
+
+#: src/views/members/index.tsx:178
+msgid "Role"
+msgstr "Rol"
+
+#: src/views/home/components/Pricing.tsx:72
+msgid "Run on your own infrastructure"
+msgstr "Draai op je eigen infrastructuur"
+
+#: src/views/card/components/Comment.tsx:163
+msgid "Save"
+msgstr "Opslaan"
+
+#: src/views/home/components/Features.tsx:109
+msgid "Save time with reusable board templates."
+msgstr "Bespaar tijd met herbruikbare bordsjablonen."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:274
+msgid "Select all"
+msgstr "Alles selecteren"
+
+#: src/views/boards/components/ImportBoardsForm.tsx:157
+msgid "Select source"
+msgstr "Selecteer bron"
+
+#: src/views/home/components/Pricing.tsx:64
+msgid "Self Host"
+msgstr "Zelf hosten"
+
+#: src/views/home/index.tsx:81
+msgid "Self host with Github"
+msgstr "Zelf hosten met Github"
+
+#: src/views/card/components/ActivityList.tsx:89
+msgid "self-assigned the card"
+msgstr "heeft de kaart aan zichzelf toegewezen"
+
+#: src/components/FeedbackButton.tsx:137
+msgid "Send"
+msgstr "Versturen"
+
+#: src/views/settings/index.tsx:112
+#: src/components/SideNavigation.tsx:49
+msgid "Settings"
+msgstr "Instellingen"
+
+#. placeholder {0}: workspace.name ?? "Workspace"
+#: src/views/settings/index.tsx:108
+msgid "Settings | {0}"
+msgstr "Instellingen | {0}"
+
+#: src/views/home/components/Header.tsx:100
+#: src/views/home/components/Header.tsx:138
+msgid "Sign in"
+msgstr "Inloggen"
+
+#: src/views/auth/signup/index.tsx:32
+#: src/views/auth/signup/index.tsx:57
+msgid "Sign up | kan.bn"
+msgstr "Registreren | kan.bn"
+
+#: src/views/auth/signup/index.tsx:42
+msgid "Sign up disabled"
+msgstr "Registreren uitgeschakeld"
+
+#: src/views/auth/signup/index.tsx:45
+msgid "Sign up is currently disabled. Please try again later."
+msgstr "Registreren is momenteel uitgeschakeld. Probeer het later opnieuw."
+
+#: src/components/AuthForm.tsx:334
+msgid "Sign up with "
+msgstr "Registreren met "
+
+#: src/views/home/components/Pricing.tsx:89
+msgid "Simple pricing"
+msgstr "Eenvoudige prijzen"
+
+#: src/views/home/components/Features.tsx:132
+msgid "Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done."
+msgstr "Eenvoudig, visueel taakbeheer dat gewoon werkt. Sleep kaarten, werk samen met je team en krijg meer gedaan."
+
+#: src/views/home/index.tsx:37
+msgid "Star on Github"
+msgstr "Star op Github"
+
+#: src/components/AuthForm.tsx:188
+#: src/components/AuthForm.tsx:205
+msgid "Success"
+msgstr "Geslaagd"
+
+#: src/views/home/components/Pricing.tsx:57
+msgid "Support the development of the project"
+msgstr "Ondersteun de ontwikkeling van het project"
+
+#: src/components/UserMenu.tsx:98
+msgid "System"
+msgstr "Systeem"
+
+#: src/views/home/components/Pricing.tsx:46
+msgid "Teams"
+msgstr "Teams"
+
+#: src/views/home/components/Features.tsx:108
+msgid "Templates"
+msgstr "Sjablonen"
+
+#: src/views/home/components/Footer.tsx:41
+msgid "Terms of service"
+msgstr "Servicevoorwaarden"
+
+#: src/components/FeedbackButton.tsx:39
+msgid "Thank you for your feedback!"
+msgstr "Bedankt voor je feedback!"
+
+#: src/views/home/components/Faqs.tsx:33
+msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
+msgstr "Het belangrijkste verschil tussen Kan en Trello is dat Kan open source is, waardoor iedereen onze code kan bekijken, wijzigen en eraan kan bijdragen. Onze cloudoplossing biedt ook geen beperkingen op functies voor individueel gebruik, terwijl Trello basisfuncties zoals het aantal borden dat je kunt maken achter een betaalmuur plaatst."
+
+#: src/views/home/index.tsx:65
+msgid "The open source <0/> alternative to Trello"
+msgstr "Het open source <0/> alternatief voor Trello"
+
+#. placeholder {0}: isPublic ? "public" : "private"
+#: src/views/board/components/VisibilityButton.tsx:46
+msgid "The visibility of your board has been set to {0}."
+msgstr "De zichtbaarheid van je bord is ingesteld op {0}."
+
+#: src/components/UserMenu.tsx:85
+msgid "Theme"
+msgstr "Thema"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:50
+msgid "They won't be able to access this workspace."
+msgstr "Ze zullen geen toegang meer hebben tot deze werkruimte."
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:68
+#: src/views/card/components/DeleteCardConfirmation.tsx:78
+msgid "This action can't be undone."
+msgstr "Deze actie kan niet ongedaan worden gemaakt."
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:135
+msgid "This board URL has already been taken"
+msgstr "Deze board URL is al in gebruik"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:70
+msgid "This will result in the permanent deletion of all data associated with this workspace."
+msgstr "Dit zal resulteren in het permanent verwijderen van alle gegevens die aan deze werkruimte zijn gekoppeld."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:60
+msgid "This will result in the permanent deletion of all data associated with your account."
+msgstr "Dit zal resulteren in het permanent verwijderen van alle gegevens die aan je account zijn gekoppeld."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:123
+msgid "This workspace username has already been taken"
+msgstr "Deze werkruimtegebruikersnaam is al in gebruik"
+
+#: src/views/home/components/Header.tsx:73
+msgid "Toggle menu"
+msgstr "Menu in-/uitschakelen"
+
+#: src/views/home/components/Features.tsx:104
+msgid "Track all card changes with detailed activity history."
+msgstr "Volg alle kaartwijzigingen met gedetailleerde activiteitengeschiedenis."
+
+#: src/views/settings/index.tsx:69
+msgid "Trello disconnected"
+msgstr "Trello ontkoppeld"
+
+#: src/views/home/components/Features.tsx:88
+msgid "Trello imports"
+msgstr "Trello-imports"
+
+#: src/views/card/components/NewCommentForm.tsx:30
+msgid "Unable to add comment"
+msgstr "Kan geen reactie toevoegen"
+
+#: src/views/board/components/NewCardForm.tsx:125
+msgid "Unable to create card"
+msgstr "Kan kaart niet aanmaken"
+
+#: src/views/board/components/NewListForm.tsx:77
+msgid "Unable to create list"
+msgstr "Kan geen lijst maken"
+
+#: src/components/NewWorkspaceForm.tsx:38
+msgid "Unable to create workspace"
+msgstr "Kan werkruimte niet aanmaken"
+
+#: src/views/card/components/DeleteCardConfirmation.tsx:51
+msgid "Unable to delete card"
+msgstr "Kan kaart niet verwijderen"
+
+#: src/views/card/components/DeleteCommentConfirmation.tsx:44
+msgid "Unable to delete comment"
+msgstr "Kan opmerking niet verwijderen"
+
+#: src/views/members/components/DeleteMemberConfirmation.tsx:27
+msgid "Unable to remove member"
+msgstr "Kan lid niet verwijderen"
+
+#: src/components/FeedbackButton.tsx:45
+msgid "Unable to send feedback"
+msgstr "Feedback kon niet worden verzonden"
+
+#: src/views/board/components/UpdateBoardSlugForm.tsx:71
+msgid "Unable to update board URL"
+msgstr "Kan board URL niet bijwerken"
+
+#: src/views/board/components/VisibilityButton.tsx:52
+msgid "Unable to update board visibility"
+msgstr "Kan bordzichtbaarheid niet bijwerken"
+
+#: src/views/card/index.tsx:115
+#: src/views/board/index.tsx:188
+msgid "Unable to update card"
+msgstr "Kan kaart niet bijwerken"
+
+#: src/views/card/components/Comment.tsx:61
+msgid "Unable to update comment"
+msgstr "Kan reactie niet bijwerken"
+
+#: src/views/card/components/LabelSelector.tsx:72
+msgid "Unable to update labels"
+msgstr "Kan labels niet bijwerken"
+
+#: src/views/card/components/ListSelector.tsx:52
+#: src/views/board/index.tsx:132
+msgid "Unable to update list"
+msgstr "Kan lijst niet bijwerken"
+
+#: src/views/card/components/MemberSelector.tsx:79
+msgid "Unable to update members"
+msgstr "Kan leden niet bijwerken"
+
+#: src/views/card/components/ActivityList.tsx:102
+msgid "unassigned <0>{memberName}0> from the card"
+msgstr "<0>{memberName}0> van de kaart verwijderd"
+
+#: src/views/card/components/ActivityList.tsx:99
+msgid "unassigned themselves from the card"
+msgstr "zichzelf van de kaart verwijderd"
+
+#: src/views/home/components/Pricing.tsx:41
+msgid "Unlimited activity log"
+msgstr "Onbeperkt activiteitenlogboek"
+
+#: src/views/home/components/Pricing.tsx:37
+msgid "Unlimited boards"
+msgstr "Onbeperkt aantal borden"
+
+#: src/views/home/components/Cta.tsx:57
+msgid "Unlimited boards, unlimited lists, unlimited cards. No credit card required."
+msgstr "Onbeperkt aantal borden, onbeperkt aantal lijsten, onbeperkt aantal kaarten. Geen creditcard vereist."
+
+#: src/views/home/components/Pricing.tsx:39
+msgid "Unlimited cards"
+msgstr "Onbeperkt aantal kaarten"
+
+#: src/views/home/components/Pricing.tsx:40
+msgid "Unlimited comments"
+msgstr "Onbeperkt aantal opmerkingen"
+
+#: src/views/home/components/Pricing.tsx:38
+msgid "Unlimited lists"
+msgstr "Onbeperkt aantal lijsten"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:154
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:82
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
+#: src/views/board/components/UpdateBoardSlugForm.tsx:166
+msgid "Update"
+msgstr "Bijwerken"
+
+#: src/components/LabelForm.tsx:233
+msgid "Update label"
+msgstr "Label bijwerken"
+
+#: src/views/card/components/ActivityList.tsx:54
+msgid "updated the description"
+msgstr "beschrijving bijgewerkt"
+
+#: src/views/card/components/ActivityList.tsx:53
+msgid "updated the title"
+msgstr "titel bijgewerkt"
+
+#: src/views/card/components/ActivityList.tsx:73
+msgid "updated the title to <0>{toTitle}0>"
+msgstr "titel bijgewerkt naar <0>{toTitle}0>"
+
+#: src/views/settings/components/CustomURLConfirmation.tsx:52
+msgid "Upgrade"
+msgstr "Upgraden"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:36
+msgid "URL can only contain letters, numbers, and hyphens"
+msgstr "URL kan alleen letters, cijfers en koppeltekens bevatten"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:34
+msgid "URL cannot exceed 24 characters"
+msgstr "URL mag niet langer zijn dan 24 tekens"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:32
+msgid "URL must be at least 3 characters long"
+msgstr "URL moet minimaal 3 tekens lang zijn"
+
+#: src/views/members/index.tsx:172
+msgid "User"
+msgstr "Gebruiker"
+
+#: src/views/settings/index.tsx:232
+msgid "View and manage your API keys."
+msgstr "Bekijk en beheer je API-sleutels."
+
+#: src/views/settings/index.tsx:171
+msgid "View and manage your billing and subscription."
+msgstr "Bekijk en beheer je facturering en abonnement."
+
+#: src/views/home/components/Pricing.tsx:67
+msgid "View docs"
+msgstr "Bekijk documentatie"
+
+#: src/views/home/components/Features.tsx:147
+msgid "View our roadmap."
+msgstr "Bekijk onze roadmap."
+
+#: src/views/board/components/VisibilityButton.tsx:91
+msgid "Visibility"
+msgstr "Zichtbaarheid"
+
+#: src/views/home/components/Faqs.tsx:94
+msgid "We are using the <0>AGPL-3.0 license0>."
+msgstr "We gebruiken de <0>AGPL-3.0 licentie0>."
+
+#: src/views/home/components/Features.tsx:145
+msgid "We're just getting started. "
+msgstr "We zijn nog maar net begonnen. "
+
+#: src/views/auth/login/index.tsx:41
+msgid "Welcome back"
+msgstr "Welkom terug"
+
+#: src/views/home/components/Faqs.tsx:91
+msgid "What license are you using?"
+msgstr "Welke licentie gebruiken jullie?"
+
+#: src/views/home/components/Faqs.tsx:30
+msgid "What's the difference between Kan and Trello?"
+msgstr "Wat is het verschil tussen Kan en Trello?"
+
+#: src/views/home/components/Faqs.tsx:25
+msgid "When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \"Jira Lite\". This project is our attempt to recapture the original magic of Trello's simplicity, in open source."
+msgstr "Toen Trello in 2011 werd gelanceerd, blies het iedereen omver met zijn zorgvuldig ontworpen eenvoud, maar na verloop van tijd (en atlassificatie) verloor het zijn magie en groeide het uit tot iets dat meer leek op \"Jira Lite\". Dit project is onze poging om de oorspronkelijke magie van Trello's eenvoud terug te brengen, in open source."
+
+#: src/views/home/components/Faqs.tsx:22
+msgid "Why make an open source Trello?"
+msgstr "Waarom een open source Trello maken?"
+
+#: src/views/board/index.tsx:239
+msgid "Workspace"
+msgstr "Werkruimte"
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:26
+msgid "Workspace deleted"
+msgstr "Werkruimte verwijderd"
+
+#: src/views/settings/index.tsx:147
+msgid "Workspace description"
+msgstr "Werkruimte beschrijving"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:28
+msgid "Workspace description cannot exceed 280 characters"
+msgstr "Werkruimtebeschrijving mag niet langer zijn dan 280 tekens"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:25
+msgid "Workspace description must be at least 3 characters long"
+msgstr "Werkruimtebeschrijving moet minimaal 3 tekens lang zijn"
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:48
+msgid "Workspace description updated"
+msgstr "Werkruimtebeschrijving bijgewerkt"
+
+#: src/views/home/components/Pricing.tsx:54
+#: src/views/home/components/Features.tsx:83
+msgid "Workspace members"
+msgstr "Werkruimteleden"
+
+#: src/views/settings/index.tsx:130
+#: src/components/NewWorkspaceForm.tsx:78
+msgid "Workspace name"
+msgstr "Naam werkruimte"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:15
+msgid "Workspace name cannot exceed 24 characters"
+msgstr "Werkruimtenaam mag niet langer zijn dan 24 tekens"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:14
+msgid "Workspace name must be at least 3 characters long"
+msgstr "Werkruimtenaam moet minimaal 3 tekens lang zijn"
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:43
+msgid "Workspace name updated"
+msgstr "Werkruimtenaam bijgewerkt"
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:60
+msgid "Workspace slug updated"
+msgstr "Werkruimte-slug bijgewerkt"
+
+#: src/views/settings/index.tsx:138
+msgid "Workspace URL"
+msgstr "Werkruimte URL"
+
+#: src/views/home/components/Pricing.tsx:19
+msgid "Yearly"
+msgstr "Jaarlijks"
+
+#: src/views/home/components/Faqs.tsx:86
+msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
+msgstr "Ja, we bieden een voor altijd gratis plan voor individueel gebruik. Geen beperkingen, geen betaalmuren, geen limieten."
+
+#: src/views/home/components/Faqs.tsx:67
+msgid "You can get a custom workspace URL, like <0>kan.bn/kan0>, by going into your <1>workspace settings1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
+msgstr "Je kunt een aangepaste werkruimte-URL krijgen, zoals <0>kan.bn/kan0>, door naar je <1>werkruimte-instellingen1> te gaan en een pro-werkruimte-abonnement aan te schaffen. Alle abonnementen helpen de ontwikkeling van het project te financieren!"
+
+#: src/views/home/components/Faqs.tsx:111
+msgid "You can invite team members by clicking the \"Invite\" button in the top right corner of the <0>members page0> and entering their email address. They will receive an email with a link to join the workspace."
+msgstr "Je kunt teamleden uitnodigen door op de knop \"Uitnodigen\" in de rechterbovenhoek van de <0>ledenpagina0> te klikken en hun e-mailadres in te voeren. Ze ontvangen een e-mail met een link om deel te nemen aan de werkruimte."
+
+#: src/views/home/components/Faqs.tsx:127
+msgid "You can self-host by following the instructions in our <0>repo0>."
+msgstr "Je kunt zelf hosten door de instructies in onze <0>repo0> te volgen."
+
+#: src/components/AuthForm.tsx:206
+msgid "You have been logged in successfully."
+msgstr "Je bent succesvol ingelogd."
+
+#: src/components/AuthForm.tsx:189
+msgid "You have been signed up successfully."
+msgstr "Je bent succesvol geregistreerd."
+
+#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
+msgid "Your account has been deleted."
+msgstr "Je account is verwijderd."
+
+#: src/views/boards/components/ImportBoardsForm.tsx:192
+msgid "Your boards have been imported."
+msgstr "Je borden zijn geïmporteerd."
+
+#: src/views/settings/components/UpdateDisplayNameForm.tsx:42
+msgid "Your display name has been updated."
+msgstr "Je weergavenaam is bijgewerkt."
+
+#: src/views/settings/components/Avatar.tsx:25
+msgid "Your profile image has been updated."
+msgstr "Je profielafbeelding is bijgewerkt."
+
+#: src/views/settings/index.tsx:70
+msgid "Your Trello account has been disconnected."
+msgstr "Je Trello-account is ontkoppeld."
+
+#: src/views/settings/index.tsx:214
+msgid "Your Trello account is connected."
+msgstr "Je Trello-account is verbonden."
+
+#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:49
+msgid "Your workspace description has been updated."
+msgstr "Je werkruimtebeschrijving is bijgewerkt."
+
+#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:27
+msgid "Your workspace has been deleted."
+msgstr "Je werkruimte is verwijderd."
+
+#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:44
+msgid "Your workspace name has been updated."
+msgstr "De naam van je werkruimte is bijgewerkt."
+
+#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:61
+msgid "Your workspace slug has been updated."
+msgstr "Je werkruimte-slug is bijgewerkt."
diff --git a/apps/web/src/locales/nl/messages.ts b/apps/web/src/locales/nl/messages.ts
new file mode 100644
index 00000000..26b442c3
--- /dev/null
+++ b/apps/web/src/locales/nl/messages.ts
@@ -0,0 +1 @@
+/*eslint-disable*/import type{Messages}from"@lingui/core";export const messages=JSON.parse("{\"X0N0PA\":[\" (bewerkt)\"],\"lGjicL\":[\", of bekijk onze\"],\"JArWcF\":[[\"0\"],\" | \",[\"1\"]],\"CJukzS\":[[\"0\"],\" labels\"],\"0xWkkH\":[[\"boardCount\",\"plural\",{\"one\":[\"Bord importeren (1)\"],\"other\":[\"Borden importeren (\",[\"boardCount\"],\")\"]}]],\"qrT8WB\":[\"#1 Hacker News\"],\"zMlxCA\":[\"1 gebruiker\"],\"d7XqZJ\":[\"A powerful, flexible kanban app that helps you organise work,\\n track progress, and deliver results—all in one place.\"],\"/rn4RE\":[\"Een krachtige, flexibele kanban-app die je helpt werk te organiseren, voortgang bij te houden en resultaten te leveren—allemaal op één plek.\"],\"TKFUnX\":[\"Account verwijderd\"],\"XJOV1Y\":[\"Activiteit\"],\"tMYIu7\":[\"Activiteitenlogboeken\"],\"B3xxao\":[\"Voeg een kaart toe\"],\"1ZVGyT\":[\"Voeg een reactie toe...\"],\"/Blkmk\":[\"Voeg beschrijving toe... (typ '/' om commando's te openen)\"],\"lyqwgn\":[\"Label toevoegen\"],\"PCIlOO\":[\"Lid toevoegen\"],\"T21jY/\":[\"heeft een label aan de kaart toegevoegd\"],\"rs7L54\":[\"heeft een lid aan de kaart toegevoegd\"],\"SKqXzW\":[\"heeft label <0>\",[\"label\"],\"0> toegevoegd\"],\"3pIq39\":[\"Beheerdersrollen\"],\"lSNkXg\":[\"Alle plaatsen zijn gratis tijdens de bèta tot 1 september!\"],\"UQbwrz\":[\"Alle systemen operationeel\"],\"WnEwDO\":[\"Heb je al een account? <0><1>Log in1>0>\"],\"WmPhYW\":[\"Er is een fout opgetreden bij het verbreken van de verbinding met je Trello-account.\"],\"5h8ooz\":[\"API-sleutels\"],\"j2+d/o\":[\"API-referentie\"],\"lo8xBK\":[\"Weet je zeker dat je \",[\"entityLabel\"],\" wilt verwijderen?\"],\"BhDZlc\":[\"Weet je zeker dat je de werkruimte \",[\"0\"],\" wilt verwijderen?\"],\"ZT4Khw\":[\"Weet je zeker dat je deze kaart wilt verwijderen?\"],\"PRjvDT\":[\"Weet je zeker dat je deze opmerking wilt verwijderen?\"],\"74F7N/\":[\"Weet je zeker dat je je account wilt verwijderen?\"],\"EEQaqX\":[\"heeft <0>\",[\"memberName\"],\"0> aan de kaart toegewezen\"],\"R+w/Va\":[\"Facturering\"],\"9wdpwp\":[\"Factureringsportaal\"],\"QD8opX\":[\"Bord\"],\"jwI32v\":[\"Bord niet gevonden\"],\"Xid3K6\":[\"Board URL kan alleen letters, cijfers en koppeltekens bevatten\"],\"gv5kbo\":[\"Board URL mag niet langer zijn dan 60 tekens\"],\"8+BY11\":[\"Board URL gekopieerd naar klembord\"],\"TmvrjU\":[\"Board URL moet minimaal 3 tekens lang zijn\"],\"qzdST2\":[\"Bordzichtbaarheid\"],\"PTzsxH\":[\"Zichtbaarheid van bord bijgewerkt\"],\"8TveY+\":[\"Borden\"],\"seaklU\":[\"Borden | \",[\"0\"]],\"dEgA5A\":[\"Annuleren\"],\"fEY2vP\":[\"Kaart niet gevonden\"],\"ZH7TVS\":[\"Kaarttitel\"],\"Bosey8\":[\"Wijzig de taal van de app.\"],\"5IXWmO\":[\"Controleer je inbox\"],\"u8JHrO\":[\"Filters wissen\"],\"RRn9jf\":[\"Klik op de link die we naar \",[\"magicLinkRecipient\"],\" hebben gestuurd om in te loggen.\"],\"EvArWh\":[\"Werk naadloos samen met je team.\"],\"AUYALh\":[\"Binnenkort beschikbaar\"],\"VbyRUy\":[\"Opmerkingen\"],\"7i8j3G\":[\"Bedrijf\"],\"cAgBMh\":[\"Volledige controle en eigendom:\"],\"8ZoISG\":[\"URL-wijziging bevestigen\"],\"nk7caK\":[\"Verbind Trello\"],\"sDLCvT\":[\"Verbind je favoriete tools om je werkstroom te stroomlijnen.\"],\"5eZwRW\":[\"Verbind je Trello-account om borden te importeren.\"],\"jfC/xh\":[\"Contact\"],\"Bhgd0l\":[\"Neem contact op\"],\"J2Wbjt\":[\"Doorgaan met \"],\"gkzAEM\":[\"Doorgaan met \",[\"0\"]],\"va/3u1\":[\"Bepaal wie je borden kan bekijken en bewerken.\"],\"vgdzLf\":[\"Maak nog een\"],\"uXGLuq\":[\"Create API key\"],\"Pa9/o1\":[\"Create API keys to access the Kan API.\"],\"9QmxLI\":[\"Maak bord\"],\"dsLT3m\":[\"Maak kaart\"],\"QtACvI\":[\"Maak label\"],\"XTKtey\":[\"Lijst maken\"],\"poDo/D\":[\"Nieuw bord maken\"],\"okpxfB\":[\"Nieuwe sleutel aanmaken\"],\"0+0/3e\":[\"Maak nieuw label\"],\"aWlSc/\":[\"Maak nieuwe lijst\"],\"FdtSNC\":[\"Werkruimte maken\"],\"f8lDFq\":[\"heeft de kaart aangemaakt\"],\"GAD3Dx\":[\"Aangepast domein\"],\"91W07W\":[\"Aangepaste URL's zijn een premium functie. Je wordt doorgestuurd om je account te upgraden.\"],\"pvnfJD\":[\"Donker\"],\"cnGeoo\":[\"Verwijderen\"],\"ZDGm40\":[\"Account verwijderen\"],\"tmpW+w\":[\"Board verwijderen\"],\"nabda1\":[\"Kaart verwijderen\"],\"njJFtc\":[\"Reactie verwijderen\"],\"lYT7pQ\":[\"Lijst verwijderen\"],\"kYu0eF\":[\"Werkruimte verwijderen\"],\"YBBifR\":[\"Trello ontkoppelen\"],\"1sRmLC\":[\"Bespreek en werk samen aan kaarten.\"],\"pfa8F0\":[\"Weergavenaam\"],\"MlyjJu\":[\"Weergavenaam mag niet langer zijn dan 280 tekens\"],\"KFJgmZ\":[\"Weergavenaam moet minimaal 3 tekens lang zijn\"],\"x8GeCD\":[\"Weergavenaam bijgewerkt\"],\"evj0lK\":[\"Bieden jullie een gratis abonnement aan?\"],\"JyXBgS\":[\"docs\"],\"TbjyhA\":[\"Docs\"],\"TvY/XA\":[\"Documentatie\"],\"vUr5JT\":[\"Heb je geen account? <0><1>Registreer je1>0>\"],\"tIdipJ\":[\"Board URL bewerken\"],\"rF8SEQ\":[\"Reactie bewerken\"],\"dgr4Kq\":[\"Label bewerken\"],\"b/LfJo\":[\"e-mail\"],\"O3oNi5\":[\"E-mail\"],\"xRPn3U\":[\"Voer je e-mailadres in\"],\"n9V+ps\":[\"Voer je naam in\"],\"NgaR6B\":[\"Voer je wachtwoord in\"],\"bqAQaT\":[\"Fout bij verwijderen account\"],\"9s9O5h\":[\"Fout bij verwijderen werkruimte\"],\"lKAvEd\":[\"Fout bij ontkoppelen van Trello\"],\"sVBn4K\":[\"Fout bij bijwerken weergavenaam\"],\"4ix5kl\":[\"Fout bij het bijwerken van profielafbeelding\"],\"CkVV1t\":[\"Fout bij het bijwerken van werkruimtebeschrijving\"],\"LoUCpj\":[\"Fout bij bijwerken naam werkruimte\"],\"x0kMO/\":[\"Fout bij het bijwerken van werkruimte-URL\"],\"CYWHT+\":[\"Fout bij het uploaden van profielafbeelding\"],\"8iP0S8\":[\"Alles in het gratis abonnement, plus:\"],\"ANyn0x\":[\"Alles wat je nodig hebt, voor altijd gratis. Onbeperkte borden, onbeperkte lijsten, onbeperkte kaarten. Upgrade wanneer je maar wilt.\"],\"YtUfwW\":[\"Inloggen met \",[\"0\"],\" is mislukt. Probeer het opnieuw.\"],\"aJ4pMe\":[\"Veelgestelde vragen\"],\"PpZkda\":[\"Functies\"],\"YirHq7\":[\"Feedback\"],\"2roTVj\":[\"Feedback verzonden\"],\"o7J4JM\":[\"Filter\"],\"iFxrHK\":[\"Vind antwoorden op veelgestelde vragen over het project. Kun je niet vinden wat je zoekt? Neem gerust <0>contact met ons op0>.\"],\"aj40Mw\":[\"Voor duurzaamheid op lange termijn erkennen we dat alle goede open source projecten een inkomstenbron nodig hebben. De onze komt van de betaalde cloudoplossing voor werkruimtes met meerdere gebruikers (gratis tijdens de bèta) en voor aangepaste werkruimte-slugs. Je bent niet verplicht om hiervan gebruik te maken en je kunt de software gratis op je eigen infrastructuur hosten.\"],\"2POOFK\":[\"Gratis\"],\"gpfJ3v\":[\"Altijd gratis\"],\"ZDIydz\":[\"Aan de slag\"],\"c3b0B0\":[\"Aan de slag\"],\"YQqv2e\":[\"Begin door een nieuw bord te maken\"],\"zC8Whw\":[\"Begin door een nieuwe lijst te maken\"],\"oW13KZ\":[\"Begin vandaag nog gratis\"],\"+OhFss\":[\"Begin gratis, zonder gebruikslimieten. Voor samenwerking kun je upgraden naar een abonnement dat past bij de grootte van je team.\"],\"rD6UIt\":[\"Begin in de cloud\"],\"7hktsm\":[\"Aan de slag\"],\"RkXlPZ\":[\"GitHub\"],\"UveK6V\":[\"Naar de app\"],\"LrcnbT\":[\"Host Kan op je eigen infrastructuur. Ideaal voor organisaties die volledige controle over hun gegevens nodig hebben.\"],\"WI4eGo\":[\"Hoe krijg ik een aangepaste URL?\"],\"yV7o5I\":[\"Hoe importeer ik mijn Trello-borden?\"],\"nol/Fb\":[\"Hoe nodig ik teamleden uit?\"],\"KuSt9W\":[\"Hoe kan ik zelf hosten?\"],\"UeDFpo\":[\"Hoe wordt het project gefinancierd?\"],\"2liqDZ\":[\"Ik bevestig dat alle gegevens van mijn account permanent worden verwijderd en wil doorgaan.\"],\"2Py5S/\":[\"Ik bevestig dat alle gegevens van de werkruimte permanent worden verwijderd en wil doorgaan.\"],\"F/vB2g\":[\"Ideeën om deze pagina te verbeteren...\"],\"l3s5ri\":[\"Importeren\"],\"2MPcep\":[\"Import voltooid\"],\"BEVzjL\":[\"Import mislukt\"],\"rRM7r0\":[\"Importeer je Trello-borden en ga direct aan de slag.\"],\"xMn+V9\":[\"Importeren vanuit Trello\"],\"g2xBxu\":[\"Het importeren van je Trello-borden naar Kan is eenvoudig. Je kunt onze stap-voor-stap handleiding <0>hier0> volgen.\"],\"6mbe4b\":[\"Individuen\"],\"nbfdhU\":[\"Integraties\"],\"MFKlMB\":[\"Uitnodigen\"],\"+djOzj\":[\"Lid uitnodigen\"],\"aWDhU5\":[\"Kanban werkt beter met een team. Perfect voor kleine en groeiende teams die willen samenwerken.\"],\"Xjj/kS\":[\"Kanban opnieuw uitgevonden\"],\"JbXXUW\":[\"Houd er rekening mee dat deze actie onomkeerbaar is.\"],\"h8DugX\":[\"Labels\"],\"+nvZ6j\":[\"Labels & filters\"],\"vXIe7J\":[\"Taal\"],\"vifyyw\":[\"Juridisch\"],\"iQmbPb\":[\"Licentie\"],\"1njn7W\":[\"Licht\"],\"edWbV6\":[\"Link gekopieerd\"],\"2BBAbc\":[\"Lijst\"],\"zQX5Dj\":[\"Lijstnaam\"],\"N/bcWA\":[\"Login | kan.bn\"],\"nOhz3x\":[\"Uitloggen\"],\"JnWJXY\":[\"magische link\"],\"wlQNTg\":[\"Leden\"],\"9u5BOr\":[\"Leden | \",[\"0\"]],\"+8Nek/\":[\"Maandelijks\"],\"EM/caO\":[\"heeft de kaart verplaatst van <0>\",[\"fromList\"],\"0> naar<1>\",[\"toList\"],\"1>\"],\"T7LJic\":[\"heeft de kaart naar een andere lijst verplaatst\"],\"6YtxFj\":[\"Naam\"],\"HBI6nY\":[\"Hulp nodig?\"],\"isRobC\":[\"Nieuw\"],\"zDw80P\":[\"Nieuw bord\"],\"pnrmSP\":[\"Nieuwe kaart\"],\"WYwN1G\":[\"Nieuwe import\"],\"n1GRql\":[\"Nieuw label\"],\"Sb2gYF\":[\"Nieuwe lijst\"],\"curoK5\":[\"Nieuwe werkruimte\"],\"DhLN1b\":[\"Geen borden\"],\"2Bu8xj\":[\"Geen borden gevonden\"],\"OpNhRn\":[\"Geen creditcard vereist\"],\"hXMFoN\":[\"Geen lijsten\"],\"usVytm\":[\"Zodra je je account verwijdert, is er geen weg terug. Deze actie kan niet ongedaan worden gemaakt.\"],\"dmKdk0\":[\"Zodra je je werkruimte verwijdert, is er geen weg terug. Deze actie kan niet ongedaan worden gemaakt.\"],\"BzEFor\":[\"of\"],\"ZqDqbi\":[\"Organiseer en vind kaarten snel met krachtige filtertools.\"],\"SPLN9O\":[\"Bezit je eigen data\"],\"UbYdrA\":[\"Betalingsfrequentie\"],\"UbRKMZ\":[\"In behandeling\"],\"oVBq1w\":[\"per gebruiker/maand\"],\"OtjenF\":[\"Voer een geldig e-mailadres in\"],\"CJ3zUq\":[\"Voer een geldige naam in\"],\"7b2yuC\":[\"Voer een geldig wachtwoord in\"],\"wPZBpR\":[\"Selecteer een bestand om te uploaden.\"],\"tyHiOa\":[\"Probeer het later opnieuw of neem contact op met de klantenservice.\"],\"aHCEmh\":[\"Prijzen\"],\"ESClHO\":[\"Prioriteit e-mailondersteuning\"],\"ScJ9fj\":[\"Privacybeleid\"],\"zwBp5t\":[\"Privé\"],\"0rPv1T\":[\"Profielafbeelding bijgewerkt\"],\"4XF0BB\":[\"Profielfoto\"],\"7d1a0d\":[\"Openbaar\"],\"1H5u1m\":[\"Vragen?\"],\"t/YqKh\":[\"Verwijderen\"],\"99VIgC\":[\"Lid verwijderen\"],\"kQwvU8\":[\"heeft een label van de kaart verwijderd\"],\"uck1tz\":[\"heeft een lid van de kaart verwijderd\"],\"zdMPUq\":[\"heeft label <0>\",[\"label\"],\"0> verwijderd\"],\"s+MGs7\":[\"Bronnen\"],\"GXsAby\":[\"Intrekken\"],\"/gaSVU\":[\"Roadmap\"],\"GDvlUT\":[\"Rol\"],\"vAR/I8\":[\"Draai op je eigen infrastructuur\"],\"tfDRzk\":[\"Opslaan\"],\"MdwUGG\":[\"Bespaar tijd met herbruikbare bordsjablonen.\"],\"wgNoIs\":[\"Alles selecteren\"],\"rYUZIe\":[\"Selecteer bron\"],\"ppaRWv\":[\"Zelf hosten\"],\"l2PIAy\":[\"Zelf hosten met Github\"],\"VXk54Y\":[\"heeft de kaart aan zichzelf toegewezen\"],\"JlFcis\":[\"Versturen\"],\"Tz0i8g\":[\"Instellingen\"],\"5wo3jF\":[\"Instellingen | \",[\"0\"]],\"5lWFkC\":[\"Inloggen\"],\"sUZo7y\":[\"Registreren | kan.bn\"],\"WRkpB1\":[\"Registreren uitgeschakeld\"],\"s6iE/c\":[\"Registreren is momenteel uitgeschakeld. Probeer het later opnieuw.\"],\"6FDocz\":[\"Registreren met \"],\"m2nk0i\":[\"Eenvoudige prijzen\"],\"sBhOFG\":[\"Eenvoudig, visueel taakbeheer dat gewoon werkt. Sleep kaarten, werk samen met je team en krijg meer gedaan.\"],\"R6pB8R\":[\"Star op Github\"],\"zzDlyQ\":[\"Geslaagd\"],\"wruKPE\":[\"Ondersteun de ontwikkeling van het project\"],\"D+NlUC\":[\"Systeem\"],\"CAL6E9\":[\"Teams\"],\"iTylMl\":[\"Sjablonen\"],\"UCLeG0\":[\"Servicevoorwaarden\"],\"nhMhRr\":[\"Bedankt voor je feedback!\"],\"lkz85l\":[\"Het belangrijkste verschil tussen Kan en Trello is dat Kan open source is, waardoor iedereen onze code kan bekijken, wijzigen en eraan kan bijdragen. Onze cloudoplossing biedt ook geen beperkingen op functies voor individueel gebruik, terwijl Trello basisfuncties zoals het aantal borden dat je kunt maken achter een betaalmuur plaatst.\"],\"gUX7b+\":[\"Het open source <0/> alternatief voor Trello\"],\"fQCrjt\":[\"De zichtbaarheid van je bord is ingesteld op \",[\"0\"],\".\"],\"FEr96N\":[\"Thema\"],\"Yf9FAx\":[\"Ze zullen geen toegang meer hebben tot deze werkruimte.\"],\"3LDCpD\":[\"Deze actie kan niet ongedaan worden gemaakt.\"],\"wY+6Ye\":[\"Deze board URL is al in gebruik\"],\"MeO/vH\":[\"Dit zal resulteren in het permanent verwijderen van alle gegevens die aan deze werkruimte zijn gekoppeld.\"],\"mwBdZ2\":[\"Dit zal resulteren in het permanent verwijderen van alle gegevens die aan je account zijn gekoppeld.\"],\"kp6L3T\":[\"Deze werkruimtegebruikersnaam is al in gebruik\"],\"4gAX8s\":[\"Menu in-/uitschakelen\"],\"eEQyz+\":[\"Volg alle kaartwijzigingen met gedetailleerde activiteitengeschiedenis.\"],\"zto8aj\":[\"Trello ontkoppeld\"],\"kxEs5t\":[\"Trello-imports\"],\"T7DJ2k\":[\"Kan geen reactie toevoegen\"],\"zl1b97\":[\"Kan kaart niet aanmaken\"],\"TztLaN\":[\"Kan geen lijst maken\"],\"MxQXhL\":[\"Kan werkruimte niet aanmaken\"],\"Z6r9z1\":[\"Kan kaart niet verwijderen\"],\"2QGEbi\":[\"Kan opmerking niet verwijderen\"],\"8yFGGF\":[\"Kan lid niet verwijderen\"],\"A8jqN7\":[\"Feedback kon niet worden verzonden\"],\"XpcjLO\":[\"Kan board URL niet bijwerken\"],\"Wy6pcF\":[\"Kan bordzichtbaarheid niet bijwerken\"],\"o9WLwO\":[\"Kan kaart niet bijwerken\"],\"fYVH36\":[\"Kan reactie niet bijwerken\"],\"delOXn\":[\"Kan labels niet bijwerken\"],\"I0gAKM\":[\"Kan lijst niet bijwerken\"],\"5P4rhH\":[\"Kan leden niet bijwerken\"],\"nxb+xc\":[\"<0>\",[\"memberName\"],\"0> van de kaart verwijderd\"],\"hAMddS\":[\"zichzelf van de kaart verwijderd\"],\"M9p3Vw\":[\"Onbeperkt activiteitenlogboek\"],\"1wCGT0\":[\"Onbeperkt aantal borden\"],\"ZU5IYI\":[\"Onbeperkt aantal borden, onbeperkt aantal lijsten, onbeperkt aantal kaarten. Geen creditcard vereist.\"],\"Zz1qkk\":[\"Onbeperkt aantal kaarten\"],\"fziA2d\":[\"Onbeperkt aantal opmerkingen\"],\"7Ufoyg\":[\"Onbeperkt aantal lijsten\"],\"EkH9pt\":[\"Bijwerken\"],\"7EhE4k\":[\"Label bijwerken\"],\"tGwwnq\":[\"beschrijving bijgewerkt\"],\"V3MPSQ\":[\"titel bijgewerkt\"],\"xJO7ca\":[\"titel bijgewerkt naar <0>\",[\"toTitle\"],\"0>\"],\"kwkhPe\":[\"Upgraden\"],\"MI5OBT\":[\"URL kan alleen letters, cijfers en koppeltekens bevatten\"],\"vMCCIc\":[\"URL mag niet langer zijn dan 24 tekens\"],\"SWEskc\":[\"URL moet minimaal 3 tekens lang zijn\"],\"7PzzBU\":[\"Gebruiker\"],\"FmfJjN\":[\"Bekijk en beheer je API-sleutels.\"],\"t2nDzl\":[\"Bekijk en beheer je facturering en abonnement.\"],\"aiHZVP\":[\"Bekijk documentatie\"],\"fSf2ee\":[\"Bekijk onze roadmap.\"],\"2q/Q7x\":[\"Zichtbaarheid\"],\"BJbLe4\":[\"We gebruiken de <0>AGPL-3.0 licentie0>.\"],\"9y1RcT\":[\"We zijn nog maar net begonnen. \"],\"9eF5oV\":[\"Welkom terug\"],\"xEbBrW\":[\"Welke licentie gebruiken jullie?\"],\"H5G+qG\":[\"Wat is het verschil tussen Kan en Trello?\"],\"oBndex\":[\"Toen Trello in 2011 werd gelanceerd, blies het iedereen omver met zijn zorgvuldig ontworpen eenvoud, maar na verloop van tijd (en atlassificatie) verloor het zijn magie en groeide het uit tot iets dat meer leek op \\\"Jira Lite\\\". Dit project is onze poging om de oorspronkelijke magie van Trello's eenvoud terug te brengen, in open source.\"],\"/DGOJs\":[\"When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to \\\"Jira Lite\\\". This project is our attempt to recapture the original magic of Trello’s simplicity, in open source.\"],\"SFnH1j\":[\"Waarom een open source Trello maken?\"],\"pmUArF\":[\"Werkruimte\"],\"UlhdTP\":[\"Werkruimte verwijderd\"],\"chyf4J\":[\"Werkruimte beschrijving\"],\"Ax/hYa\":[\"Werkruimtebeschrijving mag niet langer zijn dan 280 tekens\"],\"XDRXbZ\":[\"Werkruimtebeschrijving moet minimaal 3 tekens lang zijn\"],\"F4PLG4\":[\"Werkruimtebeschrijving bijgewerkt\"],\"wtxjAY\":[\"Werkruimteleden\"],\"CozWO1\":[\"Naam werkruimte\"],\"wIkTTk\":[\"Werkruimtenaam mag niet langer zijn dan 24 tekens\"],\"jZBHkN\":[\"Werkruimtenaam moet minimaal 3 tekens lang zijn\"],\"OIA0ad\":[\"Werkruimtenaam bijgewerkt\"],\"MN6YzG\":[\"Werkruimte-slug bijgewerkt\"],\"ASjvm9\":[\"Werkruimte URL\"],\"zkWmBh\":[\"Jaarlijks\"],\"eZCGbT\":[\"Ja, we bieden een voor altijd gratis plan voor individueel gebruik. Geen beperkingen, geen betaalmuren, geen limieten.\"],\"aelko+\":[\"Je kunt een aangepaste werkruimte-URL krijgen, zoals <0>kan.bn/kan0>, door naar je <1>werkruimte-instellingen1> te gaan en een pro-werkruimte-abonnement aan te schaffen. Alle abonnementen helpen de ontwikkeling van het project te financieren!\"],\"kSxwQL\":[\"Je kunt teamleden uitnodigen door op de knop \\\"Uitnodigen\\\" in de rechterbovenhoek van de <0>ledenpagina0> te klikken en hun e-mailadres in te voeren. Ze ontvangen een e-mail met een link om deel te nemen aan de werkruimte.\"],\"vAj6xG\":[\"Je kunt zelf hosten door de instructies in onze <0>repo0> te volgen.\"],\"p/hk9N\":[\"Je bent succesvol ingelogd.\"],\"mchgzf\":[\"Je bent succesvol geregistreerd.\"],\"GoDLB9\":[\"Je account is verwijderd.\"],\"evg7+A\":[\"Je borden zijn geïmporteerd.\"],\"LqWW5F\":[\"Je weergavenaam is bijgewerkt.\"],\"/tOdd2\":[\"Je profielafbeelding is bijgewerkt.\"],\"CJWDTP\":[\"Je Trello-account is ontkoppeld.\"],\"WRsbHO\":[\"Je Trello-account is verbonden.\"],\"GnSSGm\":[\"Je werkruimtebeschrijving is bijgewerkt.\"],\"qkjvgj\":[\"Je werkruimte is verwijderd.\"],\"2h4PVB\":[\"De naam van je werkruimte is bijgewerkt.\"],\"Hg1qE9\":[\"Je werkruimte-slug is bijgewerkt.\"]}")as Messages;
\ No newline at end of file
diff --git a/apps/web/src/pages/_app.tsx b/apps/web/src/pages/_app.tsx
index 058ba624..78da6b25 100644
--- a/apps/web/src/pages/_app.tsx
+++ b/apps/web/src/pages/_app.tsx
@@ -1,4 +1,5 @@
import "~/styles/globals.css";
+import "~/utils/i18n";
import type { AppType } from "next/app";
import { Plus_Jakarta_Sans } from "next/font/google";
@@ -8,6 +9,7 @@ import posthog from "posthog-js";
import { PostHogProvider } from "posthog-js/react";
import { useEffect } from "react";
+import { LinguiProviderWrapper } from "~/providers/lingui";
import { ModalProvider } from "~/providers/modal";
import { PopupProvider } from "~/providers/popup";
import { ThemeProvider } from "~/providers/theme";
@@ -59,19 +61,21 @@ const MyApp: AppType = ({ Component, pageProps }) => {
)}
-
-
-
- {posthogKey ? (
-
+
+
+
+
+ {posthogKey ? (
+
+
+
+ ) : (
-
- ) : (
-
- )}
-
-
-
+ )}
+
+
+
+
>
);
diff --git a/apps/web/src/providers/lingui.tsx b/apps/web/src/providers/lingui.tsx
new file mode 100644
index 00000000..bc8f0c3e
--- /dev/null
+++ b/apps/web/src/providers/lingui.tsx
@@ -0,0 +1,88 @@
+import type { ReactNode } from "react";
+import { I18nProvider } from "@lingui/react";
+import { createContext, useContext, useEffect, useState } from "react";
+
+import type { Locale } from "~/locales";
+import { defaultLocale, locales } from "~/locales";
+import { activateLocale, i18n, initializeI18n } from "~/utils/i18n";
+
+interface LinguiContextType {
+ locale: Locale;
+ setLocale: (locale: Locale) => void;
+ availableLocales: Locale[];
+}
+
+const LinguiContext = createContext(undefined);
+
+export function useLinguiContext() {
+ const context = useContext(LinguiContext);
+ if (!context) {
+ throw new Error("useLinguiContext must be used within a LinguiProvider");
+ }
+ return context;
+}
+
+interface LinguiProviderProps {
+ children: ReactNode;
+ initialLocale?: Locale;
+}
+
+function detectBrowserLocale(availableLocales: readonly string[]): Locale {
+ if (typeof navigator === "undefined") {
+ return defaultLocale;
+ }
+
+ const browserLanguages = navigator.languages || [navigator.language];
+
+ for (const browserLang of browserLanguages) {
+ const langCode = browserLang.split("-")[0];
+
+ if (langCode && availableLocales.includes(langCode.toLowerCase())) {
+ return langCode.toLowerCase() as Locale;
+ }
+ }
+
+ return defaultLocale;
+}
+
+export function LinguiProviderWrapper({
+ children,
+ initialLocale = defaultLocale,
+}: LinguiProviderProps) {
+ const [locale, setLocale] = useState(defaultLocale);
+ const [isHydrated, setIsHydrated] = useState(false);
+
+ initializeI18n();
+
+ useEffect(() => {
+ const savedLocale = localStorage.getItem("locale") as Locale;
+
+ if (savedLocale && locales.includes(savedLocale)) {
+ setLocale(savedLocale);
+ } else {
+ const detectedLocale = detectBrowserLocale(locales);
+ setLocale(detectedLocale);
+ }
+ setIsHydrated(true);
+ }, [initialLocale]);
+
+ useEffect(() => {
+ if (isHydrated && locale !== defaultLocale) {
+ activateLocale(locale).then(() => {
+ localStorage.setItem("locale", locale);
+ });
+ } else if (isHydrated) {
+ localStorage.setItem("locale", locale);
+ }
+ }, [locale, isHydrated]);
+
+ return (
+
+
+ {children}
+
+
+ );
+}
diff --git a/apps/web/src/utils/i18n.ts b/apps/web/src/utils/i18n.ts
new file mode 100644
index 00000000..cd586c07
--- /dev/null
+++ b/apps/web/src/utils/i18n.ts
@@ -0,0 +1,53 @@
+import { i18n } from "@lingui/core";
+
+import type { Locale } from "~/locales";
+import { defaultLocale } from "~/locales";
+import { messages as enMessages } from "~/locales/en/messages";
+
+const loadMessages = async (locale: Locale) => {
+ switch (locale) {
+ case "en":
+ return enMessages;
+ case "fr":
+ return (await import("~/locales/fr/messages")).messages;
+ case "de":
+ return (await import("~/locales/de/messages")).messages;
+ case "es":
+ return (await import("~/locales/es/messages")).messages;
+ case "it":
+ return (await import("~/locales/it/messages")).messages;
+ case "nl":
+ return (await import("~/locales/nl/messages")).messages;
+ default:
+ return enMessages;
+ }
+};
+
+let isInitialized = false;
+const loadedLocales = new Set();
+
+export function initializeI18n(locale: Locale = defaultLocale) {
+ if (!isInitialized) {
+ i18n.load(defaultLocale, enMessages);
+ i18n.activate(defaultLocale);
+ loadedLocales.add(defaultLocale);
+ isInitialized = true;
+ }
+
+ return i18n;
+}
+
+export async function activateLocale(locale: Locale) {
+ if (!loadedLocales.has(locale)) {
+ const messages = await loadMessages(locale);
+ i18n.load(locale, messages);
+ loadedLocales.add(locale);
+ }
+
+ i18n.activate(locale);
+ return i18n;
+}
+
+initializeI18n();
+
+export { i18n };
diff --git a/apps/web/src/views/auth/login/index.tsx b/apps/web/src/views/auth/login/index.tsx
index d51c9e57..fbfd1361 100644
--- a/apps/web/src/views/auth/login/index.tsx
+++ b/apps/web/src/views/auth/login/index.tsx
@@ -1,5 +1,7 @@
import Link from "next/link";
import { useRouter } from "next/navigation";
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
import { env } from "next-runtime-env";
import { useState } from "react";
@@ -26,7 +28,7 @@ export default function LoginPage() {
return (
<>
-
+
@@ -36,12 +38,15 @@ export default function LoginPage() {
- {isMagicLinkSent ? "Check your inbox" : "Welcome back"}
+ {isMagicLinkSent ? t`Check your inbox` : t`Welcome back`}
{isMagicLinkSent ? (
- {`Click on the link we've sent to ${magicLinkRecipient} to sign in.`}
+
+ Click on the link we've sent to {magicLinkRecipient} to sign
+ in.
+
) : (
@@ -53,10 +58,12 @@ export default function LoginPage() {
)}
{!isSignUpDisabled && (
- Don't have an account?{" "}
-
- Sign up
-
+
+ Don't have an account?{" "}
+
+ Sign up
+
+
)}
diff --git a/apps/web/src/views/auth/signup/index.tsx b/apps/web/src/views/auth/signup/index.tsx
index 05f1fb37..56d3b4bc 100644
--- a/apps/web/src/views/auth/signup/index.tsx
+++ b/apps/web/src/views/auth/signup/index.tsx
@@ -1,5 +1,8 @@
import Link from "next/link";
import { useRouter } from "next/navigation";
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
+import { env } from "next-runtime-env";
import { useState } from "react";
import { authClient } from "@kan/auth/client";
@@ -7,34 +10,51 @@ import { authClient } from "@kan/auth/client";
import { Auth } from "~/components/AuthForm";
import { PageHead } from "~/components/PageHead";
import PatternedBackground from "~/components/PatternedBackground";
-import { env } from "next-runtime-env";
-export default function SignupPage() {
+export default function SignUpPage() {
const router = useRouter();
+ const isSignUpDisabled = env("NEXT_PUBLIC_DISABLE_SIGN_UP") === "true";
const [isMagicLinkSent, setIsMagicLinkSent] = useState
(false);
const [magicLinkRecipient, setMagicLinkRecipient] = useState("");
+ const { data } = authClient.useSession();
+
+ if (data?.user.id) router.push("/boards");
+
const handleMagicLinkSent = (value: boolean, recipient: string) => {
setIsMagicLinkSent(value);
setMagicLinkRecipient(recipient);
};
- const { data } = authClient.useSession();
-
- if (data?.user.id) router.push("/boards");
-
- if (env("NEXT_PUBLIC_DISABLE_SIGN_UP")?.toLowerCase() === "true") {
+ if (isSignUpDisabled) {
return (
-
-
Sign up is disabled
-
Login
-
- )
+ <>
+
+
+
+
+
+
+ kan.bn
+
+
+
+ {t`Sign up disabled`}
+
+
+ {t`Sign up is currently disabled. Please try again later.`}
+
+
+
+
+
+ >
+ );
}
return (
<>
-
+
@@ -44,12 +64,15 @@ export default function SignupPage() {
- {isMagicLinkSent ? "Check your inbox" : "Create your account"}
+ {isMagicLinkSent ? t`Check your inbox` : t`Get started`}
{isMagicLinkSent ? (
- {`Click on the link we've sent to ${magicLinkRecipient} to sign in.`}
+
+ Click on the link we've sent to {magicLinkRecipient} to sign
+ in.
+
) : (
@@ -60,10 +83,12 @@ export default function SignupPage() {
)}
- Already have an account?{" "}
-
- Sign in
-
+
+ Already have an account?{" "}
+
+ Sign in
+
+
diff --git a/apps/web/src/views/board/components/BoardDropdown.tsx b/apps/web/src/views/board/components/BoardDropdown.tsx
index 4d2dda81..0e896b93 100644
--- a/apps/web/src/views/board/components/BoardDropdown.tsx
+++ b/apps/web/src/views/board/components/BoardDropdown.tsx
@@ -1,3 +1,4 @@
+import { t } from "@lingui/core/macro";
import { HiEllipsisHorizontal, HiLink, HiOutlineTrash } from "react-icons/hi2";
import Dropdown from "~/components/Dropdown";
@@ -11,12 +12,12 @@ export default function BoardDropdown({ isLoading }: { isLoading: boolean }) {
disabled={isLoading}
items={[
{
- label: "Edit board URL",
+ label: t`Edit board URL`,
action: () => openModal("UPDATE_BOARD_SLUG"),
icon: ,
},
{
- label: "Delete board",
+ label: t`Delete board`,
action: () => openModal("DELETE_BOARD"),
icon: ,
},
diff --git a/apps/web/src/views/board/components/Filters.tsx b/apps/web/src/views/board/components/Filters.tsx
index c63ec9a7..b8305a3e 100644
--- a/apps/web/src/views/board/components/Filters.tsx
+++ b/apps/web/src/views/board/components/Filters.tsx
@@ -1,4 +1,5 @@
import { useRouter } from "next/router";
+import { t } from "@lingui/core/macro";
import {
HiMiniXMark,
HiOutlineTag,
@@ -89,7 +90,7 @@ const Filters = ({
? [
{
key: "members",
- label: "Members",
+ label: t`Members`,
icon: ,
items: formattedMembers,
},
@@ -97,7 +98,7 @@ const Filters = ({
: []),
{
key: "labels",
- label: "Labels",
+ label: t`Labels`,
icon: ,
items: formattedLabels,
},
@@ -145,13 +146,13 @@ const Filters = ({
disabled={isLoading}
iconLeft={}
>
- Filter
+ {t`Filter`}
{numOfFilters > 0 && (
{numOfFilters}
diff --git a/apps/web/src/views/board/components/List.tsx b/apps/web/src/views/board/components/List.tsx
index fb19cdfb..c2654ae7 100644
--- a/apps/web/src/views/board/components/List.tsx
+++ b/apps/web/src/views/board/components/List.tsx
@@ -1,4 +1,5 @@
import type { ReactNode } from "react";
+import { t } from "@lingui/core/macro";
import { Draggable } from "react-beautiful-dnd";
import { useForm } from "react-hook-form";
import {
@@ -106,14 +107,14 @@ export default function List({
openNewCardForm(list.publicId),
icon: (
),
},
{
- label: "Delete list",
+ label: t`Delete list`,
action: handleOpenDeleteListConfirmation,
icon: (
diff --git a/apps/web/src/views/board/components/NewCardForm.tsx b/apps/web/src/views/board/components/NewCardForm.tsx
index eecfbe07..2b71f5a0 100644
--- a/apps/web/src/views/board/components/NewCardForm.tsx
+++ b/apps/web/src/views/board/components/NewCardForm.tsx
@@ -1,3 +1,5 @@
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import {
@@ -90,9 +92,14 @@ export function NewCardForm({
args.labelPublicIds.includes(label.publicId),
),
members:
- oldBoard.workspace.members.filter((member) =>
- args.memberPublicIds.includes(member.publicId),
- ) ?? [],
+ oldBoard.workspace.members
+ .filter((member) =>
+ args.memberPublicIds.includes(member.publicId),
+ )
+ .map((member) => ({
+ ...member,
+ deletedAt: null,
+ })) ?? [],
_filteredLabels: labelPublicIds.map((id) => ({ publicId: id })),
_filteredMembers: memberPublicIds.map((id) => ({ publicId: id })),
index: position === "start" ? 0 : list.cards.length,
@@ -115,10 +122,10 @@ export function NewCardForm({
onError: (error, _newList, context) => {
utils.board.byId.setData(queryParams, context?.previousState);
showPopup({
- header: "Unable to create card",
+ header: t`Unable to create card`,
message: error.data?.zodError?.fieldErrors.title?.[0]
? `${error.data.zodError.fieldErrors.title[0].replace("String", "Title")}`
- : "Please try again later, or contact customer support.",
+ : t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -166,6 +173,7 @@ export function NewCardForm({
member.user?.name ?? null,
member.user?.email ?? member.email,
),
+ selected: memberPublicIds.includes(member.publicId),
leftIcon: (
- New card
+ {t`New card`}
{
if (e.key === "Enter") {
@@ -279,7 +287,7 @@ export function NewCardForm({
>
{!memberPublicIds.length ? (
- "Members"
+ t`Members`
) : (
{memberPublicIds.map((memberPublicId) => {
@@ -316,11 +324,11 @@ export function NewCardForm({
openModal("EDIT_LABEL", labelPublicId)
}
handleCreate={() => openModal("NEW_LABEL")}
- createNewItemLabel="Create new label"
+ createNewItemLabel={t`Create new label`}
>
{!labelPublicIds.length ? (
- "Labels"
+ t`Labels`
) : (
<>
{labelPublicIds.length > 1 && (
-
{`${labelPublicIds.length} labels`}
+
+ {`${labelPublicIds.length} labels`}
+
)}
>
)}
@@ -378,7 +388,7 @@ export function NewCardForm({
@@ -388,7 +398,7 @@ export function NewCardForm({
type="submit"
disabled={title.length === 0 || createCard.isPending}
>
- Create card
+ {t`Create card`}
diff --git a/apps/web/src/views/board/components/NewListForm.tsx b/apps/web/src/views/board/components/NewListForm.tsx
index b6c64693..ead30076 100644
--- a/apps/web/src/views/board/components/NewListForm.tsx
+++ b/apps/web/src/views/board/components/NewListForm.tsx
@@ -1,3 +1,4 @@
+import { t } from "@lingui/core/macro";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import { HiXMark } from "react-icons/hi2";
@@ -73,8 +74,8 @@ export function NewListForm({
onError: (_error, _newList, context) => {
utils.board.byId.setData(queryParams, context?.previousState);
showPopup({
- header: "Unable to create list",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to create list`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -108,7 +109,7 @@ export function NewListForm({
- New list
+ {t`New list`}
{
if (e.key === "Enter") {
@@ -136,7 +137,7 @@ export function NewListForm({
setValue("isCreateAnotherEnabled", !isCreateAnotherEnabled)
@@ -144,7 +145,7 @@ export function NewListForm({
/>
- Create list
+ {t`Create list`}
diff --git a/apps/web/src/views/board/components/UpdateBoardSlugForm.tsx b/apps/web/src/views/board/components/UpdateBoardSlugForm.tsx
index ab584476..2ec7245f 100644
--- a/apps/web/src/views/board/components/UpdateBoardSlugForm.tsx
+++ b/apps/web/src/views/board/components/UpdateBoardSlugForm.tsx
@@ -1,4 +1,5 @@
import { zodResolver } from "@hookform/resolvers/zod";
+import { t } from "@lingui/core/macro";
import { env } from "next-runtime-env";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
@@ -12,20 +13,6 @@ import { useModal } from "~/providers/modal";
import { usePopup } from "~/providers/popup";
import { api } from "~/utils/api";
-const schema = z.object({
- slug: z
- .string()
- .min(3, {
- message: "Board URL must be at least 3 characters long",
- })
- .max(60, { message: "Board URL cannot exceed 60 characters" })
- .regex(/^(?![-]+$)[a-zA-Z0-9-]+$/, {
- message: "Board URL can only contain letters, numbers, and hyphens",
- }),
-});
-
-type FormValues = z.infer
;
-
interface QueryParams {
boardPublicId: string;
members: string[];
@@ -47,6 +34,20 @@ export function UpdateBoardSlugForm({
const { showPopup } = usePopup();
const utils = api.useUtils();
+ const schema = z.object({
+ slug: z
+ .string()
+ .min(3, {
+ message: t`Board URL must be at least 3 characters long`,
+ })
+ .max(60, { message: t`Board URL cannot exceed 60 characters` })
+ .regex(/^(?![-]+$)[a-zA-Z0-9-]+$/, {
+ message: t`Board URL can only contain letters, numbers, and hyphens`,
+ }),
+ });
+
+ type FormValues = z.infer;
+
const {
register,
handleSubmit,
@@ -67,8 +68,8 @@ export function UpdateBoardSlugForm({
const updateBoardSlug = api.board.update.useMutation({
onError: () => {
showPopup({
- header: "Unable to update board URL",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to update board URL`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -78,17 +79,15 @@ export function UpdateBoardSlugForm({
},
});
- const checkBoardSlugAvailability =
- api.board.checkSlugAvailability.useQuery(
- {
- boardSlug: debouncedSlug,
- boardPublicId,
- },
- {
- enabled:
- !!debouncedSlug && debouncedSlug !== boardSlug && !errors.slug,
- },
- );
+ const checkBoardSlugAvailability = api.board.checkSlugAvailability.useQuery(
+ {
+ boardSlug: debouncedSlug,
+ boardPublicId,
+ },
+ {
+ enabled: !!debouncedSlug && debouncedSlug !== boardSlug && !errors.slug,
+ },
+ );
const isBoardSlugAvailable = checkBoardSlugAvailability.data;
@@ -100,7 +99,7 @@ export function UpdateBoardSlugForm({
const onSubmit = (data: FormValues) => {
if (!isBoardSlugAvailable) return;
- if (isBoardSlugAvailable?.isReserved) return;
+ if (isBoardSlugAvailable.isReserved) return;
updateBoardSlug.mutate({
slug: data.slug,
@@ -113,7 +112,7 @@ export function UpdateBoardSlugForm({
- Edit board URL
+ {t`Edit board URL`}
{
if (e.key === "Enter") {
@@ -161,7 +163,7 @@ export function UpdateBoardSlugForm({
isBoardSlugAvailable?.isReserved
}
>
- Update
+ {t`Update`}
diff --git a/apps/web/src/views/board/components/VisibilityButton.tsx b/apps/web/src/views/board/components/VisibilityButton.tsx
index 7ca3e194..46329b1f 100644
--- a/apps/web/src/views/board/components/VisibilityButton.tsx
+++ b/apps/web/src/views/board/components/VisibilityButton.tsx
@@ -1,3 +1,4 @@
+import { t } from "@lingui/core/macro";
import { useEffect, useState } from "react";
import { HiOutlineEye, HiOutlineEyeSlash } from "react-icons/hi2";
@@ -41,15 +42,15 @@ const VisibilityButton = ({
const updateBoardVisibility = api.board.update.useMutation({
onSuccess: () => {
showPopup({
- header: "Board visibility updated",
- message: `The visibility of your board has been set to ${isPublic ? "public" : "private"}.`,
+ header: t`Board visibility updated`,
+ message: t`The visibility of your board has been set to ${isPublic ? "public" : "private"}.`,
icon: "success",
});
},
onError: () => {
showPopup({
- header: "Unable to update board visibility",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to update board visibility`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -64,12 +65,12 @@ const VisibilityButton = ({
items={[
{
key: "public",
- value: "Public",
+ value: t`Public`,
selected: isPublic,
},
{
key: "private",
- value: "Private",
+ value: t`Private`,
selected: !isPublic,
},
]}
@@ -87,7 +88,7 @@ const VisibilityButton = ({
iconLeft={isPublic ? : }
disabled={isLoading || !isAdmin}
>
- Visibility
+ {t`Visibility`}
diff --git a/apps/web/src/views/board/index.tsx b/apps/web/src/views/board/index.tsx
index e4d626a5..5ba5e844 100644
--- a/apps/web/src/views/board/index.tsx
+++ b/apps/web/src/views/board/index.tsx
@@ -2,6 +2,7 @@ import type { DropResult } from "react-beautiful-dnd";
import Link from "next/link";
import { useParams } from "next/navigation";
import { useRouter } from "next/router";
+import { t } from "@lingui/core/macro";
import { keepPreviousData } from "@tanstack/react-query";
import { useEffect, useState } from "react";
import { DragDropContext, Draggable } from "react-beautiful-dnd";
@@ -128,8 +129,8 @@ export default function BoardPage() {
onError: (_error, _newList, context) => {
utils.board.byId.setData(queryParams, context?.previousState);
showPopup({
- header: "Unable to update list",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to update list`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -184,8 +185,8 @@ export default function BoardPage() {
onError: (_error, _newList, context) => {
utils.board.byId.setData(queryParams, context?.previousState);
showPopup({
- header: "Unable to update card",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to update card`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -235,7 +236,7 @@ export default function BoardPage() {
return (
<>
@@ -261,7 +262,7 @@ export default function BoardPage() {
)}
{!boardData && !isLoading && (
- Board not found
+ {t`Board not found`}
)}
@@ -292,7 +293,7 @@ export default function BoardPage() {
}}
disabled={!boardData}
>
- New list
+ {t`New list`}
@@ -307,15 +308,15 @@ export default function BoardPage() {
) : boardData ? (
<>
- {boardData?.lists.length === 0 ? (
+ {boardData.lists.length === 0 ? (
- No lists
+ {t`No lists`}
- Get started by creating a new list
+ {t`Get started by creating a new list`}
- Create new list
+ {t`Create new list`}
) : (
@@ -340,7 +341,7 @@ export default function BoardPage() {
{...provided.droppableProps}
>
- {boardData?.lists.map((list, index) => (
+ {boardData.lists.map((list, index) => (
+
@@ -31,13 +32,15 @@ export function BoardsList() {
- No boards
+ {t`No boards`}
- Get started by creating a new board
+ {t`Get started by creating a new board`}
-
openModal("NEW_BOARD")}>Create new board
+
openModal("NEW_BOARD")}>
+ {t`Create new board`}
+
);
diff --git a/apps/web/src/views/boards/components/ImportBoardsForm.tsx b/apps/web/src/views/boards/components/ImportBoardsForm.tsx
index f537a381..267cdf9e 100644
--- a/apps/web/src/views/boards/components/ImportBoardsForm.tsx
+++ b/apps/web/src/views/boards/components/ImportBoardsForm.tsx
@@ -1,5 +1,7 @@
import Link from "next/link";
import { Listbox, Transition } from "@headlessui/react";
+import { t } from "@lingui/core/macro";
+import { Plural, Trans } from "@lingui/react/macro";
import { Fragment, useEffect, useState } from "react";
import { Controller, useForm } from "react-hook-form";
import { FaTrello } from "react-icons/fa";
@@ -152,7 +154,7 @@ const SelectSource = ({ handleNextStep }: { handleNextStep: () => void }) => {
!hasIntegrations ? : undefined
}
>
- {hasIntegrations ? "Select source" : "Connect Trello"}
+ {hasIntegrations ? t`Select source` : t`Connect Trello`}
@@ -186,8 +188,8 @@ const ImportTrello: React.FC = () => {
const importBoards = api.import.trello.importBoards.useMutation({
onSuccess: async () => {
showPopup({
- header: "Import complete",
- message: "Your boards have been imported.",
+ header: t`Import complete`,
+ message: t`Your boards have been imported.`,
icon: "success",
});
try {
@@ -199,8 +201,8 @@ const ImportTrello: React.FC = () => {
},
onError: () => {
showPopup({
- header: "Import failed",
- message: "Please try again later, or contact customer support.",
+ header: t`Import failed`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -211,6 +213,8 @@ const ImportTrello: React.FC = () => {
value: watch(board.id),
}));
+ const boardCount = boardWatchers?.filter((w) => w.value === true).length || 0;
+
const onSubmitBoards = (values: Record) => {
const boardIds = Object.keys(values).filter((key) => values[key] === true);
@@ -235,7 +239,7 @@ const ImportTrello: React.FC = () => {
return (
- No boards found
+ {t`No boards found`}
);
@@ -267,7 +271,7 @@ const ImportTrello: React.FC = () => {
{
const newState = !isSelectAllEnabled;
@@ -292,8 +296,13 @@ const ImportTrello: React.FC = () => {
)
}
>
- Import boards (
- {boardWatchers?.filter((w) => w.value === true).length || 0})
+
+
+
@@ -310,7 +319,7 @@ export function ImportBoardsForm() {
- New import
+ {t`New import`}
-
New board
+
{t`New board`}
{
if (e.key === "Enter") {
@@ -73,7 +74,7 @@ export function NewBoardForm() {
- Create board
+ {t`Create board`}
diff --git a/apps/web/src/views/boards/index.tsx b/apps/web/src/views/boards/index.tsx
index ed7b207a..671bfcf9 100644
--- a/apps/web/src/views/boards/index.tsx
+++ b/apps/web/src/views/boards/index.tsx
@@ -1,3 +1,4 @@
+import { t } from "@lingui/core/macro";
import { HiArrowDownTray, HiOutlinePlusSmall } from "react-icons/hi2";
import Modal from "~/components/modal";
@@ -17,11 +18,11 @@ export default function BoardsPage() {
return (
<>
-
+
- Boards
+ {t`Boards`}
- Import
+ {t`Import`}
- New
+ {t`New`}
diff --git a/apps/web/src/views/card/components/ActivityList.tsx b/apps/web/src/views/card/components/ActivityList.tsx
index 8a943e29..522733e1 100644
--- a/apps/web/src/views/card/components/ActivityList.tsx
+++ b/apps/web/src/views/card/components/ActivityList.tsx
@@ -1,4 +1,7 @@
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
import { formatDistanceToNow } from "date-fns";
+import { de, enGB, es, fr, it, nl } from "date-fns/locale";
import {
HiOutlineArrowLeft,
HiOutlineArrowRight,
@@ -8,24 +11,24 @@ import {
HiOutlineUserMinus,
HiOutlineUserPlus,
} from "react-icons/hi2";
+
import type { GetCardByIdOutput } from "@kan/api/types";
+import { authClient } from "@kan/auth/client";
import Avatar from "~/components/Avatar";
+import { useLocalisation } from "~/hooks/useLocalisation";
import Comment from "./Comment";
-import { authClient } from "@kan/auth/client";
type ActivityType =
NonNullable
["activities"][number]["type"];
-const ACTIVITY_TYPE_MAP = {
- "card.created": "created the card",
- "card.updated.title": "updated the title",
- "card.updated.description": "updated the description",
- "card.updated.list": "moved the card to another list",
- "card.updated.label.added": "added a label to the card",
- "card.updated.label.removed": "removed a label from the card",
- "card.updated.member.added": "added a member to the card",
- "card.updated.member.removed": "removed a member from the card",
+const dateLocaleMap = {
+ en: enGB,
+ fr: fr,
+ de: de,
+ es: es,
+ it: it,
+ nl: nl,
} as const;
const getActivityText = ({
@@ -45,6 +48,17 @@ const getActivityText = ({
isSelf: boolean;
label: string | null;
}) => {
+ const ACTIVITY_TYPE_MAP = {
+ "card.created": t`created the card`,
+ "card.updated.title": t`updated the title`,
+ "card.updated.description": t`updated the description`,
+ "card.updated.list": t`moved the card to another list`,
+ "card.updated.label.added": t`added a label to the card`,
+ "card.updated.label.removed": t`removed a label from the card`,
+ "card.updated.member.added": t`added a member to the card`,
+ "card.updated.member.removed": t`removed a member from the card`,
+ } as const;
+
if (!(type in ACTIVITY_TYPE_MAP)) return null;
const baseText = ACTIVITY_TYPE_MAP[type as keyof typeof ACTIVITY_TYPE_MAP];
@@ -56,54 +70,54 @@ const getActivityText = ({
if (type === "card.updated.title" && toTitle) {
return (
- <>
+
updated the title to {toTitle}
- >
+
);
}
if (type === "card.updated.list" && fromList && toList) {
return (
- <>
+
moved the card from {fromList} to
{toList}
- >
+
);
}
if (type === "card.updated.member.added" && memberName) {
- if (isSelf) return <>self-assigned the card>;
+ if (isSelf) return self-assigned the card;
return (
- <>
+
assigned {memberName} to the card
- >
+
);
}
if (type === "card.updated.member.removed" && memberName) {
- if (isSelf) return <>unassigned themselves from the card>;
+ if (isSelf) return unassigned themselves from the card;
return (
- <>
+
unassigned {memberName} from the card
- >
+
);
}
if (type === "card.updated.label.added" && label) {
return (
- <>
+
added label {label}
- >
+
);
}
if (type === "card.updated.label.removed" && label) {
return (
- <>
+
removed label {label}
- >
+
);
}
@@ -148,6 +162,9 @@ const ActivityList = ({
isAdmin?: boolean;
}) => {
const { data } = authClient.useSession();
+ const { locale } = useLocalisation();
+
+ const currentDateLocale = dateLocaleMap[locale] || enGB;
return (
@@ -158,7 +175,7 @@ const ActivityList = ({
fromList: activity.fromList?.name ?? null,
toList: activity.toList?.name ?? null,
memberName: activity.member?.user?.name ?? null,
- isSelf: activity.member?.user?.id === data?.user?.id,
+ isSelf: activity.member?.user?.id === data?.user.id,
label: activity.label?.name ?? null,
});
@@ -171,10 +188,10 @@ const ActivityList = ({
name={activity.user?.name ?? ""}
email={activity.user?.email ?? ""}
isLoading={isLoading}
- createdAt={activity.createdAt}
+ createdAt={activity.createdAt.toISOString()}
comment={activity.comment?.comment}
isEdited={!!activity.comment?.updatedAt}
- isAuthor={activity.comment?.createdBy === data?.user?.id}
+ isAuthor={activity.comment?.createdBy === data?.user.id}
isAdmin={isAdmin ?? false}
/>
);
@@ -213,6 +230,7 @@ const ActivityList = ({
{formatDistanceToNow(new Date(activity.createdAt), {
addSuffix: true,
+ locale: currentDateLocale,
})}
diff --git a/apps/web/src/views/card/components/Comment.tsx b/apps/web/src/views/card/components/Comment.tsx
index 506ceda2..d0f4df30 100644
--- a/apps/web/src/views/card/components/Comment.tsx
+++ b/apps/web/src/views/card/components/Comment.tsx
@@ -1,3 +1,4 @@
+import { t } from "@lingui/core/macro";
import { formatDistanceToNow } from "date-fns";
import { useState } from "react";
import ContentEditable from "react-contenteditable";
@@ -57,8 +58,8 @@ const Comment = ({
},
onError: () => {
showPopup({
- header: "Unable to update comment",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to update comment`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -76,7 +77,7 @@ const Comment = ({
...(isAuthor
? [
{
- label: "Edit comment",
+ label: t`Edit comment`,
action: () => setIsEditing(true),
icon: ,
},
@@ -85,7 +86,7 @@ const Comment = ({
...(isAuthor || isAdmin
? [
{
- label: "Delete comment",
+ label: t`Delete comment`,
action: () => openModal("DELETE_COMMENT", publicId),
icon: ,
},
@@ -117,7 +118,7 @@ const Comment = ({
{isEdited && (
- {" (edited)"}
+ {t` (edited)`}
)}
@@ -140,7 +141,7 @@ const Comment = ({
) : (
diff --git a/apps/web/src/views/card/components/DeleteCardConfirmation.tsx b/apps/web/src/views/card/components/DeleteCardConfirmation.tsx
index 46201d9e..23509169 100644
--- a/apps/web/src/views/card/components/DeleteCardConfirmation.tsx
+++ b/apps/web/src/views/card/components/DeleteCardConfirmation.tsx
@@ -1,4 +1,5 @@
import { useRouter } from "next/navigation";
+import { t } from "@lingui/core/macro";
import Button from "~/components/Button";
import { useModal } from "~/providers/modal";
@@ -47,8 +48,8 @@ export function DeleteCardConfirmation({
onError: (_error, _newList, context) => {
utils.board.byId.setData(queryParams, context?.previousState);
showPopup({
- header: "Unable to delete card",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to delete card`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -71,10 +72,10 @@ export function DeleteCardConfirmation({
- Are you sure you want to delete this card?
+ {t`Are you sure you want to delete this card?`}
- {"This action can't be undone."}
+ {t`This action can't be undone.`}
@@ -82,13 +83,13 @@ export function DeleteCardConfirmation({
className="mr-4 inline-flex justify-center rounded-md border-[1px] border-light-600 bg-light-50 px-3 py-2 text-sm font-semibold text-neutral-900 shadow-sm focus-visible:outline-none dark:border-dark-600 dark:bg-dark-300 dark:text-dark-1000"
onClick={() => closeModal()}
>
- Cancel
+ {t`Cancel`}
- Delete
+ {t`Delete`}
diff --git a/apps/web/src/views/card/components/DeleteCommentConfirmation.tsx b/apps/web/src/views/card/components/DeleteCommentConfirmation.tsx
index ee34fe28..253abde1 100644
--- a/apps/web/src/views/card/components/DeleteCommentConfirmation.tsx
+++ b/apps/web/src/views/card/components/DeleteCommentConfirmation.tsx
@@ -1,3 +1,5 @@
+import { t } from "@lingui/core/macro";
+
import Button from "~/components/Button";
import { useModal } from "~/providers/modal";
import { usePopup } from "~/providers/popup";
@@ -39,8 +41,8 @@ export function DeleteCommentConfirmation({
onError: (_error, _newList, context) => {
utils.card.byId.setData(queryParams, context?.previousState);
showPopup({
- header: "Unable to delete comment",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to delete comment`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -60,10 +62,10 @@ export function DeleteCommentConfirmation({
- Are you sure you want to delete this comment?
+ {t`Are you sure you want to delete this comment?`}
- {"This action can't be undone."}
+ {t`This action can't be undone.`}
@@ -71,13 +73,13 @@ export function DeleteCommentConfirmation({
className="mr-4 inline-flex justify-center rounded-md border-[1px] border-light-600 bg-light-50 px-3 py-2 text-sm font-semibold text-neutral-900 shadow-sm focus-visible:outline-none dark:border-dark-600 dark:bg-dark-300 dark:text-dark-1000"
onClick={() => closeModal()}
>
- Cancel
+ {t`Cancel`}
- Delete
+ {t`Delete`}
diff --git a/apps/web/src/views/card/components/Dropdown.tsx b/apps/web/src/views/card/components/Dropdown.tsx
index cc02d754..6aa19239 100644
--- a/apps/web/src/views/card/components/Dropdown.tsx
+++ b/apps/web/src/views/card/components/Dropdown.tsx
@@ -1,3 +1,4 @@
+import { t } from "@lingui/core/macro";
import { HiEllipsisHorizontal, HiOutlineTrash } from "react-icons/hi2";
import Dropdown from "~/components/Dropdown";
@@ -10,7 +11,7 @@ export default function BoardDropdown() {
openModal("DELETE_CARD"),
icon: ,
},
diff --git a/apps/web/src/views/card/components/LabelSelector.tsx b/apps/web/src/views/card/components/LabelSelector.tsx
index f1b8c746..401b6f9e 100644
--- a/apps/web/src/views/card/components/LabelSelector.tsx
+++ b/apps/web/src/views/card/components/LabelSelector.tsx
@@ -1,4 +1,5 @@
import { Menu } from "@headlessui/react";
+import { t } from "@lingui/core/macro";
import { HiMiniPlus } from "react-icons/hi2";
import Badge from "~/components/Badge";
@@ -68,8 +69,8 @@ export default function LabelSelector({
onError: (_error, _newList, context) => {
utils.card.byId.setData({ cardPublicId }, context?.previousCard);
showPopup({
- header: "Unable to update labels",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to update labels`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -94,7 +95,7 @@ export default function LabelSelector({
}}
handleEdit={(labelPublicId) => openModal("EDIT_LABEL", labelPublicId)}
handleCreate={() => openModal("NEW_LABEL")}
- createNewItemLabel="Create new label"
+ createNewItemLabel={t`Create new label`}
asChild
>
{selectedLabels.length ? (
@@ -105,13 +106,16 @@ export default function LabelSelector({
))}
- } />
+ }
+ />
) : (
- Add label
+ {t`Add label`}
)}
diff --git a/apps/web/src/views/card/components/ListSelector.tsx b/apps/web/src/views/card/components/ListSelector.tsx
index 7a965f4a..4cd864a9 100644
--- a/apps/web/src/views/card/components/ListSelector.tsx
+++ b/apps/web/src/views/card/components/ListSelector.tsx
@@ -1,4 +1,5 @@
import { Menu } from "@headlessui/react";
+import { t } from "@lingui/core/macro";
import CheckboxDropdown from "~/components/CheckboxDropdown";
import { usePopup } from "~/providers/popup";
@@ -48,8 +49,8 @@ export default function ListSelector({
onError: (_error, _newList, context) => {
utils.card.byId.setData({ cardPublicId }, context?.previousCard);
showPopup({
- header: "Unable to update list",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to update list`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
diff --git a/apps/web/src/views/card/components/MemberSelector.tsx b/apps/web/src/views/card/components/MemberSelector.tsx
index 6813ddff..931da90e 100644
--- a/apps/web/src/views/card/components/MemberSelector.tsx
+++ b/apps/web/src/views/card/components/MemberSelector.tsx
@@ -1,5 +1,6 @@
import { useRouter } from "next/router";
import { Menu } from "@headlessui/react";
+import { t } from "@lingui/core/macro";
import { HiMiniPlus } from "react-icons/hi2";
import Avatar from "~/components/Avatar";
@@ -55,6 +56,8 @@ export default function MemberSelector({
...oldCard.members,
{
publicId: update.workspaceMemberPublicId,
+ email: memberToAdd?.email ?? "",
+ deletedAt: null,
user: {
id: memberToAdd?.user?.id ?? "",
name: memberToAdd?.user?.name ?? "",
@@ -73,8 +76,8 @@ export default function MemberSelector({
onError: (_error, _newList, context) => {
utils.card.byId.setData({ cardPublicId }, context?.previousCard);
showPopup({
- header: "Unable to update members",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to update members`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -106,7 +109,7 @@ export default function MemberSelector({
});
}}
handleCreate={handleInviteMember}
- createNewItemLabel="Invite member"
+ createNewItemLabel={t`Invite member`}
asChild
>
@@ -124,7 +127,7 @@ export default function MemberSelector({
) : (
<>
- {"Add member"}
+ {t`Add member`}
>
)}
diff --git a/apps/web/src/views/card/components/NewCommentForm.tsx b/apps/web/src/views/card/components/NewCommentForm.tsx
index 128a1ae8..828be8bd 100644
--- a/apps/web/src/views/card/components/NewCommentForm.tsx
+++ b/apps/web/src/views/card/components/NewCommentForm.tsx
@@ -1,3 +1,4 @@
+import { t } from "@lingui/core/macro";
import ContentEditable from "react-contenteditable";
import { useForm } from "react-hook-form";
import { HiOutlineArrowUp } from "react-icons/hi2";
@@ -26,8 +27,8 @@ const NewCommentForm = ({ cardPublicId }: { cardPublicId: string }) => {
const addCommentMutation = api.card.addComment.useMutation({
onError: (_error, _newList) => {
showPopup({
- header: "Unable to add comment",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to add comment`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -53,7 +54,7 @@ const NewCommentForm = ({ cardPublicId }: { cardPublicId: string }) => {
className="flex w-full max-w-[1000px] flex-col rounded-xl border border-light-600 bg-light-200 p-4 text-light-900 focus-visible:outline-none dark:border-dark-400 dark:bg-dark-100 dark:text-dark-1000 sm:text-sm sm:leading-6"
>
setValue("comment", e.target.value)}
diff --git a/apps/web/src/views/card/index.tsx b/apps/web/src/views/card/index.tsx
index 1991a567..fa0e45b5 100644
--- a/apps/web/src/views/card/index.tsx
+++ b/apps/web/src/views/card/index.tsx
@@ -1,9 +1,11 @@
import Link from "next/link";
import { useRouter } from "next/router";
+import { t } from "@lingui/core/macro";
import { useForm } from "react-hook-form";
import { IoChevronForwardSharp } from "react-icons/io5";
import Avatar from "~/components/Avatar";
+import Editor from "~/components/Editor";
import { LabelForm } from "~/components/LabelForm";
import LabelIcon from "~/components/LabelIcon";
import Modal from "~/components/modal";
@@ -23,7 +25,6 @@ import LabelSelector from "./components/LabelSelector";
import ListSelector from "./components/ListSelector";
import MemberSelector from "./components/MemberSelector";
import NewCommentForm from "./components/NewCommentForm";
-import Editor from "~/components/Editor";
interface FormValues {
cardId: string;
@@ -111,8 +112,8 @@ export default function CardPage() {
const updateCard = api.card.update.useMutation({
onError: () => {
showPopup({
- header: "Unable to update card",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to update card`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
@@ -144,7 +145,7 @@ export default function CardPage() {
return (
<>
@@ -189,7 +190,7 @@ export default function CardPage() {
)}
{!card && !isLoading && (
- Card not found
+ {t`Card not found`}
)}
@@ -211,7 +212,7 @@ export default function CardPage() {
- Activity
+ {t`Activity`}
-
Members
+
{t`Members`}
{
kan.bn/{currentWorkspaceSlug}
- Get started for free today
+ {t`Get started for free today`}
- Unlimited boards, unlimited lists, unlimited cards. No credit card
- required.
+ {t`Unlimited boards, unlimited lists, unlimited cards. No credit card required.`}
- Get started
+ {t`Get started`}
diff --git a/apps/web/src/views/home/components/Faqs.tsx b/apps/web/src/views/home/components/Faqs.tsx
index ddd98d5e..3f0a6ea4 100644
--- a/apps/web/src/views/home/components/Faqs.tsx
+++ b/apps/web/src/views/home/components/Faqs.tsx
@@ -4,6 +4,8 @@ import {
DisclosureButton,
DisclosurePanel,
} from "@headlessui/react";
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
import { HiMiniMinusSmall, HiMiniPlusSmall } from "react-icons/hi2";
const Text = ({ children }: { children: React.ReactNode }) => {
@@ -14,143 +16,145 @@ const Text = ({ children }: { children: React.ReactNode }) => {
);
};
-const faqs = [
- {
- question: "Why make an open source Trello?",
- answer: (
-
- When Trello launched in 2011, it blew everyone away with its carefully
- designed simplicity, but over time (and atlassification) it lost its
- magic and grew into something closer to "Jira Lite". This project is our
- attempt to recapture the original magic of Trello’s simplicity, in open
- source.
-
- ),
- },
- {
- question: "What's the difference between Kan and Trello?",
- answer: (
-
- The main difference between Kan and Trello is that Kan is open source,
- allowing anyone to view, modify, and contribute to our code. Our cloud
- offering also offers no restrictions on features for individual use,
- whereas Trello locks basic features such as the number of boards you can
- create behind a paywall.
-
- ),
- },
- {
- question: "How is the project funded?",
- answer: (
-
- For long-term sustainability, we recognise all good open source projects
- need a source of revenue. Ours comes from the paid cloud offering for
- workspaces with multiple users (free during the beta) and for custom
- workspace slugs. There's no obligation to use it, and you can self-host
- the software on your own infrastructure free of charge.
-
- ),
- },
- {
- question: "How do I import my Trello boards?",
- answer: (
-
- Importing your Trello boards into Kan is easy. You can follow our
- step-by-step guide{" "}
-
- here
-
- .
-
- ),
- },
- {
- question: "How do I get a custom URL?",
- answer: (
-
- You can get a custom workspace URL, like{" "}
-
- kan.bn/kan
-
- , by going into your{" "}
-
- workspace settings
- {" "}
- and purchasing a pro workspace subscription. All subscriptions help fund
- the development of the project!
-
- ),
- },
- {
- question: "Do you offer a free plan?",
- answer: (
-
- Yes, we offer an forever free plan for individual use. No restrictions,
- no paywalls, no limits.
-
- ),
- },
- {
- question: "What license are you using?",
- answer: (
-
- We are using the{" "}
-
- AGPL-3.0 license
-
- .
-
- ),
- },
- {
- question: "How do I invite team members?",
- answer: (
-
- You can invite team members by clicking the "Invite" button in the top
- right corner of the{" "}
-
- members page
- {" "}
- and entering their email address. They will receive an email with a link
- to join the workspace.
-
- ),
- },
- {
- question: "How do I self-host?",
- answer: (
-
- You can self-host by following the instructions in our{" "}
-
- repo
-
- .
-
- ),
- },
-];
-
const Faqs = () => {
+ const faqs = [
+ {
+ question: t`Why make an open source Trello?`,
+ answer: (
+
+ {t`When Trello launched in 2011, it blew everyone away with its carefully designed simplicity, but over time (and atlassification) it lost its magic and grew into something closer to "Jira Lite". This project is our attempt to recapture the original magic of Trello's simplicity, in open source.`}
+
+ ),
+ },
+ {
+ question: t`What's the difference between Kan and Trello?`,
+ answer: (
+
+ {t`The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall.`}
+
+ ),
+ },
+ {
+ question: t`How is the project funded?`,
+ answer: (
+
+ {t`For long-term sustainability, we recognise all good open source projects need a source of revenue. Ours comes from the paid cloud offering for workspaces with multiple users (free during the beta) and for custom workspace slugs. There's no obligation to use it, and you can self-host the software on your own infrastructure free of charge.`}
+
+ ),
+ },
+ {
+ question: t`How do I import my Trello boards?`,
+ answer: (
+
+
+ Importing your Trello boards into Kan is easy. You can follow our
+ step-by-step guide{" "}
+
+ here
+
+ .
+
+
+ ),
+ },
+ {
+ question: t`How do I get a custom URL?`,
+ answer: (
+
+
+ You can get a custom workspace URL, like{" "}
+
+ kan.bn/kan
+
+ , by going into your{" "}
+
+ workspace settings
+ {" "}
+ and purchasing a pro workspace subscription. All subscriptions help
+ fund the development of the project!
+
+
+ ),
+ },
+ {
+ question: t`Do you offer a free plan?`,
+ answer: (
+
+ {t`Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits.`}
+
+ ),
+ },
+ {
+ question: t`What license are you using?`,
+ answer: (
+
+
+ We are using the{" "}
+
+ AGPL-3.0 license
+
+ .
+
+
+ ),
+ },
+ {
+ question: t`How do I invite team members?`,
+ answer: (
+
+
+ You can invite team members by clicking the "Invite" button in the
+ top right corner of the{" "}
+
+ members page
+ {" "}
+ and entering their email address. They will receive an email with a
+ link to join the workspace.
+
+
+ ),
+ },
+ {
+ question: t`How do I self-host?`,
+ answer: (
+
+
+ You can self-host by following the instructions in our{" "}
+
+ repo
+
+ .
+
+
+ ),
+ },
+ ];
+
return (
- Questions?
+ {t`Questions?`}
- Find answers to common questions about the project. Can't find what
- you're looking for? Feel free to{" "}
-
- contact us
-
- .
+
+ Find answers to common questions about the project. Can't find what
+ you're looking for? Feel free to{" "}
+
+ contact us
+
+ .
+
diff --git a/apps/web/src/views/home/components/Features.tsx b/apps/web/src/views/home/components/Features.tsx
index d62f2be4..7514c50f 100644
--- a/apps/web/src/views/home/components/Features.tsx
+++ b/apps/web/src/views/home/components/Features.tsx
@@ -1,4 +1,5 @@
import Link from "next/link";
+import { t } from "@lingui/core/macro";
import { useState } from "react";
import activityLogsIconDark from "~/assets/activity-logs-dark.json";
@@ -62,7 +63,7 @@ const FeatureItem = ({
{feature.comingSoon && (
- Coming soon
+ {t`Coming soon`}
)}
@@ -71,47 +72,47 @@ const FeatureItem = ({
const Features = ({ theme }: { theme: "light" | "dark" }) => {
const isDark = theme === "dark";
+
const features = [
{
- title: "Board visibility",
- description: "Control who can view and edit your boards.",
+ title: t`Board visibility`,
+ description: t`Control who can view and edit your boards.`,
icon: isDark ? boardVisibilityIconDark : boardVisibilityIconLight,
},
{
- title: "Workspace members",
- description: "Collaborate seamlessly with your team.",
+ title: t`Workspace members`,
+ description: t`Collaborate seamlessly with your team.`,
icon: isDark ? membersIconDark : membersIconLight,
},
{
- title: "Trello imports",
- description: "Import your Trello boards and hit the ground running.",
+ title: t`Trello imports`,
+ description: t`Import your Trello boards and hit the ground running.`,
icon: isDark ? importsIconDark : importsIconLight,
},
{
- title: "Labels & Filters",
- description:
- "Organize and find cards quickly with powerful filtering tools.",
+ title: t`Labels & Filters`,
+ description: t`Organize and find cards quickly with powerful filtering tools.`,
icon: isDark ? labelsIconDark : labelsIconLight,
},
{
- title: "Comments",
- description: "Discuss and collaborate on cards.",
+ title: t`Comments`,
+ description: t`Discuss and collaborate on cards.`,
icon: isDark ? commentsIconDark : commentsIconLight,
},
{
- title: "Activity logs",
- description: "Track all card changes with detailed activity history.",
+ title: t`Activity logs`,
+ description: t`Track all card changes with detailed activity history.`,
icon: isDark ? activityLogsIconDark : activityLogsIconLight,
},
{
- title: "Templates",
- description: "Save time with reusable board templates.",
+ title: t`Templates`,
+ description: t`Save time with reusable board templates.`,
icon: isDark ? templatesIconDark : templatesIconLight,
comingSoon: true,
},
{
- title: "Integrations",
- description: "Connect your favorite tools to streamline your workflow.",
+ title: t`Integrations`,
+ description: t`Connect your favorite tools to streamline your workflow.`,
icon: isDark ? integrationsIconDark : integrationsIconLight,
comingSoon: true,
},
@@ -121,15 +122,14 @@ const Features = ({ theme }: { theme: "light" | "dark" }) => {
<>
-
Features
+
{t`Features`}
- Kanban reimagined
+ {t`Kanban reimagined`}
- Simple, visual task management that just works. Drag and drop cards,
- collaborate with your team, and get more done.
+ {t`Simple, visual task management that just works. Drag and drop cards, collaborate with your team, and get more done.`}
@@ -142,9 +142,9 @@ const Features = ({ theme }: { theme: "light" | "dark" }) => {
- {`We're just getting started. `}
+ {t`We're just getting started. `}
- View our roadmap.
+ {t`View our roadmap.`}
diff --git a/apps/web/src/views/home/components/Footer.tsx b/apps/web/src/views/home/components/Footer.tsx
index 4c4d3d94..c72ec55c 100644
--- a/apps/web/src/views/home/components/Footer.tsx
+++ b/apps/web/src/views/home/components/Footer.tsx
@@ -1,37 +1,8 @@
import Link from "next/link";
+import { t } from "@lingui/core/macro";
import { FaDiscord, FaGithub } from "react-icons/fa";
-const navigation = {
- documentation: [
- { name: "Getting started", href: "https://docs.kan.bn/introduction" },
- {
- name: "Importing from Trello",
- href: "https://docs.kan.bn/imports/trello",
- },
- {
- name: "API Reference",
- href: "https://docs.kan.bn/api-reference/introduction",
- },
- ],
- company: [
- { name: "Roadmap", href: "/kan/roadmap" },
- { name: "GitHub", href: "https://github.com/kanbn/kan" },
- { name: "Contact", href: "mailto:support@kan.bn" },
- ],
- legal: [
- { name: "Terms of service", href: "/terms" },
- { name: "Privacy policy", href: "/privacy" },
- {
- name: "License",
- href: "https://github.com/kanbn/kan?tab=AGPL-3.0-1-ov-file#readme",
- },
- ],
- resources: [
- { name: "Features", href: "/#features" },
- { name: "Pricing", href: "/#pricing" },
- { name: "FAQs", href: "/#faq" },
- ],
-};
+import { LanguageSelector } from "~/components/LanguageSelector";
const StatusMarker = () => (
(
- All systems operational
+ {t`All systems operational`}
);
const Footer = () => {
+ const navigation = {
+ documentation: [
+ { name: t`Getting started`, href: "https://docs.kan.bn/introduction" },
+ {
+ name: t`Importing from Trello`,
+ href: "https://docs.kan.bn/imports/trello",
+ },
+ {
+ name: t`API Reference`,
+ href: "https://docs.kan.bn/api-reference/introduction",
+ },
+ ],
+ company: [
+ { name: t`Roadmap`, href: "/kan/roadmap" },
+ { name: t`GitHub`, href: "https://github.com/kanbn/kan" },
+ { name: t`Contact`, href: "mailto:support@kan.bn" },
+ ],
+ legal: [
+ { name: t`Terms of service`, href: "/terms" },
+ { name: t`Privacy policy`, href: "/privacy" },
+ {
+ name: t`License`,
+ href: "https://github.com/kanbn/kan?tab=AGPL-3.0-1-ov-file#readme",
+ },
+ ],
+ resources: [
+ { name: t`Features`, href: "/#features" },
+ { name: t`Pricing`, href: "/#pricing" },
+ { name: t`FAQs`, href: "/#faq" },
+ ],
+ };
+
return (
- Documentation
+ {t`Documentation`}
{navigation.documentation.map((item) => (
@@ -87,7 +91,7 @@ const Footer = () => {
- Company
+ {t`Company`}
{navigation.company.map((item) => (
@@ -106,7 +110,7 @@ const Footer = () => {
- Resources
+ {t`Resources`}
{navigation.resources.map((item) => (
@@ -123,7 +127,7 @@ const Footer = () => {
- Legal
+ {t`Legal`}
{navigation.legal.map((item) => (
diff --git a/apps/web/src/views/home/components/Header.tsx b/apps/web/src/views/home/components/Header.tsx
index a95f2007..ebe32d9e 100644
--- a/apps/web/src/views/home/components/Header.tsx
+++ b/apps/web/src/views/home/components/Header.tsx
@@ -1,4 +1,5 @@
import Link from "next/link";
+import { t } from "@lingui/core/macro";
import { useEffect, useState } from "react";
import { twMerge } from "tailwind-merge";
@@ -9,10 +10,10 @@ const Header = ({ isLoggedIn }: { isLoggedIn: boolean }) => {
const [isMenuOpen, setIsMenuOpen] = useState(false);
const menuItems = [
- { label: "Roadmap", href: "/kan/roadmap", openInNewTab: true },
- { label: "Features", href: "#features" },
- { label: "Pricing", href: "#pricing" },
- { label: "Docs", href: "https://docs.kan.bn", openInNewTab: true },
+ { label: t`Roadmap`, href: "/kan/roadmap", openInNewTab: true },
+ { label: t`Features`, href: "#features" },
+ { label: t`Pricing`, href: "#pricing" },
+ { label: t`Docs`, href: "https://docs.kan.bn", openInNewTab: true },
];
useEffect(() => {
@@ -69,7 +70,7 @@ const Header = ({ isLoggedIn }: { isLoggedIn: boolean }) => {
{
{isLoggedIn ? (
- Go to app
+ {t`Go to app`}
) : (
<>
- Sign in
+ {t`Sign in`}
- Get started
+ {t`Get started`}
>
)}
@@ -129,15 +130,15 @@ const Header = ({ isLoggedIn }: { isLoggedIn: boolean }) => {
{isLoggedIn ? (
- Go to app
+ {t`Go to app`}
) : (
<>
- Sign in
+ {t`Sign in`}
- Get started
+ {t`Get started`}
>
)}
diff --git a/apps/web/src/views/home/components/Pricing.tsx b/apps/web/src/views/home/components/Pricing.tsx
index 16b7d7d2..3653b0c6 100644
--- a/apps/web/src/views/home/components/Pricing.tsx
+++ b/apps/web/src/views/home/components/Pricing.tsx
@@ -1,108 +1,104 @@
import Link from "next/link";
import { Radio, RadioGroup } from "@headlessui/react";
+import { t } from "@lingui/core/macro";
import { useState } from "react";
import { HiCheckCircle } from "react-icons/hi2";
import { twMerge } from "tailwind-merge";
type Frequency = "monthly" | "annually";
-const frequencies = [
- {
- value: "monthly" as Frequency,
- label: "Monthly",
- priceSuffix: "per user/month",
- },
- {
- value: "annually" as Frequency,
- label: "Yearly",
- priceSuffix: "per user/month",
- },
-];
-
-const tiers = [
- {
- name: "Individuals",
- id: "tier-individuals",
- href: "signup",
- buttonText: "Get Started",
- price: { monthly: "Free", annually: "Free" },
- description:
- "Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time.",
- featureHeader: "Free, forever",
- features: [
- "1 user",
- "Unlimited boards",
- "Unlimited lists",
- "Unlimited cards",
- "Unlimited comments",
- "Unlimited activity log",
- ],
- showPrice: true,
- },
- {
- name: "Teams",
- id: "tier-teams",
- href: "signup",
- buttonText: "Get Started",
- price: { monthly: "$10.00", annually: "$8.00" },
- description:
- "Kanban is better with a team. Perfect for small and growing teams looking to collaborate.",
- featureHeader: "Everything in the free plan, plus:",
- features: [
- "Workspace members",
- "Admin roles",
- "Priority email support",
- "Support the development of the project",
- ],
- highlighted: true,
- showPrice: true,
- showPriceSuffix: true,
- },
- {
- name: "Self Host",
- id: "tier-self-host",
- href: "https://github.com/kanbn/kan",
- buttonText: "View docs",
- price: { monthly: "-", annually: "-" },
- description:
- "Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data.",
- featureHeader: "Complete control and ownership:",
- features: [
- "Run on your own infrastructure",
- "Own your data",
- "Custom domain",
- ],
- mostPopular: false,
- showPrice: false,
- },
-];
-
const Pricing = () => {
- const initialFrequency = frequencies[1]!;
- const [frequency, setFrequency] = useState(initialFrequency);
+ const frequencies = [
+ {
+ value: "monthly" as Frequency,
+ label: t`Monthly`,
+ priceSuffix: t`per user/month`,
+ },
+ {
+ value: "annually" as Frequency,
+ label: t`Yearly`,
+ priceSuffix: t`per user/month`,
+ },
+ ];
+
+ const [frequency, setFrequency] = useState(frequencies[1]);
+
+ const tiers = [
+ {
+ name: t`Individuals`,
+ id: "tier-individuals",
+ href: "signup",
+ buttonText: t`Get Started`,
+ price: { monthly: t`Free`, annually: t`Free` },
+ description: t`Everything you need, free forever. Unlimited boards, unlimited lists, unlimited cards. Upgrade any time.`,
+ featureHeader: t`Free, forever`,
+ features: [
+ t`1 user`,
+ t`Unlimited boards`,
+ t`Unlimited lists`,
+ t`Unlimited cards`,
+ t`Unlimited comments`,
+ t`Unlimited activity log`,
+ ],
+ showPrice: true,
+ },
+ {
+ name: t`Teams`,
+ id: "tier-teams",
+ href: "signup",
+ buttonText: t`Get Started`,
+ price: { monthly: "$10.00", annually: "$8.00" },
+ description: t`Kanban is better with a team. Perfect for small and growing teams looking to collaborate.`,
+ featureHeader: t`Everything in the free plan, plus:`,
+ features: [
+ t`Workspace members`,
+ t`Admin roles`,
+ t`Priority email support`,
+ t`Support the development of the project`,
+ ],
+ highlighted: true,
+ showPrice: true,
+ showPriceSuffix: true,
+ },
+ {
+ name: t`Self Host`,
+ id: "tier-self-host",
+ href: "https://github.com/kanbn/kan",
+ buttonText: t`View docs`,
+ price: { monthly: "-", annually: "-" },
+ description: t`Host Kan on your own infrastructure. Ideal for organisations that need complete control over their data.`,
+ featureHeader: t`Complete control and ownership:`,
+ features: [
+ t`Run on your own infrastructure`,
+ t`Own your data`,
+ t`Custom domain`,
+ ],
+ mostPopular: false,
+ showPrice: false,
+ },
+ ];
return (
<>
- Simple pricing
+ {t`Simple pricing`}
- Get started for free, with no usage limits. For collaboration, upgrade
- to a plan that fits the size of your team.
+ {t`Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team.`}
{/* Beta free pricing pill */}
- All seats are free during the beta until Sept 1st!
+ {t`All seats are free during the beta until Sept 1st!`}
-
@@ -46,7 +48,7 @@ export default function HomeView() {
target="_blank"
className="flex items-center gap-2 px-4 py-1 text-center text-xs text-light-1000 dark:text-dark-1000 lg:text-sm"
>
- #1 Hacker News
+ {t`#1 Hacker News`}
- The open source
- alternative to Trello
+
+ The open source
alternative to Trello
+
- A powerful, flexible kanban app that helps you organise work,
- track progress, and deliver results—all in one place.
+ {t`A powerful, flexible kanban app that helps you organise work, track progress, and deliver results—all in one place.`}
- Get started on Cloud
+ {t`Get started on Cloud`}
- Self host with Github
+ {t`Self host with Github`}
- No credit card required
+ {t`No credit card required`}
diff --git a/apps/web/src/views/members/components/DeleteMemberConfirmation.tsx b/apps/web/src/views/members/components/DeleteMemberConfirmation.tsx
index cbd44719..297bc838 100644
--- a/apps/web/src/views/members/components/DeleteMemberConfirmation.tsx
+++ b/apps/web/src/views/members/components/DeleteMemberConfirmation.tsx
@@ -1,3 +1,6 @@
+import { t } from "@lingui/core/macro";
+import { Trans } from "@lingui/react/macro";
+
import Button from "~/components/Button";
import { useModal } from "~/providers/modal";
import { usePopup } from "~/providers/popup";
@@ -21,8 +24,8 @@ export function DeleteMemberConfirmation() {
},
onError: () => {
showPopup({
- header: "Unable to remove member",
- message: "Please try again later, or contact customer support.",
+ header: t`Unable to remove member`,
+ message: t`Please try again later, or contact customer support.`,
icon: "error",
});
closeModal();
@@ -41,18 +44,18 @@ export function DeleteMemberConfirmation() {
- {`Are you sure want to remove ${entityLabel}?`}
+ Are you sure want to remove {entityLabel}?
- {"They won't be able to access this workspace."}
+ {t`They won't be able to access this workspace.`}
closeModal()} variant="secondary">
- Cancel
+ {t`Cancel`}
- Remove
+ {t`Remove`}
diff --git a/apps/web/src/views/members/components/InviteMemberForm.tsx b/apps/web/src/views/members/components/InviteMemberForm.tsx
index a0506567..8d284e3f 100644
--- a/apps/web/src/views/members/components/InviteMemberForm.tsx
+++ b/apps/web/src/views/members/components/InviteMemberForm.tsx
@@ -1,3 +1,4 @@
+import { t } from "@lingui/core/macro";
import { useEffect } from "react";
import { useForm } from "react-hook-form";
import { HiXMark } from "react-icons/hi2";
@@ -46,7 +47,7 @@ export function InviteMemberForm() {
@@ -116,7 +117,7 @@ export default function MembersPage() {
openModal(
"REMOVE_MEMBER",
@@ -140,11 +141,11 @@ export default function MembersPage() {
return (
<>
-
+
- Members
+ {t`Members`}
}
disabled={workspace.role !== "admin"}
>
- Invite
+ {t`Invite`}
@@ -168,13 +169,13 @@ export default function MembersPage() {
scope="col"
className="w-[65%] rounded-tl-lg py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-light-900 dark:text-dark-900 sm:pl-6"
>
- User
+ {t`User`}
- Role
+ {t`Role`}
|
diff --git a/apps/web/src/views/public/board/CardModal.tsx b/apps/web/src/views/public/board/CardModal.tsx
index cf268afe..cbd74714 100644
--- a/apps/web/src/views/public/board/CardModal.tsx
+++ b/apps/web/src/views/public/board/CardModal.tsx
@@ -1,8 +1,10 @@
-import { authClient } from "@kan/auth/client";
import { useRouter } from "next/router";
+import { t } from "@lingui/core/macro";
import { HiXMark } from "react-icons/hi2";
-import Editor from "~/components/Editor";
+import { authClient } from "@kan/auth/client";
+
+import Editor from "~/components/Editor";
import { useModal } from "~/providers/modal";
import { api } from "~/utils/api";
import ActivityList from "~/views/card/components/ActivityList";
@@ -99,7 +101,7 @@ export function CardModal({
)}
- Activity
+ {t`Activity`}
{cardPublicId && (
diff --git a/apps/web/src/views/public/board/index.tsx b/apps/web/src/views/public/board/index.tsx
index fd1b2d6f..ba24ece3 100644
--- a/apps/web/src/views/public/board/index.tsx
+++ b/apps/web/src/views/public/board/index.tsx
@@ -1,5 +1,6 @@
import Link from "next/link";
import { useRouter } from "next/router";
+import { t } from "@lingui/core/macro";
import { keepPreviousData } from "@tanstack/react-query";
import { useEffect, useState } from "react";
import { HiLink } from "react-icons/hi2";
@@ -47,9 +48,9 @@ export default function PublicBoardView() {
}
showPopup({
- header: "Link copied",
+ header: t`Link copied`,
icon: "success",
- message: "Board URL copied to clipboard",
+ message: t`Board URL copied to clipboard`,
});
}}
className="rounded p-1.5 transition-all hover:bg-light-200 dark:hover:bg-dark-100"
@@ -82,7 +83,7 @@ export default function PublicBoardView() {
return (
<>