Compare commits

..

1 Commits

Author SHA1 Message Date
Henry
de87f6237e fix: prevent ellipses from showing through member dropdown menu 2026-02-02 20:03:52 +00:00
51 changed files with 820 additions and 1418 deletions

View File

@@ -5,8 +5,6 @@ checksums:
"%2C%20or%20see%20our/singular": e8a8f2a078fcaea03481710dcaccce5d "%2C%20or%20see%20our/singular": e8a8f2a078fcaea03481710dcaccce5d
"%7B0%7D/singular": 18782768c8a0b3c2078747b34fbbcd24 "%7B0%7D/singular": 18782768c8a0b3c2078747b34fbbcd24
"%7B0%7D%20%7C%20%7B1%7D/singular": 4628f9c6ec13c2dc2984a6ab80e19f8b "%7B0%7D%20%7C%20%7B1%7D/singular": 4628f9c6ec13c2dc2984a6ab80e19f8b
"%7B0%7D%20has%20been%20added%20to%20your%20favorites./singular": 0f752180183c80703b3f9f39dc97195f
"%7B0%7D%20has%20been%20removed%20from%20your%20favorites./singular": 26e4b4997ad8a711d0b3e46337799454
"%7B0%7D%20labels/singular": 785f92bedf786ff3e285adfc07c69d18 "%7B0%7D%20labels/singular": 785f92bedf786ff3e285adfc07c69d18
"%7B0%7D%20not%20found/singular": a2665fc66f128fee1a80ffec61c9f1a1 "%7B0%7D%20not%20found/singular": a2665fc66f128fee1a80ffec61c9f1a1
"%7BboardCount%2C%20plural%2C%20one%20%7BImport%20board%20(1)%7D%20other%20%7BImport%20boards%20(%7BboardCount%7D)%7D%7D/singular": 72358c550bd1a99fcb6e8952f0f947ef "%7BboardCount%2C%20plural%2C%20one%20%7BImport%20board%20(1)%7D%20other%20%7BImport%20boards%20(%7BboardCount%7D)%7D%7D/singular": 72358c550bd1a99fcb6e8952f0f947ef
@@ -29,7 +27,6 @@ checksums:
Add%20details.../singular: 2f42547fd5d199f173aa7a88c8a9b19a Add%20details.../singular: 2f42547fd5d199f173aa7a88c8a9b19a
Add%20label/singular: 0be732d46df263265935fda342097a08 Add%20label/singular: 0be732d46df263265935fda342097a08
Add%20member/singular: 11979625770516ca287e929381778e02 Add%20member/singular: 11979625770516ca287e929381778e02
Add%20to%20favorites/singular: 532155acb0a46f2b6c37e15afb3ad21e
added%20%7B0%7D%20labels%3A%20%3C0%3E%7BlabelList%7D%3C%2F0%3E/singular: 42b0488d570626dc887c58ff669c953c added%20%7B0%7D%20labels%3A%20%3C0%3E%7BlabelList%7D%3C%2F0%3E/singular: 42b0488d570626dc887c58ff669c953c
added%20a%20checklist/singular: 44304f4a5ef3a46378eea243b5d2df79 added%20a%20checklist/singular: 44304f4a5ef3a46378eea243b5d2df79
added%20a%20checklist%20item/singular: 20bc0330dba5a9ec978e04bec174365a added%20a%20checklist%20item/singular: 20bc0330dba5a9ec978e04bec174365a
@@ -38,7 +35,6 @@ checksums:
added%20checklist%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: fb6a852c50c1629f47c6f155fc93fdee added%20checklist%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: fb6a852c50c1629f47c6f155fc93fdee
added%20checklist%20item%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: bdd202da20b1fffbec21792c5453f90c added%20checklist%20item%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: bdd202da20b1fffbec21792c5453f90c
added%20label%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: b32be052b3d57de0c9120fa7f9fc86ee added%20label%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: b32be052b3d57de0c9120fa7f9fc86ee
Added%20to%20favorites/singular: 848046ec65d15913112b466c544722eb
Adding%20a%20new%20member%20will%20cost%20an%20additional%20%7Bprice%7D%20(%7BbillingType%7D)%20per%20seat./singular: 12e88573028306110fbc15ef1e714892 Adding%20a%20new%20member%20will%20cost%20an%20additional%20%7Bprice%7D%20(%7BbillingType%7D)%20per%20seat./singular: 12e88573028306110fbc15ef1e714892
Adjust%20the%20square%20crop%20to%20fit%20your%20avatar./singular: a4df26bbce6f14c6962fac1324db00a8 Adjust%20the%20square%20crop%20to%20fit%20your%20avatar./singular: a4df26bbce6f14c6962fac1324db00a8
Admin/singular: 90eb20f1400db82ab874744e47836dc6 Admin/singular: 90eb20f1400db82ab874744e47836dc6
@@ -110,6 +106,7 @@ checksums:
Can%20edit%20member%20roles%20and%20permissions/singular: c364e8e8866111a471f4081db0730049 Can%20edit%20member%20roles%20and%20permissions/singular: c364e8e8866111a471f4081db0730049
Can%20edit%20workspace/singular: 9768f990844e215c06910fed250da23a Can%20edit%20workspace/singular: 9768f990844e215c06910fed250da23a
Can%20invite%20members/singular: e02e562bcb7f46008d9595e485951413 Can%20invite%20members/singular: e02e562bcb7f46008d9595e485951413
can%20manage%20workspace%20settings/singular: 78bfe1746f961f37b1cde85e5a0e9a13
Can%20manage%20workspace%20settings/singular: 27eb18d3be5b3d813996b7d5071e0317 Can%20manage%20workspace%20settings/singular: 27eb18d3be5b3d813996b7d5071e0317
Can%20remove%20members/singular: 97a452b0fb4b661eaca7e5b3d5b49dcd Can%20remove%20members/singular: 97a452b0fb4b661eaca7e5b3d5b49dcd
Can%20view%20boards/singular: 14977bbbb566f72fc74e17d99bad09bb Can%20view%20boards/singular: 14977bbbb566f72fc74e17d99bad09bb
@@ -465,12 +462,10 @@ checksums:
Recruitment/singular: 78084ee4954aa22efe9ad7463d2a0c72 Recruitment/singular: 78084ee4954aa22efe9ad7463d2a0c72
Remote/singular: dc3e4280dfe5c455b38ba6c8884999cf Remote/singular: dc3e4280dfe5c455b38ba6c8884999cf
Remove/singular: dba2fe5fe9f83f8078c687f28cba4b52 Remove/singular: dba2fe5fe9f83f8078c687f28cba4b52
Remove%20from%20favorites/singular: 74d9cc2d2f3c7a7dc42a7e62c8ee06d5
Remove%20member/singular: 1d77c2ca3768e486fd1fb5df30cb60d9 Remove%20member/singular: 1d77c2ca3768e486fd1fb5df30cb60d9
removed%20%7B0%7D%20labels%3A%20%3C0%3E%7BlabelList%7D%3C%2F0%3E/singular: 612fcfd4aca6818fc870f81d9687d63f removed%20%7B0%7D%20labels%3A%20%3C0%3E%7BlabelList%7D%3C%2F0%3E/singular: 612fcfd4aca6818fc870f81d9687d63f
removed%20a%20label%20from%20the%20card/singular: f83ec18850a2a8a3f8242a740a04df06 removed%20a%20label%20from%20the%20card/singular: f83ec18850a2a8a3f8242a740a04df06
removed%20a%20member%20from%20the%20card/singular: 0bd7561bb79358fde3d595c3e60a315a removed%20a%20member%20from%20the%20card/singular: 0bd7561bb79358fde3d595c3e60a315a
Removed%20from%20favorites/singular: 540609ab686ed67b1cfd7649467b8bc1
removed%20label%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: 7e0936b15831e65754588b8512f62fcb removed%20label%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: 7e0936b15831e65754588b8512f62fcb
removed%20the%20due%20date/singular: 000c084844718540fcad542dd8caf8b4 removed%20the%20due%20date/singular: 000c084844718540fcad542dd8caf8b4
renamed%20a%20checklist/singular: 4d208de1857740e63469007c5b8b491a renamed%20a%20checklist/singular: 4d208de1857740e63469007c5b8b491a
@@ -586,7 +581,6 @@ checksums:
Unable%20to%20reorder%20checklist%20item/singular: dcc238c72b85daf74ebd46adcd914473 Unable%20to%20reorder%20checklist%20item/singular: dcc238c72b85daf74ebd46adcd914473
Unable%20to%20reset%20permissions/singular: fb09d88ff4eb32afb852d733bafd515b Unable%20to%20reset%20permissions/singular: fb09d88ff4eb32afb852d733bafd515b
Unable%20to%20send%20feedback/singular: 656c93265d7e2bef1245b17d85f85ae5 Unable%20to%20send%20feedback/singular: 656c93265d7e2bef1245b17d85f85ae5
Unable%20to%20update%20board/singular: 62899897d7bffcb1df3af77d460f0881
Unable%20to%20update%20board%20URL/singular: 080746884059142358b58d9a44ff7d93 Unable%20to%20update%20board%20URL/singular: 080746884059142358b58d9a44ff7d93
Unable%20to%20update%20board%20visibility/singular: a76a21d561b8943e9276e027a1e3f70d Unable%20to%20update%20board%20visibility/singular: a76a21d561b8943e9276e027a1e3f70d
Unable%20to%20update%20card/singular: eca6002e57af8ec97324eae64e3b5731 Unable%20to%20update%20card/singular: eca6002e57af8ec97324eae64e3b5731

View File

