Compare commits

..

8 Commits

Author SHA1 Message Date
Henry
b540f63c97 chore: update translations 2025-10-23 21:08:16 +01:00
Henry
9dfc2ee9a7 chore: update translations 2025-10-23 20:56:06 +01:00
Henry
a98f221985 fix: update page titles to show board name 2025-10-23 20:52:40 +01:00
Ridham Khandar
bb4784fd28 feat: card will indicate icons of comments and description (#222)
* feat: card will indicate icons of comments and description

* fix: comments limit to one

* feat: fetch comments for public boards

---------

Co-authored-by: Henry <henry_ball@hotmail.co.uk>
2025-10-23 20:40:04 +01:00
Henry
4ffc7e3696 feat: add funding.yml file 2025-10-22 20:26:46 +01:00
Henry
9438620848 fix: prevent new workspace modal from being closed without an active workspace (#224) 2025-10-21 11:27:00 +01:00
Henry
5540cdce42 feat: extend apiKey rate limit (#220) 2025-10-17 22:21:03 +01:00
Xeon
e469426809 Fix/polish translation error fix and correction (#218)
* Fix for minor spelling mistakes and contextually better sounding
sentences

* chore: compile lang

* chore: rebuild translations

---------

Co-authored-by: Henry <henry_ball@hotmail.co.uk>
2025-10-17 22:06:51 +01:00
30 changed files with 497 additions and 299 deletions

1
.github/funding.yml vendored Normal file
View File

@@ -0,0 +1 @@
github: [kanbn]

View File

@@ -84,6 +84,7 @@ checksums:
Bug/singular: 4509fffdb5931f8905063c80cf802d71
Bug%20Report/singular: e558d1f100e21230c2f495a8913ac5ec
Cancel/singular: 2e2a849c2223911717de8caa2c71bade
Card/singular: bba0beaced7ea954ceb980f2b022ffee
Card%20not%20found/singular: 91509e2f92b0b3b11330b6983139fdbf
Card%20title/singular: 7c34f59f4005e6cb3a6ff546ea0b96e3
Change%20Password/singular: a552fc5c4189ebc3e2e6018edda7d18f

View File

@@ -1,4 +1,5 @@
import { useRef, useState } from "react";
import { useTheme } from "next-themes";
import { useEffect, useRef, useState } from "react";
import {
TbLayoutSidebarLeftCollapse,
TbLayoutSidebarLeftExpand,
@@ -10,10 +11,7 @@ import { authClient } from "@kan/auth/client";
import { useClickOutside } from "~/hooks/useClickOutside";
import { useModal } from "~/providers/modal";
import { useTheme } from "next-themes";
import { WorkspaceProvider } from "~/providers/workspace";
import FeedbackModal from "./FeedbackModal";
import Modal from "./modal";
import { useWorkspace, WorkspaceProvider } from "~/providers/workspace";
import SideNavigation from "./SideNavigation";
interface DashboardProps {
@@ -42,7 +40,8 @@ export default function Dashboard({
hasRightPanel = false,
}: DashboardProps) {
const { theme } = useTheme();
const { modalContentType } = useModal();
const { openModal } = useModal();
const { availableWorkspaces, hasLoaded } = useWorkspace();
const { data: session, isPending: sessionLoading } = authClient.useSession();
@@ -90,6 +89,12 @@ export default function Dashboard({
}
});
useEffect(() => {
if (hasLoaded && availableWorkspaces.length === 0) {
openModal("NEW_WORKSPACE", undefined, undefined, false);
}
}, [hasLoaded, availableWorkspaces.length, openModal]);
const isDarkMode = theme === "dark";
return (

View File

@@ -8,6 +8,7 @@ interface Props {
modalSize?: "sm" | "md" | "lg";
positionFromTop?: "sm" | "md" | "lg";
isVisible?: boolean;
closeOnClickOutside?: boolean;
}
const Modal: React.FC<Props> = ({
@@ -15,10 +16,17 @@ const Modal: React.FC<Props> = ({
modalSize = "sm",
positionFromTop = "md",
isVisible,
closeOnClickOutside,
}) => {
const { isOpen, closeModal } = useModal();
const {
isOpen,
closeModal,
closeOnClickOutside: modalCloseOnClickOutside,
} = useModal();
const shouldShow = isVisible !== undefined ? isVisible : isOpen;
const shouldShow = isVisible ?? isOpen;
const shouldCloseOnClickOutside =
closeOnClickOutside ?? modalCloseOnClickOutside;
const modalSizeMap = {
sm: "max-w-[400px]",
@@ -34,7 +42,11 @@ const Modal: React.FC<Props> = ({
return (
<Transition.Root show={shouldShow} as={Fragment}>
<Dialog as="div" className="relative z-50" onClose={closeModal}>
<Dialog
as="div"
className="relative z-50"
onClose={shouldCloseOnClickOutside ? closeModal : () => null}
>
<Transition.Child
as={Fragment}
enter="ease-out duration-300"

View File

@@ -22,15 +22,15 @@ msgid ", or see our"
msgstr ", oder besuche unsere"
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#: src/views/boards/index.tsx:34
#: src/views/boards/index.tsx:27
msgid "{0}"
msgstr "{0}"
#. placeholder {0}: card?.title ?? "Card"
#. placeholder {0}: card?.title ?? t`Card`
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#. placeholder {1}: board?.name ?? "Board"
#. placeholder {1}: workspace.name ?? "Workspace"
#: src/views/boards/index.tsx:29
#. placeholder {1}: board?.name ?? t`Board`
#. placeholder {1}: workspace.name ?? t`Workspace`
#: src/views/boards/index.tsx:22
#: src/views/card/index.tsx:216
msgid "{0} | {1}"
msgstr "{0} | {1}"
@@ -301,6 +301,8 @@ msgid "Blog Post"
msgstr "Blogbeitrag"
#: src/views/board/index.tsx:361
#: src/views/card/index.tsx:216
#: src/views/public/board/index.tsx:100
msgid "Board"
msgstr "Board"
@@ -317,7 +319,7 @@ msgstr "Der Name des Boards darf 100 Zeichen nicht überschreiten"
msgid "Board name is required"
msgstr "Boardname ist erforderlich"
#: src/views/public/board/index.tsx:148
#: src/views/public/board/index.tsx:151
msgid "Board not found"
msgstr "Board nicht gefunden"
@@ -333,7 +335,7 @@ msgstr "Board-URL darf nur Buchstaben, Zahlen und Bindestriche enthalten"
msgid "Board URL cannot exceed 60 characters"
msgstr "Board-URL darf 60 Zeichen nicht überschreiten"
#: src/views/public/board/index.tsx:64
#: src/views/public/board/index.tsx:67
msgid "Board URL copied to clipboard"
msgstr "Board-URL in die Zwischenablage kopiert"
@@ -381,6 +383,10 @@ msgstr "Fehlerbericht"
msgid "Cancel"
msgstr "Abbrechen"
#: src/views/card/index.tsx:216
msgid "Card"
msgstr "Karte"
#: src/views/card/index.tsx:262
msgid "Card not found"
msgstr "Karte nicht gefunden"
@@ -978,7 +984,7 @@ msgid "Free"
msgstr "Kostenlos"
#: src/views/members/components/InviteMemberForm.tsx:326
#: src/views/members/index.tsx:209
#: src/views/members/index.tsx:208
msgid "Free Plan"
msgstr "Kostenloser Plan"
@@ -1097,7 +1103,7 @@ msgstr "Ideen"
msgid "Ideas to improve this page..."
msgstr "Ideen zur Verbesserung dieser Seite..."
#: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:39
msgid "Import"
msgstr "Importieren"
@@ -1165,7 +1171,7 @@ msgstr "Ungültige E-Mail-Adresse"
msgid "Invalid invitation"
msgstr "Ungültige Einladung"
#: src/views/members/index.tsx:222
#: src/views/members/index.tsx:221
msgid "Invite"
msgstr "Einladen"
@@ -1251,7 +1257,7 @@ msgstr "Sprache"
msgid "Launch offer"
msgstr "Einführungsangebot"
#: src/views/members/index.tsx:192
#: src/views/members/index.tsx:191
msgid "Launch offer: Get unlimited members with Pro"
msgstr "Einführungsangebot: Erhalten Sie unbegrenzte Mitglieder mit Pro"
@@ -1276,7 +1282,7 @@ msgstr "Lizenz"
msgid "Light"
msgstr "Hell"
#: src/views/public/board/index.tsx:62
#: src/views/public/board/index.tsx:65
msgid "Link copied"
msgstr "Link kopiert"
@@ -1329,12 +1335,12 @@ msgstr "Mittlere Priorität"
#: src/views/board/components/Filters.tsx:93
#: src/views/board/components/NewCardForm.tsx:366
#: src/views/card/index.tsx:126
#: src/views/members/index.tsx:179
#: src/views/members/index.tsx:178
msgid "Members"
msgstr "Mitglieder"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/members/index.tsx:174
#. placeholder {0}: workspace.name ?? t`Workspace`
#: src/views/members/index.tsx:173
msgid "Members | {0}"
msgstr "Mitglieder | {0}"
@@ -1367,7 +1373,7 @@ msgstr "Name"
msgid "Need help?"
msgstr "Brauchst du Hilfe?"
#: src/views/boards/index.tsx:57
#: src/views/boards/index.tsx:50
#: src/views/home/components/Features.tsx:73
msgid "New"
msgstr "Neu"
@@ -1512,7 +1518,7 @@ msgstr "Passwort muss mindestens 8 Zeichen lang sein"
msgid "Passwords do not match"
msgstr "Passwörter stimmen nicht überein"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Paused"
msgstr "Pausiert"
@@ -1521,7 +1527,7 @@ msgstr "Pausiert"
msgid "Payment frequency"
msgstr "Zahlungshäufigkeit"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Pending"
msgstr "Ausstehend"
@@ -1637,7 +1643,7 @@ msgstr "Datenschutzrichtlinie"
msgid "Private"
msgstr "Privat"
#: src/views/members/index.tsx:206
#: src/views/members/index.tsx:205
msgid "Pro Plan"
msgstr "Pro-Plan"
@@ -1685,7 +1691,7 @@ msgstr "Remote"
msgid "Remove"
msgstr "Entfernen"
#: src/views/members/index.tsx:149
#: src/views/members/index.tsx:148
msgid "Remove member"
msgstr "Mitglied entfernen"
@@ -1742,7 +1748,7 @@ msgstr "Überprüfung"
msgid "Roadmap"
msgstr "Roadmap"
#: src/views/members/index.tsx:244
#: src/views/members/index.tsx:243
msgid "Role"
msgstr "Rolle"
@@ -1903,7 +1909,7 @@ msgid "System"
msgstr "System"
#: src/views/members/components/InviteMemberForm.tsx:315
#: src/views/members/index.tsx:208
#: src/views/members/index.tsx:207
msgid "Team Plan"
msgstr "Team-Plan"
@@ -1984,7 +1990,7 @@ msgstr "Diese Aktion kann nicht rückgängig gemacht werden."
msgid "This API key will only be shown once. Please save it in a secure location."
msgstr "Dieser API-Schlüssel wird nur einmal angezeigt. Bitte speichern Sie ihn an einem sicheren Ort."
#: src/views/public/board/index.tsx:151
#: src/views/public/board/index.tsx:154
msgid "This board is private or does not exist"
msgstr "Dieses Board ist privat oder existiert nicht"
@@ -2254,7 +2260,7 @@ msgstr "URL muss mindestens 3 Zeichen lang sein"
msgid "Use template"
msgstr "Vorlage verwenden"
#: src/views/members/index.tsx:238
#: src/views/members/index.tsx:237
msgid "User"
msgstr "Benutzer"
@@ -2279,7 +2285,7 @@ msgstr "Verwalte deine Abrechnung und dein Abonnement."
msgid "View docs"
msgstr "Dokumentation ansehen"
#: src/views/public/board/index.tsx:125
#: src/views/public/board/index.tsx:128
msgid "View only"
msgstr "Nur ansehen"
@@ -2287,7 +2293,7 @@ msgstr "Nur ansehen"
msgid "View our roadmap."
msgstr "Sieh dir unsere roadmap an."
#: src/views/public/board/index.tsx:154
#: src/views/public/board/index.tsx:157
msgid "View workspace"
msgstr "Workspace anzeigen"
@@ -2328,6 +2334,11 @@ msgid "Why make an open source Trello?"
msgstr "Warum ein open source Trello entwickeln?"
#: src/components/SettingsLayout.tsx:39
#: src/views/board/index.tsx:361
#: src/views/boards/index.tsx:22
#: src/views/members/index.tsx:173
#: src/views/public/board/index.tsx:100
#: src/views/public/boards/index.tsx:66
msgid "Workspace"
msgstr "Arbeitsbereich"

File diff suppressed because one or more lines are too long

View File

@@ -22,15 +22,15 @@ msgid ", or see our"
msgstr ", or see our"
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#: src/views/boards/index.tsx:34
#: src/views/boards/index.tsx:27
msgid "{0}"
msgstr "{0}"
#. placeholder {0}: card?.title ?? "Card"
#. placeholder {0}: card?.title ?? t`Card`
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#. placeholder {1}: board?.name ?? "Board"
#. placeholder {1}: workspace.name ?? "Workspace"
#: src/views/boards/index.tsx:29
#. placeholder {1}: board?.name ?? t`Board`
#. placeholder {1}: workspace.name ?? t`Workspace`
#: src/views/boards/index.tsx:22
#: src/views/card/index.tsx:216
msgid "{0} | {1}"
msgstr "{0} | {1}"
@@ -337,6 +337,8 @@ msgid "Blog Post"
msgstr "Blog Post"
#: src/views/board/index.tsx:361
#: src/views/card/index.tsx:216
#: src/views/public/board/index.tsx:100
msgid "Board"
msgstr "Board"
@@ -362,7 +364,7 @@ msgstr "Board name cannot exceed 100 characters"
msgid "Board name is required"
msgstr "Board name is required"
#: src/views/public/board/index.tsx:148
#: src/views/public/board/index.tsx:151
msgid "Board not found"
msgstr "Board not found"
@@ -378,7 +380,7 @@ msgstr "Board URL can only contain letters, numbers, and hyphens"
msgid "Board URL cannot exceed 60 characters"
msgstr "Board URL cannot exceed 60 characters"
#: src/views/public/board/index.tsx:64
#: src/views/public/board/index.tsx:67
msgid "Board URL copied to clipboard"
msgstr "Board URL copied to clipboard"
@@ -434,6 +436,10 @@ msgstr "Bug Report"
msgid "Cancel"
msgstr "Cancel"
#: src/views/card/index.tsx:216
msgid "Card"
msgstr "Card"
#: src/views/card/index.tsx:262
msgid "Card not found"
msgstr "Card not found"
@@ -1065,7 +1071,7 @@ msgid "Free"
msgstr "Free"
#: src/views/members/components/InviteMemberForm.tsx:326
#: src/views/members/index.tsx:209
#: src/views/members/index.tsx:208
msgid "Free Plan"
msgstr "Free Plan"
@@ -1192,7 +1198,7 @@ msgstr "Ideas to improve this page..."
#~ msgid "Ideas, Research, Planning, Execution, Review, Next Steps, Complete"
#~ msgstr "Ideas, Research, Planning, Execution, Review, Next Steps, Complete"
#: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:39
msgid "Import"
msgstr "Import"
@@ -1260,7 +1266,7 @@ msgstr "Invalid email address"
msgid "Invalid invitation"
msgstr "Invalid invitation"
#: src/views/members/index.tsx:222
#: src/views/members/index.tsx:221
msgid "Invite"
msgstr "Invite"
@@ -1350,7 +1356,7 @@ msgstr "Language"
msgid "Launch offer"
msgstr "Launch offer"
#: src/views/members/index.tsx:192
#: src/views/members/index.tsx:191
msgid "Launch offer: Get unlimited members with Pro"
msgstr "Launch offer: Get unlimited members with Pro"
@@ -1375,7 +1381,7 @@ msgstr "License"
msgid "Light"
msgstr "Light"
#: src/views/public/board/index.tsx:62
#: src/views/public/board/index.tsx:65
msgid "Link copied"
msgstr "Link copied"
@@ -1428,12 +1434,12 @@ msgstr "Medium Priority"
#: src/views/board/components/Filters.tsx:93
#: src/views/board/components/NewCardForm.tsx:366
#: src/views/card/index.tsx:126
#: src/views/members/index.tsx:179
#: src/views/members/index.tsx:178
msgid "Members"
msgstr "Members"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/members/index.tsx:174
#. placeholder {0}: workspace.name ?? t`Workspace`
#: src/views/members/index.tsx:173
msgid "Members | {0}"
msgstr "Members | {0}"
@@ -1474,7 +1480,7 @@ msgstr "Name"
msgid "Need help?"
msgstr "Need help?"
#: src/views/boards/index.tsx:57
#: src/views/boards/index.tsx:50
#: src/views/home/components/Features.tsx:73
msgid "New"
msgstr "New"
@@ -1631,7 +1637,7 @@ msgstr "Password must be at least 8 characters"
msgid "Passwords do not match"
msgstr "Passwords do not match"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Paused"
msgstr "Paused"
@@ -1640,7 +1646,7 @@ msgstr "Paused"
msgid "Payment frequency"
msgstr "Payment frequency"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Pending"
msgstr "Pending"
@@ -1756,7 +1762,7 @@ msgstr "Privacy policy"
msgid "Private"
msgstr "Private"
#: src/views/members/index.tsx:206
#: src/views/members/index.tsx:205
msgid "Pro Plan"
msgstr "Pro Plan"
@@ -1804,7 +1810,7 @@ msgstr "Remote"
msgid "Remove"
msgstr "Remove"
#: src/views/members/index.tsx:149
#: src/views/members/index.tsx:148
msgid "Remove member"
msgstr "Remove member"
@@ -1869,7 +1875,7 @@ msgstr "Review"
msgid "Roadmap"
msgstr "Roadmap"
#: src/views/members/index.tsx:244
#: src/views/members/index.tsx:243
msgid "Role"
msgstr "Role"
@@ -2042,7 +2048,7 @@ msgid "System"
msgstr "System"
#: src/views/members/components/InviteMemberForm.tsx:315
#: src/views/members/index.tsx:208
#: src/views/members/index.tsx:207
msgid "Team Plan"
msgstr "Team Plan"
@@ -2123,7 +2129,7 @@ msgstr "This action can't be undone."
msgid "This API key will only be shown once. Please save it in a secure location."
msgstr "This API key will only be shown once. Please save it in a secure location."
#: src/views/public/board/index.tsx:151
#: src/views/public/board/index.tsx:154
msgid "This board is private or does not exist"
msgstr "This board is private or does not exist"
@@ -2405,7 +2411,7 @@ msgstr "URL must be at least 3 characters long"
msgid "Use template"
msgstr "Use template"
#: src/views/members/index.tsx:238
#: src/views/members/index.tsx:237
msgid "User"
msgstr "User"
@@ -2430,7 +2436,7 @@ msgstr "View and manage your billing and subscription."
msgid "View docs"
msgstr "View docs"
#: src/views/public/board/index.tsx:125
#: src/views/public/board/index.tsx:128
msgid "View only"
msgstr "View only"
@@ -2438,7 +2444,7 @@ msgstr "View only"
msgid "View our roadmap."
msgstr "View our roadmap."
#: src/views/public/board/index.tsx:154
#: src/views/public/board/index.tsx:157
msgid "View workspace"
msgstr "View workspace"
@@ -2483,6 +2489,11 @@ msgid "Why make an open source Trello?"
msgstr "Why make an open source Trello?"
#: src/components/SettingsLayout.tsx:39
#: src/views/board/index.tsx:361
#: src/views/boards/index.tsx:22
#: src/views/members/index.tsx:173
#: src/views/public/board/index.tsx:100
#: src/views/public/boards/index.tsx:66
msgid "Workspace"
msgstr "Workspace"

File diff suppressed because one or more lines are too long

View File

@@ -22,15 +22,15 @@ msgid ", or see our"
msgstr ", o consulta nuestra"
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#: src/views/boards/index.tsx:34
#: src/views/boards/index.tsx:27
msgid "{0}"
msgstr "{0}"
#. placeholder {0}: card?.title ?? "Card"
#. placeholder {0}: card?.title ?? t`Card`
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#. placeholder {1}: board?.name ?? "Board"
#. placeholder {1}: workspace.name ?? "Workspace"
#: src/views/boards/index.tsx:29
#. placeholder {1}: board?.name ?? t`Board`
#. placeholder {1}: workspace.name ?? t`Workspace`
#: src/views/boards/index.tsx:22
#: src/views/card/index.tsx:216
msgid "{0} | {1}"
msgstr "{0} | {1}"
@@ -301,6 +301,8 @@ msgid "Blog Post"
msgstr "Entrada de blog"
#: src/views/board/index.tsx:361
#: src/views/card/index.tsx:216
#: src/views/public/board/index.tsx:100
msgid "Board"
msgstr "Tablero"
@@ -317,7 +319,7 @@ msgstr "El nombre del tablero no puede exceder los 100 caracteres"
msgid "Board name is required"
msgstr "El nombre del tablero es obligatorio"
#: src/views/public/board/index.tsx:148
#: src/views/public/board/index.tsx:151
msgid "Board not found"
msgstr "Tablero no encontrado"
@@ -333,7 +335,7 @@ msgstr "La URL del tablero solo puede contener letras, números y guiones"
msgid "Board URL cannot exceed 60 characters"
msgstr "La URL del tablero no puede exceder los 60 caracteres"
#: src/views/public/board/index.tsx:64
#: src/views/public/board/index.tsx:67
msgid "Board URL copied to clipboard"
msgstr "URL del tablero copiada al portapapeles"
@@ -381,6 +383,10 @@ msgstr "Informe de error"
msgid "Cancel"
msgstr "Cancelar"
#: src/views/card/index.tsx:216
msgid "Card"
msgstr "Tarjeta"
#: src/views/card/index.tsx:262
msgid "Card not found"
msgstr "Tarjeta no encontrada"
@@ -978,7 +984,7 @@ msgid "Free"
msgstr "Gratis"
#: src/views/members/components/InviteMemberForm.tsx:326
#: src/views/members/index.tsx:209
#: src/views/members/index.tsx:208
msgid "Free Plan"
msgstr "Plan gratuito"
@@ -1097,7 +1103,7 @@ msgstr "Ideas"
msgid "Ideas to improve this page..."
msgstr "Ideas para mejorar esta página..."
#: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:39
msgid "Import"
msgstr "Importar"
@@ -1165,7 +1171,7 @@ msgstr "Dirección de correo electrónico no válida"
msgid "Invalid invitation"
msgstr "Invitación inválida"
#: src/views/members/index.tsx:222
#: src/views/members/index.tsx:221
msgid "Invite"
msgstr "Invitar"
@@ -1251,7 +1257,7 @@ msgstr "Idioma"
msgid "Launch offer"
msgstr "Oferta de lanzamiento"
#: src/views/members/index.tsx:192
#: src/views/members/index.tsx:191
msgid "Launch offer: Get unlimited members with Pro"
msgstr "Oferta de lanzamiento: Obtén miembros ilimitados con Pro"
@@ -1276,7 +1282,7 @@ msgstr "Licencia"
msgid "Light"
msgstr "Claro"
#: src/views/public/board/index.tsx:62
#: src/views/public/board/index.tsx:65
msgid "Link copied"
msgstr "Enlace copiado"
@@ -1329,12 +1335,12 @@ msgstr "Prioridad media"
#: src/views/board/components/Filters.tsx:93
#: src/views/board/components/NewCardForm.tsx:366
#: src/views/card/index.tsx:126
#: src/views/members/index.tsx:179
#: src/views/members/index.tsx:178
msgid "Members"
msgstr "Miembros"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/members/index.tsx:174
#. placeholder {0}: workspace.name ?? t`Workspace`
#: src/views/members/index.tsx:173
msgid "Members | {0}"
msgstr "Miembros | {0}"
@@ -1367,7 +1373,7 @@ msgstr "Nombre"
msgid "Need help?"
msgstr "¿Necesitas ayuda?"
#: src/views/boards/index.tsx:57
#: src/views/boards/index.tsx:50
#: src/views/home/components/Features.tsx:73
msgid "New"
msgstr "Nuevo"
@@ -1512,7 +1518,7 @@ msgstr "La contraseña debe tener al menos 8 caracteres"
msgid "Passwords do not match"
msgstr "Las contraseñas no coinciden"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Paused"
msgstr "Pausado"
@@ -1521,7 +1527,7 @@ msgstr "Pausado"
msgid "Payment frequency"
msgstr "Frecuencia de pago"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Pending"
msgstr "Pendiente"
@@ -1637,7 +1643,7 @@ msgstr "Política de privacidad"
msgid "Private"
msgstr "Privado"
#: src/views/members/index.tsx:206
#: src/views/members/index.tsx:205
msgid "Pro Plan"
msgstr "Plan Pro"
@@ -1685,7 +1691,7 @@ msgstr "Remoto"
msgid "Remove"
msgstr "Eliminar"
#: src/views/members/index.tsx:149
#: src/views/members/index.tsx:148
msgid "Remove member"
msgstr "Eliminar miembro"
@@ -1742,7 +1748,7 @@ msgstr "Revisión"
msgid "Roadmap"
msgstr "Hoja de ruta"
#: src/views/members/index.tsx:244
#: src/views/members/index.tsx:243
msgid "Role"
msgstr "Rol"
@@ -1903,7 +1909,7 @@ msgid "System"
msgstr "Sistema"
#: src/views/members/components/InviteMemberForm.tsx:315
#: src/views/members/index.tsx:208
#: src/views/members/index.tsx:207
msgid "Team Plan"
msgstr "Plan de Equipo"
@@ -1984,7 +1990,7 @@ msgstr "Esta acción no se puede deshacer."
msgid "This API key will only be shown once. Please save it in a secure location."
msgstr "Esta clave API solo se mostrará una vez. Por favor, guárdala en un lugar seguro."
#: src/views/public/board/index.tsx:151
#: src/views/public/board/index.tsx:154
msgid "This board is private or does not exist"
msgstr "Este tablero es privado o no existe"
@@ -2254,7 +2260,7 @@ msgstr "La URL debe tener al menos 3 caracteres"
msgid "Use template"
msgstr "Usar plantilla"
#: src/views/members/index.tsx:238
#: src/views/members/index.tsx:237
msgid "User"
msgstr "Usuario"
@@ -2279,7 +2285,7 @@ msgstr "Ver y gestionar tu facturación y suscripción."
msgid "View docs"
msgstr "Ver documentación"
#: src/views/public/board/index.tsx:125
#: src/views/public/board/index.tsx:128
msgid "View only"
msgstr "Solo visualización"
@@ -2287,7 +2293,7 @@ msgstr "Solo visualización"
msgid "View our roadmap."
msgstr "Ver nuestra hoja de ruta."
#: src/views/public/board/index.tsx:154
#: src/views/public/board/index.tsx:157
msgid "View workspace"
msgstr "Ver espacio de trabajo"
@@ -2328,6 +2334,11 @@ msgid "Why make an open source Trello?"
msgstr "¿Por qué crear un Trello de código abierto?"
#: src/components/SettingsLayout.tsx:39
#: src/views/board/index.tsx:361
#: src/views/boards/index.tsx:22
#: src/views/members/index.tsx:173
#: src/views/public/board/index.tsx:100
#: src/views/public/boards/index.tsx:66
msgid "Workspace"
msgstr "Espacio de trabajo"

File diff suppressed because one or more lines are too long

View File

@@ -22,15 +22,15 @@ msgid ", or see our"
msgstr ", ou consultez notre"
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#: src/views/boards/index.tsx:34
#: src/views/boards/index.tsx:27
msgid "{0}"
msgstr "{0}"
#. placeholder {0}: card?.title ?? "Card"
#. placeholder {0}: card?.title ?? t`Card`
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#. placeholder {1}: board?.name ?? "Board"
#. placeholder {1}: workspace.name ?? "Workspace"
#: src/views/boards/index.tsx:29
#. placeholder {1}: board?.name ?? t`Board`
#. placeholder {1}: workspace.name ?? t`Workspace`
#: src/views/boards/index.tsx:22
#: src/views/card/index.tsx:216
msgid "{0} | {1}"
msgstr "{0} | {1}"
@@ -301,6 +301,8 @@ msgid "Blog Post"
msgstr "Article de blog"
#: src/views/board/index.tsx:361
#: src/views/card/index.tsx:216
#: src/views/public/board/index.tsx:100
msgid "Board"
msgstr "Tableau"
@@ -317,7 +319,7 @@ msgstr "Le nom du tableau ne peut pas dépasser 100 caractères"
msgid "Board name is required"
msgstr "Le nom du tableau est requis"
#: src/views/public/board/index.tsx:148
#: src/views/public/board/index.tsx:151
msgid "Board not found"
msgstr "Tableau introuvable"
@@ -333,7 +335,7 @@ msgstr "L'URL du tableau ne peut contenir que des lettres, des chiffres et des t
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:64
#: src/views/public/board/index.tsx:67
msgid "Board URL copied to clipboard"
msgstr "URL du tableau copiée dans le presse-papiers"
@@ -381,6 +383,10 @@ msgstr "Rapport de bug"
msgid "Cancel"
msgstr "Annuler"
#: src/views/card/index.tsx:216
msgid "Card"
msgstr "Carte"
#: src/views/card/index.tsx:262
msgid "Card not found"
msgstr "Carte introuvable"
@@ -978,7 +984,7 @@ msgid "Free"
msgstr "Gratuit"
#: src/views/members/components/InviteMemberForm.tsx:326
#: src/views/members/index.tsx:209
#: src/views/members/index.tsx:208
msgid "Free Plan"
msgstr "Forfait gratuit"
@@ -1097,7 +1103,7 @@ msgstr "Idées"
msgid "Ideas to improve this page..."
msgstr "Idées pour améliorer cette page..."
#: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:39
msgid "Import"
msgstr "Importer"
@@ -1165,7 +1171,7 @@ msgstr "Adresse e-mail invalide"
msgid "Invalid invitation"
msgstr "Invitation invalide"
#: src/views/members/index.tsx:222
#: src/views/members/index.tsx:221
msgid "Invite"
msgstr "Inviter"
@@ -1251,7 +1257,7 @@ msgstr "Langue"
msgid "Launch offer"
msgstr "Offre de lancement"
#: src/views/members/index.tsx:192
#: src/views/members/index.tsx:191
msgid "Launch offer: Get unlimited members with Pro"
msgstr "Offre de lancement : obtenez des membres illimités avec Pro"
@@ -1276,7 +1282,7 @@ msgstr "Licence"
msgid "Light"
msgstr "Clair"
#: src/views/public/board/index.tsx:62
#: src/views/public/board/index.tsx:65
msgid "Link copied"
msgstr "Lien copié"
@@ -1329,12 +1335,12 @@ msgstr "Priorité moyenne"
#: src/views/board/components/Filters.tsx:93
#: src/views/board/components/NewCardForm.tsx:366
#: src/views/card/index.tsx:126
#: src/views/members/index.tsx:179
#: src/views/members/index.tsx:178
msgid "Members"
msgstr "Membres"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/members/index.tsx:174
#. placeholder {0}: workspace.name ?? t`Workspace`
#: src/views/members/index.tsx:173
msgid "Members | {0}"
msgstr "Membres | {0}"
@@ -1367,7 +1373,7 @@ msgstr "Nom"
msgid "Need help?"
msgstr "Besoin d'aide ?"
#: src/views/boards/index.tsx:57
#: src/views/boards/index.tsx:50
#: src/views/home/components/Features.tsx:73
msgid "New"
msgstr "Nouveau"
@@ -1512,7 +1518,7 @@ msgstr "Le mot de passe doit comporter au moins 8 caractères"
msgid "Passwords do not match"
msgstr "Les mots de passe ne correspondent pas"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Paused"
msgstr "En pause"
@@ -1521,7 +1527,7 @@ msgstr "En pause"
msgid "Payment frequency"
msgstr "Fréquence de paiement"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Pending"
msgstr "En attente"
@@ -1637,7 +1643,7 @@ msgstr "Politique de confidentialité"
msgid "Private"
msgstr "Privé"
#: src/views/members/index.tsx:206
#: src/views/members/index.tsx:205
msgid "Pro Plan"
msgstr "Plan Pro"
@@ -1685,7 +1691,7 @@ msgstr "À distance"
msgid "Remove"
msgstr "Supprimer"
#: src/views/members/index.tsx:149
#: src/views/members/index.tsx:148
msgid "Remove member"
msgstr "Supprimer le membre"
@@ -1742,7 +1748,7 @@ msgstr "Révision"
msgid "Roadmap"
msgstr "Feuille de route"
#: src/views/members/index.tsx:244
#: src/views/members/index.tsx:243
msgid "Role"
msgstr "Rôle"
@@ -1903,7 +1909,7 @@ msgid "System"
msgstr "Système"
#: src/views/members/components/InviteMemberForm.tsx:315
#: src/views/members/index.tsx:208
#: src/views/members/index.tsx:207
msgid "Team Plan"
msgstr "Forfait d'équipe"
@@ -1984,7 +1990,7 @@ msgstr "Cette action ne peut pas être annulée."
msgid "This API key will only be shown once. Please save it in a secure location."
msgstr "Cette clé API ne sera affichée qu'une seule fois. Veuillez la sauvegarder dans un emplacement sécurisé."
#: src/views/public/board/index.tsx:151
#: src/views/public/board/index.tsx:154
msgid "This board is private or does not exist"
msgstr "Ce tableau est privé ou n'existe pas"
@@ -2254,7 +2260,7 @@ msgstr "L'URL doit comporter au moins 3 caractères"
msgid "Use template"
msgstr "Utiliser le modèle"
#: src/views/members/index.tsx:238
#: src/views/members/index.tsx:237
msgid "User"
msgstr "Utilisateur"
@@ -2279,7 +2285,7 @@ msgstr "Consultez et gérez votre facturation et votre abonnement."
msgid "View docs"
msgstr "Voir la documentation"
#: src/views/public/board/index.tsx:125
#: src/views/public/board/index.tsx:128
msgid "View only"
msgstr "Affichage uniquement"
@@ -2287,7 +2293,7 @@ msgstr "Affichage uniquement"
msgid "View our roadmap."
msgstr "Consultez notre feuille de route."
#: src/views/public/board/index.tsx:154
#: src/views/public/board/index.tsx:157
msgid "View workspace"
msgstr "Voir l'espace de travail"
@@ -2328,6 +2334,11 @@ msgid "Why make an open source Trello?"
msgstr "Pourquoi créer un Trello open source ?"
#: src/components/SettingsLayout.tsx:39
#: src/views/board/index.tsx:361
#: src/views/boards/index.tsx:22
#: src/views/members/index.tsx:173
#: src/views/public/board/index.tsx:100
#: src/views/public/boards/index.tsx:66
msgid "Workspace"
msgstr "Espace de travail"

File diff suppressed because one or more lines are too long

View File

@@ -22,15 +22,15 @@ msgid ", or see our"
msgstr ", o consulta i nostri"
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#: src/views/boards/index.tsx:34
#: src/views/boards/index.tsx:27
msgid "{0}"
msgstr "{0}"
#. placeholder {0}: card?.title ?? "Card"
#. placeholder {0}: card?.title ?? t`Card`
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#. placeholder {1}: board?.name ?? "Board"
#. placeholder {1}: workspace.name ?? "Workspace"
#: src/views/boards/index.tsx:29
#. placeholder {1}: board?.name ?? t`Board`
#. placeholder {1}: workspace.name ?? t`Workspace`
#: src/views/boards/index.tsx:22
#: src/views/card/index.tsx:216
msgid "{0} | {1}"
msgstr "{0} | {1}"
@@ -301,6 +301,8 @@ msgid "Blog Post"
msgstr "Post del blog"
#: src/views/board/index.tsx:361
#: src/views/card/index.tsx:216
#: src/views/public/board/index.tsx:100
msgid "Board"
msgstr "Bacheca"
@@ -317,7 +319,7 @@ msgstr "Il nome della bacheca non può superare i 100 caratteri"
msgid "Board name is required"
msgstr "Il nome della bacheca è obbligatorio"
#: src/views/public/board/index.tsx:148
#: src/views/public/board/index.tsx:151
msgid "Board not found"
msgstr "Bacheca non trovata"
@@ -333,7 +335,7 @@ msgstr "L'URL della bacheca può contenere solo lettere, numeri e trattini"
msgid "Board URL cannot exceed 60 characters"
msgstr "L'URL della bacheca non può superare i 60 caratteri"
#: src/views/public/board/index.tsx:64
#: src/views/public/board/index.tsx:67
msgid "Board URL copied to clipboard"
msgstr "URL della bacheca copiato negli appunti"
@@ -381,6 +383,10 @@ msgstr "Segnalazione bug"
msgid "Cancel"
msgstr "Annulla"
#: src/views/card/index.tsx:216
msgid "Card"
msgstr "Carta"
#: src/views/card/index.tsx:262
msgid "Card not found"
msgstr "Carta non trovata"
@@ -978,7 +984,7 @@ msgid "Free"
msgstr "Gratuito"
#: src/views/members/components/InviteMemberForm.tsx:326
#: src/views/members/index.tsx:209
#: src/views/members/index.tsx:208
msgid "Free Plan"
msgstr "Piano gratuito"
@@ -1097,7 +1103,7 @@ msgstr "Idee"
msgid "Ideas to improve this page..."
msgstr "Idee per migliorare questa pagina..."
#: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:39
msgid "Import"
msgstr "Importa"
@@ -1165,7 +1171,7 @@ msgstr "Indirizzo email non valido"
msgid "Invalid invitation"
msgstr "Invito non valido"
#: src/views/members/index.tsx:222
#: src/views/members/index.tsx:221
msgid "Invite"
msgstr "Invita"
@@ -1251,7 +1257,7 @@ msgstr "Lingua"
msgid "Launch offer"
msgstr "Offerta di lancio"
#: src/views/members/index.tsx:192
#: src/views/members/index.tsx:191
msgid "Launch offer: Get unlimited members with Pro"
msgstr "Offerta di lancio: ottieni membri illimitati con Pro"
@@ -1276,7 +1282,7 @@ msgstr "Licenza"
msgid "Light"
msgstr "Chiaro"
#: src/views/public/board/index.tsx:62
#: src/views/public/board/index.tsx:65
msgid "Link copied"
msgstr "Link copiato"
@@ -1329,12 +1335,12 @@ msgstr "Media priorità"
#: src/views/board/components/Filters.tsx:93
#: src/views/board/components/NewCardForm.tsx:366
#: src/views/card/index.tsx:126
#: src/views/members/index.tsx:179
#: src/views/members/index.tsx:178
msgid "Members"
msgstr "Membri"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/members/index.tsx:174
#. placeholder {0}: workspace.name ?? t`Workspace`
#: src/views/members/index.tsx:173
msgid "Members | {0}"
msgstr "Membri | {0}"
@@ -1367,7 +1373,7 @@ msgstr "Nome"
msgid "Need help?"
msgstr "Hai bisogno di aiuto?"
#: src/views/boards/index.tsx:57
#: src/views/boards/index.tsx:50
#: src/views/home/components/Features.tsx:73
msgid "New"
msgstr "Nuovo"
@@ -1512,7 +1518,7 @@ msgstr "La password deve contenere almeno 8 caratteri"
msgid "Passwords do not match"
msgstr "Le password non corrispondono"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Paused"
msgstr "In pausa"
@@ -1521,7 +1527,7 @@ msgstr "In pausa"
msgid "Payment frequency"
msgstr "Frequenza di pagamento"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Pending"
msgstr "In attesa"
@@ -1637,7 +1643,7 @@ msgstr "Informativa sulla privacy"
msgid "Private"
msgstr "Privato"
#: src/views/members/index.tsx:206
#: src/views/members/index.tsx:205
msgid "Pro Plan"
msgstr "Piano Pro"
@@ -1685,7 +1691,7 @@ msgstr "Remoto"
msgid "Remove"
msgstr "Rimuovi"
#: src/views/members/index.tsx:149
#: src/views/members/index.tsx:148
msgid "Remove member"
msgstr "Rimuovi membro"
@@ -1742,7 +1748,7 @@ msgstr "Revisione"
msgid "Roadmap"
msgstr "Roadmap"
#: src/views/members/index.tsx:244
#: src/views/members/index.tsx:243
msgid "Role"
msgstr "Ruolo"
@@ -1903,7 +1909,7 @@ msgid "System"
msgstr "Sistema"
#: src/views/members/components/InviteMemberForm.tsx:315
#: src/views/members/index.tsx:208
#: src/views/members/index.tsx:207
msgid "Team Plan"
msgstr "Piano Team"
@@ -1984,7 +1990,7 @@ msgstr "Questa azione non può essere annullata."
msgid "This API key will only be shown once. Please save it in a secure location."
msgstr "Questa chiave API verrà mostrata una sola volta. Salvala in un luogo sicuro."
#: src/views/public/board/index.tsx:151
#: src/views/public/board/index.tsx:154
msgid "This board is private or does not exist"
msgstr "Questa bacheca è privata o non esiste"
@@ -2254,7 +2260,7 @@ msgstr "L'URL deve contenere almeno 3 caratteri"
msgid "Use template"
msgstr "Usa template"
#: src/views/members/index.tsx:238
#: src/views/members/index.tsx:237
msgid "User"
msgstr "Utente"
@@ -2279,7 +2285,7 @@ msgstr "Visualizza e gestisci la tua fatturazione e abbonamento."
msgid "View docs"
msgstr "Visualizza documenti"
#: src/views/public/board/index.tsx:125
#: src/views/public/board/index.tsx:128
msgid "View only"
msgstr "Solo visualizzazione"
@@ -2287,7 +2293,7 @@ msgstr "Solo visualizzazione"
msgid "View our roadmap."
msgstr "Visualizza la nostra roadmap."
#: src/views/public/board/index.tsx:154
#: src/views/public/board/index.tsx:157
msgid "View workspace"
msgstr "Visualizza spazio di lavoro"
@@ -2328,6 +2334,11 @@ msgid "Why make an open source Trello?"
msgstr "Perché creare un Trello open source?"
#: src/components/SettingsLayout.tsx:39
#: src/views/board/index.tsx:361
#: src/views/boards/index.tsx:22
#: src/views/members/index.tsx:173
#: src/views/public/board/index.tsx:100
#: src/views/public/boards/index.tsx:66
msgid "Workspace"
msgstr "Spazio di lavoro"

File diff suppressed because one or more lines are too long

View File

@@ -22,15 +22,15 @@ msgid ", or see our"
msgstr ", of bekijk onze"
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#: src/views/boards/index.tsx:34
#: src/views/boards/index.tsx:27
msgid "{0}"
msgstr "{0}"
#. placeholder {0}: card?.title ?? "Card"
#. placeholder {0}: card?.title ?? t`Card`
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#. placeholder {1}: board?.name ?? "Board"
#. placeholder {1}: workspace.name ?? "Workspace"
#: src/views/boards/index.tsx:29
#. placeholder {1}: board?.name ?? t`Board`
#. placeholder {1}: workspace.name ?? t`Workspace`
#: src/views/boards/index.tsx:22
#: src/views/card/index.tsx:216
msgid "{0} | {1}"
msgstr "{0} | {1}"
@@ -301,6 +301,8 @@ msgid "Blog Post"
msgstr "Blogbericht"
#: src/views/board/index.tsx:361
#: src/views/card/index.tsx:216
#: src/views/public/board/index.tsx:100
msgid "Board"
msgstr "Bord"
@@ -317,7 +319,7 @@ msgstr "Bordnaam mag niet langer zijn dan 100 tekens"
msgid "Board name is required"
msgstr "Bordnaam is verplicht"
#: src/views/public/board/index.tsx:148
#: src/views/public/board/index.tsx:151
msgid "Board not found"
msgstr "Bord niet gevonden"
@@ -333,7 +335,7 @@ msgstr "Board URL kan alleen letters, cijfers en koppeltekens bevatten"
msgid "Board URL cannot exceed 60 characters"
msgstr "Board URL mag niet langer zijn dan 60 tekens"
#: src/views/public/board/index.tsx:64
#: src/views/public/board/index.tsx:67
msgid "Board URL copied to clipboard"
msgstr "Board URL gekopieerd naar klembord"
@@ -381,6 +383,10 @@ msgstr "Bugrapport"
msgid "Cancel"
msgstr "Annuleren"
#: src/views/card/index.tsx:216
msgid "Card"
msgstr "Kaart"
#: src/views/card/index.tsx:262
msgid "Card not found"
msgstr "Kaart niet gevonden"
@@ -978,7 +984,7 @@ msgid "Free"
msgstr "Gratis"
#: src/views/members/components/InviteMemberForm.tsx:326
#: src/views/members/index.tsx:209
#: src/views/members/index.tsx:208
msgid "Free Plan"
msgstr "Gratis plan"
@@ -1097,7 +1103,7 @@ msgstr "Ideeën"
msgid "Ideas to improve this page..."
msgstr "Ideeën om deze pagina te verbeteren..."
#: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:39
msgid "Import"
msgstr "Importeren"
@@ -1165,7 +1171,7 @@ msgstr "Ongeldig e-mailadres"
msgid "Invalid invitation"
msgstr "Ongeldige uitnodiging"
#: src/views/members/index.tsx:222
#: src/views/members/index.tsx:221
msgid "Invite"
msgstr "Uitnodigen"
@@ -1251,7 +1257,7 @@ msgstr "Taal"
msgid "Launch offer"
msgstr "Introductieaanbieding"
#: src/views/members/index.tsx:192
#: src/views/members/index.tsx:191
msgid "Launch offer: Get unlimited members with Pro"
msgstr "Lanceringsaanbieding: krijg onbeperkt aantal leden met Pro"
@@ -1276,7 +1282,7 @@ msgstr "Licentie"
msgid "Light"
msgstr "Licht"
#: src/views/public/board/index.tsx:62
#: src/views/public/board/index.tsx:65
msgid "Link copied"
msgstr "Link gekopieerd"
@@ -1329,12 +1335,12 @@ msgstr "Gemiddelde prioriteit"
#: src/views/board/components/Filters.tsx:93
#: src/views/board/components/NewCardForm.tsx:366
#: src/views/card/index.tsx:126
#: src/views/members/index.tsx:179
#: src/views/members/index.tsx:178
msgid "Members"
msgstr "Leden"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/members/index.tsx:174
#. placeholder {0}: workspace.name ?? t`Workspace`
#: src/views/members/index.tsx:173
msgid "Members | {0}"
msgstr "Leden | {0}"
@@ -1367,7 +1373,7 @@ msgstr "Naam"
msgid "Need help?"
msgstr "Hulp nodig?"
#: src/views/boards/index.tsx:57
#: src/views/boards/index.tsx:50
#: src/views/home/components/Features.tsx:73
msgid "New"
msgstr "Nieuw"
@@ -1512,7 +1518,7 @@ msgstr "Wachtwoord moet minimaal 8 tekens bevatten"
msgid "Passwords do not match"
msgstr "Wachtwoorden komen niet overeen"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Paused"
msgstr "Gepauzeerd"
@@ -1521,7 +1527,7 @@ msgstr "Gepauzeerd"
msgid "Payment frequency"
msgstr "Betalingsfrequentie"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Pending"
msgstr "In behandeling"
@@ -1637,7 +1643,7 @@ msgstr "Privacybeleid"
msgid "Private"
msgstr "Privé"
#: src/views/members/index.tsx:206
#: src/views/members/index.tsx:205
msgid "Pro Plan"
msgstr "Pro Plan"
@@ -1685,7 +1691,7 @@ msgstr "Op afstand"
msgid "Remove"
msgstr "Verwijderen"
#: src/views/members/index.tsx:149
#: src/views/members/index.tsx:148
msgid "Remove member"
msgstr "Lid verwijderen"
@@ -1742,7 +1748,7 @@ msgstr "Beoordeling"
msgid "Roadmap"
msgstr "Roadmap"
#: src/views/members/index.tsx:244
#: src/views/members/index.tsx:243
msgid "Role"
msgstr "Rol"
@@ -1903,7 +1909,7 @@ msgid "System"
msgstr "Systeem"
#: src/views/members/components/InviteMemberForm.tsx:315
#: src/views/members/index.tsx:208
#: src/views/members/index.tsx:207
msgid "Team Plan"
msgstr "Teamplan"
@@ -1984,7 +1990,7 @@ msgstr "Deze actie kan niet ongedaan worden gemaakt."
msgid "This API key will only be shown once. Please save it in a secure location."
msgstr "Deze API-sleutel wordt slechts één keer getoond. Bewaar deze op een veilige plaats."
#: src/views/public/board/index.tsx:151
#: src/views/public/board/index.tsx:154
msgid "This board is private or does not exist"
msgstr "Dit bord is privé of bestaat niet"
@@ -2254,7 +2260,7 @@ msgstr "URL moet minimaal 3 tekens lang zijn"
msgid "Use template"
msgstr "Sjabloon gebruiken"
#: src/views/members/index.tsx:238
#: src/views/members/index.tsx:237
msgid "User"
msgstr "Gebruiker"
@@ -2279,7 +2285,7 @@ msgstr "Bekijk en beheer je facturering en abonnement."
msgid "View docs"
msgstr "Bekijk documentatie"
#: src/views/public/board/index.tsx:125
#: src/views/public/board/index.tsx:128
msgid "View only"
msgstr "Alleen bekijken"
@@ -2287,7 +2293,7 @@ msgstr "Alleen bekijken"
msgid "View our roadmap."
msgstr "Bekijk onze roadmap."
#: src/views/public/board/index.tsx:154
#: src/views/public/board/index.tsx:157
msgid "View workspace"
msgstr "Werkruimte bekijken"
@@ -2328,6 +2334,11 @@ msgid "Why make an open source Trello?"
msgstr "Waarom een open source Trello maken?"
#: src/components/SettingsLayout.tsx:39
#: src/views/board/index.tsx:361
#: src/views/boards/index.tsx:22
#: src/views/members/index.tsx:173
#: src/views/public/board/index.tsx:100
#: src/views/public/boards/index.tsx:66
msgid "Workspace"
msgstr "Werkruimte"

File diff suppressed because one or more lines are too long

View File

@@ -27,15 +27,16 @@ msgid ", or see our"
msgstr ", lub zobacz nasze"
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#: src/views/boards/index.tsx:34
#: src/views/boards/index.tsx:27
msgid "{0}"
msgstr "{0}"
#. placeholder {0}: card?.title ?? "Card"
#. placeholder {0}: card?.title ?? t`Card`
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#. placeholder {1}: board?.name ?? "Board"
#. placeholder {1}: workspace.name ?? "Workspace"
#: src/views/boards/index.tsx:29 src/views/card/index.tsx:216
#. placeholder {1}: board?.name ?? t`Board`
#. placeholder {1}: workspace.name ?? t`Workspace`
#: src/views/boards/index.tsx:22
#: src/views/card/index.tsx:216
msgid "{0} | {1}"
msgstr "{0} | {1}"
@@ -79,7 +80,8 @@ msgstr "Konto"
msgid "Account deleted"
msgstr "Konto zostało usunięte"
#: src/views/card/index.tsx:291 src/views/public/board/CardModal.tsx:143
#: src/views/card/index.tsx:291
#: src/views/public/board/CardModal.tsx:143
msgid "Activity"
msgstr "Aktywność"
@@ -304,6 +306,8 @@ msgid "Blog Post"
msgstr "Post na blogu"
#: src/views/board/index.tsx:361
#: src/views/card/index.tsx:216
#: src/views/public/board/index.tsx:100
msgid "Board"
msgstr "Tablica"
@@ -320,7 +324,7 @@ msgstr "Nazwa tablicy nie może przekraczać 100 znaków"
msgid "Board name is required"
msgstr "Nazwa tablicy jest wymagana"
#: src/views/public/board/index.tsx:148
#: src/views/public/board/index.tsx:151
msgid "Board not found"
msgstr "Tablica nie została znaleziona"
@@ -336,7 +340,7 @@ msgstr "Adres URL tablicy może zawierać tylko litery, cyfry i myślniki"
msgid "Board URL cannot exceed 60 characters"
msgstr "Adres URL tablicy nie może przekraczać 60 znaków"
#: src/views/public/board/index.tsx:64
#: src/views/public/board/index.tsx:67
msgid "Board URL copied to clipboard"
msgstr "Adres URL tablicy został skopiowany do schowka"
@@ -384,6 +388,10 @@ msgstr "Zgłoszenie błędu"
msgid "Cancel"
msgstr "Anuluj"
#: src/views/card/index.tsx:216
msgid "Card"
msgstr "Karta"
#: src/views/card/index.tsx:262
msgid "Card not found"
msgstr "Nie można było znaleźć karty"
@@ -403,7 +411,8 @@ msgstr "Zmień hasło"
msgid "Change your language preferences."
msgstr "Zmień swoje preferencje językowe."
#: src/views/auth/login/index.tsx:43 src/views/auth/signup/index.tsx:69
#: src/views/auth/login/index.tsx:43
#: src/views/auth/signup/index.tsx:69
msgid "Check your inbox"
msgstr "Sprawdź swoją skrzynkę odbiorczą"
@@ -420,7 +429,8 @@ msgstr "Listy kontrolne"
msgid "Clear filters"
msgstr "Wyczyść filtry"
#: src/views/auth/login/index.tsx:48 src/views/auth/signup/index.tsx:74
#: src/views/auth/login/index.tsx:48
#: src/views/auth/signup/index.tsx:74
msgid "Click on the link we've sent to {magicLinkRecipient} to sign in."
msgstr "Kliknij w link, który wysłaliśmy na {magicLinkRecipient}, aby się zalogować."
@@ -580,7 +590,8 @@ msgstr "Utwórz nową listę"
msgid "Create template"
msgstr "Utwórz szablon"
#: src/components/NewWorkspaceForm.tsx:384 src/components/WorkspaceMenu.tsx:149
#: src/components/NewWorkspaceForm.tsx:384
#: src/components/WorkspaceMenu.tsx:149
msgid "Create workspace"
msgstr "Utwórz przestrzeń roboczą"
@@ -951,7 +962,8 @@ msgstr "Prośba o funkcję"
msgid "Features"
msgstr "Funkcje"
#: src/components/FeedbackModal.tsx:59 src/components/UserMenu.tsx:199
#: src/components/FeedbackModal.tsx:59
#: src/components/UserMenu.tsx:199
msgid "Feedback"
msgstr "Opinie"
@@ -977,7 +989,7 @@ msgid "Free"
msgstr "Darmowy"
#: src/views/members/components/InviteMemberForm.tsx:326
#: src/views/members/index.tsx:209
#: src/views/members/index.tsx:208
msgid "Free Plan"
msgstr "Darmowy plan"
@@ -1021,7 +1033,8 @@ msgstr "Rozpocznij, tworząc nową listę"
msgid "Get started for free today"
msgstr "Rozpocznij za darmo już dziś"
#: src/views/pricing/components/Pricing.tsx:92 src/views/pricing/index.tsx:46
#: src/views/pricing/components/Pricing.tsx:92
#: src/views/pricing/index.tsx:46
msgid "Get started for free, with no usage limits. For collaboration, upgrade to a plan that fits the size of your team."
msgstr "Rozpocznij za darmo, bez ograniczeń użytkowania. Aby współpracować, przejdź na plan dopasowany do wielkości Twojego zespołu."
@@ -1095,7 +1108,7 @@ msgstr "Pomysły"
msgid "Ideas to improve this page..."
msgstr "Pomysły na ulepszenie tej strony..."
#: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:39
msgid "Import"
msgstr "Importuj"
@@ -1163,7 +1176,7 @@ msgstr "Nieprawidłowy adres e-mail"
msgid "Invalid invitation"
msgstr "Nieprawidłowe zaproszenie"
#: src/views/members/index.tsx:222
#: src/views/members/index.tsx:221
msgid "Invite"
msgstr "Zaproś"
@@ -1192,7 +1205,8 @@ msgstr "Zaproś członka"
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
msgstr "Zapraszanie członków wymaga planu Team. Zostaniesz przekierowany, aby ulepszyć swoje środowisko pracy."
#: src/views/invite/index.tsx:79 src/views/invite/index.tsx:129
#: src/views/invite/index.tsx:79
#: src/views/invite/index.tsx:129
msgid "Join workspace"
msgstr "Dołącz do środowiska pracy"
@@ -1226,7 +1240,8 @@ msgid "Keep in mind that this action is irreversible."
msgstr "Pamiętaj, że ta akcja jest nieodwracalna."
#: src/views/board/components/Filters.tsx:101
#: src/views/board/components/NewCardForm.tsx:408 src/views/card/index.tsx:117
#: src/views/board/components/NewCardForm.tsx:408
#: src/views/card/index.tsx:117
msgid "Labels"
msgstr "Etykiety"
@@ -1247,7 +1262,7 @@ msgstr "Język"
msgid "Launch offer"
msgstr "Oferta startowa"
#: src/views/members/index.tsx:192
#: src/views/members/index.tsx:191
msgid "Launch offer: Get unlimited members with Pro"
msgstr "Oferta startowa: Nieograniczona liczba członków z Pro"
@@ -1272,7 +1287,7 @@ msgstr "Licencja"
msgid "Light"
msgstr "Jasny"
#: src/views/public/board/index.tsx:62
#: src/views/public/board/index.tsx:65
msgid "Link copied"
msgstr "Link skopiowany"
@@ -1323,17 +1338,19 @@ msgstr "Średni priorytet"
#: src/components/SideNavigation.tsx:80
#: src/views/board/components/Filters.tsx:93
#: src/views/board/components/NewCardForm.tsx:366 src/views/card/index.tsx:126
#: src/views/members/index.tsx:179
#: src/views/board/components/NewCardForm.tsx:366
#: src/views/card/index.tsx:126
#: src/views/members/index.tsx:178
msgid "Members"
msgstr "Członkowie"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/members/index.tsx:174
#. placeholder {0}: workspace.name ?? t`Workspace`
#: src/views/members/index.tsx:173
msgid "Members | {0}"
msgstr "Członkowie | {0}"
#: src/views/pricing/components/Pricing.tsx:14 src/views/pricing/index.tsx:19
#: src/views/pricing/components/Pricing.tsx:14
#: src/views/pricing/index.tsx:19
msgid "Monthly"
msgstr "Miesięcznie"
@@ -1361,7 +1378,8 @@ msgstr "Nazwa"
msgid "Need help?"
msgstr "Potrzebujesz pomocy?"
#: src/views/boards/index.tsx:57 src/views/home/components/Features.tsx:73
#: src/views/boards/index.tsx:50
#: src/views/home/components/Features.tsx:73
msgid "New"
msgstr "Nowy"
@@ -1390,7 +1408,8 @@ msgstr "Nowy import"
msgid "New label"
msgstr "Nowa etykieta"
#: src/views/board/components/NewListForm.tsx:112 src/views/board/index.tsx:439
#: src/views/board/components/NewListForm.tsx:112
#: src/views/board/index.tsx:439
msgid "New list"
msgstr "Nowa lista"
@@ -1504,7 +1523,7 @@ msgstr "Hasło musi mieć co najmniej 8 znaków"
msgid "Passwords do not match"
msgstr "Hasła nie pasują do siebie"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Paused"
msgstr "Wstrzymane"
@@ -1513,12 +1532,13 @@ msgstr "Wstrzymane"
msgid "Payment frequency"
msgstr "Częstotliwość płatności"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Pending"
msgstr "Oczekujące"
#: src/views/pricing/components/Pricing.tsx:15
#: src/views/pricing/components/Pricing.tsx:20 src/views/pricing/index.tsx:20
#: src/views/pricing/components/Pricing.tsx:20
#: src/views/pricing/index.tsx:20
#: src/views/pricing/index.tsx:25
msgid "per user/month"
msgstr "na użytkownika/miesiąc"
@@ -1556,14 +1576,16 @@ msgid "Please select a file to upload."
msgstr "Proszę wybrać plik do przesłania."
#: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 src/components/NewWorkspaceForm.tsx:155
#: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:155
#: src/views/board/components/NewCardForm.tsx:176
#: src/views/board/components/NewListForm.tsx:78
#: src/views/board/components/NewTemplateForm.tsx:61
#: src/views/board/components/NewTemplateForm.tsx:77
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
#: src/views/board/components/VisibilityButton.tsx:53
#: src/views/board/index.tsx:149 src/views/board/index.tsx:205
#: src/views/board/index.tsx:149
#: src/views/board/index.tsx:205
#: src/views/boards/components/ImportBoardsForm.tsx:205
#: src/views/card/components/ChecklistItemRow.tsx:60
#: src/views/card/components/ChecklistItemRow.tsx:88
@@ -1577,7 +1599,8 @@ msgstr "Proszę wybrać plik do przesłania."
#: src/views/card/components/MemberSelector.tsx:79
#: src/views/card/components/NewChecklistForm.tsx:70
#: src/views/card/components/NewChecklistItemForm.tsx:89
#: src/views/card/components/NewCommentForm.tsx:31 src/views/card/index.tsx:175
#: src/views/card/components/NewCommentForm.tsx:31
#: src/views/card/index.tsx:175
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
#: src/views/members/components/InviteMemberForm.tsx:104
#: src/views/members/components/InviteMemberForm.tsx:234
@@ -1625,7 +1648,7 @@ msgstr "Polityka prywatności"
msgid "Private"
msgstr "Prywatne"
#: src/views/members/index.tsx:206
#: src/views/members/index.tsx:205
msgid "Pro Plan"
msgstr "Plan Pro"
@@ -1673,7 +1696,7 @@ msgstr "Zdalne"
msgid "Remove"
msgstr "Usuń"
#: src/views/members/index.tsx:149
#: src/views/members/index.tsx:148
msgid "Remove member"
msgstr "Usuń członka"
@@ -1730,7 +1753,7 @@ msgstr "Przegląd"
msgid "Roadmap"
msgstr "Plan ulepszeń"
#: src/views/members/index.tsx:244
#: src/views/members/index.tsx:243
msgid "Role"
msgstr "Rola"
@@ -1789,7 +1812,8 @@ msgstr "Prześlij opinię"
msgid "Senior"
msgstr "Starszy"
#: src/components/SettingsLayout.tsx:82 src/components/SideNavigation.tsx:85
#: src/components/SettingsLayout.tsx:82
#: src/components/SideNavigation.tsx:85
msgid "Settings"
msgstr "Ustawienia"
@@ -1825,7 +1849,8 @@ msgstr "Zaloguj się"
msgid "Sign Up"
msgstr "Zarejestruj się"
#: src/views/auth/signup/index.tsx:34 src/views/auth/signup/index.tsx:59
#: src/views/auth/signup/index.tsx:34
#: src/views/auth/signup/index.tsx:59
msgid "Sign up | kan.bn"
msgstr "Zarejestruj się | kan.bn"
@@ -1841,7 +1866,8 @@ msgstr "Rejestracja jest obecnie wyłączona. Spróbuj ponownie później."
msgid "Sign up with "
msgstr "Zarejestruj się za pomocą "
#: src/views/pricing/components/Pricing.tsx:89 src/views/pricing/index.tsx:43
#: src/views/pricing/components/Pricing.tsx:89
#: src/views/pricing/index.tsx:43
msgid "Simple pricing"
msgstr "Prosty cennik"
@@ -1865,7 +1891,8 @@ msgstr "Oznacz gwiazdką na Githubie"
msgid "Subscription Required"
msgstr "Wymagana subskrypcja"
#: src/components/AuthForm.tsx:215 src/components/AuthForm.tsx:232
#: src/components/AuthForm.tsx:215
#: src/components/AuthForm.tsx:232
msgid "Success"
msgstr "Sukces"
@@ -1887,7 +1914,7 @@ msgid "System"
msgstr "System"
#: src/views/members/components/InviteMemberForm.tsx:315
#: src/views/members/index.tsx:208
#: src/views/members/index.tsx:207
msgid "Team Plan"
msgstr "Plan zespołowy"
@@ -1897,7 +1924,8 @@ msgstr "Plan zespołowy"
msgid "Teams"
msgstr "Zespoły"
#: src/views/board/index.tsx:361 src/views/board/index.tsx:396
#: src/views/board/index.tsx:361
#: src/views/board/index.tsx:396
msgid "Template"
msgstr "Szablon"
@@ -1967,7 +1995,7 @@ msgstr "Tej akcji nie można cofnąć."
msgid "This API key will only be shown once. Please save it in a secure location."
msgstr "Ten klucz API zostanie wyświetlony tylko raz. Proszę zapisać go w bezpiecznym miejscu."
#: src/views/public/board/index.tsx:151
#: src/views/public/board/index.tsx:154
msgid "This board is private or does not exist"
msgstr "Ta tablica jest prywatna lub nie istnieje"
@@ -2090,7 +2118,8 @@ msgstr "Nie można zaktualizować adresu URL tablicy"
msgid "Unable to update board visibility"
msgstr "Nie można zaktualizować widoczności tablicy"
#: src/views/board/index.tsx:204 src/views/card/index.tsx:174
#: src/views/board/index.tsx:204
#: src/views/card/index.tsx:174
msgid "Unable to update card"
msgstr "Nie można zaktualizować karty"
@@ -2110,7 +2139,8 @@ msgstr "Nie można zaktualizować komentarza"
msgid "Unable to update labels"
msgstr "Nie można zaktualizować etykiet"
#: src/views/board/index.tsx:148 src/views/card/components/ListSelector.tsx:51
#: src/views/board/index.tsx:148
#: src/views/card/components/ListSelector.tsx:51
msgid "Unable to update list"
msgstr "Nie można zaktualizować listy"
@@ -2235,7 +2265,7 @@ msgstr "Adres URL musi mieć co najmniej 3 znaki"
msgid "Use template"
msgstr "Użyj szablonu"
#: src/views/members/index.tsx:238
#: src/views/members/index.tsx:237
msgid "User"
msgstr "Użytkownik"
@@ -2260,7 +2290,7 @@ msgstr "Zobacz i zarządzaj swoimi płatnościami i subskrypcją."
msgid "View docs"
msgstr "Zobacz dokumentację"
#: src/views/public/board/index.tsx:125
#: src/views/public/board/index.tsx:128
msgid "View only"
msgstr "Tylko podgląd"
@@ -2268,7 +2298,7 @@ msgstr "Tylko podgląd"
msgid "View our roadmap."
msgstr "Zobacz nasz plan ulepszeń."
#: src/views/public/board/index.tsx:154
#: src/views/public/board/index.tsx:157
msgid "View workspace"
msgstr "Zobacz obszar roboczy"
@@ -2309,6 +2339,11 @@ msgid "Why make an open source Trello?"
msgstr "Dlaczego próbujecie stworzyć Trello w wersji otwartoźródłowej?"
#: src/components/SettingsLayout.tsx:39
#: src/views/board/index.tsx:361
#: src/views/boards/index.tsx:22
#: src/views/members/index.tsx:173
#: src/views/public/board/index.tsx:100
#: src/views/public/boards/index.tsx:66
msgid "Workspace"
msgstr "Obszar roboczy"
@@ -2379,7 +2414,8 @@ msgstr "workspace-url"
msgid "Writing"
msgstr "Pisanie"
#: src/views/pricing/components/Pricing.tsx:19 src/views/pricing/index.tsx:24
#: src/views/pricing/components/Pricing.tsx:19
#: src/views/pricing/index.tsx:24
msgid "Yearly"
msgstr "Rocznie"

File diff suppressed because one or more lines are too long

View File

@@ -22,15 +22,15 @@ msgid ", or see our"
msgstr ", или посмотрите наши"
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#: src/views/boards/index.tsx:34
#: src/views/boards/index.tsx:27
msgid "{0}"
msgstr "{0}"
#. placeholder {0}: card?.title ?? "Card"
#. placeholder {0}: card?.title ?? t`Card`
#. placeholder {0}: isTemplate ? "Templates" : "Boards"
#. placeholder {1}: board?.name ?? "Board"
#. placeholder {1}: workspace.name ?? "Workspace"
#: src/views/boards/index.tsx:29
#. placeholder {1}: board?.name ?? t`Board`
#. placeholder {1}: workspace.name ?? t`Workspace`
#: src/views/boards/index.tsx:22
#: src/views/card/index.tsx:216
msgid "{0} | {1}"
msgstr "{0} | {1}"
@@ -301,6 +301,8 @@ msgid "Blog Post"
msgstr "Пост в блоге"
#: src/views/board/index.tsx:361
#: src/views/card/index.tsx:216
#: src/views/public/board/index.tsx:100
msgid "Board"
msgstr "Доска"
@@ -317,7 +319,7 @@ msgstr "Название доски не может превышать 100 си
msgid "Board name is required"
msgstr "Название доски обязательно"
#: src/views/public/board/index.tsx:148
#: src/views/public/board/index.tsx:151
msgid "Board not found"
msgstr "Доска не найдена"
@@ -333,7 +335,7 @@ msgstr "URL доски может содержать только буквы, ц
msgid "Board URL cannot exceed 60 characters"
msgstr "URL доски не может превышать 60 символов"
#: src/views/public/board/index.tsx:64
#: src/views/public/board/index.tsx:67
msgid "Board URL copied to clipboard"
msgstr "URL доски скопирован в буфер обмена"
@@ -381,6 +383,10 @@ msgstr "Отчет об ошибке"
msgid "Cancel"
msgstr "Отмена"
#: src/views/card/index.tsx:216
msgid "Card"
msgstr "Карточка"
#: src/views/card/index.tsx:262
msgid "Card not found"
msgstr "Карточка не найдена"
@@ -978,7 +984,7 @@ msgid "Free"
msgstr "Бесплатно"
#: src/views/members/components/InviteMemberForm.tsx:326
#: src/views/members/index.tsx:209
#: src/views/members/index.tsx:208
msgid "Free Plan"
msgstr "Бесплатный план"
@@ -1097,7 +1103,7 @@ msgstr "Идеи"
msgid "Ideas to improve this page..."
msgstr "Идеи для улучшения этой страницы..."
#: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:39
msgid "Import"
msgstr "Импорт"
@@ -1165,7 +1171,7 @@ msgstr "Недействительный адрес электронной по
msgid "Invalid invitation"
msgstr "Недействительное приглашение"
#: src/views/members/index.tsx:222
#: src/views/members/index.tsx:221
msgid "Invite"
msgstr "Пригласить"
@@ -1251,7 +1257,7 @@ msgstr "Язык"
msgid "Launch offer"
msgstr "Стартовое предложение"
#: src/views/members/index.tsx:192
#: src/views/members/index.tsx:191
msgid "Launch offer: Get unlimited members with Pro"
msgstr "Стартовое предложение: получите неограниченное количество участников с Pro"
@@ -1276,7 +1282,7 @@ msgstr "Лицензия"
msgid "Light"
msgstr "Светлый"
#: src/views/public/board/index.tsx:62
#: src/views/public/board/index.tsx:65
msgid "Link copied"
msgstr "Ссылка скопирована"
@@ -1329,12 +1335,12 @@ msgstr "Средний приоритет"
#: src/views/board/components/Filters.tsx:93
#: src/views/board/components/NewCardForm.tsx:366
#: src/views/card/index.tsx:126
#: src/views/members/index.tsx:179
#: src/views/members/index.tsx:178
msgid "Members"
msgstr "Участники"
#. placeholder {0}: workspace.name ?? "Workspace"
#: src/views/members/index.tsx:174
#. placeholder {0}: workspace.name ?? t`Workspace`
#: src/views/members/index.tsx:173
msgid "Members | {0}"
msgstr "Участники | {0}"
@@ -1367,7 +1373,7 @@ msgstr "Имя"
msgid "Need help?"
msgstr "Нужна помощь?"
#: src/views/boards/index.tsx:57
#: src/views/boards/index.tsx:50
#: src/views/home/components/Features.tsx:73
msgid "New"
msgstr "Новый"
@@ -1512,7 +1518,7 @@ msgstr "Пароль должен содержать не менее 8 симв
msgid "Passwords do not match"
msgstr "Пароли не совпадают"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Paused"
msgstr "Приостановлено"
@@ -1521,7 +1527,7 @@ msgstr "Приостановлено"
msgid "Payment frequency"
msgstr "Частота платежей"
#: src/views/members/index.tsx:135
#: src/views/members/index.tsx:134
msgid "Pending"
msgstr "В ожидании"
@@ -1637,7 +1643,7 @@ msgstr "Политика конфиденциальности"
msgid "Private"
msgstr "Личное"
#: src/views/members/index.tsx:206
#: src/views/members/index.tsx:205
msgid "Pro Plan"
msgstr "Профессиональный план"
@@ -1685,7 +1691,7 @@ msgstr "Удалённый"
msgid "Remove"
msgstr "Удалить"
#: src/views/members/index.tsx:149
#: src/views/members/index.tsx:148
msgid "Remove member"
msgstr "Удалить участника"
@@ -1742,7 +1748,7 @@ msgstr "Обзор"
msgid "Roadmap"
msgstr "Дорожная карта"
#: src/views/members/index.tsx:244
#: src/views/members/index.tsx:243
msgid "Role"
msgstr "Роль"
@@ -1903,7 +1909,7 @@ msgid "System"
msgstr "Система"
#: src/views/members/components/InviteMemberForm.tsx:315
#: src/views/members/index.tsx:208
#: src/views/members/index.tsx:207
msgid "Team Plan"
msgstr "Командный план"
@@ -1984,7 +1990,7 @@ msgstr "Это действие нельзя будет отменить."
msgid "This API key will only be shown once. Please save it in a secure location."
msgstr "Этот API-ключ будет показан только один раз. Пожалуйста, сохраните его в безопасном месте."
#: src/views/public/board/index.tsx:151
#: src/views/public/board/index.tsx:154
msgid "This board is private or does not exist"
msgstr "Эта доска является приватной или не существует."
@@ -2254,7 +2260,7 @@ msgstr "URL должен содержать не менее 3 символов"
msgid "Use template"
msgstr "Использовать шаблон"
#: src/views/members/index.tsx:238
#: src/views/members/index.tsx:237
msgid "User"
msgstr "Пользователь"
@@ -2279,7 +2285,7 @@ msgstr "Просмотр и управление вашими счетами и
msgid "View docs"
msgstr "Просмотреть документацию"
#: src/views/public/board/index.tsx:125
#: src/views/public/board/index.tsx:128
msgid "View only"
msgstr "Только просмотр"
@@ -2287,7 +2293,7 @@ msgstr "Только просмотр"
msgid "View our roadmap."
msgstr "Просмотреть нашу дорожную карту."
#: src/views/public/board/index.tsx:154
#: src/views/public/board/index.tsx:157
msgid "View workspace"
msgstr "Просмотреть рабочее пространство"
@@ -2328,6 +2334,11 @@ msgid "Why make an open source Trello?"
msgstr "Зачем создавать Trello с открытым исходным кодом?"
#: src/components/SettingsLayout.tsx:39
#: src/views/board/index.tsx:361
#: src/views/boards/index.tsx:22
#: src/views/members/index.tsx:173
#: src/views/public/board/index.tsx:100
#: src/views/public/boards/index.tsx:66
msgid "Workspace"
msgstr "Рабочее пространство"

File diff suppressed because one or more lines are too long

View File

@@ -4,6 +4,7 @@ interface ModalState {
contentType: string;
entityId?: string;
entityLabel?: string;
closeOnClickOutside?: boolean;
}
interface Props {
@@ -16,6 +17,7 @@ interface ModalContextType {
contentType: string,
entityId?: string,
entityLabel?: string,
closeOnClickOutside?: boolean,
) => void;
closeModal: () => void;
closeModals: (count: number) => void;
@@ -23,6 +25,7 @@ interface ModalContextType {
modalContentType: string;
entityId: string;
entityLabel: string;
closeOnClickOutside: boolean;
modalStates: Record<string, any>;
setModalState: (modalType: string, state: any) => void;
getModalState: (modalType: string) => any;
@@ -41,10 +44,21 @@ export const ModalProvider: React.FC<Props> = ({ children }) => {
const modalContentType = currentModal?.contentType || "";
const entityId = currentModal?.entityId || "";
const entityLabel = currentModal?.entityLabel || "";
const closeOnClickOutside = currentModal?.closeOnClickOutside ?? true;
const openModal = useCallback(
(contentType: string, entityId?: string, entityLabel?: string) => {
const newModal: ModalState = { contentType, entityId, entityLabel };
(
contentType: string,
entityId?: string,
entityLabel?: string,
closeOnClickOutside?: boolean,
) => {
const newModal: ModalState = {
contentType,
entityId,
entityLabel,
closeOnClickOutside,
};
setModalStack((prev) => [...prev, newModal]);
},
[],
@@ -107,6 +121,7 @@ export const ModalProvider: React.FC<Props> = ({ children }) => {
modalContentType,
entityId,
entityLabel,
closeOnClickOutside,
modalStates,
setModalState,
getModalState,

View File

@@ -1,3 +1,5 @@
import { HiBars3BottomLeft, HiChatBubbleLeft } from "react-icons/hi2";
import Avatar from "~/components/Avatar";
import Badge from "~/components/Badge";
import CircularProgress from "~/components/CircularProgress";
@@ -9,6 +11,8 @@ const Card = ({
labels,
members,
checklists,
description,
comments,
}: {
title: string;
labels: { name: string; colourCode: string | null }[];
@@ -27,6 +31,8 @@ const Card = ({
index: number;
}[];
}[];
description: string | null;
comments: { publicId: string }[];
}) => {
const completedItems = checklists.reduce((acc, checklist) => {
return acc + checklist.items.filter((item) => item.completed).length;
@@ -39,10 +45,17 @@ const Card = ({
const progress =
totalItems > 0 ? Math.round((completedItems / totalItems) * 100) : 0;
const hasDescription =
description && description.replace(/<[^>]*>/g, "").trim().length > 0;
return (
<div className="flex flex-col rounded-md border border-light-200 bg-light-50 px-3 py-2 text-sm text-neutral-900 dark:border-dark-200 dark:bg-dark-200 dark:text-dark-1000 dark:hover:bg-dark-300">
<span>{title}</span>
{labels.length || members.length || checklists.length > 0 ? (
{labels.length ||
members.length ||
checklists.length > 0 ||
hasDescription ||
comments.length > 0 ? (
<div className="mt-2 flex flex-col justify-end">
<div className="space-x-0.5">
{labels.map((label) => (
@@ -52,37 +65,51 @@ const Card = ({
/>
))}
</div>
<div className="flex items-center justify-end gap-1">
{checklists.length > 0 && (
<div className="flex items-center gap-1 rounded-full border-[1px] border-light-300 px-2 py-1 dark:border-dark-600">
<CircularProgress
progress={progress || 2}
size="sm"
className="flex-shrink-0"
/>
<span className="text-[10px] text-light-900 dark:text-dark-950">
{completedItems}/{totalItems}
</span>
</div>
)}
{members.length > 0 && (
<div className="isolate flex justify-end -space-x-1 overflow-hidden">
{members.map(({ user, email }) => {
const avatarUrl = user?.image
? getAvatarUrl(user.image)
: undefined;
<div className="mt-2 flex items-center justify-between gap-1">
<div className="flex items-center gap-2">
{hasDescription && (
<div className="flex items-center gap-1 text-light-700 dark:text-dark-800">
<HiBars3BottomLeft className="h-4 w-4" />
</div>
)}
{comments.length > 0 && (
<div className="flex items-center gap-1 text-light-700 dark:text-dark-800">
<HiChatBubbleLeft className="h-4 w-4" />
</div>
)}
</div>
<div className="flex items-center justify-end gap-1">
{checklists.length > 0 && (
<div className="flex items-center gap-1 rounded-full border-[1px] border-light-300 px-2 py-1 dark:border-dark-600">
<CircularProgress
progress={progress || 2}
size="sm"
className="flex-shrink-0"
/>
<span className="text-[10px] text-light-900 dark:text-dark-950">
{completedItems}/{totalItems}
</span>
</div>
)}
{members.length > 0 && (
<div className="isolate flex justify-end -space-x-1 overflow-hidden">
{members.map(({ user, email }) => {
const avatarUrl = user?.image
? getAvatarUrl(user.image)
: undefined;
return (
<Avatar
name={user?.name ?? ""}
email={user?.email ?? email}
imageUrl={avatarUrl}
size="sm"
/>
);
})}
</div>
)}
return (
<Avatar
name={user?.name ?? ""}
email={user?.email ?? email}
imageUrl={avatarUrl}
size="sm"
/>
);
})}
</div>
)}
</div>
</div>
</div>
) : null}

View File

@@ -358,7 +358,7 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
return (
<>
<PageHead
title={`${(boardData?.name ?? isTemplate) ? t`Board` : t`Template`} | ${workspace.name}`}
title={`${boardData?.name ?? (isTemplate ? t`Board` : t`Template`)} | ${workspace.name ?? t`Workspace`}`}
/>
<div className="relative flex h-full flex-col">
<PatternedBackground />
@@ -546,6 +546,10 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
labels={card.labels}
members={card.members}
checklists={card.checklists ?? []}
description={
card.description ?? null
}
comments={card.comments ?? []}
/>
</Link>
)}

View File

@@ -1,5 +1,4 @@
import { t } from "@lingui/core/macro";
import { useEffect } from "react";
import { HiArrowDownTray, HiOutlinePlusSmall } from "react-icons/hi2";
import Button from "~/components/Button";
@@ -15,18 +14,12 @@ import { NewBoardForm } from "./components/NewBoardForm";
export default function BoardsPage({ isTemplate }: { isTemplate?: boolean }) {
const { openModal, modalContentType, isOpen } = useModal();
const { availableWorkspaces, workspace, hasLoaded } = useWorkspace();
useEffect(() => {
if (hasLoaded && availableWorkspaces.length === 0) {
openModal("NEW_WORKSPACE");
}
}, [hasLoaded, availableWorkspaces.length, openModal]);
const { workspace } = useWorkspace();
return (
<>
<PageHead
title={t`${isTemplate ? "Templates" : "Boards"} | ${workspace.name ?? "Workspace"}`}
title={t`${isTemplate ? "Templates" : "Boards"} | ${workspace.name ?? t`Workspace`}`}
/>
<div className="m-auto h-full max-w-[1100px] p-6 px-5 md:px-28 md:py-12">
<div className="relative z-10 mb-8 flex w-full items-center justify-between">

View File

@@ -213,7 +213,7 @@ export default function CardPage({ isTemplate }: { isTemplate?: boolean }) {
return (
<>
<PageHead
title={t`${card?.title ?? "Card"} | ${board?.name ?? "Board"}`}
title={t`${card?.title ?? t`Card`} | ${board?.name ?? t`Board`}`}
/>
<div className="flex h-full flex-1 flex-row overflow-hidden">
<div className="scrollbar-thumb-rounded-[4px] scrollbar-track-rounded-[4px] w-full flex-1 overflow-y-auto scrollbar scrollbar-track-light-200 scrollbar-thumb-light-400 hover:scrollbar-thumb-light-400 dark:scrollbar-track-dark-100 dark:scrollbar-thumb-dark-300 dark:hover:scrollbar-thumb-dark-300">

View File

@@ -1,7 +1,6 @@
import Link from "next/link";
import { t } from "@lingui/core/macro";
import { env } from "next-runtime-env";
import { useEffect, useState } from "react";
import {
HiBolt,
HiEllipsisHorizontal,
@@ -171,7 +170,7 @@ export default function MembersPage() {
return (
<>
<PageHead title={t`Members | ${workspace.name ?? "Workspace"}`} />
<PageHead title={t`Members | ${workspace.name ?? t`Workspace`}`} />
<div className="m-auto h-full max-w-[1100px] p-6 px-5 md:px-28 md:py-12">
<div className="mb-8 flex w-full justify-between">
<div className="flex items-center gap-3">

View File

@@ -45,7 +45,10 @@ export default function PublicBoardView() {
members: formatToArray(router.query.members),
labels: formatToArray(router.query.labels),
},
{ enabled: router.isReady && !!boardSlug, placeholderData: keepPreviousData },
{
enabled: router.isReady && !!boardSlug,
placeholderData: keepPreviousData,
},
);
const CopyBoardLink = () => {
@@ -94,7 +97,7 @@ export default function PublicBoardView() {
return (
<>
<PageHead
title={`${data?.name ?? "Board"} | ${data?.workspace.name ?? "Workspace"}`}
title={`${data?.name ?? t`Board`} | ${data?.workspace.name ?? t`Workspace`}`}
/>
<style jsx global>{`
html {
@@ -156,7 +159,7 @@ export default function PublicBoardView() {
) : (
<div className="flex">
<div className="min-w-[2rem]" />
{data.lists.map((list) => (
{data?.lists.map((list) => (
<div
key={list.publicId}
className="dark-text-dark-1000 mr-5 h-fit min-w-[18rem] max-w-[18rem] rounded-md border border-light-400 bg-light-300 py-2 pl-2 pr-1 text-neutral-900 dark:border-dark-300 dark:bg-dark-100"
@@ -182,6 +185,8 @@ export default function PublicBoardView() {
labels={card.labels}
checklists={card.checklists ?? []}
members={[]}
description={card.description}
comments={card.comments ?? []}
/>
</Link>
))}

View File

@@ -1,5 +1,6 @@
import Link from "next/link";
import { useRouter } from "next/router";
import { t } from "@lingui/core/macro";
import { PageHead } from "~/components/PageHead";
import PatternedBackground from "~/components/PatternedBackground";
@@ -62,7 +63,7 @@ export default function PublicBoardsView() {
return (
<>
<PageHead title={`${"Board"} | ${"Workspace"}`} />
<PageHead title={`${data?.name ?? t`Workspace`} | kan.bn`} />
<style jsx global>{`
html {
height: 100vh;

View File

@@ -240,7 +240,14 @@ export const initAuth = (db: dbClient) => {
]
: []),
// @todo: hasing is disabled due to a bug in the api key plugin
apiKey({ disableKeyHashing: true }),
apiKey({
disableKeyHashing: true,
rateLimit: {
enabled: true,
timeWindow: 1000 * 60, // 1 minute
maxRequests: 100, // 100 requests per minute
},
}),
magicLink({
expiresIn: 60 * 60 * 24 * 7, // 7 days
sendMagicLink: async ({ email, url }) => {

View File

@@ -10,6 +10,7 @@ import {
cardToWorkspaceMembers,
checklistItems,
checklists,
comments,
labels,
lists,
workspaceMembers,
@@ -215,6 +216,13 @@ export const getByPublicId = async (
},
},
},
comments: {
columns: {
publicId: true,
},
where: isNull(comments.deletedAt),
limit: 1,
},
},
where: and(
cardIds.length > 0 ? inArray(cards.publicId, cardIds) : undefined,
@@ -335,6 +343,13 @@ export const getBySlug = async (
},
},
},
comments: {
columns: {
publicId: true,
},
where: isNull(comments.deletedAt),
limit: 1,
},
checklists: {
columns: {
publicId: true,