@@ -53,6 +53,7 @@ const config = {
{ {
protocol: 'https', protocol: 'https',
hostname: 'cdn.discordapp.com', hostname: 'cdn.discordapp.com',
pathname: '/avatars/**',
}, },
]; ];
@@ -94,6 +95,12 @@ const config = {
swcPlugins: [["@lingui/swc-plugin", {}]], swcPlugins: [["@lingui/swc-plugin", {}]],
}, },
api: {
bodyParser: {
sizeLimit: env("NEXT_API_BODY_SIZE_LIMIT") || '1mb',
},
},
async rewrites() { async rewrites() {
return [ return [
{ {

View File

@@ -25,7 +25,7 @@ const Avatar = ({
icon?: React.ReactNode; icon?: React.ReactNode;
isLoading?: boolean; isLoading?: boolean;
}) => { }) => {
const initials = name?.trim() const initials = name
? getInitialsFromName(name) ? getInitialsFromName(name)
: inferInitialsFromEmail(email); : inferInitialsFromEmail(email);

View File

@@ -12,7 +12,6 @@ import { authClient } from "@kan/auth/client";
import { useClickOutside } from "~/hooks/useClickOutside"; import { useClickOutside } from "~/hooks/useClickOutside";
import { useModal } from "~/providers/modal"; import { useModal } from "~/providers/modal";
import { useWorkspace, WorkspaceProvider } from "~/providers/workspace"; import { useWorkspace, WorkspaceProvider } from "~/providers/workspace";
import { api } from "~/utils/api";
import SideNavigation from "./SideNavigation"; import SideNavigation from "./SideNavigation";
interface DashboardProps { interface DashboardProps {
@@ -45,12 +44,6 @@ export default function Dashboard({
const { availableWorkspaces, hasLoaded } = useWorkspace(); const { availableWorkspaces, hasLoaded } = useWorkspace();
const { data: session, isPending: sessionLoading } = authClient.useSession(); const { data: session, isPending: sessionLoading } = authClient.useSession();
const { data: user, isLoading: userLoading } = api.user.getUser.useQuery(
undefined,
{
enabled: !!session?.user,
},
);
const [isSideNavOpen, setIsSideNavOpen] = useState(false); const [isSideNavOpen, setIsSideNavOpen] = useState(false);
const [isRightPanelOpen, setIsRightPanelOpen] = useState(false); const [isRightPanelOpen, setIsRightPanelOpen] = useState(false);
@@ -162,12 +155,8 @@ export default function Dashboard({
className={`fixed top-12 z-40 h-[calc(100dvh-3rem)] w-[calc(100vw-1.5rem)] transform transition-transform duration-300 ease-in-out md:relative md:top-0 md:h-full md:w-auto md:translate-x-0 ${isSideNavOpen ? "translate-x-0" : "-translate-x-full md:translate-x-0"} `} className={`fixed top-12 z-40 h-[calc(100dvh-3rem)] w-[calc(100vw-1.5rem)] transform transition-transform duration-300 ease-in-out md:relative md:top-0 md:h-full md:w-auto md:translate-x-0 ${isSideNavOpen ? "translate-x-0" : "-translate-x-full md:translate-x-0"} `}
> >
<SideNavigation <SideNavigation
user={{ user={{ displayName: session?.user.name, email: session?.user.email, image: session?.user.image }}
displayName: user?.name ?? session?.user.name, isLoading={sessionLoading}
email: user?.email ?? session?.user.email ?? "",
image: user?.image ?? undefined,
}}
isLoading={sessionLoading || userLoading}
onCloseSideNav={closeSideNav} onCloseSideNav={closeSideNav}
/> />
</div> </div>

View File

@@ -55,10 +55,9 @@ export default function SideNavigation({
const [isInitialised, setIsInitialised] = useState(false); const [isInitialised, setIsInitialised] = useState(false);
const { openModal } = useModal(); const { openModal } = useModal();
const { data: workspaceData } = api.workspace.byId.useQuery( const { data: workspaceData } = api.workspace.byId.useQuery({
{ workspacePublicId: workspace.publicId }, workspacePublicId: workspace.publicId,
{ enabled: !!workspace.publicId && workspace.publicId.length >= 12 }, });
);
const subscriptions = workspaceData?.subscriptions as const subscriptions = workspaceData?.subscriptions as
| Subscription[] | Subscription[]

View File

@@ -7,7 +7,7 @@ import tippy from "tippy.js";
interface TooltipProps { interface TooltipProps {
children: ReactNode; children: ReactNode;
content?: ReactNode; content: ReactNode;
placement?: Placement; placement?: Placement;
delay?: number | [number, number]; delay?: number | [number, number];
} }
@@ -24,8 +24,6 @@ export function Tooltip({
useEffect(() => { useEffect(() => {
if (!triggerRef.current) return; if (!triggerRef.current) return;
if (!content) return;
const container = document.createElement("div"); const container = document.createElement("div");
const root = createRoot(container); const root = createRoot(container);
rootRef.current = root; rootRef.current = root;

View File

@@ -35,16 +35,6 @@ msgstr "{0}"
msgid "{0} | {1}" msgid "{0} | {1}"
msgstr "{0} | {1}" msgstr "{0} | {1}"
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:54
msgid "{0} has been added to your favorites."
msgstr "{0} wurde zu Ihren Favoriten hinzugefügt."
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:55
msgid "{0} has been removed from your favorites."
msgstr "{0} wurde aus Ihren Favoriten entfernt."
#. placeholder {0}: labelPublicIds.length #. placeholder {0}: labelPublicIds.length
#: src/views/board/components/NewCardForm.tsx:453 #: src/views/board/components/NewCardForm.tsx:453
msgid "{0} labels" msgid "{0} labels"
@@ -141,50 +131,42 @@ msgstr "Label hinzufügen"
msgid "Add member" msgid "Add member"
msgstr "Mitglied hinzufügen" msgstr "Mitglied hinzufügen"
#: src/views/board/components/BoardDropdown.tsx:93
msgid "Add to favorites"
msgstr "Zu Favoriten hinzufügen"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:89 #: src/views/card/components/ActivityList.tsx:78
msgid "added {0} labels: <0>{labelList}</0>" msgid "added {0} labels: <0>{labelList}</0>"
msgstr "{0} Labels hinzugefügt: <0>{labelList}</0>" msgstr "{0} Labels hinzugefügt: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:119 #: src/views/card/components/ActivityList.tsx:108
msgid "added a checklist" msgid "added a checklist"
msgstr "hat eine Checkliste hinzugefügt" msgstr "hat eine Checkliste hinzugefügt"
#: src/views/card/components/ActivityList.tsx:122 #: src/views/card/components/ActivityList.tsx:111
msgid "added a checklist item" msgid "added a checklist item"
msgstr "hat ein Checklistenelement hinzugefügt" msgstr "hat ein Checklistenelement hinzugefügt"
#: src/views/card/components/ActivityList.tsx:115 #: src/views/card/components/ActivityList.tsx:104
msgid "added a label to the card" msgid "added a label to the card"
msgstr "hat ein Label zur Karte hinzugefügt" msgstr "hat ein Label zur Karte hinzugefügt"
#: src/views/card/components/ActivityList.tsx:117 #: src/views/card/components/ActivityList.tsx:106
msgid "added a member to the card" msgid "added a member to the card"
msgstr "hat ein Mitglied zur Karte hinzugefügt" msgstr "hat ein Mitglied zur Karte hinzugefügt"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:193 #: src/views/card/components/ActivityList.tsx:182
msgid "added checklist <0>{0}</0>" msgid "added checklist <0>{0}</0>"
msgstr "hat Checkliste <0>{0}</0> hinzugefügt" msgstr "hat Checkliste <0>{0}</0> hinzugefügt"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:217 #: src/views/card/components/ActivityList.tsx:206
msgid "added checklist item <0>{0}</0>" msgid "added checklist item <0>{0}</0>"
msgstr "hat Checklistenelement <0>{0}</0> hinzugefügt" msgstr "hat Checklistenelement <0>{0}</0> hinzugefügt"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:177 #: src/views/card/components/ActivityList.tsx:166
msgid "added label <0>{0}</0>" msgid "added label <0>{0}</0>"
msgstr "hat Label <0>{0}</0> hinzugefügt" msgstr "hat Label <0>{0}</0> hinzugefügt"
#: src/views/board/components/BoardDropdown.tsx:51
msgid "Added to favorites"
msgstr "Zu Favoriten hinzugefügt"
#: src/views/members/components/InviteMemberForm.tsx:327 #: src/views/members/components/InviteMemberForm.tsx:327
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat." msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
msgstr "Das Hinzufügen eines neuen Mitglieds kostet zusätzlich {price} ({billingType}) pro Platz." msgstr "Das Hinzufügen eines neuen Mitglieds kostet zusätzlich {price} ({billingType}) pro Platz."
@@ -300,8 +282,8 @@ msgstr "Sind Sie sicher, dass Sie dieses Label löschen möchten?"
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Bist du sicher, dass du dein Konto löschen möchtest?" msgstr "Bist du sicher, dass du dein Konto löschen möchtest?"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:157 #: src/views/card/components/ActivityList.tsx:146
msgid "assigned <0>{0}</0> to the card" msgid "assigned <0>{0}</0> to the card"
msgstr "hat <0>{0}</0> der Karte zugewiesen" msgstr "hat <0>{0}</0> der Karte zugewiesen"
@@ -580,8 +562,8 @@ msgstr "Passwort ändern"
msgid "Change your language preferences." msgid "Change your language preferences."
msgstr "Ändern Sie Ihre Spracheinstellungen." msgstr "Ändern Sie Ihre Spracheinstellungen."
#: src/views/card/components/ActivityList.tsx:267 #: src/views/card/components/ActivityList.tsx:256
#: src/views/card/components/ActivityList.tsx:281 #: src/views/card/components/ActivityList.tsx:270
msgid "changed the due date to <0>{formattedDate}</0>" msgid "changed the due date to <0>{formattedDate}</0>"
msgstr "hat den Fälligkeitstermin auf <0>{formattedDate}</0> geändert" msgstr "hat den Fälligkeitstermin auf <0>{formattedDate}</0> geändert"
@@ -669,12 +651,12 @@ msgstr "Abgeschlossen"
msgid "Complete control and ownership:" msgid "Complete control and ownership:"
msgstr "Vollständige Kontrolle und Eigentum:" msgstr "Vollständige Kontrolle und Eigentum:"
#: src/views/card/components/ActivityList.tsx:124 #: src/views/card/components/ActivityList.tsx:113
msgid "completed a checklist item" msgid "completed a checklist item"
msgstr "hat ein Checklistenelement abgeschlossen" msgstr "hat ein Checklistenelement abgeschlossen"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:234 #: src/views/card/components/ActivityList.tsx:223
msgid "completed checklist item <0>{0}</0>" msgid "completed checklist item <0>{0}</0>"
msgstr "hat Checklistenelement <0>{0}</0> abgeschlossen" msgstr "hat Checklistenelement <0>{0}</0> abgeschlossen"
@@ -773,7 +755,7 @@ msgid "Create list"
msgstr "Liste erstellen" msgstr "Liste erstellen"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:79 #: src/views/boards/components/BoardsList.tsx:58
#: src/views/boards/index.tsx:28 #: src/views/boards/index.tsx:28
msgid "Create new {0}" msgid "Create new {0}"
msgstr "Neue(n) {0} erstellen" msgstr "Neue(n) {0} erstellen"
@@ -788,7 +770,7 @@ msgid "Create new label"
msgstr "Neues Label erstellen" msgstr "Neues Label erstellen"
#: src/views/board/index.tsx:74 #: src/views/board/index.tsx:74
#: src/views/board/index.tsx:539 #: src/views/board/index.tsx:537
msgid "Create new list" msgid "Create new list"
msgstr "Neue Liste erstellen" msgstr "Neue Liste erstellen"
@@ -801,7 +783,7 @@ msgstr "Vorlage erstellen"
msgid "Create workspace" msgid "Create workspace"
msgstr "Arbeitsbereich erstellen" msgstr "Arbeitsbereich erstellen"
#: src/views/card/components/ActivityList.tsx:111 #: src/views/card/components/ActivityList.tsx:100
msgid "created the card" msgid "created the card"
msgstr "hat die Karte erstellt" msgstr "hat die Karte erstellt"
@@ -875,7 +857,7 @@ msgstr "Löschen"
msgid "Delete account" msgid "Delete account"
msgstr "Konto löschen" msgstr "Konto löschen"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete board" msgid "Delete board"
msgstr "Board löschen" msgstr "Board löschen"
@@ -891,7 +873,7 @@ msgstr "Kommentar löschen"
msgid "Delete list" msgid "Delete list"
msgstr "Liste löschen" msgstr "Liste löschen"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete template" msgid "Delete template"
msgstr "Vorlage löschen" msgstr "Vorlage löschen"
@@ -901,21 +883,21 @@ msgstr "Vorlage löschen"
msgid "Delete workspace" msgid "Delete workspace"
msgstr "Workspace löschen" msgstr "Workspace löschen"
#: src/views/card/components/ActivityList.tsx:121 #: src/views/card/components/ActivityList.tsx:110
msgid "deleted a checklist" msgid "deleted a checklist"
msgstr "hat eine Checkliste gelöscht" msgstr "hat eine Checkliste gelöscht"
#: src/views/card/components/ActivityList.tsx:126 #: src/views/card/components/ActivityList.tsx:115
msgid "deleted a checklist item" msgid "deleted a checklist item"
msgstr "hat ein Checklistenelement gelöscht" msgstr "hat ein Checklistenelement gelöscht"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:209 #: src/views/card/components/ActivityList.tsx:198
msgid "deleted checklist <0>{0}</0>" msgid "deleted checklist <0>{0}</0>"
msgstr "hat Checkliste <0>{0}</0> gelöscht" msgstr "hat Checkliste <0>{0}</0> gelöscht"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:252 #: src/views/card/components/ActivityList.tsx:241
msgid "deleted checklist item <0>{0}</0>" msgid "deleted checklist item <0>{0}</0>"
msgstr "hat Checklistenelement <0>{0}</0> gelöscht" msgstr "hat Checklistenelement <0>{0}</0> gelöscht"
@@ -1011,7 +993,7 @@ msgstr "Morgen fällig"
msgid "Edit" msgid "Edit"
msgstr "Bearbeiten" msgstr "Bearbeiten"
#: src/views/board/components/BoardDropdown.tsx:84 #: src/views/board/components/BoardDropdown.tsx:44
#: src/views/board/components/UpdateBoardSlugForm.tsx:116 #: src/views/board/components/UpdateBoardSlugForm.tsx:116
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Board-URL bearbeiten" msgstr "Board-URL bearbeiten"
@@ -1299,11 +1281,11 @@ msgid "Get Started"
msgstr "Loslegen" msgstr "Loslegen"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:65 #: src/views/boards/components/BoardsList.tsx:44
msgid "Get started by creating a new {0}" msgid "Get started by creating a new {0}"
msgstr "Beginnen Sie, indem Sie eine(n) neue(n) {0} erstellen" msgstr "Beginnen Sie, indem Sie eine(n) neue(n) {0} erstellen"
#: src/views/board/index.tsx:524 #: src/views/board/index.tsx:522
msgid "Get started by creating a new list" msgid "Get started by creating a new list"
msgstr "Beginne mit dem Erstellen einer neuen Liste" msgstr "Beginne mit dem Erstellen einer neuen Liste"
@@ -1613,7 +1595,7 @@ msgstr "Listenname"
msgid "Lists" msgid "Lists"
msgstr "Listen" msgstr "Listen"
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Load more activities" msgid "Load more activities"
msgstr "Weitere Aktivitäten laden" msgstr "Weitere Aktivitäten laden"
@@ -1621,7 +1603,7 @@ msgstr "Weitere Aktivitäten laden"
msgid "Loading permissions..." msgid "Loading permissions..."
msgstr "Berechtigungen werden geladen..." msgstr "Berechtigungen werden geladen..."
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Loading..." msgid "Loading..."
msgstr "Wird geladen..." msgstr "Wird geladen..."
@@ -1649,16 +1631,16 @@ msgstr "Niedrige Priorität"
msgid "magic link" msgid "magic link"
msgstr "Magic Link" msgstr "Magic Link"
#: src/views/board/components/BoardDropdown.tsx:73 #: src/views/board/components/BoardDropdown.tsx:34
msgid "Make template" msgid "Make template"
msgstr "Als Vorlage speichern" msgstr "Als Vorlage speichern"
#: src/views/card/components/ActivityList.tsx:125 #: src/views/card/components/ActivityList.tsx:114
msgid "marked a checklist item as incomplete" msgid "marked a checklist item as incomplete"
msgstr "hat ein Checklistenelement als unvollständig markiert" msgstr "hat ein Checklistenelement als unvollständig markiert"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:243 #: src/views/card/components/ActivityList.tsx:232
msgid "marked checklist item <0>{0}</0> as incomplete" msgid "marked checklist item <0>{0}</0> as incomplete"
msgstr "hat Checklistenelement <0>{0}</0> als unvollständig markiert" msgstr "hat Checklistenelement <0>{0}</0> als unvollständig markiert"
@@ -1666,8 +1648,6 @@ msgstr "hat Checklistenelement <0>{0}</0> als unvollständig markiert"
msgid "Medium Priority" msgid "Medium Priority"
msgstr "Mittlere Priorität" msgstr "Mittlere Priorität"
#: src/views/card/components/ActivityList.tsx:44
#: src/views/card/components/ActivityList.tsx:75
#: src/views/members/index.tsx:201 #: src/views/members/index.tsx:201
msgid "Member" msgid "Member"
msgstr "Mitglied" msgstr "Mitglied"
@@ -1696,11 +1676,11 @@ msgstr "monatliche Abrechnung"
#. placeholder {0}: truncate(fromList) #. placeholder {0}: truncate(fromList)
#. placeholder {1}: truncate(toList) #. placeholder {1}: truncate(toList)
#: src/views/card/components/ActivityList.tsx:145 #: src/views/card/components/ActivityList.tsx:134
msgid "moved the card from <0>{0}</0> to<1>{1}</1>" msgid "moved the card from <0>{0}</0> to<1>{1}</1>"
msgstr "hat die Karte von <0>{0}</0> nach <1>{1}</1> verschoben" msgstr "hat die Karte von <0>{0}</0> nach <1>{1}</1> verschoben"
#: src/views/card/components/ActivityList.tsx:114 #: src/views/card/components/ActivityList.tsx:103
msgid "moved the card to another list" msgid "moved the card to another list"
msgstr "hat die Karte in eine andere Liste verschoben" msgstr "hat die Karte in eine andere Liste verschoben"
@@ -1782,7 +1762,7 @@ msgid "Next Steps"
msgstr "Nächste Schritte" msgstr "Nächste Schritte"
#. placeholder {0}: isTemplate ? "templates" : "boards" #. placeholder {0}: isTemplate ? "templates" : "boards"
#: src/views/boards/components/BoardsList.tsx:62 #: src/views/boards/components/BoardsList.tsx:41
msgid "No {0}" msgid "No {0}"
msgstr "Keine {0}" msgstr "Keine {0}"
@@ -1810,11 +1790,11 @@ msgstr "Für diesen Anhang ist keine Download-URL verfügbar."
msgid "No keyboard shortcuts registered." msgid "No keyboard shortcuts registered."
msgstr "Keine Tastaturkürzel registriert." msgstr "Keine Tastaturkürzel registriert."
#: src/views/board/index.tsx:520 #: src/views/board/index.tsx:518
msgid "No lists" msgid "No lists"
msgstr "Keine Listen" msgstr "Keine Listen"
#: src/views/board/index.tsx:525 #: src/views/board/index.tsx:523
msgid "No lists have been created yet" msgid "No lists have been created yet"
msgstr "Es wurden noch keine Listen erstellt" msgstr "Es wurden noch keine Listen erstellt"
@@ -1989,7 +1969,6 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
#: src/components/DeleteLabelConfirmation.tsx:26 #: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:158 #: src/components/NewWorkspaceForm.tsx:158
#: src/views/board/components/BoardDropdown.tsx:63
#: src/views/board/components/NewCardForm.tsx:184 #: src/views/board/components/NewCardForm.tsx:184
#: src/views/board/components/NewListForm.tsx:79 #: src/views/board/components/NewListForm.tsx:79
#: src/views/board/components/NewTemplateForm.tsx:61 #: src/views/board/components/NewTemplateForm.tsx:61
@@ -2117,52 +2096,44 @@ msgstr "Remote"
msgid "Remove" msgid "Remove"
msgstr "Entfernen" msgstr "Entfernen"
#: src/views/board/components/BoardDropdown.tsx:92
msgid "Remove from favorites"
msgstr "Aus Favoriten entfernen"
#: src/views/members/index.tsx:232 #: src/views/members/index.tsx:232
msgid "Remove member" msgid "Remove member"
msgstr "Mitglied entfernen" msgstr "Mitglied entfernen"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:103 #: src/views/card/components/ActivityList.tsx:92
msgid "removed {0} labels: <0>{labelList}</0>" msgid "removed {0} labels: <0>{labelList}</0>"
msgstr "{0} Labels entfernt: <0>{labelList}</0>" msgstr "{0} Labels entfernt: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:116 #: src/views/card/components/ActivityList.tsx:105
msgid "removed a label from the card" msgid "removed a label from the card"
msgstr "hat ein Label von der Karte entfernt" msgstr "hat ein Label von der Karte entfernt"
#: src/views/card/components/ActivityList.tsx:118 #: src/views/card/components/ActivityList.tsx:107
msgid "removed a member from the card" msgid "removed a member from the card"
msgstr "hat ein Mitglied von der Karte entfernt" msgstr "hat ein Mitglied von der Karte entfernt"
#: src/views/board/components/BoardDropdown.tsx:52
msgid "Removed from favorites"
msgstr "Aus Favoriten entfernt"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:185 #: src/views/card/components/ActivityList.tsx:174
msgid "removed label <0>{0}</0>" msgid "removed label <0>{0}</0>"
msgstr "hat Label <0>{0}</0> entfernt" msgstr "hat Label <0>{0}</0> entfernt"
#: src/views/card/components/ActivityList.tsx:129 #: src/views/card/components/ActivityList.tsx:118
#: src/views/card/components/ActivityList.tsx:288 #: src/views/card/components/ActivityList.tsx:277
msgid "removed the due date" msgid "removed the due date"
msgstr "hat den Fälligkeitstermin entfernt" msgstr "hat den Fälligkeitstermin entfernt"
#: src/views/card/components/ActivityList.tsx:120 #: src/views/card/components/ActivityList.tsx:109
msgid "renamed a checklist" msgid "renamed a checklist"
msgstr "hat eine Checkliste umbenannt" msgstr "hat eine Checkliste umbenannt"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:201 #: src/views/card/components/ActivityList.tsx:190
msgid "renamed checklist <0>{0}</0>" msgid "renamed checklist <0>{0}</0>"
msgstr "hat Checkliste <0>{0}</0> umbenannt" msgstr "hat Checkliste <0>{0}</0> umbenannt"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:225 #: src/views/card/components/ActivityList.tsx:214
msgid "renamed checklist item to <0>{0}</0>" msgid "renamed checklist item to <0>{0}</0>"
msgstr "hat Checklistenelement in <0>{0}</0> umbenannt" msgstr "hat Checklistenelement in <0>{0}</0> umbenannt"
@@ -2248,7 +2219,7 @@ msgstr "Selbst hosten"
msgid "Self host with Github" msgid "Self host with Github"
msgstr "Selbst hosten mit Github" msgstr "Selbst hosten mit Github"
#: src/views/card/components/ActivityList.tsx:154 #: src/views/card/components/ActivityList.tsx:143
msgid "self-assigned the card" msgid "self-assigned the card"
msgstr "hat sich selbst die Karte zugewiesen" msgstr "hat sich selbst die Karte zugewiesen"
@@ -2268,7 +2239,7 @@ msgstr "Senior"
msgid "Set due date" msgid "Set due date"
msgstr "Fälligkeitsdatum festlegen" msgstr "Fälligkeitsdatum festlegen"
#: src/views/card/components/ActivityList.tsx:127 #: src/views/card/components/ActivityList.tsx:116
msgid "set the due date" msgid "set the due date"
msgstr "hat den Fälligkeitstermin festgelegt" msgstr "hat den Fälligkeitstermin festgelegt"
@@ -2632,10 +2603,6 @@ msgstr "Berechtigungen können nicht zurückgesetzt werden"
msgid "Unable to send feedback" msgid "Unable to send feedback"
msgstr "Feedback konnte nicht gesendet werden" msgstr "Feedback konnte nicht gesendet werden"
#: src/views/board/components/BoardDropdown.tsx:62
msgid "Unable to update board"
msgstr "Tafel konnte nicht aktualisiert werden"
#: src/views/board/components/UpdateBoardSlugForm.tsx:72 #: src/views/board/components/UpdateBoardSlugForm.tsx:72
msgid "Unable to update board URL" msgid "Unable to update board URL"
msgstr "Board-URL kann nicht aktualisiert werden" msgstr "Board-URL kann nicht aktualisiert werden"
@@ -2687,12 +2654,12 @@ msgstr "Berechtigungen können nicht aktualisiert werden"
msgid "Unable to update role" msgid "Unable to update role"
msgstr "Rolle kann nicht aktualisiert werden" msgstr "Rolle kann nicht aktualisiert werden"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:168 #: src/views/card/components/ActivityList.tsx:157
msgid "unassigned <0>{0}</0> from the card" msgid "unassigned <0>{0}</0> from the card"
msgstr "hat <0>{0}</0> von der Karte entfernt" msgstr "hat <0>{0}</0> von der Karte entfernt"
#: src/views/card/components/ActivityList.tsx:165 #: src/views/card/components/ActivityList.tsx:154
msgid "unassigned themselves from the card" msgid "unassigned themselves from the card"
msgstr "hat sich selbst von der Karte entfernt" msgstr "hat sich selbst von der Karte entfernt"
@@ -2751,24 +2718,24 @@ msgstr "Aktualisieren"
msgid "Update label" msgid "Update label"
msgstr "Label aktualisieren" msgstr "Label aktualisieren"
#: src/views/card/components/ActivityList.tsx:123 #: src/views/card/components/ActivityList.tsx:112
msgid "updated a checklist item" msgid "updated a checklist item"
msgstr "hat ein Checklistenelement aktualisiert" msgstr "hat ein Checklistenelement aktualisiert"
#: src/views/card/components/ActivityList.tsx:113 #: src/views/card/components/ActivityList.tsx:102
msgid "updated the description" msgid "updated the description"
msgstr "hat die Beschreibung aktualisiert" msgstr "hat die Beschreibung aktualisiert"
#: src/views/card/components/ActivityList.tsx:128 #: src/views/card/components/ActivityList.tsx:117
msgid "updated the due date" msgid "updated the due date"
msgstr "hat den Fälligkeitstermin aktualisiert" msgstr "hat den Fälligkeitstermin aktualisiert"
#: src/views/card/components/ActivityList.tsx:112 #: src/views/card/components/ActivityList.tsx:101
msgid "updated the title" msgid "updated the title"
msgstr "hat den Titel aktualisiert" msgstr "hat den Titel aktualisiert"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:137 #: src/views/card/components/ActivityList.tsx:126
msgid "updated the title to <0>{0}</0>" msgid "updated the title to <0>{0}</0>"
msgstr "hat den Titel in <0>{0}</0> geändert" msgstr "hat den Titel in <0>{0}</0> geändert"
@@ -2893,7 +2860,7 @@ msgstr "Warum ein open source Trello entwickeln?"
#: src/views/boards/index.tsx:35 #: src/views/boards/index.tsx:35
#: src/views/members/index.tsx:257 #: src/views/members/index.tsx:257
#: src/views/public/board/index.tsx:120 #: src/views/public/board/index.tsx:120
#: src/views/public/boards/index.tsx:65 #: src/views/public/boards/index.tsx:66
msgid "Workspace" msgid "Workspace"
msgstr "Arbeitsbereich" msgstr "Arbeitsbereich"
@@ -2998,8 +2965,8 @@ msgstr "Sie können selbst hosten, indem sie den anweisungen in unserem <0>repo<
#: src/views/board/components/UpdateBoardSlugButton.tsx:31 #: src/views/board/components/UpdateBoardSlugButton.tsx:31
#: src/views/board/components/VisibilityButton.tsx:72 #: src/views/board/components/VisibilityButton.tsx:72
#: src/views/board/index.tsx:472 #: src/views/board/index.tsx:472
#: src/views/board/index.tsx:530 #: src/views/board/index.tsx:528
#: src/views/boards/components/BoardsList.tsx:70 #: src/views/boards/components/BoardsList.tsx:49
#: src/views/boards/index.tsx:46 #: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:67 #: src/views/boards/index.tsx:67
msgid "You don't have permission" msgid "You don't have permission"

File diff suppressed because one or more lines are too long

View File

@@ -35,16 +35,6 @@ msgstr "{0}"
msgid "{0} | {1}" msgid "{0} | {1}"
msgstr "{0} | {1}" msgstr "{0} | {1}"
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:54
msgid "{0} has been added to your favorites."
msgstr "{0} has been added to your favorites."
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:55
msgid "{0} has been removed from your favorites."
msgstr "{0} has been removed from your favorites."
#. placeholder {0}: labelPublicIds.length #. placeholder {0}: labelPublicIds.length
#: src/views/board/components/NewCardForm.tsx:453 #: src/views/board/components/NewCardForm.tsx:453
msgid "{0} labels" msgid "{0} labels"
@@ -157,43 +147,39 @@ msgstr "Add label"
msgid "Add member" msgid "Add member"
msgstr "Add member" msgstr "Add member"
#: src/views/board/components/BoardDropdown.tsx:93
msgid "Add to favorites"
msgstr "Add to favorites"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:89 #: src/views/card/components/ActivityList.tsx:78
msgid "added {0} labels: <0>{labelList}</0>" msgid "added {0} labels: <0>{labelList}</0>"
msgstr "added {0} labels: <0>{labelList}</0>" msgstr "added {0} labels: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:119 #: src/views/card/components/ActivityList.tsx:108
msgid "added a checklist" msgid "added a checklist"
msgstr "added a checklist" msgstr "added a checklist"
#: src/views/card/components/ActivityList.tsx:122 #: src/views/card/components/ActivityList.tsx:111
msgid "added a checklist item" msgid "added a checklist item"
msgstr "added a checklist item" msgstr "added a checklist item"
#: src/views/card/components/ActivityList.tsx:115 #: src/views/card/components/ActivityList.tsx:104
msgid "added a label to the card" msgid "added a label to the card"
msgstr "added a label to the card" msgstr "added a label to the card"
#: src/views/card/components/ActivityList.tsx:117 #: src/views/card/components/ActivityList.tsx:106
msgid "added a member to the card" msgid "added a member to the card"
msgstr "added a member to the card" msgstr "added a member to the card"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:193 #: src/views/card/components/ActivityList.tsx:182
msgid "added checklist <0>{0}</0>" msgid "added checklist <0>{0}</0>"
msgstr "added checklist <0>{0}</0>" msgstr "added checklist <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:217 #: src/views/card/components/ActivityList.tsx:206
msgid "added checklist item <0>{0}</0>" msgid "added checklist item <0>{0}</0>"
msgstr "added checklist item <0>{0}</0>" msgstr "added checklist item <0>{0}</0>"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:177 #: src/views/card/components/ActivityList.tsx:166
msgid "added label <0>{0}</0>" msgid "added label <0>{0}</0>"
msgstr "added label <0>{0}</0>" msgstr "added label <0>{0}</0>"
@@ -201,10 +187,6 @@ msgstr "added label <0>{0}</0>"
#~ msgid "added label <0>{label}</0>" #~ msgid "added label <0>{label}</0>"
#~ msgstr "added label <0>{label}</0>" #~ msgstr "added label <0>{label}</0>"
#: src/views/board/components/BoardDropdown.tsx:51
msgid "Added to favorites"
msgstr "Added to favorites"
#: src/views/members/components/InviteMemberForm.tsx:327 #: src/views/members/components/InviteMemberForm.tsx:327
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat." msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
msgstr "Adding a new member will cost an additional {price} ({billingType}) per seat." msgstr "Adding a new member will cost an additional {price} ({billingType}) per seat."
@@ -332,8 +314,8 @@ msgstr "Are you sure you want to delete your account?"
#~ msgid "around the world" #~ msgid "around the world"
#~ msgstr "around the world" #~ msgstr "around the world"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:157 #: src/views/card/components/ActivityList.tsx:146
msgid "assigned <0>{0}</0> to the card" msgid "assigned <0>{0}</0> to the card"
msgstr "assigned <0>{0}</0> to the card" msgstr "assigned <0>{0}</0> to the card"
@@ -641,8 +623,8 @@ msgstr "Change Password"
msgid "Change your language preferences." msgid "Change your language preferences."
msgstr "Change your language preferences." msgstr "Change your language preferences."
#: src/views/card/components/ActivityList.tsx:267 #: src/views/card/components/ActivityList.tsx:256
#: src/views/card/components/ActivityList.tsx:281 #: src/views/card/components/ActivityList.tsx:270
msgid "changed the due date to <0>{formattedDate}</0>" msgid "changed the due date to <0>{formattedDate}</0>"
msgstr "changed the due date to <0>{formattedDate}</0>" msgstr "changed the due date to <0>{formattedDate}</0>"
@@ -730,12 +712,12 @@ msgstr "Complete"
msgid "Complete control and ownership:" msgid "Complete control and ownership:"
msgstr "Complete control and ownership:" msgstr "Complete control and ownership:"
#: src/views/card/components/ActivityList.tsx:124 #: src/views/card/components/ActivityList.tsx:113
msgid "completed a checklist item" msgid "completed a checklist item"
msgstr "completed a checklist item" msgstr "completed a checklist item"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:234 #: src/views/card/components/ActivityList.tsx:223
msgid "completed checklist item <0>{0}</0>" msgid "completed checklist item <0>{0}</0>"
msgstr "completed checklist item <0>{0}</0>" msgstr "completed checklist item <0>{0}</0>"
@@ -846,7 +828,7 @@ msgid "Create list"
msgstr "Create list" msgstr "Create list"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:79 #: src/views/boards/components/BoardsList.tsx:58
#: src/views/boards/index.tsx:28 #: src/views/boards/index.tsx:28
msgid "Create new {0}" msgid "Create new {0}"
msgstr "Create new {0}" msgstr "Create new {0}"
@@ -865,7 +847,7 @@ msgid "Create new label"
msgstr "Create new label" msgstr "Create new label"
#: src/views/board/index.tsx:74 #: src/views/board/index.tsx:74
#: src/views/board/index.tsx:539 #: src/views/board/index.tsx:537
msgid "Create new list" msgid "Create new list"
msgstr "Create new list" msgstr "Create new list"
@@ -882,7 +864,7 @@ msgstr "Create template"
msgid "Create workspace" msgid "Create workspace"
msgstr "Create workspace" msgstr "Create workspace"
#: src/views/card/components/ActivityList.tsx:111 #: src/views/card/components/ActivityList.tsx:100
msgid "created the card" msgid "created the card"
msgstr "created the card" msgstr "created the card"
@@ -964,7 +946,7 @@ msgstr "Delete"
msgid "Delete account" msgid "Delete account"
msgstr "Delete account" msgstr "Delete account"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete board" msgid "Delete board"
msgstr "Delete board" msgstr "Delete board"
@@ -980,7 +962,7 @@ msgstr "Delete comment"
msgid "Delete list" msgid "Delete list"
msgstr "Delete list" msgstr "Delete list"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete template" msgid "Delete template"
msgstr "Delete template" msgstr "Delete template"
@@ -990,21 +972,21 @@ msgstr "Delete template"
msgid "Delete workspace" msgid "Delete workspace"
msgstr "Delete workspace" msgstr "Delete workspace"
#: src/views/card/components/ActivityList.tsx:121 #: src/views/card/components/ActivityList.tsx:110
msgid "deleted a checklist" msgid "deleted a checklist"
msgstr "deleted a checklist" msgstr "deleted a checklist"
#: src/views/card/components/ActivityList.tsx:126 #: src/views/card/components/ActivityList.tsx:115
msgid "deleted a checklist item" msgid "deleted a checklist item"
msgstr "deleted a checklist item" msgstr "deleted a checklist item"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:209 #: src/views/card/components/ActivityList.tsx:198
msgid "deleted checklist <0>{0}</0>" msgid "deleted checklist <0>{0}</0>"
msgstr "deleted checklist <0>{0}</0>" msgstr "deleted checklist <0>{0}</0>"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:252 #: src/views/card/components/ActivityList.tsx:241
msgid "deleted checklist item <0>{0}</0>" msgid "deleted checklist item <0>{0}</0>"
msgstr "deleted checklist item <0>{0}</0>" msgstr "deleted checklist item <0>{0}</0>"
@@ -1100,7 +1082,7 @@ msgstr "Due tomorrow"
msgid "Edit" msgid "Edit"
msgstr "Edit" msgstr "Edit"
#: src/views/board/components/BoardDropdown.tsx:84 #: src/views/board/components/BoardDropdown.tsx:44
#: src/views/board/components/UpdateBoardSlugForm.tsx:116 #: src/views/board/components/UpdateBoardSlugForm.tsx:116
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Edit board URL" msgstr "Edit board URL"
@@ -1396,7 +1378,7 @@ msgid "Get Started"
msgstr "Get Started" msgstr "Get Started"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:65 #: src/views/boards/components/BoardsList.tsx:44
msgid "Get started by creating a new {0}" msgid "Get started by creating a new {0}"
msgstr "Get started by creating a new {0}" msgstr "Get started by creating a new {0}"
@@ -1404,7 +1386,7 @@ msgstr "Get started by creating a new {0}"
#~ msgid "Get started by creating a new board" #~ msgid "Get started by creating a new board"
#~ msgstr "Get started by creating a new board" #~ msgstr "Get started by creating a new board"
#: src/views/board/index.tsx:524 #: src/views/board/index.tsx:522
msgid "Get started by creating a new list" msgid "Get started by creating a new list"
msgstr "Get started by creating a new list" msgstr "Get started by creating a new list"
@@ -1722,7 +1704,7 @@ msgstr "List name"
msgid "Lists" msgid "Lists"
msgstr "Lists" msgstr "Lists"
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Load more activities" msgid "Load more activities"
msgstr "Load more activities" msgstr "Load more activities"
@@ -1730,7 +1712,7 @@ msgstr "Load more activities"
msgid "Loading permissions..." msgid "Loading permissions..."
msgstr "Loading permissions..." msgstr "Loading permissions..."
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Loading..." msgid "Loading..."
msgstr "Loading..." msgstr "Loading..."
@@ -1758,16 +1740,16 @@ msgstr "Low Priority"
msgid "magic link" msgid "magic link"
msgstr "magic link" msgstr "magic link"
#: src/views/board/components/BoardDropdown.tsx:73 #: src/views/board/components/BoardDropdown.tsx:34
msgid "Make template" msgid "Make template"
msgstr "Make template" msgstr "Make template"
#: src/views/card/components/ActivityList.tsx:125 #: src/views/card/components/ActivityList.tsx:114
msgid "marked a checklist item as incomplete" msgid "marked a checklist item as incomplete"
msgstr "marked a checklist item as incomplete" msgstr "marked a checklist item as incomplete"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:243 #: src/views/card/components/ActivityList.tsx:232
msgid "marked checklist item <0>{0}</0> as incomplete" msgid "marked checklist item <0>{0}</0> as incomplete"
msgstr "marked checklist item <0>{0}</0> as incomplete" msgstr "marked checklist item <0>{0}</0> as incomplete"
@@ -1775,8 +1757,6 @@ msgstr "marked checklist item <0>{0}</0> as incomplete"
msgid "Medium Priority" msgid "Medium Priority"
msgstr "Medium Priority" msgstr "Medium Priority"
#: src/views/card/components/ActivityList.tsx:44
#: src/views/card/components/ActivityList.tsx:75
#: src/views/members/index.tsx:201 #: src/views/members/index.tsx:201
msgid "Member" msgid "Member"
msgstr "Member" msgstr "Member"
@@ -1805,7 +1785,7 @@ msgstr "monthly billing"
#. placeholder {0}: truncate(fromList) #. placeholder {0}: truncate(fromList)
#. placeholder {1}: truncate(toList) #. placeholder {1}: truncate(toList)
#: src/views/card/components/ActivityList.tsx:145 #: src/views/card/components/ActivityList.tsx:134
msgid "moved the card from <0>{0}</0> to<1>{1}</1>" msgid "moved the card from <0>{0}</0> to<1>{1}</1>"
msgstr "moved the card from <0>{0}</0> to<1>{1}</1>" msgstr "moved the card from <0>{0}</0> to<1>{1}</1>"
@@ -1813,7 +1793,7 @@ msgstr "moved the card from <0>{0}</0> to<1>{1}</1>"
#~ msgid "moved the card from <0>{fromList}</0> to<1>{toList}</1>" #~ msgid "moved the card from <0>{fromList}</0> to<1>{toList}</1>"
#~ msgstr "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:114 #: src/views/card/components/ActivityList.tsx:103
msgid "moved the card to another list" msgid "moved the card to another list"
msgstr "moved the card to another list" msgstr "moved the card to another list"
@@ -1907,7 +1887,7 @@ msgid "Next Steps"
msgstr "Next Steps" msgstr "Next Steps"
#. placeholder {0}: isTemplate ? "templates" : "boards" #. placeholder {0}: isTemplate ? "templates" : "boards"
#: src/views/boards/components/BoardsList.tsx:62 #: src/views/boards/components/BoardsList.tsx:41
msgid "No {0}" msgid "No {0}"
msgstr "No {0}" msgstr "No {0}"
@@ -1939,11 +1919,11 @@ msgstr "No download URL available for this attachment."
msgid "No keyboard shortcuts registered." msgid "No keyboard shortcuts registered."
msgstr "No keyboard shortcuts registered." msgstr "No keyboard shortcuts registered."
#: src/views/board/index.tsx:520 #: src/views/board/index.tsx:518
msgid "No lists" msgid "No lists"
msgstr "No lists" msgstr "No lists"
#: src/views/board/index.tsx:525 #: src/views/board/index.tsx:523
msgid "No lists have been created yet" msgid "No lists have been created yet"
msgstr "No lists have been created yet" msgstr "No lists have been created yet"
@@ -2118,7 +2098,6 @@ msgstr "Please select a file to upload."
#: src/components/DeleteLabelConfirmation.tsx:26 #: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:158 #: src/components/NewWorkspaceForm.tsx:158
#: src/views/board/components/BoardDropdown.tsx:63
#: src/views/board/components/NewCardForm.tsx:184 #: src/views/board/components/NewCardForm.tsx:184
#: src/views/board/components/NewListForm.tsx:79 #: src/views/board/components/NewListForm.tsx:79
#: src/views/board/components/NewTemplateForm.tsx:61 #: src/views/board/components/NewTemplateForm.tsx:61
@@ -2246,33 +2225,25 @@ msgstr "Remote"
msgid "Remove" msgid "Remove"
msgstr "Remove" msgstr "Remove"
#: src/views/board/components/BoardDropdown.tsx:92
msgid "Remove from favorites"
msgstr "Remove from favorites"
#: src/views/members/index.tsx:232 #: src/views/members/index.tsx:232
msgid "Remove member" msgid "Remove member"
msgstr "Remove member" msgstr "Remove member"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:103 #: src/views/card/components/ActivityList.tsx:92
msgid "removed {0} labels: <0>{labelList}</0>" msgid "removed {0} labels: <0>{labelList}</0>"
msgstr "removed {0} labels: <0>{labelList}</0>" msgstr "removed {0} labels: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:116 #: src/views/card/components/ActivityList.tsx:105
msgid "removed a label from the card" msgid "removed a label from the card"
msgstr "removed a label from the card" msgstr "removed a label from the card"
#: src/views/card/components/ActivityList.tsx:118 #: src/views/card/components/ActivityList.tsx:107
msgid "removed a member from the card" msgid "removed a member from the card"
msgstr "removed a member from the card" msgstr "removed a member from the card"
#: src/views/board/components/BoardDropdown.tsx:52
msgid "Removed from favorites"
msgstr "Removed from favorites"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:185 #: src/views/card/components/ActivityList.tsx:174
msgid "removed label <0>{0}</0>" msgid "removed label <0>{0}</0>"
msgstr "removed label <0>{0}</0>" msgstr "removed label <0>{0}</0>"
@@ -2280,22 +2251,22 @@ msgstr "removed label <0>{0}</0>"
#~ msgid "removed label <0>{label}</0>" #~ msgid "removed label <0>{label}</0>"
#~ msgstr "removed label <0>{label}</0>" #~ msgstr "removed label <0>{label}</0>"
#: src/views/card/components/ActivityList.tsx:129 #: src/views/card/components/ActivityList.tsx:118
#: src/views/card/components/ActivityList.tsx:288 #: src/views/card/components/ActivityList.tsx:277
msgid "removed the due date" msgid "removed the due date"
msgstr "removed the due date" msgstr "removed the due date"
#: src/views/card/components/ActivityList.tsx:120 #: src/views/card/components/ActivityList.tsx:109
msgid "renamed a checklist" msgid "renamed a checklist"
msgstr "renamed a checklist" msgstr "renamed a checklist"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:201 #: src/views/card/components/ActivityList.tsx:190
msgid "renamed checklist <0>{0}</0>" msgid "renamed checklist <0>{0}</0>"
msgstr "renamed checklist <0>{0}</0>" msgstr "renamed checklist <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:225 #: src/views/card/components/ActivityList.tsx:214
msgid "renamed checklist item to <0>{0}</0>" msgid "renamed checklist item to <0>{0}</0>"
msgstr "renamed checklist item to <0>{0}</0>" msgstr "renamed checklist item to <0>{0}</0>"
@@ -2385,7 +2356,7 @@ msgstr "Self Host"
msgid "Self host with Github" msgid "Self host with Github"
msgstr "Self host with Github" msgstr "Self host with Github"
#: src/views/card/components/ActivityList.tsx:154 #: src/views/card/components/ActivityList.tsx:143
msgid "self-assigned the card" msgid "self-assigned the card"
msgstr "self-assigned the card" msgstr "self-assigned the card"
@@ -2409,7 +2380,7 @@ msgstr "Senior"
msgid "Set due date" msgid "Set due date"
msgstr "Set due date" msgstr "Set due date"
#: src/views/card/components/ActivityList.tsx:127 #: src/views/card/components/ActivityList.tsx:116
msgid "set the due date" msgid "set the due date"
msgstr "set the due date" msgstr "set the due date"
@@ -2789,10 +2760,6 @@ msgstr "Unable to reset permissions"
msgid "Unable to send feedback" msgid "Unable to send feedback"
msgstr "Unable to send feedback" msgstr "Unable to send feedback"
#: src/views/board/components/BoardDropdown.tsx:62
msgid "Unable to update board"
msgstr "Unable to update board"
#: src/views/board/components/UpdateBoardSlugForm.tsx:72 #: src/views/board/components/UpdateBoardSlugForm.tsx:72
msgid "Unable to update board URL" msgid "Unable to update board URL"
msgstr "Unable to update board URL" msgstr "Unable to update board URL"
@@ -2844,8 +2811,8 @@ msgstr "Unable to update permissions"
msgid "Unable to update role" msgid "Unable to update role"
msgstr "Unable to update role" msgstr "Unable to update role"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:168 #: src/views/card/components/ActivityList.tsx:157
msgid "unassigned <0>{0}</0> from the card" msgid "unassigned <0>{0}</0> from the card"
msgstr "unassigned <0>{0}</0> from the card" msgstr "unassigned <0>{0}</0> from the card"
@@ -2853,7 +2820,7 @@ msgstr "unassigned <0>{0}</0> from the card"
#~ msgid "unassigned <0>{memberName}</0> from the card" #~ msgid "unassigned <0>{memberName}</0> from the card"
#~ msgstr "unassigned <0>{memberName}</0> from the card" #~ msgstr "unassigned <0>{memberName}</0> from the card"
#: src/views/card/components/ActivityList.tsx:165 #: src/views/card/components/ActivityList.tsx:154
msgid "unassigned themselves from the card" msgid "unassigned themselves from the card"
msgstr "unassigned themselves from the card" msgstr "unassigned themselves from the card"
@@ -2912,24 +2879,24 @@ msgstr "Update"
msgid "Update label" msgid "Update label"
msgstr "Update label" msgstr "Update label"
#: src/views/card/components/ActivityList.tsx:123 #: src/views/card/components/ActivityList.tsx:112
msgid "updated a checklist item" msgid "updated a checklist item"
msgstr "updated a checklist item" msgstr "updated a checklist item"
#: src/views/card/components/ActivityList.tsx:113 #: src/views/card/components/ActivityList.tsx:102
msgid "updated the description" msgid "updated the description"
msgstr "updated the description" msgstr "updated the description"
#: src/views/card/components/ActivityList.tsx:128 #: src/views/card/components/ActivityList.tsx:117
msgid "updated the due date" msgid "updated the due date"
msgstr "updated the due date" msgstr "updated the due date"
#: src/views/card/components/ActivityList.tsx:112 #: src/views/card/components/ActivityList.tsx:101
msgid "updated the title" msgid "updated the title"
msgstr "updated the title" msgstr "updated the title"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:137 #: src/views/card/components/ActivityList.tsx:126
msgid "updated the title to <0>{0}</0>" msgid "updated the title to <0>{0}</0>"
msgstr "updated the title to <0>{0}</0>" msgstr "updated the title to <0>{0}</0>"
@@ -3074,7 +3041,7 @@ msgstr "Why make an open source Trello?"
#: src/views/boards/index.tsx:35 #: src/views/boards/index.tsx:35
#: src/views/members/index.tsx:257 #: src/views/members/index.tsx:257
#: src/views/public/board/index.tsx:120 #: src/views/public/board/index.tsx:120
#: src/views/public/boards/index.tsx:65 #: src/views/public/boards/index.tsx:66
msgid "Workspace" msgid "Workspace"
msgstr "Workspace" msgstr "Workspace"
@@ -3183,8 +3150,8 @@ msgstr "You can self-host by following the instructions in our <0>repo</0>."
#: src/views/board/components/UpdateBoardSlugButton.tsx:31 #: src/views/board/components/UpdateBoardSlugButton.tsx:31
#: src/views/board/components/VisibilityButton.tsx:72 #: src/views/board/components/VisibilityButton.tsx:72
#: src/views/board/index.tsx:472 #: src/views/board/index.tsx:472
#: src/views/board/index.tsx:530 #: src/views/board/index.tsx:528
#: src/views/boards/components/BoardsList.tsx:70 #: src/views/boards/components/BoardsList.tsx:49
#: src/views/boards/index.tsx:46 #: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:67 #: src/views/boards/index.tsx:67
msgid "You don't have permission" msgid "You don't have permission"

File diff suppressed because one or more lines are too long

View File

@@ -35,16 +35,6 @@ msgstr "{0}"
msgid "{0} | {1}" msgid "{0} | {1}"
msgstr "{0} | {1}" msgstr "{0} | {1}"
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:54
msgid "{0} has been added to your favorites."
msgstr "{0} se ha añadido a tus favoritos."
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:55
msgid "{0} has been removed from your favorites."
msgstr "{0} se ha eliminado de tus favoritos."
#. placeholder {0}: labelPublicIds.length #. placeholder {0}: labelPublicIds.length
#: src/views/board/components/NewCardForm.tsx:453 #: src/views/board/components/NewCardForm.tsx:453
msgid "{0} labels" msgid "{0} labels"
@@ -141,50 +131,42 @@ msgstr "Añadir etiqueta"
msgid "Add member" msgid "Add member"
msgstr "Añadir miembro" msgstr "Añadir miembro"
#: src/views/board/components/BoardDropdown.tsx:93
msgid "Add to favorites"
msgstr "Añadir a favoritos"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:89 #: src/views/card/components/ActivityList.tsx:78
msgid "added {0} labels: <0>{labelList}</0>" msgid "added {0} labels: <0>{labelList}</0>"
msgstr "añadió {0} etiquetas: <0>{labelList}</0>" msgstr "añadió {0} etiquetas: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:119 #: src/views/card/components/ActivityList.tsx:108
msgid "added a checklist" msgid "added a checklist"
msgstr "añadió una lista de verificación" msgstr "añadió una lista de verificación"
#: src/views/card/components/ActivityList.tsx:122 #: src/views/card/components/ActivityList.tsx:111
msgid "added a checklist item" msgid "added a checklist item"
msgstr "añadió un elemento a la lista de verificación" msgstr "añadió un elemento a la lista de verificación"
#: src/views/card/components/ActivityList.tsx:115 #: src/views/card/components/ActivityList.tsx:104
msgid "added a label to the card" msgid "added a label to the card"
msgstr "añadió una etiqueta a la tarjeta" msgstr "añadió una etiqueta a la tarjeta"
#: src/views/card/components/ActivityList.tsx:117 #: src/views/card/components/ActivityList.tsx:106
msgid "added a member to the card" msgid "added a member to the card"
msgstr "añadió un miembro a la tarjeta" msgstr "añadió un miembro a la tarjeta"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:193 #: src/views/card/components/ActivityList.tsx:182
msgid "added checklist <0>{0}</0>" msgid "added checklist <0>{0}</0>"
msgstr "añadió la lista de verificación <0>{0}</0>" msgstr "añadió la lista de verificación <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:217 #: src/views/card/components/ActivityList.tsx:206
msgid "added checklist item <0>{0}</0>" msgid "added checklist item <0>{0}</0>"
msgstr "añadió el elemento <0>{0}</0> a la lista de verificación" msgstr "añadió el elemento <0>{0}</0> a la lista de verificación"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:177 #: src/views/card/components/ActivityList.tsx:166
msgid "added label <0>{0}</0>" msgid "added label <0>{0}</0>"
msgstr "añadió la etiqueta <0>{0}</0>" msgstr "añadió la etiqueta <0>{0}</0>"
#: src/views/board/components/BoardDropdown.tsx:51
msgid "Added to favorites"
msgstr "Añadido a favoritos"
#: src/views/members/components/InviteMemberForm.tsx:327 #: src/views/members/components/InviteMemberForm.tsx:327
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat." msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
msgstr "Añadir un nuevo miembro costará {price} adicionales ({billingType}) por asiento." msgstr "Añadir un nuevo miembro costará {price} adicionales ({billingType}) por asiento."
@@ -300,8 +282,8 @@ msgstr "¿Estás seguro de que quieres eliminar esta etiqueta?"
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "¿Estás seguro de que quieres eliminar tu cuenta?" msgstr "¿Estás seguro de que quieres eliminar tu cuenta?"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:157 #: src/views/card/components/ActivityList.tsx:146
msgid "assigned <0>{0}</0> to the card" msgid "assigned <0>{0}</0> to the card"
msgstr "asignó <0>{0}</0> a la tarjeta" msgstr "asignó <0>{0}</0> a la tarjeta"
@@ -580,8 +562,8 @@ msgstr "Cambiar contraseña"
msgid "Change your language preferences." msgid "Change your language preferences."
msgstr "Cambia tus preferencias de idioma." msgstr "Cambia tus preferencias de idioma."
#: src/views/card/components/ActivityList.tsx:267 #: src/views/card/components/ActivityList.tsx:256
#: src/views/card/components/ActivityList.tsx:281 #: src/views/card/components/ActivityList.tsx:270
msgid "changed the due date to <0>{formattedDate}</0>" msgid "changed the due date to <0>{formattedDate}</0>"
msgstr "cambió la fecha de vencimiento a <0>{formattedDate}</0>" msgstr "cambió la fecha de vencimiento a <0>{formattedDate}</0>"
@@ -669,12 +651,12 @@ msgstr "Completado"
msgid "Complete control and ownership:" msgid "Complete control and ownership:"
msgstr "Control y propiedad completos:" msgstr "Control y propiedad completos:"
#: src/views/card/components/ActivityList.tsx:124 #: src/views/card/components/ActivityList.tsx:113
msgid "completed a checklist item" msgid "completed a checklist item"
msgstr "completó un elemento de la lista de verificación" msgstr "completó un elemento de la lista de verificación"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:234 #: src/views/card/components/ActivityList.tsx:223
msgid "completed checklist item <0>{0}</0>" msgid "completed checklist item <0>{0}</0>"
msgstr "completó el elemento <0>{0}</0> de la lista de verificación" msgstr "completó el elemento <0>{0}</0> de la lista de verificación"
@@ -773,7 +755,7 @@ msgid "Create list"
msgstr "Crear lista" msgstr "Crear lista"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:79 #: src/views/boards/components/BoardsList.tsx:58
#: src/views/boards/index.tsx:28 #: src/views/boards/index.tsx:28
msgid "Create new {0}" msgid "Create new {0}"
msgstr "Crear nuevo {0}" msgstr "Crear nuevo {0}"
@@ -788,7 +770,7 @@ msgid "Create new label"
msgstr "Crear nueva etiqueta" msgstr "Crear nueva etiqueta"
#: src/views/board/index.tsx:74 #: src/views/board/index.tsx:74
#: src/views/board/index.tsx:539 #: src/views/board/index.tsx:537
msgid "Create new list" msgid "Create new list"
msgstr "Crear nueva lista" msgstr "Crear nueva lista"
@@ -801,7 +783,7 @@ msgstr "Crear plantilla"
msgid "Create workspace" msgid "Create workspace"
msgstr "Crear espacio de trabajo" msgstr "Crear espacio de trabajo"
#: src/views/card/components/ActivityList.tsx:111 #: src/views/card/components/ActivityList.tsx:100
msgid "created the card" msgid "created the card"
msgstr "creó la tarjeta" msgstr "creó la tarjeta"
@@ -875,7 +857,7 @@ msgstr "Eliminar"
msgid "Delete account" msgid "Delete account"
msgstr "Eliminar cuenta" msgstr "Eliminar cuenta"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete board" msgid "Delete board"
msgstr "Eliminar tablero" msgstr "Eliminar tablero"
@@ -891,7 +873,7 @@ msgstr "Eliminar comentario"
msgid "Delete list" msgid "Delete list"
msgstr "Eliminar lista" msgstr "Eliminar lista"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete template" msgid "Delete template"
msgstr "Eliminar plantilla" msgstr "Eliminar plantilla"
@@ -901,21 +883,21 @@ msgstr "Eliminar plantilla"
msgid "Delete workspace" msgid "Delete workspace"
msgstr "Eliminar espacio de trabajo" msgstr "Eliminar espacio de trabajo"
#: src/views/card/components/ActivityList.tsx:121 #: src/views/card/components/ActivityList.tsx:110
msgid "deleted a checklist" msgid "deleted a checklist"
msgstr "eliminó una lista de verificación" msgstr "eliminó una lista de verificación"
#: src/views/card/components/ActivityList.tsx:126 #: src/views/card/components/ActivityList.tsx:115
msgid "deleted a checklist item" msgid "deleted a checklist item"
msgstr "eliminó un elemento de la lista de verificación" msgstr "eliminó un elemento de la lista de verificación"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:209 #: src/views/card/components/ActivityList.tsx:198
msgid "deleted checklist <0>{0}</0>" msgid "deleted checklist <0>{0}</0>"
msgstr "eliminó la lista de verificación <0>{0}</0>" msgstr "eliminó la lista de verificación <0>{0}</0>"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:252 #: src/views/card/components/ActivityList.tsx:241
msgid "deleted checklist item <0>{0}</0>" msgid "deleted checklist item <0>{0}</0>"
msgstr "eliminó el elemento <0>{0}</0> de la lista de verificación" msgstr "eliminó el elemento <0>{0}</0> de la lista de verificación"
@@ -1011,7 +993,7 @@ msgstr "Vence mañana"
msgid "Edit" msgid "Edit"
msgstr "Editar" msgstr "Editar"
#: src/views/board/components/BoardDropdown.tsx:84 #: src/views/board/components/BoardDropdown.tsx:44
#: src/views/board/components/UpdateBoardSlugForm.tsx:116 #: src/views/board/components/UpdateBoardSlugForm.tsx:116
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Editar URL del tablero" msgstr "Editar URL del tablero"
@@ -1299,11 +1281,11 @@ msgid "Get Started"
msgstr "Comenzar" msgstr "Comenzar"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:65 #: src/views/boards/components/BoardsList.tsx:44
msgid "Get started by creating a new {0}" msgid "Get started by creating a new {0}"
msgstr "Comienza creando un nuevo {0}" msgstr "Comienza creando un nuevo {0}"
#: src/views/board/index.tsx:524 #: src/views/board/index.tsx:522
msgid "Get started by creating a new list" msgid "Get started by creating a new list"
msgstr "Comienza creando una nueva lista" msgstr "Comienza creando una nueva lista"
@@ -1613,7 +1595,7 @@ msgstr "Nombre de la lista"
msgid "Lists" msgid "Lists"
msgstr "Listas" msgstr "Listas"
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Load more activities" msgid "Load more activities"
msgstr "Cargar más actividades" msgstr "Cargar más actividades"
@@ -1621,7 +1603,7 @@ msgstr "Cargar más actividades"
msgid "Loading permissions..." msgid "Loading permissions..."
msgstr "Cargando permisos..." msgstr "Cargando permisos..."
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Loading..." msgid "Loading..."
msgstr "Cargando..." msgstr "Cargando..."
@@ -1649,16 +1631,16 @@ msgstr "Prioridad baja"
msgid "magic link" msgid "magic link"
msgstr "enlace mágico" msgstr "enlace mágico"
#: src/views/board/components/BoardDropdown.tsx:73 #: src/views/board/components/BoardDropdown.tsx:34
msgid "Make template" msgid "Make template"
msgstr "Crear plantilla" msgstr "Crear plantilla"
#: src/views/card/components/ActivityList.tsx:125 #: src/views/card/components/ActivityList.tsx:114
msgid "marked a checklist item as incomplete" msgid "marked a checklist item as incomplete"
msgstr "marcó un elemento de la lista de verificación como incompleto" msgstr "marcó un elemento de la lista de verificación como incompleto"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:243 #: src/views/card/components/ActivityList.tsx:232
msgid "marked checklist item <0>{0}</0> as incomplete" msgid "marked checklist item <0>{0}</0> as incomplete"
msgstr "marcó el elemento <0>{0}</0> de la lista de verificación como incompleto" msgstr "marcó el elemento <0>{0}</0> de la lista de verificación como incompleto"
@@ -1666,8 +1648,6 @@ msgstr "marcó el elemento <0>{0}</0> de la lista de verificación como incomple
msgid "Medium Priority" msgid "Medium Priority"
msgstr "Prioridad media" msgstr "Prioridad media"
#: src/views/card/components/ActivityList.tsx:44
#: src/views/card/components/ActivityList.tsx:75
#: src/views/members/index.tsx:201 #: src/views/members/index.tsx:201
msgid "Member" msgid "Member"
msgstr "Miembro" msgstr "Miembro"
@@ -1696,11 +1676,11 @@ msgstr "facturación mensual"
#. placeholder {0}: truncate(fromList) #. placeholder {0}: truncate(fromList)
#. placeholder {1}: truncate(toList) #. placeholder {1}: truncate(toList)
#: src/views/card/components/ActivityList.tsx:145 #: src/views/card/components/ActivityList.tsx:134
msgid "moved the card from <0>{0}</0> to<1>{1}</1>" msgid "moved the card from <0>{0}</0> to<1>{1}</1>"
msgstr "movió la tarjeta de <0>{0}</0> a<1>{1}</1>" msgstr "movió la tarjeta de <0>{0}</0> a<1>{1}</1>"
#: src/views/card/components/ActivityList.tsx:114 #: src/views/card/components/ActivityList.tsx:103
msgid "moved the card to another list" msgid "moved the card to another list"
msgstr "movió la tarjeta a otra lista" msgstr "movió la tarjeta a otra lista"
@@ -1782,7 +1762,7 @@ msgid "Next Steps"
msgstr "Próximos pasos" msgstr "Próximos pasos"
#. placeholder {0}: isTemplate ? "templates" : "boards" #. placeholder {0}: isTemplate ? "templates" : "boards"
#: src/views/boards/components/BoardsList.tsx:62 #: src/views/boards/components/BoardsList.tsx:41
msgid "No {0}" msgid "No {0}"
msgstr "Sin {0}" msgstr "Sin {0}"
@@ -1810,11 +1790,11 @@ msgstr "No hay URL de descarga disponible para este archivo adjunto."
msgid "No keyboard shortcuts registered." msgid "No keyboard shortcuts registered."
msgstr "No hay atajos de teclado registrados." msgstr "No hay atajos de teclado registrados."
#: src/views/board/index.tsx:520 #: src/views/board/index.tsx:518
msgid "No lists" msgid "No lists"
msgstr "Sin listas" msgstr "Sin listas"
#: src/views/board/index.tsx:525 #: src/views/board/index.tsx:523
msgid "No lists have been created yet" msgid "No lists have been created yet"
msgstr "Aún no se han creado listas" msgstr "Aún no se han creado listas"
@@ -1989,7 +1969,6 @@ msgstr "Por favor selecciona un archivo para subir."
#: src/components/DeleteLabelConfirmation.tsx:26 #: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:158 #: src/components/NewWorkspaceForm.tsx:158
#: src/views/board/components/BoardDropdown.tsx:63
#: src/views/board/components/NewCardForm.tsx:184 #: src/views/board/components/NewCardForm.tsx:184
#: src/views/board/components/NewListForm.tsx:79 #: src/views/board/components/NewListForm.tsx:79
#: src/views/board/components/NewTemplateForm.tsx:61 #: src/views/board/components/NewTemplateForm.tsx:61
@@ -2117,52 +2096,44 @@ msgstr "Remoto"
msgid "Remove" msgid "Remove"
msgstr "Eliminar" msgstr "Eliminar"
#: src/views/board/components/BoardDropdown.tsx:92
msgid "Remove from favorites"
msgstr "Eliminar de favoritos"
#: src/views/members/index.tsx:232 #: src/views/members/index.tsx:232
msgid "Remove member" msgid "Remove member"
msgstr "Eliminar miembro" msgstr "Eliminar miembro"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:103 #: src/views/card/components/ActivityList.tsx:92
msgid "removed {0} labels: <0>{labelList}</0>" msgid "removed {0} labels: <0>{labelList}</0>"
msgstr "eliminó {0} etiquetas: <0>{labelList}</0>" msgstr "eliminó {0} etiquetas: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:116 #: src/views/card/components/ActivityList.tsx:105
msgid "removed a label from the card" msgid "removed a label from the card"
msgstr "eliminó una etiqueta de la tarjeta" msgstr "eliminó una etiqueta de la tarjeta"
#: src/views/card/components/ActivityList.tsx:118 #: src/views/card/components/ActivityList.tsx:107
msgid "removed a member from the card" msgid "removed a member from the card"
msgstr "eliminó un miembro de la tarjeta" msgstr "eliminó un miembro de la tarjeta"
#: src/views/board/components/BoardDropdown.tsx:52
msgid "Removed from favorites"
msgstr "Eliminado de favoritos"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:185 #: src/views/card/components/ActivityList.tsx:174
msgid "removed label <0>{0}</0>" msgid "removed label <0>{0}</0>"
msgstr "eliminó la etiqueta <0>{0}</0>" msgstr "eliminó la etiqueta <0>{0}</0>"
#: src/views/card/components/ActivityList.tsx:129 #: src/views/card/components/ActivityList.tsx:118
#: src/views/card/components/ActivityList.tsx:288 #: src/views/card/components/ActivityList.tsx:277
msgid "removed the due date" msgid "removed the due date"
msgstr "eliminó la fecha de vencimiento" msgstr "eliminó la fecha de vencimiento"
#: src/views/card/components/ActivityList.tsx:120 #: src/views/card/components/ActivityList.tsx:109
msgid "renamed a checklist" msgid "renamed a checklist"
msgstr "renombró una lista de verificación" msgstr "renombró una lista de verificación"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:201 #: src/views/card/components/ActivityList.tsx:190
msgid "renamed checklist <0>{0}</0>" msgid "renamed checklist <0>{0}</0>"
msgstr "renombró la lista de verificación <0>{0}</0>" msgstr "renombró la lista de verificación <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:225 #: src/views/card/components/ActivityList.tsx:214
msgid "renamed checklist item to <0>{0}</0>" msgid "renamed checklist item to <0>{0}</0>"
msgstr "renombró el elemento de la lista de verificación a <0>{0}</0>" msgstr "renombró el elemento de la lista de verificación a <0>{0}</0>"
@@ -2248,7 +2219,7 @@ msgstr "Autoalojamiento"
msgid "Self host with Github" msgid "Self host with Github"
msgstr "Autoalojamiento con Github" msgstr "Autoalojamiento con Github"
#: src/views/card/components/ActivityList.tsx:154 #: src/views/card/components/ActivityList.tsx:143
msgid "self-assigned the card" msgid "self-assigned the card"
msgstr "se autoasignó la tarjeta" msgstr "se autoasignó la tarjeta"
@@ -2268,7 +2239,7 @@ msgstr "Senior"
msgid "Set due date" msgid "Set due date"
msgstr "Establecer fecha de vencimiento" msgstr "Establecer fecha de vencimiento"
#: src/views/card/components/ActivityList.tsx:127 #: src/views/card/components/ActivityList.tsx:116
msgid "set the due date" msgid "set the due date"
msgstr "estableció la fecha de vencimiento" msgstr "estableció la fecha de vencimiento"
@@ -2632,10 +2603,6 @@ msgstr "No se pueden restablecer los permisos"
msgid "Unable to send feedback" msgid "Unable to send feedback"
msgstr "No se pudieron enviar los comentarios" msgstr "No se pudieron enviar los comentarios"
#: src/views/board/components/BoardDropdown.tsx:62
msgid "Unable to update board"
msgstr "No se pudo actualizar el tablero"
#: src/views/board/components/UpdateBoardSlugForm.tsx:72 #: src/views/board/components/UpdateBoardSlugForm.tsx:72
msgid "Unable to update board URL" msgid "Unable to update board URL"
msgstr "No se puede actualizar la URL del tablero" msgstr "No se puede actualizar la URL del tablero"
@@ -2687,12 +2654,12 @@ msgstr "No se pueden actualizar los permisos"
msgid "Unable to update role" msgid "Unable to update role"
msgstr "No se puede actualizar el rol" msgstr "No se puede actualizar el rol"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:168 #: src/views/card/components/ActivityList.tsx:157
msgid "unassigned <0>{0}</0> from the card" msgid "unassigned <0>{0}</0> from the card"
msgstr "desasignó <0>{0}</0> de la tarjeta" msgstr "desasignó <0>{0}</0> de la tarjeta"
#: src/views/card/components/ActivityList.tsx:165 #: src/views/card/components/ActivityList.tsx:154
msgid "unassigned themselves from the card" msgid "unassigned themselves from the card"
msgstr "se desasignó de la tarjeta" msgstr "se desasignó de la tarjeta"
@@ -2751,24 +2718,24 @@ msgstr "Actualizar"
msgid "Update label" msgid "Update label"
msgstr "Actualizar etiqueta" msgstr "Actualizar etiqueta"
#: src/views/card/components/ActivityList.tsx:123 #: src/views/card/components/ActivityList.tsx:112
msgid "updated a checklist item" msgid "updated a checklist item"
msgstr "actualizó un elemento de la lista de verificación" msgstr "actualizó un elemento de la lista de verificación"
#: src/views/card/components/ActivityList.tsx:113 #: src/views/card/components/ActivityList.tsx:102
msgid "updated the description" msgid "updated the description"
msgstr "actualizó la descripción" msgstr "actualizó la descripción"
#: src/views/card/components/ActivityList.tsx:128 #: src/views/card/components/ActivityList.tsx:117
msgid "updated the due date" msgid "updated the due date"
msgstr "actualizó la fecha de vencimiento" msgstr "actualizó la fecha de vencimiento"
#: src/views/card/components/ActivityList.tsx:112 #: src/views/card/components/ActivityList.tsx:101
msgid "updated the title" msgid "updated the title"
msgstr "actualizó el título" msgstr "actualizó el título"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:137 #: src/views/card/components/ActivityList.tsx:126
msgid "updated the title to <0>{0}</0>" msgid "updated the title to <0>{0}</0>"
msgstr "actualizó el título a <0>{0}</0>" msgstr "actualizó el título a <0>{0}</0>"
@@ -2893,7 +2860,7 @@ msgstr "¿Por qué crear un Trello de código abierto?"
#: src/views/boards/index.tsx:35 #: src/views/boards/index.tsx:35
#: src/views/members/index.tsx:257 #: src/views/members/index.tsx:257
#: src/views/public/board/index.tsx:120 #: src/views/public/board/index.tsx:120
#: src/views/public/boards/index.tsx:65 #: src/views/public/boards/index.tsx:66
msgid "Workspace" msgid "Workspace"
msgstr "Espacio de trabajo" msgstr "Espacio de trabajo"
@@ -2998,8 +2965,8 @@ msgstr "Puedes autoalojar siguiendo las instrucciones en nuestro <0>repositorio<
#: src/views/board/components/UpdateBoardSlugButton.tsx:31 #: src/views/board/components/UpdateBoardSlugButton.tsx:31
#: src/views/board/components/VisibilityButton.tsx:72 #: src/views/board/components/VisibilityButton.tsx:72
#: src/views/board/index.tsx:472 #: src/views/board/index.tsx:472
#: src/views/board/index.tsx:530 #: src/views/board/index.tsx:528
#: src/views/boards/components/BoardsList.tsx:70 #: src/views/boards/components/BoardsList.tsx:49
#: src/views/boards/index.tsx:46 #: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:67 #: src/views/boards/index.tsx:67
msgid "You don't have permission" msgid "You don't have permission"

File diff suppressed because one or more lines are too long

View File

@@ -35,16 +35,6 @@ msgstr "{0}"
msgid "{0} | {1}" msgid "{0} | {1}"
msgstr "{0} | {1}" msgstr "{0} | {1}"
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:54
msgid "{0} has been added to your favorites."
msgstr "{0} a été ajouté à vos favoris."
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:55
msgid "{0} has been removed from your favorites."
msgstr "{0} a été retiré de vos favoris."
#. placeholder {0}: labelPublicIds.length #. placeholder {0}: labelPublicIds.length
#: src/views/board/components/NewCardForm.tsx:453 #: src/views/board/components/NewCardForm.tsx:453
msgid "{0} labels" msgid "{0} labels"
@@ -141,50 +131,42 @@ msgstr "Ajouter une étiquette"
msgid "Add member" msgid "Add member"
msgstr "Ajouter un membre" msgstr "Ajouter un membre"
#: src/views/board/components/BoardDropdown.tsx:93
msgid "Add to favorites"
msgstr "Ajouter aux favoris"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:89 #: src/views/card/components/ActivityList.tsx:78
msgid "added {0} labels: <0>{labelList}</0>" msgid "added {0} labels: <0>{labelList}</0>"
msgstr "a ajouté {0} étiquettes : <0>{labelList}</0>" msgstr "a ajouté {0} étiquettes : <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:119 #: src/views/card/components/ActivityList.tsx:108
msgid "added a checklist" msgid "added a checklist"
msgstr "a ajouté une checklist" msgstr "a ajouté une checklist"
#: src/views/card/components/ActivityList.tsx:122 #: src/views/card/components/ActivityList.tsx:111
msgid "added a checklist item" msgid "added a checklist item"
msgstr "a ajouté un élément à la checklist" msgstr "a ajouté un élément à la checklist"
#: src/views/card/components/ActivityList.tsx:115 #: src/views/card/components/ActivityList.tsx:104
msgid "added a label to the card" msgid "added a label to the card"
msgstr "a ajouté une étiquette à la carte" msgstr "a ajouté une étiquette à la carte"
#: src/views/card/components/ActivityList.tsx:117 #: src/views/card/components/ActivityList.tsx:106
msgid "added a member to the card" msgid "added a member to the card"
msgstr "a ajouté un membre à la carte" msgstr "a ajouté un membre à la carte"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:193 #: src/views/card/components/ActivityList.tsx:182
msgid "added checklist <0>{0}</0>" msgid "added checklist <0>{0}</0>"
msgstr "a ajouté la checklist <0>{0}</0>" msgstr "a ajouté la checklist <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:217 #: src/views/card/components/ActivityList.tsx:206
msgid "added checklist item <0>{0}</0>" msgid "added checklist item <0>{0}</0>"
msgstr "a ajouté l'élément <0>{0}</0> à la checklist" msgstr "a ajouté l'élément <0>{0}</0> à la checklist"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:177 #: src/views/card/components/ActivityList.tsx:166
msgid "added label <0>{0}</0>" msgid "added label <0>{0}</0>"
msgstr "a ajouté l'étiquette <0>{0}</0>" msgstr "a ajouté l'étiquette <0>{0}</0>"
#: src/views/board/components/BoardDropdown.tsx:51
msgid "Added to favorites"
msgstr "Ajouté aux favoris"
#: src/views/members/components/InviteMemberForm.tsx:327 #: src/views/members/components/InviteMemberForm.tsx:327
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat." msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
msgstr "L'ajout d'un nouveau membre coûtera {price} supplémentaires ({billingType}) par siège." msgstr "L'ajout d'un nouveau membre coûtera {price} supplémentaires ({billingType}) par siège."
@@ -300,8 +282,8 @@ msgstr "Êtes-vous sûr de vouloir supprimer cette étiquette ?"
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Êtes-vous sûr de vouloir supprimer votre compte ?" msgstr "Êtes-vous sûr de vouloir supprimer votre compte ?"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:157 #: src/views/card/components/ActivityList.tsx:146
msgid "assigned <0>{0}</0> to the card" msgid "assigned <0>{0}</0> to the card"
msgstr "a assigné <0>{0}</0> à la carte" msgstr "a assigné <0>{0}</0> à la carte"
@@ -580,8 +562,8 @@ msgstr "Modifier le mot de passe"
msgid "Change your language preferences." msgid "Change your language preferences."
msgstr "Modifiez vos préférences linguistiques." msgstr "Modifiez vos préférences linguistiques."
#: src/views/card/components/ActivityList.tsx:267 #: src/views/card/components/ActivityList.tsx:256
#: src/views/card/components/ActivityList.tsx:281 #: src/views/card/components/ActivityList.tsx:270
msgid "changed the due date to <0>{formattedDate}</0>" msgid "changed the due date to <0>{formattedDate}</0>"
msgstr "a modifié la date d'échéance pour <0>{formattedDate}</0>" msgstr "a modifié la date d'échéance pour <0>{formattedDate}</0>"
@@ -669,12 +651,12 @@ msgstr "Terminé"
msgid "Complete control and ownership:" msgid "Complete control and ownership:"
msgstr "Contrôle et propriété complets :" msgstr "Contrôle et propriété complets :"
#: src/views/card/components/ActivityList.tsx:124 #: src/views/card/components/ActivityList.tsx:113
msgid "completed a checklist item" msgid "completed a checklist item"
msgstr "a terminé un élément de la checklist" msgstr "a terminé un élément de la checklist"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:234 #: src/views/card/components/ActivityList.tsx:223
msgid "completed checklist item <0>{0}</0>" msgid "completed checklist item <0>{0}</0>"
msgstr "a terminé l'élément <0>{0}</0> de la checklist" msgstr "a terminé l'élément <0>{0}</0> de la checklist"
@@ -773,7 +755,7 @@ msgid "Create list"
msgstr "Créer une liste" msgstr "Créer une liste"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:79 #: src/views/boards/components/BoardsList.tsx:58
#: src/views/boards/index.tsx:28 #: src/views/boards/index.tsx:28
msgid "Create new {0}" msgid "Create new {0}"
msgstr "Créer un nouveau {0}" msgstr "Créer un nouveau {0}"
@@ -788,7 +770,7 @@ msgid "Create new label"
msgstr "Créer une nouvelle étiquette" msgstr "Créer une nouvelle étiquette"
#: src/views/board/index.tsx:74 #: src/views/board/index.tsx:74
#: src/views/board/index.tsx:539 #: src/views/board/index.tsx:537
msgid "Create new list" msgid "Create new list"
msgstr "Créer une nouvelle liste" msgstr "Créer une nouvelle liste"
@@ -801,7 +783,7 @@ msgstr "Créer un modèle"
msgid "Create workspace" msgid "Create workspace"
msgstr "Créer un espace de travail" msgstr "Créer un espace de travail"
#: src/views/card/components/ActivityList.tsx:111 #: src/views/card/components/ActivityList.tsx:100
msgid "created the card" msgid "created the card"
msgstr "a créé la carte" msgstr "a créé la carte"
@@ -875,7 +857,7 @@ msgstr "Supprimer"
msgid "Delete account" msgid "Delete account"
msgstr "Supprimer le compte" msgstr "Supprimer le compte"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete board" msgid "Delete board"
msgstr "Supprimer le tableau" msgstr "Supprimer le tableau"
@@ -891,7 +873,7 @@ msgstr "Supprimer le commentaire"
msgid "Delete list" msgid "Delete list"
msgstr "Supprimer la liste" msgstr "Supprimer la liste"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete template" msgid "Delete template"
msgstr "Supprimer le modèle" msgstr "Supprimer le modèle"
@@ -901,21 +883,21 @@ msgstr "Supprimer le modèle"
msgid "Delete workspace" msgid "Delete workspace"
msgstr "Supprimer l'espace de travail" msgstr "Supprimer l'espace de travail"
#: src/views/card/components/ActivityList.tsx:121 #: src/views/card/components/ActivityList.tsx:110
msgid "deleted a checklist" msgid "deleted a checklist"
msgstr "a supprimé une checklist" msgstr "a supprimé une checklist"
#: src/views/card/components/ActivityList.tsx:126 #: src/views/card/components/ActivityList.tsx:115
msgid "deleted a checklist item" msgid "deleted a checklist item"
msgstr "a supprimé un élément de la checklist" msgstr "a supprimé un élément de la checklist"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:209 #: src/views/card/components/ActivityList.tsx:198
msgid "deleted checklist <0>{0}</0>" msgid "deleted checklist <0>{0}</0>"
msgstr "a supprimé la checklist <0>{0}</0>" msgstr "a supprimé la checklist <0>{0}</0>"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:252 #: src/views/card/components/ActivityList.tsx:241
msgid "deleted checklist item <0>{0}</0>" msgid "deleted checklist item <0>{0}</0>"
msgstr "a supprimé l'élément <0>{0}</0> de la checklist" msgstr "a supprimé l'élément <0>{0}</0> de la checklist"
@@ -1011,7 +993,7 @@ msgstr "Échéance demain"
msgid "Edit" msgid "Edit"
msgstr "Modifier" msgstr "Modifier"
#: src/views/board/components/BoardDropdown.tsx:84 #: src/views/board/components/BoardDropdown.tsx:44
#: src/views/board/components/UpdateBoardSlugForm.tsx:116 #: src/views/board/components/UpdateBoardSlugForm.tsx:116
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Modifier l'URL du tableau" msgstr "Modifier l'URL du tableau"
@@ -1299,11 +1281,11 @@ msgid "Get Started"
msgstr "Commencer" msgstr "Commencer"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:65 #: src/views/boards/components/BoardsList.tsx:44
msgid "Get started by creating a new {0}" msgid "Get started by creating a new {0}"
msgstr "Commencez par créer un nouveau {0}" msgstr "Commencez par créer un nouveau {0}"
#: src/views/board/index.tsx:524 #: src/views/board/index.tsx:522
msgid "Get started by creating a new list" msgid "Get started by creating a new list"
msgstr "Commencez par créer une nouvelle liste" msgstr "Commencez par créer une nouvelle liste"
@@ -1613,7 +1595,7 @@ msgstr "Nom de la liste"
msgid "Lists" msgid "Lists"
msgstr "Listes" msgstr "Listes"
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Load more activities" msgid "Load more activities"
msgstr "Charger plus d'activités" msgstr "Charger plus d'activités"
@@ -1621,7 +1603,7 @@ msgstr "Charger plus d'activités"
msgid "Loading permissions..." msgid "Loading permissions..."
msgstr "Chargement des permissions..." msgstr "Chargement des permissions..."
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Loading..." msgid "Loading..."
msgstr "Chargement..." msgstr "Chargement..."
@@ -1649,16 +1631,16 @@ msgstr "Priorité basse"
msgid "magic link" msgid "magic link"
msgstr "lien magique" msgstr "lien magique"
#: src/views/board/components/BoardDropdown.tsx:73 #: src/views/board/components/BoardDropdown.tsx:34
msgid "Make template" msgid "Make template"
msgstr "Créer un modèle" msgstr "Créer un modèle"
#: src/views/card/components/ActivityList.tsx:125 #: src/views/card/components/ActivityList.tsx:114
msgid "marked a checklist item as incomplete" msgid "marked a checklist item as incomplete"
msgstr "a marqué un élément de la checklist comme incomplet" msgstr "a marqué un élément de la checklist comme incomplet"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:243 #: src/views/card/components/ActivityList.tsx:232
msgid "marked checklist item <0>{0}</0> as incomplete" msgid "marked checklist item <0>{0}</0> as incomplete"
msgstr "a marqué l'élément <0>{0}</0> de la checklist comme incomplet" msgstr "a marqué l'élément <0>{0}</0> de la checklist comme incomplet"
@@ -1666,8 +1648,6 @@ msgstr "a marqué l'élément <0>{0}</0> de la checklist comme incomplet"
msgid "Medium Priority" msgid "Medium Priority"
msgstr "Priorité moyenne" msgstr "Priorité moyenne"
#: src/views/card/components/ActivityList.tsx:44
#: src/views/card/components/ActivityList.tsx:75
#: src/views/members/index.tsx:201 #: src/views/members/index.tsx:201
msgid "Member" msgid "Member"
msgstr "Membre" msgstr "Membre"
@@ -1696,11 +1676,11 @@ msgstr "facturation mensuelle"
#. placeholder {0}: truncate(fromList) #. placeholder {0}: truncate(fromList)
#. placeholder {1}: truncate(toList) #. placeholder {1}: truncate(toList)
#: src/views/card/components/ActivityList.tsx:145 #: src/views/card/components/ActivityList.tsx:134
msgid "moved the card from <0>{0}</0> to<1>{1}</1>" msgid "moved the card from <0>{0}</0> to<1>{1}</1>"
msgstr "a déplacé la carte de <0>{0}</0> vers <1>{1}</1>" msgstr "a déplacé la carte de <0>{0}</0> vers <1>{1}</1>"
#: src/views/card/components/ActivityList.tsx:114 #: src/views/card/components/ActivityList.tsx:103
msgid "moved the card to another list" msgid "moved the card to another list"
msgstr "a déplacé la carte vers une autre liste" msgstr "a déplacé la carte vers une autre liste"
@@ -1782,7 +1762,7 @@ msgid "Next Steps"
msgstr "Prochaines étapes" msgstr "Prochaines étapes"
#. placeholder {0}: isTemplate ? "templates" : "boards" #. placeholder {0}: isTemplate ? "templates" : "boards"
#: src/views/boards/components/BoardsList.tsx:62 #: src/views/boards/components/BoardsList.tsx:41
msgid "No {0}" msgid "No {0}"
msgstr "Aucun {0}" msgstr "Aucun {0}"
@@ -1810,11 +1790,11 @@ msgstr "Aucune URL de téléchargement disponible pour cette pièce jointe."
msgid "No keyboard shortcuts registered." msgid "No keyboard shortcuts registered."
msgstr "Aucun raccourci clavier enregistré." msgstr "Aucun raccourci clavier enregistré."
#: src/views/board/index.tsx:520 #: src/views/board/index.tsx:518
msgid "No lists" msgid "No lists"
msgstr "Aucune liste" msgstr "Aucune liste"
#: src/views/board/index.tsx:525 #: src/views/board/index.tsx:523
msgid "No lists have been created yet" msgid "No lists have been created yet"
msgstr "Aucune liste n'a encore été créée" msgstr "Aucune liste n'a encore été créée"
@@ -1989,7 +1969,6 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
#: src/components/DeleteLabelConfirmation.tsx:26 #: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:158 #: src/components/NewWorkspaceForm.tsx:158
#: src/views/board/components/BoardDropdown.tsx:63
#: src/views/board/components/NewCardForm.tsx:184 #: src/views/board/components/NewCardForm.tsx:184
#: src/views/board/components/NewListForm.tsx:79 #: src/views/board/components/NewListForm.tsx:79
#: src/views/board/components/NewTemplateForm.tsx:61 #: src/views/board/components/NewTemplateForm.tsx:61
@@ -2117,52 +2096,44 @@ msgstr "À distance"
msgid "Remove" msgid "Remove"
msgstr "Supprimer" msgstr "Supprimer"
#: src/views/board/components/BoardDropdown.tsx:92
msgid "Remove from favorites"
msgstr "Retirer des favoris"
#: src/views/members/index.tsx:232 #: src/views/members/index.tsx:232
msgid "Remove member" msgid "Remove member"
msgstr "Supprimer le membre" msgstr "Supprimer le membre"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:103 #: src/views/card/components/ActivityList.tsx:92
msgid "removed {0} labels: <0>{labelList}</0>" msgid "removed {0} labels: <0>{labelList}</0>"
msgstr "a supprimé {0} étiquettes : <0>{labelList}</0>" msgstr "a supprimé {0} étiquettes : <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:116 #: src/views/card/components/ActivityList.tsx:105
msgid "removed a label from the card" msgid "removed a label from the card"
msgstr "a supprimé une étiquette de la carte" msgstr "a supprimé une étiquette de la carte"
#: src/views/card/components/ActivityList.tsx:118 #: src/views/card/components/ActivityList.tsx:107
msgid "removed a member from the card" msgid "removed a member from the card"
msgstr "a retiré un membre de la carte" msgstr "a retiré un membre de la carte"
#: src/views/board/components/BoardDropdown.tsx:52
msgid "Removed from favorites"
msgstr "Retiré des favoris"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:185 #: src/views/card/components/ActivityList.tsx:174
msgid "removed label <0>{0}</0>" msgid "removed label <0>{0}</0>"
msgstr "a supprimé l'étiquette <0>{0}</0>" msgstr "a supprimé l'étiquette <0>{0}</0>"
#: src/views/card/components/ActivityList.tsx:129 #: src/views/card/components/ActivityList.tsx:118
#: src/views/card/components/ActivityList.tsx:288 #: src/views/card/components/ActivityList.tsx:277
msgid "removed the due date" msgid "removed the due date"
msgstr "a supprimé la date d'échéance" msgstr "a supprimé la date d'échéance"
#: src/views/card/components/ActivityList.tsx:120 #: src/views/card/components/ActivityList.tsx:109
msgid "renamed a checklist" msgid "renamed a checklist"
msgstr "a renommé une checklist" msgstr "a renommé une checklist"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:201 #: src/views/card/components/ActivityList.tsx:190
msgid "renamed checklist <0>{0}</0>" msgid "renamed checklist <0>{0}</0>"
msgstr "a renommé la checklist <0>{0}</0>" msgstr "a renommé la checklist <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:225 #: src/views/card/components/ActivityList.tsx:214
msgid "renamed checklist item to <0>{0}</0>" msgid "renamed checklist item to <0>{0}</0>"
msgstr "a renommé l'élément de la liste de contrôle en <0>{0}</0>" msgstr "a renommé l'élément de la liste de contrôle en <0>{0}</0>"
@@ -2248,7 +2219,7 @@ msgstr "Auto-hébergement"
msgid "Self host with Github" msgid "Self host with Github"
msgstr "Auto-hébergement avec Github" msgstr "Auto-hébergement avec Github"
#: src/views/card/components/ActivityList.tsx:154 #: src/views/card/components/ActivityList.tsx:143
msgid "self-assigned the card" msgid "self-assigned the card"
msgstr "s'est auto-assigné la carte" msgstr "s'est auto-assigné la carte"
@@ -2268,7 +2239,7 @@ msgstr "Senior"
msgid "Set due date" msgid "Set due date"
msgstr "Définir la date d'échéance" msgstr "Définir la date d'échéance"
#: src/views/card/components/ActivityList.tsx:127 #: src/views/card/components/ActivityList.tsx:116
msgid "set the due date" msgid "set the due date"
msgstr "a défini la date d'échéance" msgstr "a défini la date d'échéance"
@@ -2632,10 +2603,6 @@ msgstr "Impossible de réinitialiser les permissions"
msgid "Unable to send feedback" msgid "Unable to send feedback"
msgstr "Impossible d'envoyer les commentaires" msgstr "Impossible d'envoyer les commentaires"
#: src/views/board/components/BoardDropdown.tsx:62
msgid "Unable to update board"
msgstr "Impossible de mettre à jour le tableau"
#: src/views/board/components/UpdateBoardSlugForm.tsx:72 #: src/views/board/components/UpdateBoardSlugForm.tsx:72
msgid "Unable to update board URL" msgid "Unable to update board URL"
msgstr "Impossible de mettre à jour l'URL du tableau" msgstr "Impossible de mettre à jour l'URL du tableau"
@@ -2687,12 +2654,12 @@ msgstr "Impossible de mettre à jour les permissions"
msgid "Unable to update role" msgid "Unable to update role"
msgstr "Impossible de mettre à jour le rôle" msgstr "Impossible de mettre à jour le rôle"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:168 #: src/views/card/components/ActivityList.tsx:157
msgid "unassigned <0>{0}</0> from the card" msgid "unassigned <0>{0}</0> from the card"
msgstr "a désassigné <0>{0}</0> de la carte" msgstr "a désassigné <0>{0}</0> de la carte"
#: src/views/card/components/ActivityList.tsx:165 #: src/views/card/components/ActivityList.tsx:154
msgid "unassigned themselves from the card" msgid "unassigned themselves from the card"
msgstr "s'est retiré de la carte" msgstr "s'est retiré de la carte"
@@ -2751,24 +2718,24 @@ msgstr "Mettre à jour"
msgid "Update label" msgid "Update label"
msgstr "Mettre à jour l'étiquette" msgstr "Mettre à jour l'étiquette"
#: src/views/card/components/ActivityList.tsx:123 #: src/views/card/components/ActivityList.tsx:112
msgid "updated a checklist item" msgid "updated a checklist item"
msgstr "a mis à jour un élément de la liste de contrôle" msgstr "a mis à jour un élément de la liste de contrôle"
#: src/views/card/components/ActivityList.tsx:113 #: src/views/card/components/ActivityList.tsx:102
msgid "updated the description" msgid "updated the description"
msgstr "a mis à jour la description" msgstr "a mis à jour la description"
#: src/views/card/components/ActivityList.tsx:128 #: src/views/card/components/ActivityList.tsx:117
msgid "updated the due date" msgid "updated the due date"
msgstr "a mis à jour la date d'échéance" msgstr "a mis à jour la date d'échéance"
#: src/views/card/components/ActivityList.tsx:112 #: src/views/card/components/ActivityList.tsx:101
msgid "updated the title" msgid "updated the title"
msgstr "a mis à jour le titre" msgstr "a mis à jour le titre"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:137 #: src/views/card/components/ActivityList.tsx:126
msgid "updated the title to <0>{0}</0>" msgid "updated the title to <0>{0}</0>"
msgstr "a mis à jour le titre en <0>{0}</0>" msgstr "a mis à jour le titre en <0>{0}</0>"
@@ -2893,7 +2860,7 @@ msgstr "Pourquoi créer un Trello open source ?"
#: src/views/boards/index.tsx:35 #: src/views/boards/index.tsx:35
#: src/views/members/index.tsx:257 #: src/views/members/index.tsx:257
#: src/views/public/board/index.tsx:120 #: src/views/public/board/index.tsx:120
#: src/views/public/boards/index.tsx:65 #: src/views/public/boards/index.tsx:66
msgid "Workspace" msgid "Workspace"
msgstr "Espace de travail" msgstr "Espace de travail"
@@ -2998,8 +2965,8 @@ msgstr "Vous pouvez auto-héberger en suivant les instructions dans notre <0>dé
#: src/views/board/components/UpdateBoardSlugButton.tsx:31 #: src/views/board/components/UpdateBoardSlugButton.tsx:31
#: src/views/board/components/VisibilityButton.tsx:72 #: src/views/board/components/VisibilityButton.tsx:72
#: src/views/board/index.tsx:472 #: src/views/board/index.tsx:472
#: src/views/board/index.tsx:530 #: src/views/board/index.tsx:528
#: src/views/boards/components/BoardsList.tsx:70 #: src/views/boards/components/BoardsList.tsx:49
#: src/views/boards/index.tsx:46 #: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:67 #: src/views/boards/index.tsx:67
msgid "You don't have permission" msgid "You don't have permission"

File diff suppressed because one or more lines are too long

View File

@@ -35,16 +35,6 @@ msgstr "{0}"
msgid "{0} | {1}" msgid "{0} | {1}"
msgstr "{0} | {1}" msgstr "{0} | {1}"
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:54
msgid "{0} has been added to your favorites."
msgstr "{0} è stato aggiunto ai tuoi preferiti."
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:55
msgid "{0} has been removed from your favorites."
msgstr "{0} è stato rimosso dai tuoi preferiti."
#. placeholder {0}: labelPublicIds.length #. placeholder {0}: labelPublicIds.length
#: src/views/board/components/NewCardForm.tsx:453 #: src/views/board/components/NewCardForm.tsx:453
msgid "{0} labels" msgid "{0} labels"
@@ -141,50 +131,42 @@ msgstr "Aggiungi etichetta"
msgid "Add member" msgid "Add member"
msgstr "Aggiungi membro" msgstr "Aggiungi membro"
#: src/views/board/components/BoardDropdown.tsx:93
msgid "Add to favorites"
msgstr "Aggiungi ai preferiti"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:89 #: src/views/card/components/ActivityList.tsx:78
msgid "added {0} labels: <0>{labelList}</0>" msgid "added {0} labels: <0>{labelList}</0>"
msgstr "ha aggiunto {0} etichette: <0>{labelList}</0>" msgstr "ha aggiunto {0} etichette: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:119 #: src/views/card/components/ActivityList.tsx:108
msgid "added a checklist" msgid "added a checklist"
msgstr "ha aggiunto una checklist" msgstr "ha aggiunto una checklist"
#: src/views/card/components/ActivityList.tsx:122 #: src/views/card/components/ActivityList.tsx:111
msgid "added a checklist item" msgid "added a checklist item"
msgstr "ha aggiunto un elemento alla checklist" msgstr "ha aggiunto un elemento alla checklist"
#: src/views/card/components/ActivityList.tsx:115 #: src/views/card/components/ActivityList.tsx:104
msgid "added a label to the card" msgid "added a label to the card"
msgstr "ha aggiunto un'etichetta alla carta" msgstr "ha aggiunto un'etichetta alla carta"
#: src/views/card/components/ActivityList.tsx:117 #: src/views/card/components/ActivityList.tsx:106
msgid "added a member to the card" msgid "added a member to the card"
msgstr "ha aggiunto un membro alla carta" msgstr "ha aggiunto un membro alla carta"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:193 #: src/views/card/components/ActivityList.tsx:182
msgid "added checklist <0>{0}</0>" msgid "added checklist <0>{0}</0>"
msgstr "ha aggiunto la checklist <0>{0}</0>" msgstr "ha aggiunto la checklist <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:217 #: src/views/card/components/ActivityList.tsx:206
msgid "added checklist item <0>{0}</0>" msgid "added checklist item <0>{0}</0>"
msgstr "ha aggiunto l'elemento <0>{0}</0> alla checklist" msgstr "ha aggiunto l'elemento <0>{0}</0> alla checklist"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:177 #: src/views/card/components/ActivityList.tsx:166
msgid "added label <0>{0}</0>" msgid "added label <0>{0}</0>"
msgstr "ha aggiunto l'etichetta <0>{0}</0>" msgstr "ha aggiunto l'etichetta <0>{0}</0>"
#: src/views/board/components/BoardDropdown.tsx:51
msgid "Added to favorites"
msgstr "Aggiunto ai preferiti"
#: src/views/members/components/InviteMemberForm.tsx:327 #: src/views/members/components/InviteMemberForm.tsx:327
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat." msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
msgstr "L'aggiunta di un nuovo membro costerà un supplemento di {price} ({billingType}) per posto." msgstr "L'aggiunta di un nuovo membro costerà un supplemento di {price} ({billingType}) per posto."
@@ -300,8 +282,8 @@ msgstr "Sei sicuro di voler eliminare questa etichetta?"
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Sei sicuro di voler eliminare il tuo account?" msgstr "Sei sicuro di voler eliminare il tuo account?"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:157 #: src/views/card/components/ActivityList.tsx:146
msgid "assigned <0>{0}</0> to the card" msgid "assigned <0>{0}</0> to the card"
msgstr "ha assegnato <0>{0}</0> alla scheda" msgstr "ha assegnato <0>{0}</0> alla scheda"
@@ -580,8 +562,8 @@ msgstr "Cambia password"
msgid "Change your language preferences." msgid "Change your language preferences."
msgstr "Modifica le tue preferenze di lingua." msgstr "Modifica le tue preferenze di lingua."
#: src/views/card/components/ActivityList.tsx:267 #: src/views/card/components/ActivityList.tsx:256
#: src/views/card/components/ActivityList.tsx:281 #: src/views/card/components/ActivityList.tsx:270
msgid "changed the due date to <0>{formattedDate}</0>" msgid "changed the due date to <0>{formattedDate}</0>"
msgstr "ha cambiato la data di scadenza a <0>{formattedDate}</0>" msgstr "ha cambiato la data di scadenza a <0>{formattedDate}</0>"
@@ -669,12 +651,12 @@ msgstr "Completato"
msgid "Complete control and ownership:" msgid "Complete control and ownership:"
msgstr "Controllo e proprietà completi:" msgstr "Controllo e proprietà completi:"
#: src/views/card/components/ActivityList.tsx:124 #: src/views/card/components/ActivityList.tsx:113
msgid "completed a checklist item" msgid "completed a checklist item"
msgstr "ha completato un elemento della checklist" msgstr "ha completato un elemento della checklist"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:234 #: src/views/card/components/ActivityList.tsx:223
msgid "completed checklist item <0>{0}</0>" msgid "completed checklist item <0>{0}</0>"
msgstr "ha completato l'elemento <0>{0}</0> della checklist" msgstr "ha completato l'elemento <0>{0}</0> della checklist"
@@ -773,7 +755,7 @@ msgid "Create list"
msgstr "Crea lista" msgstr "Crea lista"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:79 #: src/views/boards/components/BoardsList.tsx:58
#: src/views/boards/index.tsx:28 #: src/views/boards/index.tsx:28
msgid "Create new {0}" msgid "Create new {0}"
msgstr "Crea nuovo {0}" msgstr "Crea nuovo {0}"
@@ -788,7 +770,7 @@ msgid "Create new label"
msgstr "Crea nuova etichetta" msgstr "Crea nuova etichetta"
#: src/views/board/index.tsx:74 #: src/views/board/index.tsx:74
#: src/views/board/index.tsx:539 #: src/views/board/index.tsx:537
msgid "Create new list" msgid "Create new list"
msgstr "Crea nuova lista" msgstr "Crea nuova lista"
@@ -801,7 +783,7 @@ msgstr "Crea template"
msgid "Create workspace" msgid "Create workspace"
msgstr "Crea spazio di lavoro" msgstr "Crea spazio di lavoro"
#: src/views/card/components/ActivityList.tsx:111 #: src/views/card/components/ActivityList.tsx:100
msgid "created the card" msgid "created the card"
msgstr "ha creato la carta" msgstr "ha creato la carta"
@@ -875,7 +857,7 @@ msgstr "Elimina"
msgid "Delete account" msgid "Delete account"
msgstr "Elimina account" msgstr "Elimina account"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete board" msgid "Delete board"
msgstr "Elimina bacheca" msgstr "Elimina bacheca"
@@ -891,7 +873,7 @@ msgstr "Elimina commento"
msgid "Delete list" msgid "Delete list"
msgstr "Elimina lista" msgstr "Elimina lista"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete template" msgid "Delete template"
msgstr "Elimina template" msgstr "Elimina template"
@@ -901,21 +883,21 @@ msgstr "Elimina template"
msgid "Delete workspace" msgid "Delete workspace"
msgstr "Elimina spazio di lavoro" msgstr "Elimina spazio di lavoro"
#: src/views/card/components/ActivityList.tsx:121 #: src/views/card/components/ActivityList.tsx:110
msgid "deleted a checklist" msgid "deleted a checklist"
msgstr "ha eliminato una checklist" msgstr "ha eliminato una checklist"
#: src/views/card/components/ActivityList.tsx:126 #: src/views/card/components/ActivityList.tsx:115
msgid "deleted a checklist item" msgid "deleted a checklist item"
msgstr "ha eliminato un elemento della checklist" msgstr "ha eliminato un elemento della checklist"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:209 #: src/views/card/components/ActivityList.tsx:198
msgid "deleted checklist <0>{0}</0>" msgid "deleted checklist <0>{0}</0>"
msgstr "ha eliminato la checklist <0>{0}</0>" msgstr "ha eliminato la checklist <0>{0}</0>"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:252 #: src/views/card/components/ActivityList.tsx:241
msgid "deleted checklist item <0>{0}</0>" msgid "deleted checklist item <0>{0}</0>"
msgstr "ha eliminato l'elemento <0>{0}</0> della checklist" msgstr "ha eliminato l'elemento <0>{0}</0> della checklist"
@@ -1011,7 +993,7 @@ msgstr "Scade domani"
msgid "Edit" msgid "Edit"
msgstr "Modifica" msgstr "Modifica"
#: src/views/board/components/BoardDropdown.tsx:84 #: src/views/board/components/BoardDropdown.tsx:44
#: src/views/board/components/UpdateBoardSlugForm.tsx:116 #: src/views/board/components/UpdateBoardSlugForm.tsx:116
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Modifica URL della bacheca" msgstr "Modifica URL della bacheca"
@@ -1299,11 +1281,11 @@ msgid "Get Started"
msgstr "Inizia ora" msgstr "Inizia ora"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:65 #: src/views/boards/components/BoardsList.tsx:44
msgid "Get started by creating a new {0}" msgid "Get started by creating a new {0}"
msgstr "Inizia creando un nuovo {0}" msgstr "Inizia creando un nuovo {0}"
#: src/views/board/index.tsx:524 #: src/views/board/index.tsx:522
msgid "Get started by creating a new list" msgid "Get started by creating a new list"
msgstr "Inizia creando una nuova lista" msgstr "Inizia creando una nuova lista"
@@ -1613,7 +1595,7 @@ msgstr "Nome lista"
msgid "Lists" msgid "Lists"
msgstr "Liste" msgstr "Liste"
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Load more activities" msgid "Load more activities"
msgstr "Carica altre attività" msgstr "Carica altre attività"
@@ -1621,7 +1603,7 @@ msgstr "Carica altre attività"
msgid "Loading permissions..." msgid "Loading permissions..."
msgstr "Caricamento permessi..." msgstr "Caricamento permessi..."
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Loading..." msgid "Loading..."
msgstr "Caricamento in corso..." msgstr "Caricamento in corso..."
@@ -1649,16 +1631,16 @@ msgstr "Bassa priorità"
msgid "magic link" msgid "magic link"
msgstr "link magico" msgstr "link magico"
#: src/views/board/components/BoardDropdown.tsx:73 #: src/views/board/components/BoardDropdown.tsx:34
msgid "Make template" msgid "Make template"
msgstr "Crea template" msgstr "Crea template"
#: src/views/card/components/ActivityList.tsx:125 #: src/views/card/components/ActivityList.tsx:114
msgid "marked a checklist item as incomplete" msgid "marked a checklist item as incomplete"
msgstr "ha segnato un elemento della checklist come incompleto" msgstr "ha segnato un elemento della checklist come incompleto"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:243 #: src/views/card/components/ActivityList.tsx:232
msgid "marked checklist item <0>{0}</0> as incomplete" msgid "marked checklist item <0>{0}</0> as incomplete"
msgstr "ha segnato l'elemento <0>{0}</0> della checklist come incompleto" msgstr "ha segnato l'elemento <0>{0}</0> della checklist come incompleto"
@@ -1666,8 +1648,6 @@ msgstr "ha segnato l'elemento <0>{0}</0> della checklist come incompleto"
msgid "Medium Priority" msgid "Medium Priority"
msgstr "Media priorità" msgstr "Media priorità"
#: src/views/card/components/ActivityList.tsx:44
#: src/views/card/components/ActivityList.tsx:75
#: src/views/members/index.tsx:201 #: src/views/members/index.tsx:201
msgid "Member" msgid "Member"
msgstr "Membro" msgstr "Membro"
@@ -1696,11 +1676,11 @@ msgstr "fatturazione mensile"
#. placeholder {0}: truncate(fromList) #. placeholder {0}: truncate(fromList)
#. placeholder {1}: truncate(toList) #. placeholder {1}: truncate(toList)
#: src/views/card/components/ActivityList.tsx:145 #: src/views/card/components/ActivityList.tsx:134
msgid "moved the card from <0>{0}</0> to<1>{1}</1>" msgid "moved the card from <0>{0}</0> to<1>{1}</1>"
msgstr "ha spostato la scheda da <0>{0}</0> a<1>{1}</1>" msgstr "ha spostato la scheda da <0>{0}</0> a<1>{1}</1>"
#: src/views/card/components/ActivityList.tsx:114 #: src/views/card/components/ActivityList.tsx:103
msgid "moved the card to another list" msgid "moved the card to another list"
msgstr "ha spostato la scheda in un'altra lista" msgstr "ha spostato la scheda in un'altra lista"
@@ -1782,7 +1762,7 @@ msgid "Next Steps"
msgstr "Prossimi passi" msgstr "Prossimi passi"
#. placeholder {0}: isTemplate ? "templates" : "boards" #. placeholder {0}: isTemplate ? "templates" : "boards"
#: src/views/boards/components/BoardsList.tsx:62 #: src/views/boards/components/BoardsList.tsx:41
msgid "No {0}" msgid "No {0}"
msgstr "Nessun {0}" msgstr "Nessun {0}"
@@ -1810,11 +1790,11 @@ msgstr "Nessun URL di download disponibile per questo allegato."
msgid "No keyboard shortcuts registered." msgid "No keyboard shortcuts registered."
msgstr "Nessuna scorciatoia da tastiera registrata." msgstr "Nessuna scorciatoia da tastiera registrata."
#: src/views/board/index.tsx:520 #: src/views/board/index.tsx:518
msgid "No lists" msgid "No lists"
msgstr "Nessuna lista" msgstr "Nessuna lista"
#: src/views/board/index.tsx:525 #: src/views/board/index.tsx:523
msgid "No lists have been created yet" msgid "No lists have been created yet"
msgstr "Nessuna lista è stata ancora creata" msgstr "Nessuna lista è stata ancora creata"
@@ -1989,7 +1969,6 @@ msgstr "Seleziona un file da caricare."
#: src/components/DeleteLabelConfirmation.tsx:26 #: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:158 #: src/components/NewWorkspaceForm.tsx:158
#: src/views/board/components/BoardDropdown.tsx:63
#: src/views/board/components/NewCardForm.tsx:184 #: src/views/board/components/NewCardForm.tsx:184
#: src/views/board/components/NewListForm.tsx:79 #: src/views/board/components/NewListForm.tsx:79
#: src/views/board/components/NewTemplateForm.tsx:61 #: src/views/board/components/NewTemplateForm.tsx:61
@@ -2117,52 +2096,44 @@ msgstr "Remoto"
msgid "Remove" msgid "Remove"
msgstr "Rimuovi" msgstr "Rimuovi"
#: src/views/board/components/BoardDropdown.tsx:92
msgid "Remove from favorites"
msgstr "Rimuovi dai preferiti"
#: src/views/members/index.tsx:232 #: src/views/members/index.tsx:232
msgid "Remove member" msgid "Remove member"
msgstr "Rimuovi membro" msgstr "Rimuovi membro"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:103 #: src/views/card/components/ActivityList.tsx:92
msgid "removed {0} labels: <0>{labelList}</0>" msgid "removed {0} labels: <0>{labelList}</0>"
msgstr "ha rimosso {0} etichette: <0>{labelList}</0>" msgstr "ha rimosso {0} etichette: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:116 #: src/views/card/components/ActivityList.tsx:105
msgid "removed a label from the card" msgid "removed a label from the card"
msgstr "ha rimosso un'etichetta dalla scheda" msgstr "ha rimosso un'etichetta dalla scheda"
#: src/views/card/components/ActivityList.tsx:118 #: src/views/card/components/ActivityList.tsx:107
msgid "removed a member from the card" msgid "removed a member from the card"
msgstr "ha rimosso un membro dalla scheda" msgstr "ha rimosso un membro dalla scheda"
#: src/views/board/components/BoardDropdown.tsx:52
msgid "Removed from favorites"
msgstr "Rimosso dai preferiti"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:185 #: src/views/card/components/ActivityList.tsx:174
msgid "removed label <0>{0}</0>" msgid "removed label <0>{0}</0>"
msgstr "ha rimosso l'etichetta <0>{0}</0>" msgstr "ha rimosso l'etichetta <0>{0}</0>"
#: src/views/card/components/ActivityList.tsx:129 #: src/views/card/components/ActivityList.tsx:118
#: src/views/card/components/ActivityList.tsx:288 #: src/views/card/components/ActivityList.tsx:277
msgid "removed the due date" msgid "removed the due date"
msgstr "ha rimosso la data di scadenza" msgstr "ha rimosso la data di scadenza"
#: src/views/card/components/ActivityList.tsx:120 #: src/views/card/components/ActivityList.tsx:109
msgid "renamed a checklist" msgid "renamed a checklist"
msgstr "ha rinominato una checklist" msgstr "ha rinominato una checklist"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:201 #: src/views/card/components/ActivityList.tsx:190
msgid "renamed checklist <0>{0}</0>" msgid "renamed checklist <0>{0}</0>"
msgstr "ha rinominato la checklist <0>{0}</0>" msgstr "ha rinominato la checklist <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:225 #: src/views/card/components/ActivityList.tsx:214
msgid "renamed checklist item to <0>{0}</0>" msgid "renamed checklist item to <0>{0}</0>"
msgstr "ha rinominato l'elemento della checklist in <0>{0}</0>" msgstr "ha rinominato l'elemento della checklist in <0>{0}</0>"
@@ -2248,7 +2219,7 @@ msgstr "Self Host"
msgid "Self host with Github" msgid "Self host with Github"
msgstr "Self host con Github" msgstr "Self host con Github"
#: src/views/card/components/ActivityList.tsx:154 #: src/views/card/components/ActivityList.tsx:143
msgid "self-assigned the card" msgid "self-assigned the card"
msgstr "si è auto-assegnato la scheda" msgstr "si è auto-assegnato la scheda"
@@ -2268,7 +2239,7 @@ msgstr "Senior"
msgid "Set due date" msgid "Set due date"
msgstr "Imposta data di scadenza" msgstr "Imposta data di scadenza"
#: src/views/card/components/ActivityList.tsx:127 #: src/views/card/components/ActivityList.tsx:116
msgid "set the due date" msgid "set the due date"
msgstr "ha impostato la data di scadenza" msgstr "ha impostato la data di scadenza"
@@ -2632,10 +2603,6 @@ msgstr "Impossibile ripristinare i permessi"
msgid "Unable to send feedback" msgid "Unable to send feedback"
msgstr "Impossibile inviare feedback" msgstr "Impossibile inviare feedback"
#: src/views/board/components/BoardDropdown.tsx:62
msgid "Unable to update board"
msgstr "Impossibile aggiornare la bacheca"
#: src/views/board/components/UpdateBoardSlugForm.tsx:72 #: src/views/board/components/UpdateBoardSlugForm.tsx:72
msgid "Unable to update board URL" msgid "Unable to update board URL"
msgstr "Impossibile aggiornare l'URL della bacheca" msgstr "Impossibile aggiornare l'URL della bacheca"
@@ -2687,12 +2654,12 @@ msgstr "Impossibile aggiornare i permessi"
msgid "Unable to update role" msgid "Unable to update role"
msgstr "Impossibile aggiornare il ruolo" msgstr "Impossibile aggiornare il ruolo"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:168 #: src/views/card/components/ActivityList.tsx:157
msgid "unassigned <0>{0}</0> from the card" msgid "unassigned <0>{0}</0> from the card"
msgstr "ha rimosso l'assegnazione di <0>{0}</0> dalla scheda" msgstr "ha rimosso l'assegnazione di <0>{0}</0> dalla scheda"
#: src/views/card/components/ActivityList.tsx:165 #: src/views/card/components/ActivityList.tsx:154
msgid "unassigned themselves from the card" msgid "unassigned themselves from the card"
msgstr "si è rimosso dall'assegnazione della scheda" msgstr "si è rimosso dall'assegnazione della scheda"
@@ -2751,24 +2718,24 @@ msgstr "Aggiorna"
msgid "Update label" msgid "Update label"
msgstr "Aggiorna etichetta" msgstr "Aggiorna etichetta"
#: src/views/card/components/ActivityList.tsx:123 #: src/views/card/components/ActivityList.tsx:112
msgid "updated a checklist item" msgid "updated a checklist item"
msgstr "ha aggiornato un elemento della checklist" msgstr "ha aggiornato un elemento della checklist"
#: src/views/card/components/ActivityList.tsx:113 #: src/views/card/components/ActivityList.tsx:102
msgid "updated the description" msgid "updated the description"
msgstr "ha aggiornato la descrizione" msgstr "ha aggiornato la descrizione"
#: src/views/card/components/ActivityList.tsx:128 #: src/views/card/components/ActivityList.tsx:117
msgid "updated the due date" msgid "updated the due date"
msgstr "ha aggiornato la data di scadenza" msgstr "ha aggiornato la data di scadenza"
#: src/views/card/components/ActivityList.tsx:112 #: src/views/card/components/ActivityList.tsx:101
msgid "updated the title" msgid "updated the title"
msgstr "ha aggiornato il titolo" msgstr "ha aggiornato il titolo"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:137 #: src/views/card/components/ActivityList.tsx:126
msgid "updated the title to <0>{0}</0>" msgid "updated the title to <0>{0}</0>"
msgstr "ha aggiornato il titolo in <0>{0}</0>" msgstr "ha aggiornato il titolo in <0>{0}</0>"
@@ -2893,7 +2860,7 @@ msgstr "Perché creare un Trello open source?"
#: src/views/boards/index.tsx:35 #: src/views/boards/index.tsx:35
#: src/views/members/index.tsx:257 #: src/views/members/index.tsx:257
#: src/views/public/board/index.tsx:120 #: src/views/public/board/index.tsx:120
#: src/views/public/boards/index.tsx:65 #: src/views/public/boards/index.tsx:66
msgid "Workspace" msgid "Workspace"
msgstr "Spazio di lavoro" msgstr "Spazio di lavoro"
@@ -2998,8 +2965,8 @@ msgstr "Puoi effettuare il self-hosting seguendo le istruzioni nel nostro <0>rep
#: src/views/board/components/UpdateBoardSlugButton.tsx:31 #: src/views/board/components/UpdateBoardSlugButton.tsx:31
#: src/views/board/components/VisibilityButton.tsx:72 #: src/views/board/components/VisibilityButton.tsx:72
#: src/views/board/index.tsx:472 #: src/views/board/index.tsx:472
#: src/views/board/index.tsx:530 #: src/views/board/index.tsx:528
#: src/views/boards/components/BoardsList.tsx:70 #: src/views/boards/components/BoardsList.tsx:49
#: src/views/boards/index.tsx:46 #: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:67 #: src/views/boards/index.tsx:67
msgid "You don't have permission" msgid "You don't have permission"

File diff suppressed because one or more lines are too long

View File

@@ -35,16 +35,6 @@ msgstr "{0}"
msgid "{0} | {1}" msgid "{0} | {1}"
msgstr "{0} | {1}" msgstr "{0} | {1}"
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:54
msgid "{0} has been added to your favorites."
msgstr "{0} is toegevoegd aan je favorieten."
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:55
msgid "{0} has been removed from your favorites."
msgstr "{0} is verwijderd uit je favorieten."
#. placeholder {0}: labelPublicIds.length #. placeholder {0}: labelPublicIds.length
#: src/views/board/components/NewCardForm.tsx:453 #: src/views/board/components/NewCardForm.tsx:453
msgid "{0} labels" msgid "{0} labels"
@@ -141,50 +131,42 @@ msgstr "Label toevoegen"
msgid "Add member" msgid "Add member"
msgstr "Lid toevoegen" msgstr "Lid toevoegen"
#: src/views/board/components/BoardDropdown.tsx:93
msgid "Add to favorites"
msgstr "Toevoegen aan favorieten"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:89 #: src/views/card/components/ActivityList.tsx:78
msgid "added {0} labels: <0>{labelList}</0>" msgid "added {0} labels: <0>{labelList}</0>"
msgstr "{0} labels toegevoegd: <0>{labelList}</0>" msgstr "{0} labels toegevoegd: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:119 #: src/views/card/components/ActivityList.tsx:108
msgid "added a checklist" msgid "added a checklist"
msgstr "heeft een checklist toegevoegd" msgstr "heeft een checklist toegevoegd"
#: src/views/card/components/ActivityList.tsx:122 #: src/views/card/components/ActivityList.tsx:111
msgid "added a checklist item" msgid "added a checklist item"
msgstr "heeft een checklistitem toegevoegd" msgstr "heeft een checklistitem toegevoegd"
#: src/views/card/components/ActivityList.tsx:115 #: src/views/card/components/ActivityList.tsx:104
msgid "added a label to the card" msgid "added a label to the card"
msgstr "heeft een label aan de kaart toegevoegd" msgstr "heeft een label aan de kaart toegevoegd"
#: src/views/card/components/ActivityList.tsx:117 #: src/views/card/components/ActivityList.tsx:106
msgid "added a member to the card" msgid "added a member to the card"
msgstr "heeft een lid aan de kaart toegevoegd" msgstr "heeft een lid aan de kaart toegevoegd"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:193 #: src/views/card/components/ActivityList.tsx:182
msgid "added checklist <0>{0}</0>" msgid "added checklist <0>{0}</0>"
msgstr "heeft checklist <0>{0}</0> toegevoegd" msgstr "heeft checklist <0>{0}</0> toegevoegd"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:217 #: src/views/card/components/ActivityList.tsx:206
msgid "added checklist item <0>{0}</0>" msgid "added checklist item <0>{0}</0>"
msgstr "heeft checklistitem <0>{0}</0> toegevoegd" msgstr "heeft checklistitem <0>{0}</0> toegevoegd"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:177 #: src/views/card/components/ActivityList.tsx:166
msgid "added label <0>{0}</0>" msgid "added label <0>{0}</0>"
msgstr "heeft label <0>{0}</0> toegevoegd" msgstr "heeft label <0>{0}</0> toegevoegd"
#: src/views/board/components/BoardDropdown.tsx:51
msgid "Added to favorites"
msgstr "Toegevoegd aan favorieten"
#: src/views/members/components/InviteMemberForm.tsx:327 #: src/views/members/components/InviteMemberForm.tsx:327
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat." msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
msgstr "Het toevoegen van een nieuw lid kost een extra {price} ({billingType}) per plaats." msgstr "Het toevoegen van een nieuw lid kost een extra {price} ({billingType}) per plaats."
@@ -300,8 +282,8 @@ msgstr "Weet je zeker dat je dit label wilt verwijderen?"
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Weet je zeker dat je je account wilt verwijderen?" msgstr "Weet je zeker dat je je account wilt verwijderen?"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:157 #: src/views/card/components/ActivityList.tsx:146
msgid "assigned <0>{0}</0> to the card" msgid "assigned <0>{0}</0> to the card"
msgstr "heeft <0>{0}</0> aan de kaart toegewezen" msgstr "heeft <0>{0}</0> aan de kaart toegewezen"
@@ -580,8 +562,8 @@ msgstr "Wachtwoord wijzigen"
msgid "Change your language preferences." msgid "Change your language preferences."
msgstr "Wijzig je taalvoorkeuren." msgstr "Wijzig je taalvoorkeuren."
#: src/views/card/components/ActivityList.tsx:267 #: src/views/card/components/ActivityList.tsx:256
#: src/views/card/components/ActivityList.tsx:281 #: src/views/card/components/ActivityList.tsx:270
msgid "changed the due date to <0>{formattedDate}</0>" msgid "changed the due date to <0>{formattedDate}</0>"
msgstr "heeft de vervaldatum gewijzigd naar <0>{formattedDate}</0>" msgstr "heeft de vervaldatum gewijzigd naar <0>{formattedDate}</0>"
@@ -669,12 +651,12 @@ msgstr "Voltooid"
msgid "Complete control and ownership:" msgid "Complete control and ownership:"
msgstr "Volledige controle en eigendom:" msgstr "Volledige controle en eigendom:"
#: src/views/card/components/ActivityList.tsx:124 #: src/views/card/components/ActivityList.tsx:113
msgid "completed a checklist item" msgid "completed a checklist item"
msgstr "heeft een checklistitem voltooid" msgstr "heeft een checklistitem voltooid"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:234 #: src/views/card/components/ActivityList.tsx:223
msgid "completed checklist item <0>{0}</0>" msgid "completed checklist item <0>{0}</0>"
msgstr "heeft checklistitem <0>{0}</0> voltooid" msgstr "heeft checklistitem <0>{0}</0> voltooid"
@@ -773,7 +755,7 @@ msgid "Create list"
msgstr "Lijst maken" msgstr "Lijst maken"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:79 #: src/views/boards/components/BoardsList.tsx:58
#: src/views/boards/index.tsx:28 #: src/views/boards/index.tsx:28
msgid "Create new {0}" msgid "Create new {0}"
msgstr "Nieuwe {0} maken" msgstr "Nieuwe {0} maken"
@@ -788,7 +770,7 @@ msgid "Create new label"
msgstr "Maak nieuw label" msgstr "Maak nieuw label"
#: src/views/board/index.tsx:74 #: src/views/board/index.tsx:74
#: src/views/board/index.tsx:539 #: src/views/board/index.tsx:537
msgid "Create new list" msgid "Create new list"
msgstr "Maak nieuwe lijst" msgstr "Maak nieuwe lijst"
@@ -801,7 +783,7 @@ msgstr "Sjabloon maken"
msgid "Create workspace" msgid "Create workspace"
msgstr "Werkruimte maken" msgstr "Werkruimte maken"
#: src/views/card/components/ActivityList.tsx:111 #: src/views/card/components/ActivityList.tsx:100
msgid "created the card" msgid "created the card"
msgstr "heeft de kaart aangemaakt" msgstr "heeft de kaart aangemaakt"
@@ -875,7 +857,7 @@ msgstr "Verwijderen"
msgid "Delete account" msgid "Delete account"
msgstr "Account verwijderen" msgstr "Account verwijderen"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete board" msgid "Delete board"
msgstr "Board verwijderen" msgstr "Board verwijderen"
@@ -891,7 +873,7 @@ msgstr "Reactie verwijderen"
msgid "Delete list" msgid "Delete list"
msgstr "Lijst verwijderen" msgstr "Lijst verwijderen"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete template" msgid "Delete template"
msgstr "Sjabloon verwijderen" msgstr "Sjabloon verwijderen"
@@ -901,21 +883,21 @@ msgstr "Sjabloon verwijderen"
msgid "Delete workspace" msgid "Delete workspace"
msgstr "Werkruimte verwijderen" msgstr "Werkruimte verwijderen"
#: src/views/card/components/ActivityList.tsx:121 #: src/views/card/components/ActivityList.tsx:110
msgid "deleted a checklist" msgid "deleted a checklist"
msgstr "heeft een checklist verwijderd" msgstr "heeft een checklist verwijderd"
#: src/views/card/components/ActivityList.tsx:126 #: src/views/card/components/ActivityList.tsx:115
msgid "deleted a checklist item" msgid "deleted a checklist item"
msgstr "heeft een checklistitem verwijderd" msgstr "heeft een checklistitem verwijderd"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:209 #: src/views/card/components/ActivityList.tsx:198
msgid "deleted checklist <0>{0}</0>" msgid "deleted checklist <0>{0}</0>"
msgstr "heeft checklist <0>{0}</0> verwijderd" msgstr "heeft checklist <0>{0}</0> verwijderd"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:252 #: src/views/card/components/ActivityList.tsx:241
msgid "deleted checklist item <0>{0}</0>" msgid "deleted checklist item <0>{0}</0>"
msgstr "heeft checklistitem <0>{0}</0> verwijderd" msgstr "heeft checklistitem <0>{0}</0> verwijderd"
@@ -1011,7 +993,7 @@ msgstr "Vervalt morgen"
msgid "Edit" msgid "Edit"
msgstr "Bewerken" msgstr "Bewerken"
#: src/views/board/components/BoardDropdown.tsx:84 #: src/views/board/components/BoardDropdown.tsx:44
#: src/views/board/components/UpdateBoardSlugForm.tsx:116 #: src/views/board/components/UpdateBoardSlugForm.tsx:116
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Board URL bewerken" msgstr "Board URL bewerken"
@@ -1299,11 +1281,11 @@ msgid "Get Started"
msgstr "Aan de slag" msgstr "Aan de slag"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:65 #: src/views/boards/components/BoardsList.tsx:44
msgid "Get started by creating a new {0}" msgid "Get started by creating a new {0}"
msgstr "Begin door een nieuwe {0} te maken" msgstr "Begin door een nieuwe {0} te maken"
#: src/views/board/index.tsx:524 #: src/views/board/index.tsx:522
msgid "Get started by creating a new list" msgid "Get started by creating a new list"
msgstr "Begin door een nieuwe lijst te maken" msgstr "Begin door een nieuwe lijst te maken"
@@ -1613,7 +1595,7 @@ msgstr "Lijstnaam"
msgid "Lists" msgid "Lists"
msgstr "Lijsten" msgstr "Lijsten"
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Load more activities" msgid "Load more activities"
msgstr "Meer activiteiten laden" msgstr "Meer activiteiten laden"
@@ -1621,7 +1603,7 @@ msgstr "Meer activiteiten laden"
msgid "Loading permissions..." msgid "Loading permissions..."
msgstr "Rechten laden..." msgstr "Rechten laden..."
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Loading..." msgid "Loading..."
msgstr "Laden..." msgstr "Laden..."
@@ -1649,16 +1631,16 @@ msgstr "Lage prioriteit"
msgid "magic link" msgid "magic link"
msgstr "magische link" msgstr "magische link"
#: src/views/board/components/BoardDropdown.tsx:73 #: src/views/board/components/BoardDropdown.tsx:34
msgid "Make template" msgid "Make template"
msgstr "Sjabloon maken" msgstr "Sjabloon maken"
#: src/views/card/components/ActivityList.tsx:125 #: src/views/card/components/ActivityList.tsx:114
msgid "marked a checklist item as incomplete" msgid "marked a checklist item as incomplete"
msgstr "heeft een checklistitem als onvoltooid gemarkeerd" msgstr "heeft een checklistitem als onvoltooid gemarkeerd"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:243 #: src/views/card/components/ActivityList.tsx:232
msgid "marked checklist item <0>{0}</0> as incomplete" msgid "marked checklist item <0>{0}</0> as incomplete"
msgstr "heeft checklistitem <0>{0}</0> als onvoltooid gemarkeerd" msgstr "heeft checklistitem <0>{0}</0> als onvoltooid gemarkeerd"
@@ -1666,8 +1648,6 @@ msgstr "heeft checklistitem <0>{0}</0> als onvoltooid gemarkeerd"
msgid "Medium Priority" msgid "Medium Priority"
msgstr "Gemiddelde prioriteit" msgstr "Gemiddelde prioriteit"
#: src/views/card/components/ActivityList.tsx:44
#: src/views/card/components/ActivityList.tsx:75
#: src/views/members/index.tsx:201 #: src/views/members/index.tsx:201
msgid "Member" msgid "Member"
msgstr "Lid" msgstr "Lid"
@@ -1696,11 +1676,11 @@ msgstr "maandelijkse facturering"
#. placeholder {0}: truncate(fromList) #. placeholder {0}: truncate(fromList)
#. placeholder {1}: truncate(toList) #. placeholder {1}: truncate(toList)
#: src/views/card/components/ActivityList.tsx:145 #: src/views/card/components/ActivityList.tsx:134
msgid "moved the card from <0>{0}</0> to<1>{1}</1>" msgid "moved the card from <0>{0}</0> to<1>{1}</1>"
msgstr "heeft de kaart verplaatst van <0>{0}</0> naar<1>{1}</1>" msgstr "heeft de kaart verplaatst van <0>{0}</0> naar<1>{1}</1>"
#: src/views/card/components/ActivityList.tsx:114 #: src/views/card/components/ActivityList.tsx:103
msgid "moved the card to another list" msgid "moved the card to another list"
msgstr "heeft de kaart naar een andere lijst verplaatst" msgstr "heeft de kaart naar een andere lijst verplaatst"
@@ -1782,7 +1762,7 @@ msgid "Next Steps"
msgstr "Volgende stappen" msgstr "Volgende stappen"
#. placeholder {0}: isTemplate ? "templates" : "boards" #. placeholder {0}: isTemplate ? "templates" : "boards"
#: src/views/boards/components/BoardsList.tsx:62 #: src/views/boards/components/BoardsList.tsx:41
msgid "No {0}" msgid "No {0}"
msgstr "Geen {0}" msgstr "Geen {0}"
@@ -1810,11 +1790,11 @@ msgstr "Geen download-URL beschikbaar voor deze bijlage."
msgid "No keyboard shortcuts registered." msgid "No keyboard shortcuts registered."
msgstr "Geen sneltoetsen geregistreerd." msgstr "Geen sneltoetsen geregistreerd."
#: src/views/board/index.tsx:520 #: src/views/board/index.tsx:518
msgid "No lists" msgid "No lists"
msgstr "Geen lijsten" msgstr "Geen lijsten"
#: src/views/board/index.tsx:525 #: src/views/board/index.tsx:523
msgid "No lists have been created yet" msgid "No lists have been created yet"
msgstr "Er zijn nog geen lijsten aangemaakt" msgstr "Er zijn nog geen lijsten aangemaakt"
@@ -1989,7 +1969,6 @@ msgstr "Selecteer een bestand om te uploaden."
#: src/components/DeleteLabelConfirmation.tsx:26 #: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:158 #: src/components/NewWorkspaceForm.tsx:158
#: src/views/board/components/BoardDropdown.tsx:63
#: src/views/board/components/NewCardForm.tsx:184 #: src/views/board/components/NewCardForm.tsx:184
#: src/views/board/components/NewListForm.tsx:79 #: src/views/board/components/NewListForm.tsx:79
#: src/views/board/components/NewTemplateForm.tsx:61 #: src/views/board/components/NewTemplateForm.tsx:61
@@ -2117,52 +2096,44 @@ msgstr "Op afstand"
msgid "Remove" msgid "Remove"
msgstr "Verwijderen" msgstr "Verwijderen"
#: src/views/board/components/BoardDropdown.tsx:92
msgid "Remove from favorites"
msgstr "Verwijderen uit favorieten"
#: src/views/members/index.tsx:232 #: src/views/members/index.tsx:232
msgid "Remove member" msgid "Remove member"
msgstr "Lid verwijderen" msgstr "Lid verwijderen"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:103 #: src/views/card/components/ActivityList.tsx:92
msgid "removed {0} labels: <0>{labelList}</0>" msgid "removed {0} labels: <0>{labelList}</0>"
msgstr "{0} labels verwijderd: <0>{labelList}</0>" msgstr "{0} labels verwijderd: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:116 #: src/views/card/components/ActivityList.tsx:105
msgid "removed a label from the card" msgid "removed a label from the card"
msgstr "heeft een label van de kaart verwijderd" msgstr "heeft een label van de kaart verwijderd"
#: src/views/card/components/ActivityList.tsx:118 #: src/views/card/components/ActivityList.tsx:107
msgid "removed a member from the card" msgid "removed a member from the card"
msgstr "heeft een lid van de kaart verwijderd" msgstr "heeft een lid van de kaart verwijderd"
#: src/views/board/components/BoardDropdown.tsx:52
msgid "Removed from favorites"
msgstr "Verwijderd uit favorieten"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:185 #: src/views/card/components/ActivityList.tsx:174
msgid "removed label <0>{0}</0>" msgid "removed label <0>{0}</0>"
msgstr "heeft label <0>{0}</0> verwijderd" msgstr "heeft label <0>{0}</0> verwijderd"
#: src/views/card/components/ActivityList.tsx:129 #: src/views/card/components/ActivityList.tsx:118
#: src/views/card/components/ActivityList.tsx:288 #: src/views/card/components/ActivityList.tsx:277
msgid "removed the due date" msgid "removed the due date"
msgstr "heeft de vervaldatum verwijderd" msgstr "heeft de vervaldatum verwijderd"
#: src/views/card/components/ActivityList.tsx:120 #: src/views/card/components/ActivityList.tsx:109
msgid "renamed a checklist" msgid "renamed a checklist"
msgstr "heeft een checklist hernoemd" msgstr "heeft een checklist hernoemd"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:201 #: src/views/card/components/ActivityList.tsx:190
msgid "renamed checklist <0>{0}</0>" msgid "renamed checklist <0>{0}</0>"
msgstr "heeft checklist <0>{0}</0> hernoemd" msgstr "heeft checklist <0>{0}</0> hernoemd"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:225 #: src/views/card/components/ActivityList.tsx:214
msgid "renamed checklist item to <0>{0}</0>" msgid "renamed checklist item to <0>{0}</0>"
msgstr "checklistitem hernoemd naar <0>{0}</0>" msgstr "checklistitem hernoemd naar <0>{0}</0>"
@@ -2248,7 +2219,7 @@ msgstr "Zelf hosten"
msgid "Self host with Github" msgid "Self host with Github"
msgstr "Zelf hosten met Github" msgstr "Zelf hosten met Github"
#: src/views/card/components/ActivityList.tsx:154 #: src/views/card/components/ActivityList.tsx:143
msgid "self-assigned the card" msgid "self-assigned the card"
msgstr "heeft de kaart aan zichzelf toegewezen" msgstr "heeft de kaart aan zichzelf toegewezen"
@@ -2268,7 +2239,7 @@ msgstr "Senior"
msgid "Set due date" msgid "Set due date"
msgstr "Vervaldatum instellen" msgstr "Vervaldatum instellen"
#: src/views/card/components/ActivityList.tsx:127 #: src/views/card/components/ActivityList.tsx:116
msgid "set the due date" msgid "set the due date"
msgstr "heeft de vervaldatum ingesteld" msgstr "heeft de vervaldatum ingesteld"
@@ -2632,10 +2603,6 @@ msgstr "Kan machtigingen niet resetten"
msgid "Unable to send feedback" msgid "Unable to send feedback"
msgstr "Feedback kon niet worden verzonden" msgstr "Feedback kon niet worden verzonden"
#: src/views/board/components/BoardDropdown.tsx:62
msgid "Unable to update board"
msgstr "Kan bord niet bijwerken"
#: src/views/board/components/UpdateBoardSlugForm.tsx:72 #: src/views/board/components/UpdateBoardSlugForm.tsx:72
msgid "Unable to update board URL" msgid "Unable to update board URL"
msgstr "Kan board URL niet bijwerken" msgstr "Kan board URL niet bijwerken"
@@ -2687,12 +2654,12 @@ msgstr "Kan machtigingen niet bijwerken"
msgid "Unable to update role" msgid "Unable to update role"
msgstr "Kan rol niet bijwerken" msgstr "Kan rol niet bijwerken"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:168 #: src/views/card/components/ActivityList.tsx:157
msgid "unassigned <0>{0}</0> from the card" msgid "unassigned <0>{0}</0> from the card"
msgstr "<0>{0}</0> van de kaart verwijderd" msgstr "<0>{0}</0> van de kaart verwijderd"
#: src/views/card/components/ActivityList.tsx:165 #: src/views/card/components/ActivityList.tsx:154
msgid "unassigned themselves from the card" msgid "unassigned themselves from the card"
msgstr "zichzelf van de kaart verwijderd" msgstr "zichzelf van de kaart verwijderd"
@@ -2751,24 +2718,24 @@ msgstr "Bijwerken"
msgid "Update label" msgid "Update label"
msgstr "Label bijwerken" msgstr "Label bijwerken"
#: src/views/card/components/ActivityList.tsx:123 #: src/views/card/components/ActivityList.tsx:112
msgid "updated a checklist item" msgid "updated a checklist item"
msgstr "een checklistitem bijgewerkt" msgstr "een checklistitem bijgewerkt"
#: src/views/card/components/ActivityList.tsx:113 #: src/views/card/components/ActivityList.tsx:102
msgid "updated the description" msgid "updated the description"
msgstr "beschrijving bijgewerkt" msgstr "beschrijving bijgewerkt"
#: src/views/card/components/ActivityList.tsx:128 #: src/views/card/components/ActivityList.tsx:117
msgid "updated the due date" msgid "updated the due date"
msgstr "heeft de vervaldatum bijgewerkt" msgstr "heeft de vervaldatum bijgewerkt"
#: src/views/card/components/ActivityList.tsx:112 #: src/views/card/components/ActivityList.tsx:101
msgid "updated the title" msgid "updated the title"
msgstr "titel bijgewerkt" msgstr "titel bijgewerkt"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:137 #: src/views/card/components/ActivityList.tsx:126
msgid "updated the title to <0>{0}</0>" msgid "updated the title to <0>{0}</0>"
msgstr "titel bijgewerkt naar <0>{0}</0>" msgstr "titel bijgewerkt naar <0>{0}</0>"
@@ -2893,7 +2860,7 @@ msgstr "Waarom een open source Trello maken?"
#: src/views/boards/index.tsx:35 #: src/views/boards/index.tsx:35
#: src/views/members/index.tsx:257 #: src/views/members/index.tsx:257
#: src/views/public/board/index.tsx:120 #: src/views/public/board/index.tsx:120
#: src/views/public/boards/index.tsx:65 #: src/views/public/boards/index.tsx:66
msgid "Workspace" msgid "Workspace"
msgstr "Werkruimte" msgstr "Werkruimte"
@@ -2998,8 +2965,8 @@ msgstr "Je kunt zelf hosten door de instructies in onze <0>repo</0> te volgen."
#: src/views/board/components/UpdateBoardSlugButton.tsx:31 #: src/views/board/components/UpdateBoardSlugButton.tsx:31
#: src/views/board/components/VisibilityButton.tsx:72 #: src/views/board/components/VisibilityButton.tsx:72
#: src/views/board/index.tsx:472 #: src/views/board/index.tsx:472
#: src/views/board/index.tsx:530 #: src/views/board/index.tsx:528
#: src/views/boards/components/BoardsList.tsx:70 #: src/views/boards/components/BoardsList.tsx:49
#: src/views/boards/index.tsx:46 #: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:67 #: src/views/boards/index.tsx:67
msgid "You don't have permission" msgid "You don't have permission"

File diff suppressed because one or more lines are too long

View File

@@ -40,16 +40,6 @@ msgstr "{0}"
msgid "{0} | {1}" msgid "{0} | {1}"
msgstr "{0} | {1}" msgstr "{0} | {1}"
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:54
msgid "{0} has been added to your favorites."
msgstr "{0} zostało dodane do ulubionych."
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:55
msgid "{0} has been removed from your favorites."
msgstr "{0} zostało usunięte z ulubionych."
#. placeholder {0}: labelPublicIds.length #. placeholder {0}: labelPublicIds.length
#: src/views/board/components/NewCardForm.tsx:453 #: src/views/board/components/NewCardForm.tsx:453
msgid "{0} labels" msgid "{0} labels"
@@ -146,50 +136,42 @@ msgstr "Dodaj etykietę"
msgid "Add member" msgid "Add member"
msgstr "Dodaj członka" msgstr "Dodaj członka"
#: src/views/board/components/BoardDropdown.tsx:93
msgid "Add to favorites"
msgstr "Dodaj do ulubionych"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:89 #: src/views/card/components/ActivityList.tsx:78
msgid "added {0} labels: <0>{labelList}</0>" msgid "added {0} labels: <0>{labelList}</0>"
msgstr "dodano {0} etykiety: <0>{labelList}</0>" msgstr "dodano {0} etykiety: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:119 #: src/views/card/components/ActivityList.tsx:108
msgid "added a checklist" msgid "added a checklist"
msgstr "dodał listę kontrolną" msgstr "dodał listę kontrolną"
#: src/views/card/components/ActivityList.tsx:122 #: src/views/card/components/ActivityList.tsx:111
msgid "added a checklist item" msgid "added a checklist item"
msgstr "dodał(a) element listy kontrolnej" msgstr "dodał(a) element listy kontrolnej"
#: src/views/card/components/ActivityList.tsx:115 #: src/views/card/components/ActivityList.tsx:104
msgid "added a label to the card" msgid "added a label to the card"
msgstr "dodał(a) etykietę do karty" msgstr "dodał(a) etykietę do karty"
#: src/views/card/components/ActivityList.tsx:117 #: src/views/card/components/ActivityList.tsx:106
msgid "added a member to the card" msgid "added a member to the card"
msgstr "dodał(a) członka do karty" msgstr "dodał(a) członka do karty"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:193 #: src/views/card/components/ActivityList.tsx:182
msgid "added checklist <0>{0}</0>" msgid "added checklist <0>{0}</0>"
msgstr "dodał(a) listę kontrolną <0>{0}</0>" msgstr "dodał(a) listę kontrolną <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:217 #: src/views/card/components/ActivityList.tsx:206
msgid "added checklist item <0>{0}</0>" msgid "added checklist item <0>{0}</0>"
msgstr "dodał(a) element listy kontrolnej <0>{0}</0>" msgstr "dodał(a) element listy kontrolnej <0>{0}</0>"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:177 #: src/views/card/components/ActivityList.tsx:166
msgid "added label <0>{0}</0>" msgid "added label <0>{0}</0>"
msgstr "dodał(a) etykietę <0>{0}</0>" msgstr "dodał(a) etykietę <0>{0}</0>"
#: src/views/board/components/BoardDropdown.tsx:51
msgid "Added to favorites"
msgstr "Dodano do ulubionych"
#: src/views/members/components/InviteMemberForm.tsx:327 #: src/views/members/components/InviteMemberForm.tsx:327
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat." msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
msgstr "Dodanie nowego członka będzie kosztować dodatkowe {price} ({billingType}) za miejsce." msgstr "Dodanie nowego członka będzie kosztować dodatkowe {price} ({billingType}) za miejsce."
@@ -305,8 +287,8 @@ msgstr "Czy na pewno chcesz usunąć tę etykietę?"
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Czy na pewno chcesz usunąć swoje konto?" msgstr "Czy na pewno chcesz usunąć swoje konto?"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:157 #: src/views/card/components/ActivityList.tsx:146
msgid "assigned <0>{0}</0> to the card" msgid "assigned <0>{0}</0> to the card"
msgstr "przypisano <0>{0}</0> do karty" msgstr "przypisano <0>{0}</0> do karty"
@@ -585,8 +567,8 @@ msgstr "Zmień hasło"
msgid "Change your language preferences." msgid "Change your language preferences."
msgstr "Zmień swoje preferencje językowe." msgstr "Zmień swoje preferencje językowe."
#: src/views/card/components/ActivityList.tsx:267 #: src/views/card/components/ActivityList.tsx:256
#: src/views/card/components/ActivityList.tsx:281 #: src/views/card/components/ActivityList.tsx:270
msgid "changed the due date to <0>{formattedDate}</0>" msgid "changed the due date to <0>{formattedDate}</0>"
msgstr "zmieniono termin na <0>{formattedDate}</0>" msgstr "zmieniono termin na <0>{formattedDate}</0>"
@@ -674,12 +656,12 @@ msgstr "Zakończ"
msgid "Complete control and ownership:" msgid "Complete control and ownership:"
msgstr "Pełna kontrola i własność:" msgstr "Pełna kontrola i własność:"
#: src/views/card/components/ActivityList.tsx:124 #: src/views/card/components/ActivityList.tsx:113
msgid "completed a checklist item" msgid "completed a checklist item"
msgstr "ukończono element listy kontrolnej" msgstr "ukończono element listy kontrolnej"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:234 #: src/views/card/components/ActivityList.tsx:223
msgid "completed checklist item <0>{0}</0>" msgid "completed checklist item <0>{0}</0>"
msgstr "ukończono element listy kontrolnej <0>{0}</0>" msgstr "ukończono element listy kontrolnej <0>{0}</0>"
@@ -778,7 +760,7 @@ msgid "Create list"
msgstr "Utwórz listę" msgstr "Utwórz listę"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:79 #: src/views/boards/components/BoardsList.tsx:58
#: src/views/boards/index.tsx:28 #: src/views/boards/index.tsx:28
msgid "Create new {0}" msgid "Create new {0}"
msgstr "Utwórz nowy {0}" msgstr "Utwórz nowy {0}"
@@ -793,7 +775,7 @@ msgid "Create new label"
msgstr "Utwórz nową etykietę" msgstr "Utwórz nową etykietę"
#: src/views/board/index.tsx:74 #: src/views/board/index.tsx:74
#: src/views/board/index.tsx:539 #: src/views/board/index.tsx:537
msgid "Create new list" msgid "Create new list"
msgstr "Utwórz nową listę" msgstr "Utwórz nową listę"
@@ -806,7 +788,7 @@ msgstr "Utwórz szablon"
msgid "Create workspace" msgid "Create workspace"
msgstr "Utwórz przestrzeń roboczą" msgstr "Utwórz przestrzeń roboczą"
#: src/views/card/components/ActivityList.tsx:111 #: src/views/card/components/ActivityList.tsx:100
msgid "created the card" msgid "created the card"
msgstr "utworzył(a) kartę" msgstr "utworzył(a) kartę"
@@ -880,7 +862,7 @@ msgstr "Usuń"
msgid "Delete account" msgid "Delete account"
msgstr "Usuń konto" msgstr "Usuń konto"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete board" msgid "Delete board"
msgstr "Usuń tablicę" msgstr "Usuń tablicę"
@@ -896,7 +878,7 @@ msgstr "Usuń komentarz"
msgid "Delete list" msgid "Delete list"
msgstr "Usuń listę" msgstr "Usuń listę"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete template" msgid "Delete template"
msgstr "Usuń szablon" msgstr "Usuń szablon"
@@ -906,21 +888,21 @@ msgstr "Usuń szablon"
msgid "Delete workspace" msgid "Delete workspace"
msgstr "Usuń przestrzeń roboczą" msgstr "Usuń przestrzeń roboczą"
#: src/views/card/components/ActivityList.tsx:121 #: src/views/card/components/ActivityList.tsx:110
msgid "deleted a checklist" msgid "deleted a checklist"
msgstr "usunięto listę kontrolną" msgstr "usunięto listę kontrolną"
#: src/views/card/components/ActivityList.tsx:126 #: src/views/card/components/ActivityList.tsx:115
msgid "deleted a checklist item" msgid "deleted a checklist item"
msgstr "usunięto element listy kontrolnej" msgstr "usunięto element listy kontrolnej"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:209 #: src/views/card/components/ActivityList.tsx:198
msgid "deleted checklist <0>{0}</0>" msgid "deleted checklist <0>{0}</0>"
msgstr "usunięto listę kontrolną <0>{0}</0>" msgstr "usunięto listę kontrolną <0>{0}</0>"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:252 #: src/views/card/components/ActivityList.tsx:241
msgid "deleted checklist item <0>{0}</0>" msgid "deleted checklist item <0>{0}</0>"
msgstr "usunięto element listy kontrolnej <0>{0}</0>" msgstr "usunięto element listy kontrolnej <0>{0}</0>"
@@ -1016,7 +998,7 @@ msgstr "Termin na jutro"
msgid "Edit" msgid "Edit"
msgstr "Edytuj" msgstr "Edytuj"
#: src/views/board/components/BoardDropdown.tsx:84 #: src/views/board/components/BoardDropdown.tsx:44
#: src/views/board/components/UpdateBoardSlugForm.tsx:116 #: src/views/board/components/UpdateBoardSlugForm.tsx:116
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Edytuj URL tablicy" msgstr "Edytuj URL tablicy"
@@ -1304,11 +1286,11 @@ msgid "Get Started"
msgstr "Rozpocznij" msgstr "Rozpocznij"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:65 #: src/views/boards/components/BoardsList.tsx:44
msgid "Get started by creating a new {0}" msgid "Get started by creating a new {0}"
msgstr "Rozpocznij, tworząc nowy {0}" msgstr "Rozpocznij, tworząc nowy {0}"
#: src/views/board/index.tsx:524 #: src/views/board/index.tsx:522
msgid "Get started by creating a new list" msgid "Get started by creating a new list"
msgstr "Rozpocznij, tworząc nową listę" msgstr "Rozpocznij, tworząc nową listę"
@@ -1618,7 +1600,7 @@ msgstr "Nazwa listy"
msgid "Lists" msgid "Lists"
msgstr "Listy" msgstr "Listy"
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Load more activities" msgid "Load more activities"
msgstr "Załaduj więcej aktywności" msgstr "Załaduj więcej aktywności"
@@ -1626,7 +1608,7 @@ msgstr "Załaduj więcej aktywności"
msgid "Loading permissions..." msgid "Loading permissions..."
msgstr "Ładowanie uprawnień..." msgstr "Ładowanie uprawnień..."
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Loading..." msgid "Loading..."
msgstr "Ładowanie..." msgstr "Ładowanie..."
@@ -1654,16 +1636,16 @@ msgstr "Niski priorytet"
msgid "magic link" msgid "magic link"
msgstr "magiczny link" msgstr "magiczny link"
#: src/views/board/components/BoardDropdown.tsx:73 #: src/views/board/components/BoardDropdown.tsx:34
msgid "Make template" msgid "Make template"
msgstr "Utwórz szablon" msgstr "Utwórz szablon"
#: src/views/card/components/ActivityList.tsx:125 #: src/views/card/components/ActivityList.tsx:114
msgid "marked a checklist item as incomplete" msgid "marked a checklist item as incomplete"
msgstr "oznaczył element listy kontrolnej jako nieukończony" msgstr "oznaczył element listy kontrolnej jako nieukończony"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:243 #: src/views/card/components/ActivityList.tsx:232
msgid "marked checklist item <0>{0}</0> as incomplete" msgid "marked checklist item <0>{0}</0> as incomplete"
msgstr "oznaczył element listy kontrolnej <0>{0}</0> jako nieukończony" msgstr "oznaczył element listy kontrolnej <0>{0}</0> jako nieukończony"
@@ -1671,8 +1653,6 @@ msgstr "oznaczył element listy kontrolnej <0>{0}</0> jako nieukończony"
msgid "Medium Priority" msgid "Medium Priority"
msgstr "Średni priorytet" msgstr "Średni priorytet"
#: src/views/card/components/ActivityList.tsx:44
#: src/views/card/components/ActivityList.tsx:75
#: src/views/members/index.tsx:201 #: src/views/members/index.tsx:201
msgid "Member" msgid "Member"
msgstr "Członek" msgstr "Członek"
@@ -1701,11 +1681,11 @@ msgstr "rozliczenie miesięczne"
#. placeholder {0}: truncate(fromList) #. placeholder {0}: truncate(fromList)
#. placeholder {1}: truncate(toList) #. placeholder {1}: truncate(toList)
#: src/views/card/components/ActivityList.tsx:145 #: src/views/card/components/ActivityList.tsx:134
msgid "moved the card from <0>{0}</0> to<1>{1}</1>" msgid "moved the card from <0>{0}</0> to<1>{1}</1>"
msgstr "przeniesiono kartę z <0>{0}</0> do<1>{1}</1>" msgstr "przeniesiono kartę z <0>{0}</0> do<1>{1}</1>"
#: src/views/card/components/ActivityList.tsx:114 #: src/views/card/components/ActivityList.tsx:103
msgid "moved the card to another list" msgid "moved the card to another list"
msgstr "przeniesiono kartę do innej listy" msgstr "przeniesiono kartę do innej listy"
@@ -1787,7 +1767,7 @@ msgid "Next Steps"
msgstr "Następne kroki" msgstr "Następne kroki"
#. placeholder {0}: isTemplate ? "templates" : "boards" #. placeholder {0}: isTemplate ? "templates" : "boards"
#: src/views/boards/components/BoardsList.tsx:62 #: src/views/boards/components/BoardsList.tsx:41
msgid "No {0}" msgid "No {0}"
msgstr "Brak {0}" msgstr "Brak {0}"
@@ -1815,11 +1795,11 @@ msgstr "Brak dostępnego URL do pobrania tego załącznika."
msgid "No keyboard shortcuts registered." msgid "No keyboard shortcuts registered."
msgstr "Brak zarejestrowanych skrótów klawiaturowych." msgstr "Brak zarejestrowanych skrótów klawiaturowych."
#: src/views/board/index.tsx:520 #: src/views/board/index.tsx:518
msgid "No lists" msgid "No lists"
msgstr "Brak list" msgstr "Brak list"
#: src/views/board/index.tsx:525 #: src/views/board/index.tsx:523
msgid "No lists have been created yet" msgid "No lists have been created yet"
msgstr "Nie utworzono jeszcze żadnych list" msgstr "Nie utworzono jeszcze żadnych list"
@@ -1994,7 +1974,6 @@ msgstr "Proszę wybrać plik do przesłania."
#: src/components/DeleteLabelConfirmation.tsx:26 #: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:158 #: src/components/NewWorkspaceForm.tsx:158
#: src/views/board/components/BoardDropdown.tsx:63
#: src/views/board/components/NewCardForm.tsx:184 #: src/views/board/components/NewCardForm.tsx:184
#: src/views/board/components/NewListForm.tsx:79 #: src/views/board/components/NewListForm.tsx:79
#: src/views/board/components/NewTemplateForm.tsx:61 #: src/views/board/components/NewTemplateForm.tsx:61
@@ -2122,52 +2101,44 @@ msgstr "Zdalne"
msgid "Remove" msgid "Remove"
msgstr "Usuń" msgstr "Usuń"
#: src/views/board/components/BoardDropdown.tsx:92
msgid "Remove from favorites"
msgstr "Usuń z ulubionych"
#: src/views/members/index.tsx:232 #: src/views/members/index.tsx:232
msgid "Remove member" msgid "Remove member"
msgstr "Usuń członka" msgstr "Usuń członka"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:103 #: src/views/card/components/ActivityList.tsx:92
msgid "removed {0} labels: <0>{labelList}</0>" msgid "removed {0} labels: <0>{labelList}</0>"
msgstr "usunięto {0} etykiety: <0>{labelList}</0>" msgstr "usunięto {0} etykiety: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:116 #: src/views/card/components/ActivityList.tsx:105
msgid "removed a label from the card" msgid "removed a label from the card"
msgstr "usunął etykietę z karty" msgstr "usunął etykietę z karty"
#: src/views/card/components/ActivityList.tsx:118 #: src/views/card/components/ActivityList.tsx:107
msgid "removed a member from the card" msgid "removed a member from the card"
msgstr "usunął członka z karty" msgstr "usunął członka z karty"
#: src/views/board/components/BoardDropdown.tsx:52
msgid "Removed from favorites"
msgstr "Usunięto z ulubionych"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:185 #: src/views/card/components/ActivityList.tsx:174
msgid "removed label <0>{0}</0>" msgid "removed label <0>{0}</0>"
msgstr "usunięto etykietę <0>{0}</0>" msgstr "usunięto etykietę <0>{0}</0>"
#: src/views/card/components/ActivityList.tsx:129 #: src/views/card/components/ActivityList.tsx:118
#: src/views/card/components/ActivityList.tsx:288 #: src/views/card/components/ActivityList.tsx:277
msgid "removed the due date" msgid "removed the due date"
msgstr "usunięto termin" msgstr "usunięto termin"
#: src/views/card/components/ActivityList.tsx:120 #: src/views/card/components/ActivityList.tsx:109
msgid "renamed a checklist" msgid "renamed a checklist"
msgstr "zmieniono nazwę listy kontrolnej" msgstr "zmieniono nazwę listy kontrolnej"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:201 #: src/views/card/components/ActivityList.tsx:190
msgid "renamed checklist <0>{0}</0>" msgid "renamed checklist <0>{0}</0>"
msgstr "zmieniono nazwę listy kontrolnej <0>{0}</0>" msgstr "zmieniono nazwę listy kontrolnej <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:225 #: src/views/card/components/ActivityList.tsx:214
msgid "renamed checklist item to <0>{0}</0>" msgid "renamed checklist item to <0>{0}</0>"
msgstr "zmieniono nazwę elementu listy kontrolnej na <0>{0}</0>" msgstr "zmieniono nazwę elementu listy kontrolnej na <0>{0}</0>"
@@ -2253,7 +2224,7 @@ msgstr "Hostuj samodzielnie"
msgid "Self host with Github" msgid "Self host with Github"
msgstr "Hostuj samodzielnie z Github" msgstr "Hostuj samodzielnie z Github"
#: src/views/card/components/ActivityList.tsx:154 #: src/views/card/components/ActivityList.tsx:143
msgid "self-assigned the card" msgid "self-assigned the card"
msgstr "przypisał(a) sobie kartę" msgstr "przypisał(a) sobie kartę"
@@ -2273,7 +2244,7 @@ msgstr "Starszy"
msgid "Set due date" msgid "Set due date"
msgstr "Ustaw termin" msgstr "Ustaw termin"
#: src/views/card/components/ActivityList.tsx:127 #: src/views/card/components/ActivityList.tsx:116
msgid "set the due date" msgid "set the due date"
msgstr "ustawiono termin" msgstr "ustawiono termin"
@@ -2637,10 +2608,6 @@ msgstr "Nie można zresetować uprawnień"
msgid "Unable to send feedback" msgid "Unable to send feedback"
msgstr "Nie można wysłać opinii" msgstr "Nie można wysłać opinii"
#: src/views/board/components/BoardDropdown.tsx:62
msgid "Unable to update board"
msgstr "Nie można zaktualizować tablicy"
#: src/views/board/components/UpdateBoardSlugForm.tsx:72 #: src/views/board/components/UpdateBoardSlugForm.tsx:72
msgid "Unable to update board URL" msgid "Unable to update board URL"
msgstr "Nie można zaktualizować adresu URL tablicy" msgstr "Nie można zaktualizować adresu URL tablicy"
@@ -2692,12 +2659,12 @@ msgstr "Nie można zaktualizować uprawnień"
msgid "Unable to update role" msgid "Unable to update role"
msgstr "Nie można zaktualizować roli" msgstr "Nie można zaktualizować roli"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:168 #: src/views/card/components/ActivityList.tsx:157
msgid "unassigned <0>{0}</0> from the card" msgid "unassigned <0>{0}</0> from the card"
msgstr "usunięto przypisanie <0>{0}</0> z karty" msgstr "usunięto przypisanie <0>{0}</0> z karty"
#: src/views/card/components/ActivityList.tsx:165 #: src/views/card/components/ActivityList.tsx:154
msgid "unassigned themselves from the card" msgid "unassigned themselves from the card"
msgstr "usunęli swoje przypisanie z karty" msgstr "usunęli swoje przypisanie z karty"
@@ -2756,24 +2723,24 @@ msgstr "Aktualizuj"
msgid "Update label" msgid "Update label"
msgstr "Zaktualizuj etykietę" msgstr "Zaktualizuj etykietę"
#: src/views/card/components/ActivityList.tsx:123 #: src/views/card/components/ActivityList.tsx:112
msgid "updated a checklist item" msgid "updated a checklist item"
msgstr "zaktualizowano element listy kontrolnej" msgstr "zaktualizowano element listy kontrolnej"
#: src/views/card/components/ActivityList.tsx:113 #: src/views/card/components/ActivityList.tsx:102
msgid "updated the description" msgid "updated the description"
msgstr "zaktualizowano opis" msgstr "zaktualizowano opis"
#: src/views/card/components/ActivityList.tsx:128 #: src/views/card/components/ActivityList.tsx:117
msgid "updated the due date" msgid "updated the due date"
msgstr "zaktualizowano termin" msgstr "zaktualizowano termin"
#: src/views/card/components/ActivityList.tsx:112 #: src/views/card/components/ActivityList.tsx:101
msgid "updated the title" msgid "updated the title"
msgstr "zaktualizowano tytuł" msgstr "zaktualizowano tytuł"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:137 #: src/views/card/components/ActivityList.tsx:126
msgid "updated the title to <0>{0}</0>" msgid "updated the title to <0>{0}</0>"
msgstr "zaktualizowano tytuł na <0>{0}</0>" msgstr "zaktualizowano tytuł na <0>{0}</0>"
@@ -2898,7 +2865,7 @@ msgstr "Dlaczego próbujecie stworzyć Trello w wersji otwartoźródłowej?"
#: src/views/boards/index.tsx:35 #: src/views/boards/index.tsx:35
#: src/views/members/index.tsx:257 #: src/views/members/index.tsx:257
#: src/views/public/board/index.tsx:120 #: src/views/public/board/index.tsx:120
#: src/views/public/boards/index.tsx:65 #: src/views/public/boards/index.tsx:66
msgid "Workspace" msgid "Workspace"
msgstr "Obszar roboczy" msgstr "Obszar roboczy"
@@ -3003,8 +2970,8 @@ msgstr "Możesz hostować samodzielnie, postępując zgodnie z instrukcjami w na
#: src/views/board/components/UpdateBoardSlugButton.tsx:31 #: src/views/board/components/UpdateBoardSlugButton.tsx:31
#: src/views/board/components/VisibilityButton.tsx:72 #: src/views/board/components/VisibilityButton.tsx:72
#: src/views/board/index.tsx:472 #: src/views/board/index.tsx:472
#: src/views/board/index.tsx:530 #: src/views/board/index.tsx:528
#: src/views/boards/components/BoardsList.tsx:70 #: src/views/boards/components/BoardsList.tsx:49
#: src/views/boards/index.tsx:46 #: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:67 #: src/views/boards/index.tsx:67
msgid "You don't have permission" msgid "You don't have permission"

File diff suppressed because one or more lines are too long

View File

@@ -35,16 +35,6 @@ msgstr "{0}"
msgid "{0} | {1}" msgid "{0} | {1}"
msgstr "{0} | {1}" msgstr "{0} | {1}"
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:54
msgid "{0} has been added to your favorites."
msgstr "{0} foi adicionado aos seus favoritos."
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:55
msgid "{0} has been removed from your favorites."
msgstr "{0} foi removido dos seus favoritos."
#. placeholder {0}: labelPublicIds.length #. placeholder {0}: labelPublicIds.length
#: src/views/board/components/NewCardForm.tsx:453 #: src/views/board/components/NewCardForm.tsx:453
msgid "{0} labels" msgid "{0} labels"
@@ -141,50 +131,42 @@ msgstr "Adicionar etiqueta"
msgid "Add member" msgid "Add member"
msgstr "Adicionar membro" msgstr "Adicionar membro"
#: src/views/board/components/BoardDropdown.tsx:93
msgid "Add to favorites"
msgstr "Adicionar aos favoritos"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:89 #: src/views/card/components/ActivityList.tsx:78
msgid "added {0} labels: <0>{labelList}</0>" msgid "added {0} labels: <0>{labelList}</0>"
msgstr "adicionou {0} etiquetas: <0>{labelList}</0>" msgstr "adicionou {0} etiquetas: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:119 #: src/views/card/components/ActivityList.tsx:108
msgid "added a checklist" msgid "added a checklist"
msgstr "adicionou uma lista de verificação" msgstr "adicionou uma lista de verificação"
#: src/views/card/components/ActivityList.tsx:122 #: src/views/card/components/ActivityList.tsx:111
msgid "added a checklist item" msgid "added a checklist item"
msgstr "adicionou um item da lista de verificação" msgstr "adicionou um item da lista de verificação"
#: src/views/card/components/ActivityList.tsx:115 #: src/views/card/components/ActivityList.tsx:104
msgid "added a label to the card" msgid "added a label to the card"
msgstr "adicionou uma etiqueta ao cartão" msgstr "adicionou uma etiqueta ao cartão"
#: src/views/card/components/ActivityList.tsx:117 #: src/views/card/components/ActivityList.tsx:106
msgid "added a member to the card" msgid "added a member to the card"
msgstr "adicionou um membro ao cartão" msgstr "adicionou um membro ao cartão"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:193 #: src/views/card/components/ActivityList.tsx:182
msgid "added checklist <0>{0}</0>" msgid "added checklist <0>{0}</0>"
msgstr "adicionou a lista de verificação <0>{0}</0>" msgstr "adicionou a lista de verificação <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:217 #: src/views/card/components/ActivityList.tsx:206
msgid "added checklist item <0>{0}</0>" msgid "added checklist item <0>{0}</0>"
msgstr "adicionou o item da lista de verificação <0>{0}</0>" msgstr "adicionou o item da lista de verificação <0>{0}</0>"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:177 #: src/views/card/components/ActivityList.tsx:166
msgid "added label <0>{0}</0>" msgid "added label <0>{0}</0>"
msgstr "adicionou a etiqueta <0>{0}</0>" msgstr "adicionou a etiqueta <0>{0}</0>"
#: src/views/board/components/BoardDropdown.tsx:51
msgid "Added to favorites"
msgstr "Adicionado aos favoritos"
#: src/views/members/components/InviteMemberForm.tsx:327 #: src/views/members/components/InviteMemberForm.tsx:327
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat." msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
msgstr "Adicionar um novo membro custará {price} ({billingType}) adicionais por assento." msgstr "Adicionar um novo membro custará {price} ({billingType}) adicionais por assento."
@@ -300,8 +282,8 @@ msgstr "Tem certeza de que deseja excluir esta etiqueta?"
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Tem certeza de que deseja excluir sua conta?" msgstr "Tem certeza de que deseja excluir sua conta?"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:157 #: src/views/card/components/ActivityList.tsx:146
msgid "assigned <0>{0}</0> to the card" msgid "assigned <0>{0}</0> to the card"
msgstr "atribuiu <0>{0}</0> ao card" msgstr "atribuiu <0>{0}</0> ao card"
@@ -580,8 +562,8 @@ msgstr "Alterar senha"
msgid "Change your language preferences." msgid "Change your language preferences."
msgstr "Altere suas preferências de idioma." msgstr "Altere suas preferências de idioma."
#: src/views/card/components/ActivityList.tsx:267 #: src/views/card/components/ActivityList.tsx:256
#: src/views/card/components/ActivityList.tsx:281 #: src/views/card/components/ActivityList.tsx:270
msgid "changed the due date to <0>{formattedDate}</0>" msgid "changed the due date to <0>{formattedDate}</0>"
msgstr "alterou a data de vencimento para <0>{formattedDate}</0>" msgstr "alterou a data de vencimento para <0>{formattedDate}</0>"
@@ -669,12 +651,12 @@ msgstr "Concluir"
msgid "Complete control and ownership:" msgid "Complete control and ownership:"
msgstr "Controle e propriedade completos:" msgstr "Controle e propriedade completos:"
#: src/views/card/components/ActivityList.tsx:124 #: src/views/card/components/ActivityList.tsx:113
msgid "completed a checklist item" msgid "completed a checklist item"
msgstr "concluiu um item da lista de verificação" msgstr "concluiu um item da lista de verificação"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:234 #: src/views/card/components/ActivityList.tsx:223
msgid "completed checklist item <0>{0}</0>" msgid "completed checklist item <0>{0}</0>"
msgstr "concluiu o item da lista de verificação <0>{0}</0>" msgstr "concluiu o item da lista de verificação <0>{0}</0>"
@@ -773,7 +755,7 @@ msgid "Create list"
msgstr "Criar lista" msgstr "Criar lista"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:79 #: src/views/boards/components/BoardsList.tsx:58
#: src/views/boards/index.tsx:28 #: src/views/boards/index.tsx:28
msgid "Create new {0}" msgid "Create new {0}"
msgstr "Criar novo {0}" msgstr "Criar novo {0}"
@@ -788,7 +770,7 @@ msgid "Create new label"
msgstr "Criar nova etiqueta" msgstr "Criar nova etiqueta"
#: src/views/board/index.tsx:74 #: src/views/board/index.tsx:74
#: src/views/board/index.tsx:539 #: src/views/board/index.tsx:537
msgid "Create new list" msgid "Create new list"
msgstr "Criar nova lista" msgstr "Criar nova lista"
@@ -801,7 +783,7 @@ msgstr "Criar modelo"
msgid "Create workspace" msgid "Create workspace"
msgstr "Criar workspace" msgstr "Criar workspace"
#: src/views/card/components/ActivityList.tsx:111 #: src/views/card/components/ActivityList.tsx:100
msgid "created the card" msgid "created the card"
msgstr "criou o cartão" msgstr "criou o cartão"
@@ -875,7 +857,7 @@ msgstr "Excluir"
msgid "Delete account" msgid "Delete account"
msgstr "Excluir conta" msgstr "Excluir conta"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete board" msgid "Delete board"
msgstr "Excluir quadro" msgstr "Excluir quadro"
@@ -891,7 +873,7 @@ msgstr "Excluir comentário"
msgid "Delete list" msgid "Delete list"
msgstr "Excluir lista" msgstr "Excluir lista"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete template" msgid "Delete template"
msgstr "Excluir modelo" msgstr "Excluir modelo"
@@ -901,21 +883,21 @@ msgstr "Excluir modelo"
msgid "Delete workspace" msgid "Delete workspace"
msgstr "Excluir workspace" msgstr "Excluir workspace"
#: src/views/card/components/ActivityList.tsx:121 #: src/views/card/components/ActivityList.tsx:110
msgid "deleted a checklist" msgid "deleted a checklist"
msgstr "excluiu uma checklist" msgstr "excluiu uma checklist"
#: src/views/card/components/ActivityList.tsx:126 #: src/views/card/components/ActivityList.tsx:115
msgid "deleted a checklist item" msgid "deleted a checklist item"
msgstr "excluiu um item da checklist" msgstr "excluiu um item da checklist"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:209 #: src/views/card/components/ActivityList.tsx:198
msgid "deleted checklist <0>{0}</0>" msgid "deleted checklist <0>{0}</0>"
msgstr "excluiu a checklist <0>{0}</0>" msgstr "excluiu a checklist <0>{0}</0>"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:252 #: src/views/card/components/ActivityList.tsx:241
msgid "deleted checklist item <0>{0}</0>" msgid "deleted checklist item <0>{0}</0>"
msgstr "excluiu o item da checklist <0>{0}</0>" msgstr "excluiu o item da checklist <0>{0}</0>"
@@ -1011,7 +993,7 @@ msgstr "Vence amanhã"
msgid "Edit" msgid "Edit"
msgstr "Editar" msgstr "Editar"
#: src/views/board/components/BoardDropdown.tsx:84 #: src/views/board/components/BoardDropdown.tsx:44
#: src/views/board/components/UpdateBoardSlugForm.tsx:116 #: src/views/board/components/UpdateBoardSlugForm.tsx:116
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Editar URL do quadro" msgstr "Editar URL do quadro"
@@ -1299,11 +1281,11 @@ msgid "Get Started"
msgstr "Começar" msgstr "Começar"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:65 #: src/views/boards/components/BoardsList.tsx:44
msgid "Get started by creating a new {0}" msgid "Get started by creating a new {0}"
msgstr "Comece criando um novo {0}" msgstr "Comece criando um novo {0}"
#: src/views/board/index.tsx:524 #: src/views/board/index.tsx:522
msgid "Get started by creating a new list" msgid "Get started by creating a new list"
msgstr "Comece criando uma nova lista" msgstr "Comece criando uma nova lista"
@@ -1613,7 +1595,7 @@ msgstr "Nome da lista"
msgid "Lists" msgid "Lists"
msgstr "Listas" msgstr "Listas"
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Load more activities" msgid "Load more activities"
msgstr "Carregar mais atividades" msgstr "Carregar mais atividades"
@@ -1621,7 +1603,7 @@ msgstr "Carregar mais atividades"
msgid "Loading permissions..." msgid "Loading permissions..."
msgstr "Carregando permissões..." msgstr "Carregando permissões..."
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Loading..." msgid "Loading..."
msgstr "Carregando..." msgstr "Carregando..."
@@ -1649,16 +1631,16 @@ msgstr "Prioridade baixa"
msgid "magic link" msgid "magic link"
msgstr "link mágico" msgstr "link mágico"
#: src/views/board/components/BoardDropdown.tsx:73 #: src/views/board/components/BoardDropdown.tsx:34
msgid "Make template" msgid "Make template"
msgstr "Criar modelo" msgstr "Criar modelo"
#: src/views/card/components/ActivityList.tsx:125 #: src/views/card/components/ActivityList.tsx:114
msgid "marked a checklist item as incomplete" msgid "marked a checklist item as incomplete"
msgstr "marcou um item da checklist como incompleto" msgstr "marcou um item da checklist como incompleto"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:243 #: src/views/card/components/ActivityList.tsx:232
msgid "marked checklist item <0>{0}</0> as incomplete" msgid "marked checklist item <0>{0}</0> as incomplete"
msgstr "marcou o item da checklist <0>{0}</0> como incompleto" msgstr "marcou o item da checklist <0>{0}</0> como incompleto"
@@ -1666,8 +1648,6 @@ msgstr "marcou o item da checklist <0>{0}</0> como incompleto"
msgid "Medium Priority" msgid "Medium Priority"
msgstr "Prioridade média" msgstr "Prioridade média"
#: src/views/card/components/ActivityList.tsx:44
#: src/views/card/components/ActivityList.tsx:75
#: src/views/members/index.tsx:201 #: src/views/members/index.tsx:201
msgid "Member" msgid "Member"
msgstr "Membro" msgstr "Membro"
@@ -1696,11 +1676,11 @@ msgstr "cobrança mensal"
#. placeholder {0}: truncate(fromList) #. placeholder {0}: truncate(fromList)
#. placeholder {1}: truncate(toList) #. placeholder {1}: truncate(toList)
#: src/views/card/components/ActivityList.tsx:145 #: src/views/card/components/ActivityList.tsx:134
msgid "moved the card from <0>{0}</0> to<1>{1}</1>" msgid "moved the card from <0>{0}</0> to<1>{1}</1>"
msgstr "moveu o card de <0>{0}</0> para <1>{1}</1>" msgstr "moveu o card de <0>{0}</0> para <1>{1}</1>"
#: src/views/card/components/ActivityList.tsx:114 #: src/views/card/components/ActivityList.tsx:103
msgid "moved the card to another list" msgid "moved the card to another list"
msgstr "moveu o card para outra lista" msgstr "moveu o card para outra lista"
@@ -1782,7 +1762,7 @@ msgid "Next Steps"
msgstr "Próximos passos" msgstr "Próximos passos"
#. placeholder {0}: isTemplate ? "templates" : "boards" #. placeholder {0}: isTemplate ? "templates" : "boards"
#: src/views/boards/components/BoardsList.tsx:62 #: src/views/boards/components/BoardsList.tsx:41
msgid "No {0}" msgid "No {0}"
msgstr "Nenhum {0}" msgstr "Nenhum {0}"
@@ -1810,11 +1790,11 @@ msgstr "Nenhuma URL de download disponível para este anexo."
msgid "No keyboard shortcuts registered." msgid "No keyboard shortcuts registered."
msgstr "Nenhum atalho de teclado registrado." msgstr "Nenhum atalho de teclado registrado."
#: src/views/board/index.tsx:520 #: src/views/board/index.tsx:518
msgid "No lists" msgid "No lists"
msgstr "Nenhuma lista" msgstr "Nenhuma lista"
#: src/views/board/index.tsx:525 #: src/views/board/index.tsx:523
msgid "No lists have been created yet" msgid "No lists have been created yet"
msgstr "Nenhuma lista foi criada ainda" msgstr "Nenhuma lista foi criada ainda"
@@ -1989,7 +1969,6 @@ msgstr "Por favor, selecione um arquivo para fazer upload."
#: src/components/DeleteLabelConfirmation.tsx:26 #: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:158 #: src/components/NewWorkspaceForm.tsx:158
#: src/views/board/components/BoardDropdown.tsx:63
#: src/views/board/components/NewCardForm.tsx:184 #: src/views/board/components/NewCardForm.tsx:184
#: src/views/board/components/NewListForm.tsx:79 #: src/views/board/components/NewListForm.tsx:79
#: src/views/board/components/NewTemplateForm.tsx:61 #: src/views/board/components/NewTemplateForm.tsx:61
@@ -2117,52 +2096,44 @@ msgstr "Remoto"
msgid "Remove" msgid "Remove"
msgstr "Remover" msgstr "Remover"
#: src/views/board/components/BoardDropdown.tsx:92
msgid "Remove from favorites"
msgstr "Remover dos favoritos"
#: src/views/members/index.tsx:232 #: src/views/members/index.tsx:232
msgid "Remove member" msgid "Remove member"
msgstr "Remover membro" msgstr "Remover membro"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:103 #: src/views/card/components/ActivityList.tsx:92
msgid "removed {0} labels: <0>{labelList}</0>" msgid "removed {0} labels: <0>{labelList}</0>"
msgstr "removeu {0} etiquetas: <0>{labelList}</0>" msgstr "removeu {0} etiquetas: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:116 #: src/views/card/components/ActivityList.tsx:105
msgid "removed a label from the card" msgid "removed a label from the card"
msgstr "removeu uma etiqueta do cartão" msgstr "removeu uma etiqueta do cartão"
#: src/views/card/components/ActivityList.tsx:118 #: src/views/card/components/ActivityList.tsx:107
msgid "removed a member from the card" msgid "removed a member from the card"
msgstr "removeu um membro do cartão" msgstr "removeu um membro do cartão"
#: src/views/board/components/BoardDropdown.tsx:52
msgid "Removed from favorites"
msgstr "Removido dos favoritos"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:185 #: src/views/card/components/ActivityList.tsx:174
msgid "removed label <0>{0}</0>" msgid "removed label <0>{0}</0>"
msgstr "removeu a etiqueta <0>{0}</0>" msgstr "removeu a etiqueta <0>{0}</0>"
#: src/views/card/components/ActivityList.tsx:129 #: src/views/card/components/ActivityList.tsx:118
#: src/views/card/components/ActivityList.tsx:288 #: src/views/card/components/ActivityList.tsx:277
msgid "removed the due date" msgid "removed the due date"
msgstr "removeu a data de vencimento" msgstr "removeu a data de vencimento"
#: src/views/card/components/ActivityList.tsx:120 #: src/views/card/components/ActivityList.tsx:109
msgid "renamed a checklist" msgid "renamed a checklist"
msgstr "renomeou uma lista de verificação" msgstr "renomeou uma lista de verificação"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:201 #: src/views/card/components/ActivityList.tsx:190
msgid "renamed checklist <0>{0}</0>" msgid "renamed checklist <0>{0}</0>"
msgstr "renomeou a checklist <0>{0}</0>" msgstr "renomeou a checklist <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:225 #: src/views/card/components/ActivityList.tsx:214
msgid "renamed checklist item to <0>{0}</0>" msgid "renamed checklist item to <0>{0}</0>"
msgstr "renomeou o item da checklist para <0>{0}</0>" msgstr "renomeou o item da checklist para <0>{0}</0>"
@@ -2248,7 +2219,7 @@ msgstr "Auto-hospedagem"
msgid "Self host with Github" msgid "Self host with Github"
msgstr "Auto-hospede com Github" msgstr "Auto-hospede com Github"
#: src/views/card/components/ActivityList.tsx:154 #: src/views/card/components/ActivityList.tsx:143
msgid "self-assigned the card" msgid "self-assigned the card"
msgstr "atribuiu o cartão a si mesmo" msgstr "atribuiu o cartão a si mesmo"
@@ -2268,7 +2239,7 @@ msgstr "Sênior"
msgid "Set due date" msgid "Set due date"
msgstr "Definir data de vencimento" msgstr "Definir data de vencimento"
#: src/views/card/components/ActivityList.tsx:127 #: src/views/card/components/ActivityList.tsx:116
msgid "set the due date" msgid "set the due date"
msgstr "definiu a data de vencimento" msgstr "definiu a data de vencimento"
@@ -2632,10 +2603,6 @@ msgstr "Não foi possível redefinir as permissões"
msgid "Unable to send feedback" msgid "Unable to send feedback"
msgstr "Não foi possível enviar feedback" msgstr "Não foi possível enviar feedback"
#: src/views/board/components/BoardDropdown.tsx:62
msgid "Unable to update board"
msgstr "Não foi possível atualizar o quadro"
#: src/views/board/components/UpdateBoardSlugForm.tsx:72 #: src/views/board/components/UpdateBoardSlugForm.tsx:72
msgid "Unable to update board URL" msgid "Unable to update board URL"
msgstr "Não foi possível atualizar URL do quadro" msgstr "Não foi possível atualizar URL do quadro"
@@ -2687,12 +2654,12 @@ msgstr "Não foi possível atualizar as permissões"
msgid "Unable to update role" msgid "Unable to update role"
msgstr "Não foi possível atualizar a função" msgstr "Não foi possível atualizar a função"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:168 #: src/views/card/components/ActivityList.tsx:157
msgid "unassigned <0>{0}</0> from the card" msgid "unassigned <0>{0}</0> from the card"
msgstr "removeu a atribuição de <0>{0}</0> do cartão" msgstr "removeu a atribuição de <0>{0}</0> do cartão"
#: src/views/card/components/ActivityList.tsx:165 #: src/views/card/components/ActivityList.tsx:154
msgid "unassigned themselves from the card" msgid "unassigned themselves from the card"
msgstr "removeu a própria atribuição do cartão" msgstr "removeu a própria atribuição do cartão"
@@ -2751,24 +2718,24 @@ msgstr "Atualizar"
msgid "Update label" msgid "Update label"
msgstr "Atualizar rótulo" msgstr "Atualizar rótulo"
#: src/views/card/components/ActivityList.tsx:123 #: src/views/card/components/ActivityList.tsx:112
msgid "updated a checklist item" msgid "updated a checklist item"
msgstr "atualizou um item da lista de verificação" msgstr "atualizou um item da lista de verificação"
#: src/views/card/components/ActivityList.tsx:113 #: src/views/card/components/ActivityList.tsx:102
msgid "updated the description" msgid "updated the description"
msgstr "atualizou a descrição" msgstr "atualizou a descrição"
#: src/views/card/components/ActivityList.tsx:128 #: src/views/card/components/ActivityList.tsx:117
msgid "updated the due date" msgid "updated the due date"
msgstr "atualizou a data de vencimento" msgstr "atualizou a data de vencimento"
#: src/views/card/components/ActivityList.tsx:112 #: src/views/card/components/ActivityList.tsx:101
msgid "updated the title" msgid "updated the title"
msgstr "atualizou o título" msgstr "atualizou o título"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:137 #: src/views/card/components/ActivityList.tsx:126
msgid "updated the title to <0>{0}</0>" msgid "updated the title to <0>{0}</0>"
msgstr "atualizou o título para <0>{0}</0>" msgstr "atualizou o título para <0>{0}</0>"
@@ -2893,7 +2860,7 @@ msgstr "Por que criar um Trello de código aberto?"
#: src/views/boards/index.tsx:35 #: src/views/boards/index.tsx:35
#: src/views/members/index.tsx:257 #: src/views/members/index.tsx:257
#: src/views/public/board/index.tsx:120 #: src/views/public/board/index.tsx:120
#: src/views/public/boards/index.tsx:65 #: src/views/public/boards/index.tsx:66
msgid "Workspace" msgid "Workspace"
msgstr "Workspace" msgstr "Workspace"
@@ -2998,8 +2965,8 @@ msgstr "Você pode fazer self-host seguindo as instruções em nosso <0>reposit
#: src/views/board/components/UpdateBoardSlugButton.tsx:31 #: src/views/board/components/UpdateBoardSlugButton.tsx:31
#: src/views/board/components/VisibilityButton.tsx:72 #: src/views/board/components/VisibilityButton.tsx:72
#: src/views/board/index.tsx:472 #: src/views/board/index.tsx:472
#: src/views/board/index.tsx:530 #: src/views/board/index.tsx:528
#: src/views/boards/components/BoardsList.tsx:70 #: src/views/boards/components/BoardsList.tsx:49
#: src/views/boards/index.tsx:46 #: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:67 #: src/views/boards/index.tsx:67
msgid "You don't have permission" msgid "You don't have permission"

File diff suppressed because one or more lines are too long

View File

@@ -35,16 +35,6 @@ msgstr "{0}"
msgid "{0} | {1}" msgid "{0} | {1}"
msgstr "{0} | {1}" msgstr "{0} | {1}"
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:54
msgid "{0} has been added to your favorites."
msgstr "{0} добавлено в избранное."
#. placeholder {0}: boardName ?? "Board"
#: src/views/board/components/BoardDropdown.tsx:55
msgid "{0} has been removed from your favorites."
msgstr "{0} удалено из избранного."
#. placeholder {0}: labelPublicIds.length #. placeholder {0}: labelPublicIds.length
#: src/views/board/components/NewCardForm.tsx:453 #: src/views/board/components/NewCardForm.tsx:453
msgid "{0} labels" msgid "{0} labels"
@@ -141,50 +131,42 @@ msgstr "Добавить метку"
msgid "Add member" msgid "Add member"
msgstr "Добавить участника" msgstr "Добавить участника"
#: src/views/board/components/BoardDropdown.tsx:93
msgid "Add to favorites"
msgstr "Добавить в избранное"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:89 #: src/views/card/components/ActivityList.tsx:78
msgid "added {0} labels: <0>{labelList}</0>" msgid "added {0} labels: <0>{labelList}</0>"
msgstr "добавил {0} метки: <0>{labelList}</0>" msgstr "добавил {0} метки: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:119 #: src/views/card/components/ActivityList.tsx:108
msgid "added a checklist" msgid "added a checklist"
msgstr "добавил(а) чек-лист" msgstr "добавил(а) чек-лист"
#: src/views/card/components/ActivityList.tsx:122 #: src/views/card/components/ActivityList.tsx:111
msgid "added a checklist item" msgid "added a checklist item"
msgstr "добавил(а) элемент чек-листа" msgstr "добавил(а) элемент чек-листа"
#: src/views/card/components/ActivityList.tsx:115 #: src/views/card/components/ActivityList.tsx:104
msgid "added a label to the card" msgid "added a label to the card"
msgstr "добавил(а) метку к карточке" msgstr "добавил(а) метку к карточке"
#: src/views/card/components/ActivityList.tsx:117 #: src/views/card/components/ActivityList.tsx:106
msgid "added a member to the card" msgid "added a member to the card"
msgstr "добавил(а) участника к карточке" msgstr "добавил(а) участника к карточке"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:193 #: src/views/card/components/ActivityList.tsx:182
msgid "added checklist <0>{0}</0>" msgid "added checklist <0>{0}</0>"
msgstr "добавлен контрольный список <0>{0}</0>" msgstr "добавлен контрольный список <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:217 #: src/views/card/components/ActivityList.tsx:206
msgid "added checklist item <0>{0}</0>" msgid "added checklist item <0>{0}</0>"
msgstr "добавлен элемент контрольного списка <0>{0}</0>" msgstr "добавлен элемент контрольного списка <0>{0}</0>"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:177 #: src/views/card/components/ActivityList.tsx:166
msgid "added label <0>{0}</0>" msgid "added label <0>{0}</0>"
msgstr "добавлена метка <0>{0}</0>" msgstr "добавлена метка <0>{0}</0>"
#: src/views/board/components/BoardDropdown.tsx:51
msgid "Added to favorites"
msgstr "Добавлено в избранное"
#: src/views/members/components/InviteMemberForm.tsx:327 #: src/views/members/components/InviteMemberForm.tsx:327
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat." msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
msgstr "Добавление нового участника будет стоить дополнительно {price} ({billingType}) за место." msgstr "Добавление нового участника будет стоить дополнительно {price} ({billingType}) за место."
@@ -300,8 +282,8 @@ msgstr "Вы уверены, что хотите удалить эту метк
msgid "Are you sure you want to delete your account?" msgid "Are you sure you want to delete your account?"
msgstr "Вы уверены, что хотите удалить свой аккаунт?" msgstr "Вы уверены, что хотите удалить свой аккаунт?"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:157 #: src/views/card/components/ActivityList.tsx:146
msgid "assigned <0>{0}</0> to the card" msgid "assigned <0>{0}</0> to the card"
msgstr "назначено <0>{0}</0> к карточке" msgstr "назначено <0>{0}</0> к карточке"
@@ -580,8 +562,8 @@ msgstr "Изменить пароль"
msgid "Change your language preferences." msgid "Change your language preferences."
msgstr "Измените настройки языка." msgstr "Измените настройки языка."
#: src/views/card/components/ActivityList.tsx:267 #: src/views/card/components/ActivityList.tsx:256
#: src/views/card/components/ActivityList.tsx:281 #: src/views/card/components/ActivityList.tsx:270
msgid "changed the due date to <0>{formattedDate}</0>" msgid "changed the due date to <0>{formattedDate}</0>"
msgstr "изменил(а) дату выполнения на <0>{formattedDate}</0>" msgstr "изменил(а) дату выполнения на <0>{formattedDate}</0>"
@@ -669,12 +651,12 @@ msgstr "Завершить"
msgid "Complete control and ownership:" msgid "Complete control and ownership:"
msgstr "Полный контроль и владение:" msgstr "Полный контроль и владение:"
#: src/views/card/components/ActivityList.tsx:124 #: src/views/card/components/ActivityList.tsx:113
msgid "completed a checklist item" msgid "completed a checklist item"
msgstr "завершил элемент контрольного списка" msgstr "завершил элемент контрольного списка"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:234 #: src/views/card/components/ActivityList.tsx:223
msgid "completed checklist item <0>{0}</0>" msgid "completed checklist item <0>{0}</0>"
msgstr "завершил элемент контрольного списка <0>{0}</0>" msgstr "завершил элемент контрольного списка <0>{0}</0>"
@@ -773,7 +755,7 @@ msgid "Create list"
msgstr "Создать список" msgstr "Создать список"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:79 #: src/views/boards/components/BoardsList.tsx:58
#: src/views/boards/index.tsx:28 #: src/views/boards/index.tsx:28
msgid "Create new {0}" msgid "Create new {0}"
msgstr "Создать новый {0}" msgstr "Создать новый {0}"
@@ -788,7 +770,7 @@ msgid "Create new label"
msgstr "Создать новую метку" msgstr "Создать новую метку"
#: src/views/board/index.tsx:74 #: src/views/board/index.tsx:74
#: src/views/board/index.tsx:539 #: src/views/board/index.tsx:537
msgid "Create new list" msgid "Create new list"
msgstr "Создать новый список" msgstr "Создать новый список"
@@ -801,7 +783,7 @@ msgstr "Создать шаблон"
msgid "Create workspace" msgid "Create workspace"
msgstr "Создать рабочее пространство" msgstr "Создать рабочее пространство"
#: src/views/card/components/ActivityList.tsx:111 #: src/views/card/components/ActivityList.tsx:100
msgid "created the card" msgid "created the card"
msgstr "создал(а) карточку" msgstr "создал(а) карточку"
@@ -875,7 +857,7 @@ msgstr "Удалить"
msgid "Delete account" msgid "Delete account"
msgstr "Удалить аккаунт" msgstr "Удалить аккаунт"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete board" msgid "Delete board"
msgstr "Удалить доску" msgstr "Удалить доску"
@@ -891,7 +873,7 @@ msgstr "Удалить комментарий"
msgid "Delete list" msgid "Delete list"
msgstr "Удалить список" msgstr "Удалить список"
#: src/views/board/components/BoardDropdown.tsx:104 #: src/views/board/components/BoardDropdown.tsx:55
msgid "Delete template" msgid "Delete template"
msgstr "Удалить шаблон" msgstr "Удалить шаблон"
@@ -901,21 +883,21 @@ msgstr "Удалить шаблон"
msgid "Delete workspace" msgid "Delete workspace"
msgstr "Удалить рабочее пространство" msgstr "Удалить рабочее пространство"
#: src/views/card/components/ActivityList.tsx:121 #: src/views/card/components/ActivityList.tsx:110
msgid "deleted a checklist" msgid "deleted a checklist"
msgstr "удалил контрольный список" msgstr "удалил контрольный список"
#: src/views/card/components/ActivityList.tsx:126 #: src/views/card/components/ActivityList.tsx:115
msgid "deleted a checklist item" msgid "deleted a checklist item"
msgstr "удалил элемент контрольного списка" msgstr "удалил элемент контрольного списка"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:209 #: src/views/card/components/ActivityList.tsx:198
msgid "deleted checklist <0>{0}</0>" msgid "deleted checklist <0>{0}</0>"
msgstr "удалил контрольный список <0>{0}</0>" msgstr "удалил контрольный список <0>{0}</0>"
#. placeholder {0}: truncate(fromTitle) #. placeholder {0}: truncate(fromTitle)
#: src/views/card/components/ActivityList.tsx:252 #: src/views/card/components/ActivityList.tsx:241
msgid "deleted checklist item <0>{0}</0>" msgid "deleted checklist item <0>{0}</0>"
msgstr "удалил элемент контрольного списка <0>{0}</0>" msgstr "удалил элемент контрольного списка <0>{0}</0>"
@@ -1011,7 +993,7 @@ msgstr "Срок завтра"
msgid "Edit" msgid "Edit"
msgstr "Редактировать" msgstr "Редактировать"
#: src/views/board/components/BoardDropdown.tsx:84 #: src/views/board/components/BoardDropdown.tsx:44
#: src/views/board/components/UpdateBoardSlugForm.tsx:116 #: src/views/board/components/UpdateBoardSlugForm.tsx:116
msgid "Edit board URL" msgid "Edit board URL"
msgstr "Изменить URL доски" msgstr "Изменить URL доски"
@@ -1299,11 +1281,11 @@ msgid "Get Started"
msgstr "Начать" msgstr "Начать"
#. placeholder {0}: isTemplate ? "template" : "board" #. placeholder {0}: isTemplate ? "template" : "board"
#: src/views/boards/components/BoardsList.tsx:65 #: src/views/boards/components/BoardsList.tsx:44
msgid "Get started by creating a new {0}" msgid "Get started by creating a new {0}"
msgstr "Начните с создания нового {0}" msgstr "Начните с создания нового {0}"
#: src/views/board/index.tsx:524 #: src/views/board/index.tsx:522
msgid "Get started by creating a new list" msgid "Get started by creating a new list"
msgstr "Начните с создания нового списка" msgstr "Начните с создания нового списка"
@@ -1613,7 +1595,7 @@ msgstr "Название списка"
msgid "Lists" msgid "Lists"
msgstr "Списки" msgstr "Списки"
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Load more activities" msgid "Load more activities"
msgstr "Загрузить больше действий" msgstr "Загрузить больше действий"
@@ -1621,7 +1603,7 @@ msgstr "Загрузить больше действий"
msgid "Loading permissions..." msgid "Loading permissions..."
msgstr "Загрузка разрешений..." msgstr "Загрузка разрешений..."
#: src/views/card/components/ActivityList.tsx:545 #: src/views/card/components/ActivityList.tsx:533
msgid "Loading..." msgid "Loading..."
msgstr "Загрузка..." msgstr "Загрузка..."
@@ -1649,16 +1631,16 @@ msgstr "Низкий приоритет"
msgid "magic link" msgid "magic link"
msgstr "магическая ссылка" msgstr "магическая ссылка"
#: src/views/board/components/BoardDropdown.tsx:73 #: src/views/board/components/BoardDropdown.tsx:34
msgid "Make template" msgid "Make template"
msgstr "Создать шаблон" msgstr "Создать шаблон"
#: src/views/card/components/ActivityList.tsx:125 #: src/views/card/components/ActivityList.tsx:114
msgid "marked a checklist item as incomplete" msgid "marked a checklist item as incomplete"
msgstr "отметил элемент контрольного списка как незавершённый" msgstr "отметил элемент контрольного списка как незавершённый"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:243 #: src/views/card/components/ActivityList.tsx:232
msgid "marked checklist item <0>{0}</0> as incomplete" msgid "marked checklist item <0>{0}</0> as incomplete"
msgstr "отметил элемент контрольного списка <0>{0}</0> как незавершённый" msgstr "отметил элемент контрольного списка <0>{0}</0> как незавершённый"
@@ -1666,8 +1648,6 @@ msgstr "отметил элемент контрольного списка <0>{
msgid "Medium Priority" msgid "Medium Priority"
msgstr "Средний приоритет" msgstr "Средний приоритет"
#: src/views/card/components/ActivityList.tsx:44
#: src/views/card/components/ActivityList.tsx:75
#: src/views/members/index.tsx:201 #: src/views/members/index.tsx:201
msgid "Member" msgid "Member"
msgstr "Участник" msgstr "Участник"
@@ -1696,11 +1676,11 @@ msgstr "ежемесячная оплата"
#. placeholder {0}: truncate(fromList) #. placeholder {0}: truncate(fromList)
#. placeholder {1}: truncate(toList) #. placeholder {1}: truncate(toList)
#: src/views/card/components/ActivityList.tsx:145 #: src/views/card/components/ActivityList.tsx:134
msgid "moved the card from <0>{0}</0> to<1>{1}</1>" msgid "moved the card from <0>{0}</0> to<1>{1}</1>"
msgstr "переместил карточку из <0>{0}</0> в <1>{1}</1>" msgstr "переместил карточку из <0>{0}</0> в <1>{1}</1>"
#: src/views/card/components/ActivityList.tsx:114 #: src/views/card/components/ActivityList.tsx:103
msgid "moved the card to another list" msgid "moved the card to another list"
msgstr "переместил карточку в другой список" msgstr "переместил карточку в другой список"
@@ -1782,7 +1762,7 @@ msgid "Next Steps"
msgstr "Следующие шаги" msgstr "Следующие шаги"
#. placeholder {0}: isTemplate ? "templates" : "boards" #. placeholder {0}: isTemplate ? "templates" : "boards"
#: src/views/boards/components/BoardsList.tsx:62 #: src/views/boards/components/BoardsList.tsx:41
msgid "No {0}" msgid "No {0}"
msgstr "Нет {0}" msgstr "Нет {0}"
@@ -1810,11 +1790,11 @@ msgstr "URL для загрузки этого вложения недоступ
msgid "No keyboard shortcuts registered." msgid "No keyboard shortcuts registered."
msgstr "Горячие клавиши не зарегистрированы." msgstr "Горячие клавиши не зарегистрированы."
#: src/views/board/index.tsx:520 #: src/views/board/index.tsx:518
msgid "No lists" msgid "No lists"
msgstr "Нет списков" msgstr "Нет списков"
#: src/views/board/index.tsx:525 #: src/views/board/index.tsx:523
msgid "No lists have been created yet" msgid "No lists have been created yet"
msgstr "Списки ещё не созданы" msgstr "Списки ещё не созданы"
@@ -1989,7 +1969,6 @@ msgstr "Пожалуйста, выберите файл для загрузки.
#: src/components/DeleteLabelConfirmation.tsx:26 #: src/components/DeleteLabelConfirmation.tsx:26
#: src/components/FeedbackModal.tsx:41 #: src/components/FeedbackModal.tsx:41
#: src/components/NewWorkspaceForm.tsx:158 #: src/components/NewWorkspaceForm.tsx:158
#: src/views/board/components/BoardDropdown.tsx:63
#: src/views/board/components/NewCardForm.tsx:184 #: src/views/board/components/NewCardForm.tsx:184
#: src/views/board/components/NewListForm.tsx:79 #: src/views/board/components/NewListForm.tsx:79
#: src/views/board/components/NewTemplateForm.tsx:61 #: src/views/board/components/NewTemplateForm.tsx:61
@@ -2117,52 +2096,44 @@ msgstr "Удалённый"
msgid "Remove" msgid "Remove"
msgstr "Удалить" msgstr "Удалить"
#: src/views/board/components/BoardDropdown.tsx:92
msgid "Remove from favorites"
msgstr "Удалить из избранного"
#: src/views/members/index.tsx:232 #: src/views/members/index.tsx:232
msgid "Remove member" msgid "Remove member"
msgstr "Удалить участника" msgstr "Удалить участника"
#. placeholder {0}: mergedLabels.length #. placeholder {0}: mergedLabels.length
#: src/views/card/components/ActivityList.tsx:103 #: src/views/card/components/ActivityList.tsx:92
msgid "removed {0} labels: <0>{labelList}</0>" msgid "removed {0} labels: <0>{labelList}</0>"
msgstr "удалил {0} метки: <0>{labelList}</0>" msgstr "удалил {0} метки: <0>{labelList}</0>"
#: src/views/card/components/ActivityList.tsx:116 #: src/views/card/components/ActivityList.tsx:105
msgid "removed a label from the card" msgid "removed a label from the card"
msgstr "удалил метку с карточки" msgstr "удалил метку с карточки"
#: src/views/card/components/ActivityList.tsx:118 #: src/views/card/components/ActivityList.tsx:107
msgid "removed a member from the card" msgid "removed a member from the card"
msgstr "удалил участника из карточки" msgstr "удалил участника из карточки"
#: src/views/board/components/BoardDropdown.tsx:52
msgid "Removed from favorites"
msgstr "Удалено из избранного"
#. placeholder {0}: truncate(label) #. placeholder {0}: truncate(label)
#: src/views/card/components/ActivityList.tsx:185 #: src/views/card/components/ActivityList.tsx:174
msgid "removed label <0>{0}</0>" msgid "removed label <0>{0}</0>"
msgstr "удалил метку <0>{0}</0>" msgstr "удалил метку <0>{0}</0>"
#: src/views/card/components/ActivityList.tsx:129 #: src/views/card/components/ActivityList.tsx:118
#: src/views/card/components/ActivityList.tsx:288 #: src/views/card/components/ActivityList.tsx:277
msgid "removed the due date" msgid "removed the due date"
msgstr "удалил(а) дату выполнения" msgstr "удалил(а) дату выполнения"
#: src/views/card/components/ActivityList.tsx:120 #: src/views/card/components/ActivityList.tsx:109
msgid "renamed a checklist" msgid "renamed a checklist"
msgstr "переименовал контрольный список" msgstr "переименовал контрольный список"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:201 #: src/views/card/components/ActivityList.tsx:190
msgid "renamed checklist <0>{0}</0>" msgid "renamed checklist <0>{0}</0>"
msgstr "переименовал контрольный список <0>{0}</0>" msgstr "переименовал контрольный список <0>{0}</0>"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:225 #: src/views/card/components/ActivityList.tsx:214
msgid "renamed checklist item to <0>{0}</0>" msgid "renamed checklist item to <0>{0}</0>"
msgstr "переименовал элемент контрольного списка в <0>{0}</0>" msgstr "переименовал элемент контрольного списка в <0>{0}</0>"
@@ -2248,7 +2219,7 @@ msgstr "Самостоятельный хостинг"
msgid "Self host with Github" msgid "Self host with Github"
msgstr "Самостоятельный хостинг с Github" msgstr "Самостоятельный хостинг с Github"
#: src/views/card/components/ActivityList.tsx:154 #: src/views/card/components/ActivityList.tsx:143
msgid "self-assigned the card" msgid "self-assigned the card"
msgstr "самостоятельно назначил карточку" msgstr "самостоятельно назначил карточку"
@@ -2268,7 +2239,7 @@ msgstr "Старший"
msgid "Set due date" msgid "Set due date"
msgstr "Установить дату выполнения" msgstr "Установить дату выполнения"
#: src/views/card/components/ActivityList.tsx:127 #: src/views/card/components/ActivityList.tsx:116
msgid "set the due date" msgid "set the due date"
msgstr "установил(а) дату выполнения" msgstr "установил(а) дату выполнения"
@@ -2632,10 +2603,6 @@ msgstr "Не удалось сбросить разрешения"
msgid "Unable to send feedback" msgid "Unable to send feedback"
msgstr "Не удалось отправить отзыв" msgstr "Не удалось отправить отзыв"
#: src/views/board/components/BoardDropdown.tsx:62
msgid "Unable to update board"
msgstr "Не удалось обновить доску"
#: src/views/board/components/UpdateBoardSlugForm.tsx:72 #: src/views/board/components/UpdateBoardSlugForm.tsx:72
msgid "Unable to update board URL" msgid "Unable to update board URL"
msgstr "Не удалось обновить URL доски" msgstr "Не удалось обновить URL доски"
@@ -2687,12 +2654,12 @@ msgstr "Не удалось обновить разрешения"
msgid "Unable to update role" msgid "Unable to update role"
msgstr "Не удалось обновить роль" msgstr "Не удалось обновить роль"
#. placeholder {0}: truncate(displayName) #. placeholder {0}: truncate(memberName)
#: src/views/card/components/ActivityList.tsx:168 #: src/views/card/components/ActivityList.tsx:157
msgid "unassigned <0>{0}</0> from the card" msgid "unassigned <0>{0}</0> from the card"
msgstr "удалил(а) <0>{0}</0> из карточки" msgstr "удалил(а) <0>{0}</0> из карточки"
#: src/views/card/components/ActivityList.tsx:165 #: src/views/card/components/ActivityList.tsx:154
msgid "unassigned themselves from the card" msgid "unassigned themselves from the card"
msgstr "удалил(а) себя из карточки" msgstr "удалил(а) себя из карточки"
@@ -2751,24 +2718,24 @@ msgstr "Обновить"
msgid "Update label" msgid "Update label"
msgstr "Обновить метку" msgstr "Обновить метку"
#: src/views/card/components/ActivityList.tsx:123 #: src/views/card/components/ActivityList.tsx:112
msgid "updated a checklist item" msgid "updated a checklist item"
msgstr "обновлен элемент контрольного списка" msgstr "обновлен элемент контрольного списка"
#: src/views/card/components/ActivityList.tsx:113 #: src/views/card/components/ActivityList.tsx:102
msgid "updated the description" msgid "updated the description"
msgstr "обновлено описание" msgstr "обновлено описание"
#: src/views/card/components/ActivityList.tsx:128 #: src/views/card/components/ActivityList.tsx:117
msgid "updated the due date" msgid "updated the due date"
msgstr "обновил(а) дату выполнения" msgstr "обновил(а) дату выполнения"
#: src/views/card/components/ActivityList.tsx:112 #: src/views/card/components/ActivityList.tsx:101
msgid "updated the title" msgid "updated the title"
msgstr "обновлен заголовок" msgstr "обновлен заголовок"
#. placeholder {0}: truncate(toTitle) #. placeholder {0}: truncate(toTitle)
#: src/views/card/components/ActivityList.tsx:137 #: src/views/card/components/ActivityList.tsx:126
msgid "updated the title to <0>{0}</0>" msgid "updated the title to <0>{0}</0>"
msgstr "обновлен заголовок на <0>{0}</0>" msgstr "обновлен заголовок на <0>{0}</0>"
@@ -2893,7 +2860,7 @@ msgstr "Зачем создавать Trello с открытым исходны
#: src/views/boards/index.tsx:35 #: src/views/boards/index.tsx:35
#: src/views/members/index.tsx:257 #: src/views/members/index.tsx:257
#: src/views/public/board/index.tsx:120 #: src/views/public/board/index.tsx:120
#: src/views/public/boards/index.tsx:65 #: src/views/public/boards/index.tsx:66
msgid "Workspace" msgid "Workspace"
msgstr "Рабочее пространство" msgstr "Рабочее пространство"
@@ -2998,8 +2965,8 @@ msgstr "Вы можете развернуть собственный хости
#: src/views/board/components/UpdateBoardSlugButton.tsx:31 #: src/views/board/components/UpdateBoardSlugButton.tsx:31
#: src/views/board/components/VisibilityButton.tsx:72 #: src/views/board/components/VisibilityButton.tsx:72
#: src/views/board/index.tsx:472 #: src/views/board/index.tsx:472
#: src/views/board/index.tsx:530 #: src/views/board/index.tsx:528
#: src/views/boards/components/BoardsList.tsx:70 #: src/views/boards/components/BoardsList.tsx:49
#: src/views/boards/index.tsx:46 #: src/views/boards/index.tsx:46
#: src/views/boards/index.tsx:67 #: src/views/boards/index.tsx:67
msgid "You don't have permission" msgid "You don't have permission"

File diff suppressed because one or more lines are too long

View File

@@ -1,128 +0,0 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { PutObjectCommand } from "@aws-sdk/client-s3";
import { createNextApiContext } from "@kan/api/trpc";
import * as cardRepo from "@kan/db/repository/card.repo";
import * as cardActivityRepo from "@kan/db/repository/cardActivity.repo";
import * as cardAttachmentRepo from "@kan/db/repository/cardAttachment.repo";
import { generateUID } from "@kan/shared/utils";
import { env } from "~/env";
import { withRateLimit } from "@kan/api/utils/rateLimit";
import { createS3Client } from "@kan/shared/utils";
import { assertPermission } from "@kan/api/utils/permissions";
const MAX_SIZE_BYTES = 50 * 1024 * 1024; // 50MB
export const config = {
api: {
bodyParser: false,
},
};
export default withRateLimit(
{ points: 100, duration: 60 },
async (req: NextApiRequest, res: NextApiResponse) => {
if (req.method !== "POST") {
return res.status(405).json({ error: "Method not allowed" });
}
try {
const { user, db } = await createNextApiContext(req);
if (!user) {
return res.status(401).json({ error: "Unauthorized" });
}
const bucket = env.NEXT_PUBLIC_ATTACHMENTS_BUCKET_NAME;
if (!bucket) {
return res.status(500).json({ error: "Attachments bucket not configured" });
}
const cardPublicId = req.query.cardPublicId;
if (typeof cardPublicId !== "string" || cardPublicId.length < 12) {
return res.status(400).json({ error: "Invalid cardPublicId" });
}
const contentType = req.headers["content-type"];
const contentLengthHeader = req.headers["content-length"];
const contentLength = contentLengthHeader
? Number.parseInt(contentLengthHeader, 10)
: NaN;
if (typeof contentType !== "string") {
return res.status(400).json({ error: "Missing content type" });
}
if (!Number.isFinite(contentLength) || contentLength <= 0) {
return res.status(400).json({ error: "Missing or invalid content length" });
}
if (contentLength > MAX_SIZE_BYTES) {
return res.status(400).json({ error: "File too large" });
}
const originalFilenameHeader =
(req.headers["x-original-filename"] as string | undefined) ?? "file";
const sanitizedFilename = originalFilenameHeader
.replace(/[^a-zA-Z0-9._-]/g, "_")
.substring(0, 200);
// Get card and check permissions
const card = await cardRepo.getWorkspaceAndCardIdByCardPublicId(
db,
cardPublicId,
);
if (!card) {
return res.status(404).json({ error: "Card not found" });
}
// Check if user has permission to edit the card
try {
await assertPermission(db, user.id, card.workspaceId, "card:edit");
} catch {
return res.status(403).json({ error: "Permission denied" });
}
const s3Key = `${card.workspaceId}/${cardPublicId}/${generateUID()}-${sanitizedFilename}`;
const client = createS3Client();
// Upload the file to S3
await client.send(
new PutObjectCommand({
Bucket: bucket,
Key: s3Key,
Body: req,
ContentType: contentType,
ContentLength: contentLength,
}),
);
// Create attachment record and log activity
const attachment = await cardAttachmentRepo.create(db, {
cardId: card.id,
filename: sanitizedFilename,
originalFilename: originalFilenameHeader,
contentType,
size: contentLength,
s3Key,
createdBy: user.id,
});
await cardActivityRepo.create(db, {
type: "card.updated.attachment.added",
cardId: card.id,
createdBy: user.id,
});
return res.status(200).json({ attachment });
} catch (error) {
console.error("Attachment upload failed", error);
return res.status(500).json({ error: "Internal server error" });
}
},
);

View File

@@ -1,101 +0,0 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { PutObjectCommand } from "@aws-sdk/client-s3";
import { createNextApiContext } from "@kan/api/trpc";
import * as userRepo from "@kan/db/repository/user.repo";
import { env } from "~/env";
import { withRateLimit } from "@kan/api/utils/rateLimit";
import { createS3Client } from "@kan/shared/utils";
const MAX_SIZE_BYTES = 2 * 1024 * 1024; // 2MB
const allowedContentTypes = ["image/jpeg", "image/png", "image/webp"];
export const config = {
api: {
bodyParser: false,
},
};
export default withRateLimit(
{ points: 100, duration: 60 },
async (req: NextApiRequest, res: NextApiResponse) => {
if (req.method !== "POST") {
return res.status(405).json({ error: "Method not allowed" });
}
try {
const { user, db } = await createNextApiContext(req);
if (!user) {
return res.status(401).json({ error: "Unauthorized" });
}
const bucket = env.NEXT_PUBLIC_AVATAR_BUCKET_NAME;
if (!bucket) {
return res.status(500).json({ error: "Avatar bucket not configured" });
}
const contentType = req.headers["content-type"];
const contentLengthHeader = req.headers["content-length"];
const contentLength = contentLengthHeader
? Number.parseInt(contentLengthHeader, 10)
: NaN;
if (typeof contentType !== "string") {
return res.status(400).json({ error: "Missing content type" });
}
if (!allowedContentTypes.includes(contentType)) {
return res.status(400).json({ error: "Invalid content type" });
}
if (!Number.isFinite(contentLength) || contentLength <= 0) {
return res.status(400).json({ error: "Missing or invalid content length" });
}
if (contentLength > MAX_SIZE_BYTES) {
return res.status(400).json({ error: "File too large" });
}
const originalFilenameHeader =
(req.headers["x-original-filename"] as string | undefined) ?? "file";
const sanitizedFilename = originalFilenameHeader
.replace(/[^a-zA-Z0-9._-]/g, "_")
.substring(0, 200);
const s3Key = `${user.id}/${sanitizedFilename}`;
const client = createS3Client();
// Upload the file to S3
await client.send(
new PutObjectCommand({
Bucket: bucket,
Key: s3Key,
Body: req,
ContentType: contentType,
ContentLength: contentLength,
}),
);
// Update user image in database
const updatedUser = await userRepo.update(db, user.id, {
image: s3Key,
});
return res.status(200).json({
key: s3Key,
filename: sanitizedFilename,
contentType,
size: contentLength,
user: updatedUser,
});
} catch (error) {
console.error("Avatar upload failed", error);
return res.status(500).json({ error: "Internal server error" });
}
},
);

View File

@@ -0,0 +1,75 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
import { env as nextRuntimeEnv } from "next-runtime-env";
import { createNextApiContext } from "@kan/api/trpc";
import { env } from "~/env";
import { withRateLimit } from "@kan/api/utils/rateLimit";
const allowedContentTypes = ["image/jpeg", "image/png"];
export default withRateLimit(
{ points: 100, duration: 60 },
async (req: NextApiRequest, res: NextApiResponse) => {
if (req.method !== "POST") {
return res.status(405).json({ error: "Method not allowed" });
}
try {
const { user } = await createNextApiContext(req);
if (!user) {
return res.status(401).json({ error: "Unauthorized" });
}
const { filename, contentType } = req.body as {
filename: string;
contentType: string;
};
// Specific to avatar uploads for now
const filenameRegex = /^[a-f0-9\-]+\/[a-zA-Z0-9_\-]+(\.jpg|\.jpeg|\.png)$/;
if (!filenameRegex.test(filename)) {
return res.status(400).json({ error: "Invalid filename" });
}
if (
typeof contentType !== "string" ||
!allowedContentTypes.includes(contentType)
) {
return res.status(400).json({ error: "Invalid content type" });
}
const credentials =
env.S3_ACCESS_KEY_ID && env.S3_SECRET_ACCESS_KEY
? {
accessKeyId: env.S3_ACCESS_KEY_ID,
secretAccessKey: env.S3_SECRET_ACCESS_KEY,
}
: undefined;
const client = new S3Client({
region: env.S3_REGION ?? "",
endpoint: env.S3_ENDPOINT ?? "",
forcePathStyle: env.S3_FORCE_PATH_STYLE === "true",
credentials,
});
const signedUrl = await getSignedUrl(
client,
new PutObjectCommand({
Bucket: nextRuntimeEnv("NEXT_PUBLIC_AVATAR_BUCKET_NAME") ?? "",
Key: filename,
ACL: "public-read",
}),
);
return res.status(200).json({ url: signedUrl, key: filename });
} catch (error) {
return res.status(500).json({ error: (error as Error).message });
}
},
);

View File

@@ -1,5 +1,4 @@
import type { ReactNode } from "react"; import type { ReactNode } from "react";
import React from "react";
import { import {
Dialog, Dialog,
DialogBackdrop, DialogBackdrop,
@@ -465,37 +464,19 @@ function FormattedShortcut({ shortcut }: { shortcut: KeyboardShortcut }) {
? stroke.modifiers.map(stringifyModifier) ? stroke.modifiers.map(stringifyModifier)
: []; : [];
modifierStrings.forEach((mod, index) => { modifierStrings.forEach((mod) => {
parts.push( parts.push(<kbd className={kbdClassName}>{mod}</kbd>);
<kbd key={`mod-${index}-${mod}`} className={kbdClassName}>
{mod}
</kbd>,
);
}); });
parts.push( parts.push(<kbd className={kbdClassName}>{stroke.key.toUpperCase()}</kbd>);
<kbd key={`key-${stroke.key}`} className={kbdClassName}>
{stroke.key.toUpperCase()}
</kbd>,
);
return parts; return parts;
}; };
if (shortcut.type === "SEQUENCE") { if (shortcut.type === "SEQUENCE") {
const parts: ReactNode[] = []; const parts: ReactNode[] = [];
shortcut.strokes.forEach((stroke, strokeIndex) => { shortcut.strokes.forEach((stroke) => {
const strokeParts = formatStroke(stroke); parts.push(...formatStroke(stroke));
// Add stroke index to keys to ensure uniqueness across multiple strokes
const keyedParts = strokeParts.map((part, partIndex) => {
if (React.isValidElement(part)) {
return React.cloneElement(part, {
key: `stroke-${strokeIndex}-${part.key || partIndex}`,
});
}
return part;
});
parts.push(...keyedParts);
}); });
return <span className="flex items-center gap-1 text-[11px]">{parts}</span>; return <span className="flex items-center gap-1 text-[11px]">{parts}</span>;
} }

View File

@@ -8,8 +8,6 @@ export async function invalidateCard(
utils: ReturnType<typeof api.useUtils>, utils: ReturnType<typeof api.useUtils>,
cardPublicId: string, cardPublicId: string,
) { ) {
if (!cardPublicId || cardPublicId.length < 12) return;
await Promise.all([ await Promise.all([
utils.card.byId.invalidate({ cardPublicId }), utils.card.byId.invalidate({ cardPublicId }),
utils.card.getActivities.invalidate({ cardPublicId }), utils.card.getActivities.invalidate({ cardPublicId }),

View File

@@ -1,3 +1,5 @@
import { env } from "next-runtime-env";
export const formatToArray = ( export const formatToArray = (
value: string | string[] | undefined, value: string | string[] | undefined,
): string[] => { ): string[] => {
@@ -50,5 +52,14 @@ export const getAvatarUrl = (imageOrKey: string | null) => {
return imageOrKey; return imageOrKey;
} }
return ""; const bucket = env("NEXT_PUBLIC_AVATAR_BUCKET_NAME");
const useVirtualHostedUrls = env("NEXT_PUBLIC_USE_VIRTUAL_HOSTED_URLS");
const storageDomain = env("NEXT_PUBLIC_STORAGE_DOMAIN");
if (useVirtualHostedUrls === "true" && storageDomain) {
return `https://${bucket}.${storageDomain}/${imageOrKey}`;
}
const storageUrl = env("NEXT_PUBLIC_STORAGE_URL");
return `${storageUrl}/${bucket}/${imageOrKey}`;
}; };

View File

@@ -36,21 +36,12 @@ const truncate = (value: string | null, maxLength = 50) => {
return value.length > maxLength ? `${value.slice(0, maxLength - 1)}` : value; return value.length > maxLength ? `${value.slice(0, maxLength - 1)}` : value;
}; };
const getUserDisplayName = (
user: { name?: string | null; email?: string | null } | null | undefined,
): string => {
if (user?.name?.trim()) return user.name;
if (user?.email) return user.email;
return t`Member`;
};
const getActivityText = ({ const getActivityText = ({
type, type,
toTitle, toTitle,
fromList, fromList,
toList, toList,
memberName, memberName,
memberEmail,
isSelf, isSelf,
label, label,
fromTitle, fromTitle,
@@ -63,7 +54,6 @@ const getActivityText = ({
fromList: string | null; fromList: string | null;
toList: string | null; toList: string | null;
memberName: string | null; memberName: string | null;
memberEmail: string | null;
isSelf: boolean; isSelf: boolean;
label: string | null; label: string | null;
fromTitle?: string | null; fromTitle?: string | null;
@@ -72,7 +62,6 @@ const getActivityText = ({
dateLocale: DateFnsLocale; dateLocale: DateFnsLocale;
mergedLabels?: string[]; mergedLabels?: string[];
}) => { }) => {
const displayName = memberName ?? memberEmail ?? t`Member`;
const TextHighlight = ({ children }: { children: React.ReactNode }) => ( const TextHighlight = ({ children }: { children: React.ReactNode }) => (
<span className="font-medium text-light-1000 dark:text-dark-1000"> <span className="font-medium text-light-1000 dark:text-dark-1000">
{children} {children}
@@ -150,23 +139,23 @@ const getActivityText = ({
); );
} }
if (type === "card.updated.member.added" && displayName) { if (type === "card.updated.member.added" && memberName) {
if (isSelf) return <Trans>self-assigned the card</Trans>; if (isSelf) return <Trans>self-assigned the card</Trans>;
return ( return (
<Trans> <Trans>
assigned <TextHighlight>{truncate(displayName)}</TextHighlight> to the assigned <TextHighlight>{truncate(memberName)}</TextHighlight> to the
card card
</Trans> </Trans>
); );
} }
if (type === "card.updated.member.removed" && displayName) { if (type === "card.updated.member.removed" && memberName) {
if (isSelf) return <Trans>unassigned themselves from the card</Trans>; if (isSelf) return <Trans>unassigned themselves from the card</Trans>;
return ( return (
<Trans> <Trans>
unassigned <TextHighlight>{truncate(displayName)}</TextHighlight> from unassigned <TextHighlight>{truncate(memberName)}</TextHighlight> from
the card the card
</Trans> </Trans>
); );
@@ -363,7 +352,7 @@ const ActivityList = ({
limit: ACTIVITIES_PAGE_SIZE, limit: ACTIVITIES_PAGE_SIZE,
}, },
{ {
enabled: !!cardPublicId && cardPublicId.length >= 12, enabled: !!cardPublicId,
}, },
); );
@@ -466,7 +455,6 @@ const ActivityList = ({
fromList: activity.fromList?.name ?? null, fromList: activity.fromList?.name ?? null,
toList: activity.toList?.name ?? null, toList: activity.toList?.name ?? null,
memberName: activity.member?.user?.name ?? null, memberName: activity.member?.user?.name ?? null,
memberEmail: activity.member?.user?.email ?? null,
isSelf: activity.member?.user?.id === sessionData?.user.id, isSelf: activity.member?.user?.id === sessionData?.user.id,
label: activity.label?.name ?? null, label: activity.label?.name ?? null,
fromTitle: activity.fromTitle ?? null, fromTitle: activity.fromTitle ?? null,
@@ -520,7 +508,7 @@ const ActivityList = ({
)} )}
</div> </div>
<p className="text-sm"> <p className="text-sm">
<span className="font-medium dark:text-dark-1000">{`${getUserDisplayName(activity.user)} `}</span> <span className="font-medium dark:text-dark-1000">{`${activity.user?.name} `}</span>
<span className="space-x-1 text-light-900 dark:text-dark-800"> <span className="space-x-1 text-light-900 dark:text-dark-800">
{activityText} {activityText}
</span> </span>

View File

@@ -7,7 +7,6 @@ import { twMerge } from "tailwind-merge";
import Button from "~/components/Button"; import Button from "~/components/Button";
import { useModal } from "~/providers/modal"; import { useModal } from "~/providers/modal";
import { usePopup } from "~/providers/popup"; import { usePopup } from "~/providers/popup";
import { env } from "next-runtime-env";
import { api } from "~/utils/api"; import { api } from "~/utils/api";
import { invalidateCard } from "~/utils/cardInvalidation"; import { invalidateCard } from "~/utils/cardInvalidation";
@@ -19,33 +18,62 @@ export function AttachmentUpload({ cardPublicId }: { cardPublicId: string }) {
const [isDragging, setIsDragging] = useState(false); const [isDragging, setIsDragging] = useState(false);
const inputRef = useRef<HTMLInputElement | null>(null); const inputRef = useRef<HTMLInputElement | null>(null);
const uploadFile = async (file: File) => { const generateUploadUrl = api.attachment.generateUploadUrl.useMutation();
setUploading(true); const confirmAttachment = api.attachment.confirm.useMutation({
onSuccess: async () => {
try {
const baseUrl = env("NEXT_PUBLIC_BASE_URL") ?? "";
const response = await fetch(
`${baseUrl}/api/upload/attachment?cardPublicId=${encodeURIComponent(cardPublicId)}`,
{
method: "POST",
headers: {
"Content-Type": file.type,
"x-original-filename": file.name,
},
body: file,
},
);
if (!response.ok) {
throw new Error("Upload failed");
}
await invalidateCard(utils, cardPublicId); await invalidateCard(utils, cardPublicId);
showPopup({ showPopup({
header: t`Attachment uploaded`, header: t`Attachment uploaded`,
message: t`Your file has been uploaded successfully.`, message: t`Your file has been uploaded successfully.`,
icon: "success", icon: "success",
}); });
},
onError: () => {
showPopup({
header: t`Upload failed`,
message: t`Failed to upload attachment. Please try again.`,
icon: "error",
});
},
onSettled: () => {
setUploading(false);
},
});
const uploadFile = async (file: File) => {
setUploading(true);
try {
// Generate presigned URL
const { url, key } = await generateUploadUrl.mutateAsync({
cardPublicId,
filename: file.name,
contentType: file.type,
size: file.size,
});
// Upload file to S3
const uploadResponse = await fetch(url, {
method: "PUT",
body: file,
headers: {
"Content-Type": file.type,
},
});
if (!uploadResponse.ok) {
throw new Error("Upload failed");
}
// Confirm attachment in database
await confirmAttachment.mutateAsync({
cardPublicId,
s3Key: key,
filename: file.name,
originalFilename: file.name,
contentType: file.type,
size: file.size,
});
} catch { } catch {
showPopup({ showPopup({
header: t`Upload failed`, header: t`Upload failed`,

View File

@@ -53,10 +53,9 @@ export function CardRightPanel({ isTemplate }: { isTemplate?: boolean }) {
? router.query.cardId[0] ? router.query.cardId[0]
: router.query.cardId; : router.query.cardId;
const { data: card } = api.card.byId.useQuery( const { data: card } = api.card.byId.useQuery({
{ cardPublicId: cardId ?? "" }, cardPublicId: cardId ?? "",
{ enabled: !!cardId && cardId.length >= 12 }, });
);
const isCreator = card?.createdBy && session?.user.id === card.createdBy; const isCreator = card?.createdBy && session?.user.id === card.createdBy;
const canEdit = canEditCard || isCreator; const canEdit = canEditCard || isCreator;
@@ -185,10 +184,9 @@ export default function CardPage({ isTemplate }: { isTemplate?: boolean }) {
? router.query.cardId[0] ? router.query.cardId[0]
: router.query.cardId; : router.query.cardId;
const { data: card, isLoading } = api.card.byId.useQuery( const { data: card, isLoading } = api.card.byId.useQuery({
{ cardPublicId: cardId ?? "" }, cardPublicId: cardId ?? "",
{ enabled: !!cardId && cardId.length >= 12 }, });
);
const isCreator = card?.createdBy && session?.user.id === card.createdBy; const isCreator = card?.createdBy && session?.user.id === card.createdBy;
const canEdit = canEditCard || isCreator; const canEdit = canEditCard || isCreator;

View File

@@ -37,7 +37,7 @@ export default function MembersPage() {
const { data, isLoading } = api.workspace.byId.useQuery( const { data, isLoading } = api.workspace.byId.useQuery(
{ workspacePublicId: workspace.publicId }, { workspacePublicId: workspace.publicId },
{ enabled: !!workspace.publicId && workspace.publicId.length >= 12 }, // { enabled: workspace?.publicId ? true : false },
); );
const { data: session } = authClient.useSession(); const { data: session } = authClient.useSession();
@@ -48,11 +48,9 @@ export default function MembersPage() {
const updateRoleMutation = api.member.updateRole.useMutation({ const updateRoleMutation = api.member.updateRole.useMutation({
onSuccess: async () => { onSuccess: async () => {
if (workspace.publicId && workspace.publicId.length >= 12) { await utils.workspace.byId.invalidate({
await utils.workspace.byId.invalidate({ workspacePublicId: workspace.publicId,
workspacePublicId: workspace.publicId, });
});
}
showPopup({ showPopup({
header: t`Role updated`, header: t`Role updated`,
@@ -126,6 +124,7 @@ export default function MembersPage() {
name={memberName ?? ""} name={memberName ?? ""}
email={memberEmail ?? ""} email={memberEmail ?? ""}
imageUrl={memberImage ? getAvatarUrl(memberImage) : undefined} imageUrl={memberImage ? getAvatarUrl(memberImage) : undefined}
icon={showPendingIcon ? "?" : undefined}
/> />
)} )}
</div> </div>

View File

@@ -32,7 +32,7 @@ export function CardModal({
cardPublicId: cardPublicId ?? "", cardPublicId: cardPublicId ?? "",
}, },
{ {
enabled: isOpen && !!cardPublicId && cardPublicId.length >= 12, enabled: isOpen && !!cardPublicId,
}, },
); );

View File

@@ -28,11 +28,9 @@ export default function PermissionsSettings() {
}); });
// Refresh any relevant workspace data // Refresh any relevant workspace data
if (workspace.publicId && workspace.publicId.length >= 12) { await utils.workspace.byId.invalidate({
await utils.workspace.byId.invalidate({ workspacePublicId: workspace.publicId,
workspacePublicId: workspace.publicId, });
});
}
}, },
onError: () => { onError: () => {
showPopup({ showPopup({

View File

@@ -31,10 +31,9 @@ export default function WorkspaceSettings() {
const { data } = api.user.getUser.useQuery(); const { data } = api.user.getUser.useQuery();
const [hasOpenedUpgradeModal, setHasOpenedUpgradeModal] = useState(false); const [hasOpenedUpgradeModal, setHasOpenedUpgradeModal] = useState(false);
const { data: workspaceData } = api.workspace.byId.useQuery( const { data: workspaceData } = api.workspace.byId.useQuery({
{ workspacePublicId: workspace.publicId }, workspacePublicId: workspace.publicId,
{ enabled: !!workspace.publicId && workspace.publicId.length >= 12 }, });
);
const subscriptions = workspaceData?.subscriptions as const subscriptions = workspaceData?.subscriptions as
| Subscription[] | Subscription[]

View File

@@ -58,6 +58,28 @@ export default function Avatar({
const [crop, setCrop] = useState<PercentCrop>(); const [crop, setCrop] = useState<PercentCrop>();
const imgRef = useRef<HTMLImageElement | null>(null); const imgRef = useRef<HTMLImageElement | null>(null);
const updateUser = api.user.update.useMutation({
onSuccess: async () => {
showPopup({
header: t`Profile image updated`,
message: t`Your profile image has been updated.`,
icon: "success",
});
try {
await utils.user.getUser.refetch();
} catch (e) {
console.error(e);
throw e;
}
},
onError: () => {
showPopup({
header: t`Error updating profile image`,
message: t`Please try again later, or contact customer support.`,
icon: "error",
});
},
});
const avatarUrl = userImage ? getAvatarUrl(userImage) : undefined; const avatarUrl = userImage ? getAvatarUrl(userImage) : undefined;
@@ -165,32 +187,29 @@ export default function Avatar({
const originalExt = selectedFile.name.split(".").pop() ?? "jpg"; const originalExt = selectedFile.name.split(".").pop() ?? "jpg";
const fileName = `${userId}/avatar-${generateUID()}.${originalExt}`; const fileName = `${userId}/avatar-${generateUID()}.${originalExt}`;
const baseUrl = env("NEXT_PUBLIC_BASE_URL") ?? "";
const response = await fetch( const response = await fetch(
`${baseUrl}/api/upload/avatar`, env("NEXT_PUBLIC_BASE_URL") + "/api/upload/image",
{ {
method: "POST", method: "POST",
headers: { headers: {
"Content-Type": blob.type, "Content-Type": "application/json",
"x-original-filename": fileName,
}, },
body: blob, body: JSON.stringify({ filename: fileName, contentType: blob.type }),
}, },
); );
if (!response.ok) { if (!response.ok) throw new Error("Failed to get pre-signed URL");
throw new Error("Failed to upload profile image");
}
// User image is updated in the backend, refresh user data const { url } = (await response.json()) as { url: string };
await utils.user.getUser.refetch();
const uploadResponse = await fetch(url, {
showPopup({ method: "PUT",
header: t`Profile image updated`, body: blob,
message: t`Your profile image has been updated.`,
icon: "success",
}); });
if (!uploadResponse.ok) throw new Error("Failed to upload profile image");
updateUser.mutate({ image: fileName });
setCropDialogOpen(false); setCropDialogOpen(false);
resetCropState(); resetCropState();
} catch (error) { } catch (error) {
@@ -208,7 +227,7 @@ export default function Avatar({
resetCropState, resetCropState,
selectedFile, selectedFile,
showPopup, showPopup,
utils.user.getUser, updateUser,
userId, userId,
]); ]);

View File

@@ -22,11 +22,9 @@ export default function UpdateWorkspaceEmailVisibilityForm({
const updateWorkspace = api.workspace.update.useMutation({ const updateWorkspace = api.workspace.update.useMutation({
onSuccess: () => { onSuccess: () => {
if (workspacePublicId && workspacePublicId.length >= 12) { void utils.workspace.byId.invalidate({
void utils.workspace.byId.invalidate({ workspacePublicId,
workspacePublicId, });
});
}
}, },
}); });

View File

@@ -27,10 +27,6 @@
"./utils/rateLimit": { "./utils/rateLimit": {
"types": "./dist/utils/rateLimit.d.ts", "types": "./dist/utils/rateLimit.d.ts",
"default": "./src/utils/rateLimit.ts" "default": "./src/utils/rateLimit.ts"
},
"./utils/permissions": {
"types": "./dist/utils/permissions.d.ts",
"default": "./src/utils/permissions.ts"
} }
}, },
"license": "GPL-3.0", "license": "GPL-3.0",
@@ -43,6 +39,8 @@
"typecheck": "tsc --noEmit --emitDeclarationOnly false" "typecheck": "tsc --noEmit --emitDeclarationOnly false"
}, },
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.802.0",
"@aws-sdk/s3-request-presigner": "^3.812.0",
"@kan/auth": "workspace:*", "@kan/auth": "workspace:*",
"@kan/db": "workspace:*", "@kan/db": "workspace:*",
"@kan/email": "workspace:^", "@kan/email": "workspace:^",

View File

@@ -9,7 +9,7 @@ import { generateUID } from "@kan/shared/utils";
import { createTRPCRouter, protectedProcedure } from "../trpc"; import { createTRPCRouter, protectedProcedure } from "../trpc";
import { assertPermission } from "../utils/permissions"; import { assertPermission } from "../utils/permissions";
import { deleteObject, generateUploadUrl } from "@kan/shared/utils"; import { deleteObject, generateUploadUrl } from "../utils/s3";
export const attachmentRouter = createTRPCRouter({ export const attachmentRouter = createTRPCRouter({
generateUploadUrl: protectedProcedure generateUploadUrl: protectedProcedure

View File

@@ -10,7 +10,6 @@ import * as workspaceRepo from "@kan/db/repository/workspace.repo";
import { colours } from "@kan/shared/constants"; import { colours } from "@kan/shared/constants";
import { import {
convertDueDateFiltersToRanges, convertDueDateFiltersToRanges,
generateAvatarUrl,
generateSlug, generateSlug,
generateUID, generateUID,
} from "@kan/shared/utils"; } from "@kan/shared/utils";
@@ -143,33 +142,7 @@ export const boardRouter = createTRPCRouter({
}, },
); );
// Generate presigned URLs for workspace member avatars return result;
const workspaceWithAvatarUrls = result.workspace
? {
...result.workspace,
members: await Promise.all(
result.workspace.members.map(async (member) => {
if (!member.user?.image) {
return member;
}
const avatarUrl = await generateAvatarUrl(member.user.image);
return {
...member,
user: {
...member.user,
image: avatarUrl,
},
};
}),
),
}
: result.workspace;
return {
...result,
workspace: workspaceWithAvatarUrls,
};
}), }),
bySlug: publicProcedure bySlug: publicProcedure
.meta({ .meta({

View File

@@ -11,7 +11,7 @@ import * as workspaceRepo from "@kan/db/repository/workspace.repo";
import { createTRPCRouter, protectedProcedure, publicProcedure } from "../trpc"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../trpc";
import { mergeActivities } from "../utils/activities"; import { mergeActivities } from "../utils/activities";
import { assertCanDelete, assertCanEdit, assertPermission } from "../utils/permissions"; import { assertCanDelete, assertCanEdit, assertPermission } from "../utils/permissions";
import { generateAttachmentUrl, generateAvatarUrl } from "@kan/shared/utils"; import { generateDownloadUrl } from "../utils/s3";
export const cardRouter = createTRPCRouter({ export const cardRouter = createTRPCRouter({
create: protectedProcedure create: protectedProcedure
@@ -631,54 +631,45 @@ export const cardRouter = createTRPCRouter({
}); });
// Generate URLs for all attachments // Generate URLs for all attachments
const attachmentsWithUrls = await Promise.all( const bucket = process.env.NEXT_PUBLIC_ATTACHMENTS_BUCKET_NAME;
result.attachments.map(async (attachment) => { if (result.attachments && Array.isArray(result.attachments)) {
const url = await generateAttachmentUrl(attachment.s3Key); const attachments = result.attachments as {
return { publicId: string;
publicId: attachment.publicId, contentType: string;
contentType: attachment.contentType, s3Key: string;
s3Key: attachment.s3Key, originalFilename: string | null;
originalFilename: attachment.originalFilename, size?: number | null;
size: attachment.size, }[];
url,
};
}),
);
// Generate presigned URLs for workspace member avatars const attachmentsWithUrls = await Promise.all(
const workspaceWithAvatarUrls = result.list.board.workspace attachments.map(async (attachment) => {
? { const base = {
...result.list.board.workspace, publicId: attachment.publicId,
members: await Promise.all( contentType: attachment.contentType,
result.list.board.workspace.members.map(async (member) => { s3Key: attachment.s3Key,
if (!member.user?.image) { originalFilename: attachment.originalFilename,
return member; size: attachment.size,
} };
if (!bucket || !attachment.s3Key) {
return { ...base, url: null };
}
try {
const url = await generateDownloadUrl(
bucket,
attachment.s3Key,
86400, // 24 hours expiration
);
return { ...base, url };
} catch {
// If URL generation fails, return attachment with url: null
return { ...base, url: null };
}
}),
);
return { ...result, attachments: attachmentsWithUrls };
}
const avatarUrl = await generateAvatarUrl(member.user.image); return { ...result, attachments: [] };
return {
...member,
user: {
...member.user,
image: avatarUrl,
},
};
}),
),
}
: result.list.board.workspace;
return {
...result,
attachments: attachmentsWithUrls,
list: {
...result.list,
board: {
...result.list.board,
workspace: workspaceWithAvatarUrls,
},
},
};
}), }),
getActivities: publicProcedure getActivities: publicProcedure
.meta({ .meta({
@@ -747,39 +738,7 @@ export const cardRouter = createTRPCRouter({
}, },
); );
// Generate presigned URLs for user avatars in activities const mergedActivities = mergeActivities(result.activities);
const activitiesWithAvatarUrls = await Promise.all(
result.activities.map(async (activity) => {
const updatedActivity = { ...activity };
// Generate presigned URL for activity user avatar
if (activity.user?.image) {
const userAvatarUrl = await generateAvatarUrl(activity.user.image);
updatedActivity.user = {
...activity.user,
image: userAvatarUrl,
};
}
// Generate presigned URL for member user avatar (if exists)
if (activity.member?.user?.image) {
const memberAvatarUrl = await generateAvatarUrl(
activity.member.user.image,
);
updatedActivity.member = {
...activity.member,
user: {
...activity.member.user,
image: memberAvatarUrl,
},
};
}
return updatedActivity;
}),
);
const mergedActivities = mergeActivities(activitiesWithAvatarUrls);
return { return {
activities: mergedActivities, activities: mergedActivities,

View File

@@ -24,7 +24,7 @@ import {
createTRPCRouter, createTRPCRouter,
publicProcedure, publicProcedure,
} from "../trpc"; } from "../trpc";
import { createS3Client } from "@kan/shared/utils"; import { createS3Client } from "../utils/s3";
const checkDatabaseConnection = async (db: dbClient) => { const checkDatabaseConnection = async (db: dbClient) => {
try { try {

View File

@@ -4,7 +4,6 @@ import { z } from "zod";
import * as userRepo from "@kan/db/repository/user.repo"; import * as userRepo from "@kan/db/repository/user.repo";
import { createTRPCRouter, protectedProcedure } from "../trpc"; import { createTRPCRouter, protectedProcedure } from "../trpc";
import { generateAvatarUrl } from "@kan/shared/utils";
export const userRouter = createTRPCRouter({ export const userRouter = createTRPCRouter({
getUser: protectedProcedure getUser: protectedProcedure
@@ -56,12 +55,8 @@ export const userRouter = createTRPCRouter({
const apiKey = result.apiKeys[0]; const apiKey = result.apiKeys[0];
// Generate presigned URL for avatar
const imageUrl = await generateAvatarUrl(result.image);
return { return {
...result, ...result,
image: imageUrl,
apiKey: apiKey ?? null, apiKey: apiKey ?? null,
}; };
}), }),
@@ -107,12 +102,6 @@ export const userRouter = createTRPCRouter({
}); });
} }
// Generate presigned URL for avatar return result;
const imageUrl = await generateAvatarUrl(result.image);
return {
...result,
image: imageUrl,
};
}), }),
}); });

View File

@@ -8,7 +8,6 @@ import { generateUID } from "@kan/shared/utils";
import { createTRPCRouter, protectedProcedure, publicProcedure } from "../trpc"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../trpc";
import { assertPermission } from "../utils/permissions"; import { assertPermission } from "../utils/permissions";
import { generateAvatarUrl } from "@kan/shared/utils";
export const workspaceRouter = createTRPCRouter({ export const workspaceRouter = createTRPCRouter({
all: protectedProcedure all: protectedProcedure
@@ -87,27 +86,9 @@ export const workspaceRouter = createTRPCRouter({
const shouldShowEmails = const shouldShowEmails =
isAdmin || result.showEmailsToMembers === true; isAdmin || result.showEmailsToMembers === true;
// Generate presigned URLs for member avatars
const membersWithAvatarUrls = await Promise.all(
result.members.map(async (member) => {
if (!member.user?.image) {
return member;
}
const avatarUrl = await generateAvatarUrl(member.user.image);
return {
...member,
user: {
...member.user,
image: avatarUrl,
},
};
}),
);
// If emails should be hidden, filter them out // If emails should be hidden, filter them out
if (!shouldShowEmails) { if (!shouldShowEmails) {
const sanitizedMembers = membersWithAvatarUrls.map((member) => { const sanitizedMembers = result.members.map((member) => {
// If user doesn't have a display name, use anonymous identifier // If user doesn't have a display name, use anonymous identifier
const displayName = const displayName =
member.user?.name?.trim() ?? `anonymous_${member.publicId}`; member.user?.name?.trim() ?? `anonymous_${member.publicId}`;
@@ -139,10 +120,7 @@ export const workspaceRouter = createTRPCRouter({
} as Awaited<ReturnType<typeof workspaceRepo.getByPublicIdWithMembers>>; } as Awaited<ReturnType<typeof workspaceRepo.getByPublicIdWithMembers>>;
} }
return { return result;
...result,
members: membersWithAvatarUrls,
};
}), }),
bySlug: publicProcedure bySlug: publicProcedure
.meta({ .meta({

View File

@@ -5,7 +5,6 @@ import {
S3Client, S3Client,
} from "@aws-sdk/client-s3"; } from "@aws-sdk/client-s3";
import { getSignedUrl } from "@aws-sdk/s3-request-presigner"; import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
import { env } from "next-runtime-env";
export function createS3Client() { export function createS3Client() {
const credentials = const credentials =
@@ -68,60 +67,3 @@ export async function deleteObject(bucket: string, key: string) {
}), }),
); );
} }
/**
* Generate presigned URL for an avatar image
* Returns the URL as-is if it's already a full URL (external provider)
* Returns presigned URL if it's an S3 key
* Returns null if image key is missing, bucket is not configured, or URL generation fails
*/
export async function generateAvatarUrl(
imageKey: string | null | undefined,
expiresIn = 86400, // 24 hours
): Promise<string | null> {
if (!imageKey) {
return null;
}
if (imageKey.startsWith("http://") || imageKey.startsWith("https://")) {
return imageKey;
}
const bucket = env("NEXT_PUBLIC_AVATAR_BUCKET_NAME");
if (!bucket) {
return null;
}
try {
return await generateDownloadUrl(bucket, imageKey, expiresIn);
} catch {
// If URL generation fails, return null
return null;
}
}
/**
* Generate presigned URL for an attachment
* Returns null if attachment key is missing, bucket is not configured, or URL generation fails
*/
export async function generateAttachmentUrl(
attachmentKey: string | null | undefined,
expiresIn = 86400, // 24 hours
): Promise<string | null> {
if (!attachmentKey) {
return null;
}
const bucket = env("NEXT_PUBLIC_ATTACHMENTS_BUCKET_NAME");
if (!bucket) {
return null;
}
try {
return await generateDownloadUrl(bucket, attachmentKey, expiresIn);
} catch {
// If URL generation fails, return null
return null;
}
}

View File

@@ -1,4 +1,4 @@
import { PutObjectCommand } from "@aws-sdk/client-s3"; import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
import { ChatOrPushProviderEnum } from "@novu/api/models/components"; import { ChatOrPushProviderEnum } from "@novu/api/models/components";
import { createAuthMiddleware } from "better-auth/api"; import { createAuthMiddleware } from "better-auth/api";
import { env } from "next-runtime-env"; import { env } from "next-runtime-env";
@@ -7,7 +7,7 @@ import type { dbClient } from "@kan/db/client";
import * as memberRepo from "@kan/db/repository/member.repo"; import * as memberRepo from "@kan/db/repository/member.repo";
import * as userRepo from "@kan/db/repository/user.repo"; import * as userRepo from "@kan/db/repository/user.repo";
import { notificationClient } from "@kan/email"; import { notificationClient } from "@kan/email";
import { createEmailUnsubscribeLink, createS3Client } from "@kan/shared"; import { createEmailUnsubscribeLink } from "@kan/shared";
import { downloadImage } from "./utils"; import { downloadImage } from "./utils";
@@ -61,7 +61,20 @@ export function createDatabaseHooks(db: dbClient) {
!user.image.includes(storageDomain) !user.image.includes(storageDomain)
) { ) {
try { try {
const client = createS3Client(); const credentials =
env("S3_ACCESS_KEY_ID") && env("S3_SECRET_ACCESS_KEY")
? {
accessKeyId: env("S3_ACCESS_KEY_ID")!,
secretAccessKey: env("S3_SECRET_ACCESS_KEY")!,
}
: undefined;
const client = new S3Client({
region: env("S3_REGION") ?? "",
endpoint: env("S3_ENDPOINT") ?? "",
forcePathStyle: env("S3_FORCE_PATH_STYLE") === "true",
credentials,
});
const allowedFileExtensions = ["jpg", "jpeg", "png", "webp"]; const allowedFileExtensions = ["jpg", "jpeg", "png", "webp"];

View File

@@ -36,8 +36,6 @@
}, },
"prettier": "@kan/prettier-config", "prettier": "@kan/prettier-config",
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.802.0",
"@aws-sdk/s3-request-presigner": "^3.812.0",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"jose": "^6.1.2", "jose": "^6.1.2",
"nanoid": "^5.0.9", "nanoid": "^5.0.9",

View File

@@ -3,4 +3,3 @@ export * from "./generateSlug";
export * from "./subscriptions"; export * from "./subscriptions";
export * from "./email"; export * from "./email";
export * from "./dueDateFilters"; export * from "./dueDateFilters";
export * from "./s3";

12
pnpm-lock.yaml generated
View File

@@ -293,6 +293,12 @@ importers:
packages/api: packages/api:
dependencies: dependencies:
'@aws-sdk/client-s3':
specifier: ^3.802.0
version: 3.879.0
'@aws-sdk/s3-request-presigner':
specifier: ^3.812.0
version: 3.879.0
'@kan/auth': '@kan/auth':
specifier: workspace:* specifier: workspace:*
version: link:../auth version: link:../auth
@@ -477,12 +483,6 @@ importers:
packages/shared: packages/shared:
dependencies: dependencies:
'@aws-sdk/client-s3':
specifier: ^3.802.0
version: 3.879.0
'@aws-sdk/s3-request-presigner':
specifier: ^3.812.0
version: 3.879.0
date-fns: date-fns:
specifier: ^4.1.0 specifier: ^4.1.0
version: 4.1.0 version: 4.1.0