Compare commits

..

1 Commits

Author SHA1 Message Date
Henry
347f6fcb50 fix: list dnd when board exceeds viewport width 2026-06-25 16:59:01 +01:00
55 changed files with 1102 additions and 2487 deletions

3
.gitignore vendored
View File

@@ -55,7 +55,4 @@ i18n.cache
# pgdata # pgdata
/apps/web/pgdata /apps/web/pgdata
# local scripts
scripts/
.claude .claude

View File

@@ -384,9 +384,6 @@ checksums:
i0ZMQl/message: f739058266a2cb6a3d7cca14de09c69a i0ZMQl/message: f739058266a2cb6a3d7cca14de09c69a
i0ZMQl/origin/0/0: 0ad2af981579a62b084b3d41462c5546 i0ZMQl/origin/0/0: 0ad2af981579a62b084b3d41462c5546
i0ZMQl/translation: f739058266a2cb6a3d7cca14de09c69a i0ZMQl/translation: f739058266a2cb6a3d7cca14de09c69a
wE3hGS/message: 1b3bccc465ad34111956b1c705c52031
wE3hGS/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
wE3hGS/translation: 1b3bccc465ad34111956b1c705c52031
wewm3j/message: 985c0177744ec56d8dac84f66ec284ca wewm3j/message: 985c0177744ec56d8dac84f66ec284ca
wewm3j/origin/0/0: bcd95e286f12800a3e7ee0a71feb3ca5 wewm3j/origin/0/0: bcd95e286f12800a3e7ee0a71feb3ca5
wewm3j/translation: 985c0177744ec56d8dac84f66ec284ca wewm3j/translation: 985c0177744ec56d8dac84f66ec284ca
@@ -539,20 +536,19 @@ checksums:
dEgA5A/origin/1/0: a50c4fbde8da6e0a77c4e0aef0b44dea dEgA5A/origin/1/0: a50c4fbde8da6e0a77c4e0aef0b44dea
dEgA5A/origin/2/0: 97bd206a05414e2a571020d64e166093 dEgA5A/origin/2/0: 97bd206a05414e2a571020d64e166093
dEgA5A/origin/3/0: 522726bb62051656dc0d165185d6b451 dEgA5A/origin/3/0: 522726bb62051656dc0d165185d6b451
dEgA5A/origin/4/0: f8e87f3fc3dc63bc7961601feb860fa8 dEgA5A/origin/4/0: b2059fa4b8b99cc10440da26475b234c
dEgA5A/origin/5/0: b2059fa4b8b99cc10440da26475b234c dEgA5A/origin/5/0: 2a382c1cdf010f01a8e95c3e05f6df53
dEgA5A/origin/6/0: 2a382c1cdf010f01a8e95c3e05f6df53 dEgA5A/origin/6/0: d55f532bb5ae247e3a018978be0da463
dEgA5A/origin/7/0: d55f532bb5ae247e3a018978be0da463 dEgA5A/origin/7/0: 4b4f55c033add8db69178563832227c6
dEgA5A/origin/8/0: 4b4f55c033add8db69178563832227c6 dEgA5A/origin/8/0: 68450df287fb46ea629e818732c1291a
dEgA5A/origin/9/0: 68450df287fb46ea629e818732c1291a dEgA5A/origin/9/0: 15ea2dfd5eae4e05b226b1320103476e
dEgA5A/origin/10/0: 15ea2dfd5eae4e05b226b1320103476e dEgA5A/origin/10/0: 03c00909b41be01231cd3e843c8ee44e
dEgA5A/origin/11/0: 03c00909b41be01231cd3e843c8ee44e dEgA5A/origin/11/0: 0627e0040ca4939c9a57349e98c51797
dEgA5A/origin/12/0: 0627e0040ca4939c9a57349e98c51797 dEgA5A/origin/12/0: 15792234f408027822ee71ccddde6f9b
dEgA5A/origin/13/0: 15792234f408027822ee71ccddde6f9b dEgA5A/origin/13/0: 5c60161e173f5eae9276d8e4c70b4ebb
dEgA5A/origin/14/0: 5c60161e173f5eae9276d8e4c70b4ebb dEgA5A/origin/14/0: a1fde3fcce608870830f168f027727ff
dEgA5A/origin/15/0: a1fde3fcce608870830f168f027727ff dEgA5A/origin/15/0: 83911e3eacbad4583e2b1647a784d154
dEgA5A/origin/16/0: 83911e3eacbad4583e2b1647a784d154 dEgA5A/origin/16/0: dbad0c8d7863cb41f5495264f82e7081
dEgA5A/origin/17/0: dbad0c8d7863cb41f5495264f82e7081
dEgA5A/translation: 2e2a849c2223911717de8caa2c71bade dEgA5A/translation: 2e2a849c2223911717de8caa2c71bade
kryGs%2B/message: bba0beaced7ea954ceb980f2b022ffee kryGs%2B/message: bba0beaced7ea954ceb980f2b022ffee
kryGs%2B/origin/0/0: 15fd9c05fc09ccbbb54aadc4aa5e5501 kryGs%2B/origin/0/0: 15fd9c05fc09ccbbb54aadc4aa5e5501
@@ -564,9 +560,6 @@ checksums:
9trBXW/message: 0035c67fb6f70992effb263b0b30e6d4 9trBXW/message: 0035c67fb6f70992effb263b0b30e6d4
9trBXW/origin/0/0: 1b05beba6bdd908015fa8e798717f024 9trBXW/origin/0/0: 1b05beba6bdd908015fa8e798717f024
9trBXW/translation: 0035c67fb6f70992effb263b0b30e6d4 9trBXW/translation: 0035c67fb6f70992effb263b0b30e6d4
AgE2vR/message: a295a7050379531f9f56ada01c32e8e1
AgE2vR/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
AgE2vR/translation: a295a7050379531f9f56ada01c32e8e1
fEY2vP/message: 91509e2f92b0b3b11330b6983139fdbf fEY2vP/message: 91509e2f92b0b3b11330b6983139fdbf
fEY2vP/origin/0/0: 15fd9c05fc09ccbbb54aadc4aa5e5501 fEY2vP/origin/0/0: 15fd9c05fc09ccbbb54aadc4aa5e5501
fEY2vP/origin/1/0: 15fd9c05fc09ccbbb54aadc4aa5e5501 fEY2vP/origin/1/0: 15fd9c05fc09ccbbb54aadc4aa5e5501
@@ -939,9 +932,6 @@ checksums:
f8fH8W/message: 991b75727b6784c1a063a7462b76186d f8fH8W/message: 991b75727b6784c1a063a7462b76186d
f8fH8W/origin/0/0: eb63312c63f6c8d2a5b6520c89012123 f8fH8W/origin/0/0: eb63312c63f6c8d2a5b6520c89012123
f8fH8W/translation: 991b75727b6784c1a063a7462b76186d f8fH8W/translation: 991b75727b6784c1a063a7462b76186d
Uf%2B1DF/message: e5b4d2df65d6676318682404de4e38d3
Uf%2B1DF/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
Uf%2B1DF/translation: e5b4d2df65d6676318682404de4e38d3
Odv3J6/message: f3cc49ba2dc3f9c33917f8a749d68bf5 Odv3J6/message: f3cc49ba2dc3f9c33917f8a749d68bf5
Odv3J6/origin/0/0: 9d4260644f1a12f41d6b72574eeb111c Odv3J6/origin/0/0: 9d4260644f1a12f41d6b72574eeb111c
Odv3J6/translation: f3cc49ba2dc3f9c33917f8a749d68bf5 Odv3J6/translation: f3cc49ba2dc3f9c33917f8a749d68bf5
@@ -1685,21 +1675,12 @@ checksums:
vneRvS/message: e228107df80015377112d41f4f155cb3 vneRvS/message: e228107df80015377112d41f4f155cb3
vneRvS/origin/0/0: 8628ddb6f4ded25c0f17e2cbda8207d3 vneRvS/origin/0/0: 8628ddb6f4ded25c0f17e2cbda8207d3
vneRvS/translation: e228107df80015377112d41f4f155cb3 vneRvS/translation: e228107df80015377112d41f4f155cb3
sZ%2FWDz/message: 4ae9f1cf0c53ebe8852574353d83d252
sZ%2FWDz/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
sZ%2FWDz/translation: 4ae9f1cf0c53ebe8852574353d83d252
VvCMyU/message: a70262481fb1e9e3ff2506b5c3efa03d
VvCMyU/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
VvCMyU/translation: a70262481fb1e9e3ff2506b5c3efa03d
51UCsN/message: ce14fde5e972c2b5276c25ddded817c4 51UCsN/message: ce14fde5e972c2b5276c25ddded817c4
51UCsN/origin/0/0: 0eeeb7e68164ff118040918f1ef00a7a 51UCsN/origin/0/0: 0eeeb7e68164ff118040918f1ef00a7a
51UCsN/translation: ce14fde5e972c2b5276c25ddded817c4 51UCsN/translation: ce14fde5e972c2b5276c25ddded817c4
J4%2BOTA/message: 6ad27e803483208b5313660b7b5791d3 J4%2BOTA/message: 6ad27e803483208b5313660b7b5791d3
J4%2BOTA/origin/0/0: fd0e66cef8d46e96bcf3143a12f9b6db J4%2BOTA/origin/0/0: fd0e66cef8d46e96bcf3143a12f9b6db
J4%2BOTA/translation: 6ad27e803483208b5313660b7b5791d3 J4%2BOTA/translation: 6ad27e803483208b5313660b7b5791d3
S3wq2O/message: 9268b9b2e31373e5ac2e29c19d08e1ef
S3wq2O/origin/0/0: 0ad2af981579a62b084b3d41462c5546
S3wq2O/translation: 9268b9b2e31373e5ac2e29c19d08e1ef
BOqTi5/message: 11edf0427766c26db541d46379dc3c16 BOqTi5/message: 11edf0427766c26db541d46379dc3c16
BOqTi5/placeholders/0/0: 9db68a4b386b9fa1fd1d5797c32be100 BOqTi5/placeholders/0/0: 9db68a4b386b9fa1fd1d5797c32be100
BOqTi5/placeholders/1/0: b837a9e8bd06b58be95699b3ee663f43 BOqTi5/placeholders/1/0: b837a9e8bd06b58be95699b3ee663f43
@@ -2235,9 +2216,6 @@ checksums:
zYRVNp/message: 8b36455dd5b43e56d2ab06e522c3bacc zYRVNp/message: 8b36455dd5b43e56d2ab06e522c3bacc
zYRVNp/origin/0/0: 97bd206a05414e2a571020d64e166093 zYRVNp/origin/0/0: 97bd206a05414e2a571020d64e166093
zYRVNp/translation: 8b36455dd5b43e56d2ab06e522c3bacc zYRVNp/translation: 8b36455dd5b43e56d2ab06e522c3bacc
NM2hyD/message: dfd9e9abdca731ba9ca3fcff645b575e
NM2hyD/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
NM2hyD/translation: dfd9e9abdca731ba9ca3fcff645b575e
wgNoIs/message: eedc7cdb02de467c15dc418a066a77f2 wgNoIs/message: eedc7cdb02de467c15dc418a066a77f2
wgNoIs/origin/0/0: 3c57a918258af4b44c187f58d203345f wgNoIs/origin/0/0: 3c57a918258af4b44c187f58d203345f
wgNoIs/origin/1/0: 3c57a918258af4b44c187f58d203345f wgNoIs/origin/1/0: 3c57a918258af4b44c187f58d203345f
@@ -2395,9 +2373,6 @@ checksums:
uAQUqI/message: 4e1fcce15854d824919b4a582c697c90 uAQUqI/message: 4e1fcce15854d824919b4a582c697c90
uAQUqI/origin/0/0: dc1a240d2d0cccb102c67ca311d4e457 uAQUqI/origin/0/0: dc1a240d2d0cccb102c67ca311d4e457
uAQUqI/translation: 4e1fcce15854d824919b4a582c697c90 uAQUqI/translation: 4e1fcce15854d824919b4a582c697c90
hQRttt/message: 7c91ef5f747eea9f77a9c4f23e19fb2e
hQRttt/origin/0/0: b1f4eb6768222ea825703105f6014486
hQRttt/translation: 7c91ef5f747eea9f77a9c4f23e19fb2e
WYDptz/message: 05f2b4abfc36def17756a6969983cf86 WYDptz/message: 05f2b4abfc36def17756a6969983cf86
WYDptz/origin/0/0: 8628ddb6f4ded25c0f17e2cbda8207d3 WYDptz/origin/0/0: 8628ddb6f4ded25c0f17e2cbda8207d3
WYDptz/translation: 05f2b4abfc36def17756a6969983cf86 WYDptz/translation: 05f2b4abfc36def17756a6969983cf86
@@ -2484,10 +2459,6 @@ checksums:
NcFrgC/message: bd15a7b3d8b4bce18cd42682ea1ec164 NcFrgC/message: bd15a7b3d8b4bce18cd42682ea1ec164
NcFrgC/origin/0/0: 0ad2af981579a62b084b3d41462c5546 NcFrgC/origin/0/0: 0ad2af981579a62b084b3d41462c5546
NcFrgC/translation: bd15a7b3d8b4bce18cd42682ea1ec164 NcFrgC/translation: bd15a7b3d8b4bce18cd42682ea1ec164
ZWk38w/message: 0a6b07963240d329f206e280282e36da
ZWk38w/placeholders/0/0: 9622afa3aca4038b79417d808a505c87
ZWk38w/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
ZWk38w/translation: 0a6b07963240d329f206e280282e36da
C6gv54/message: 1573c77059bc92df17e661befda8d9b7 C6gv54/message: 1573c77059bc92df17e661befda8d9b7
C6gv54/origin/0/0: 0ad2af981579a62b084b3d41462c5546 C6gv54/origin/0/0: 0ad2af981579a62b084b3d41462c5546
C6gv54/translation: 1573c77059bc92df17e661befda8d9b7 C6gv54/translation: 1573c77059bc92df17e661befda8d9b7
@@ -2673,9 +2644,6 @@ checksums:
Oo4E6p/origin/0/0: 97bd206a05414e2a571020d64e166093 Oo4E6p/origin/0/0: 97bd206a05414e2a571020d64e166093
Oo4E6p/origin/1/0: 1b05beba6bdd908015fa8e798717f024 Oo4E6p/origin/1/0: 1b05beba6bdd908015fa8e798717f024
Oo4E6p/translation: af985cf72c47df76e2f2139a427d9948 Oo4E6p/translation: af985cf72c47df76e2f2139a427d9948
d196%2F6/message: 64c37452b5ff985b44f1347ce0ef659f
d196%2F6/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
d196%2F6/translation: 64c37452b5ff985b44f1347ce0ef659f
K7k9u3/message: 1cf9d227042f6a65adba38cb7296830d K7k9u3/message: 1cf9d227042f6a65adba38cb7296830d
K7k9u3/origin/0/0: fd0e66cef8d46e96bcf3143a12f9b6db K7k9u3/origin/0/0: fd0e66cef8d46e96bcf3143a12f9b6db
K7k9u3/translation: 1cf9d227042f6a65adba38cb7296830d K7k9u3/translation: 1cf9d227042f6a65adba38cb7296830d
@@ -3062,9 +3030,6 @@ checksums:
vAj6xG/message: a6152a41b2d8f64d5a657e5b8bc808a9 vAj6xG/message: a6152a41b2d8f64d5a657e5b8bc808a9
vAj6xG/origin/0/0: 4980d8e27a628e7cd9a70b839d844083 vAj6xG/origin/0/0: 4980d8e27a628e7cd9a70b839d844083
vAj6xG/translation: a6152a41b2d8f64d5a657e5b8bc808a9 vAj6xG/translation: a6152a41b2d8f64d5a657e5b8bc808a9
tUL16u/message: 9064ca54e8a3ad28c03a173bc7b01184
tUL16u/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
tUL16u/translation: 9064ca54e8a3ad28c03a173bc7b01184
h2FKMV/message: 11d928b1993d95d54a95f85f8ae5016d h2FKMV/message: 11d928b1993d95d54a95f85f8ae5016d
h2FKMV/origin/0/0: 6812b79a8fdc3527586b523d4c137340 h2FKMV/origin/0/0: 6812b79a8fdc3527586b523d4c137340
h2FKMV/origin/1/0: 85d0a3237fa9329fba3f0278a2cd7284 h2FKMV/origin/1/0: 85d0a3237fa9329fba3f0278a2cd7284

View File

@@ -27,13 +27,13 @@
"@kan/api": "workspace:*", "@kan/api": "workspace:*",
"@kan/auth": "workspace:*", "@kan/auth": "workspace:*",
"@kan/db": "workspace:^", "@kan/db": "workspace:^",
"@kan/email": "workspace:^",
"@kan/logger": "workspace:^", "@kan/logger": "workspace:^",
"@kan/shared": "workspace:^", "@kan/shared": "workspace:^",
"@lingui/babel-preset-react": "^2.9.2", "@lingui/babel-preset-react": "^2.9.2",
"@lingui/conf": "^5.3.2", "@lingui/conf": "^5.3.2",
"@lingui/macro": "^5.3.2", "@lingui/macro": "^5.3.2",
"@lingui/react": "^5.3.2", "@lingui/react": "^5.3.2",
"@novu/api": "^3.11.0",
"@t3-oss/env-nextjs": "^0.11.1", "@t3-oss/env-nextjs": "^0.11.1",
"@tailwindcss/typography": "^0.5.16", "@tailwindcss/typography": "^0.5.16",
"@tanstack/react-query": "catalog:", "@tanstack/react-query": "catalog:",

View File

@@ -10,7 +10,6 @@ import { t } from "@lingui/core/macro";
import Link from "@tiptap/extension-link"; import Link from "@tiptap/extension-link";
import Mention from "@tiptap/extension-mention"; import Mention from "@tiptap/extension-mention";
import Placeholder from "@tiptap/extension-placeholder"; import Placeholder from "@tiptap/extension-placeholder";
import Typography from "@tiptap/extension-typography";
import { import {
BubbleMenu, BubbleMenu,
EditorContent, EditorContent,
@@ -18,6 +17,7 @@ import {
ReactRenderer, ReactRenderer,
useEditor, useEditor,
} from "@tiptap/react"; } from "@tiptap/react";
import Typography from "@tiptap/extension-typography";
import StarterKit from "@tiptap/starter-kit"; import StarterKit from "@tiptap/starter-kit";
import Suggestion from "@tiptap/suggestion"; import Suggestion from "@tiptap/suggestion";
import { import {
@@ -180,13 +180,13 @@ const RenderSuggestions = () => {
if (!props.clientRect) return; if (!props.clientRect) return;
popup?.[0]?.setProps({ popup[0]?.setProps({
getReferenceClientRect: props.clientRect, getReferenceClientRect: props.clientRect,
}); });
}, },
onKeyDown(props: SuggestionKeyDownProps): boolean { onKeyDown(props: SuggestionKeyDownProps): boolean {
if (props.event.key === "Escape") { if (props.event.key === "Escape") {
popup?.[0]?.hide(); popup[0]?.hide();
return true; return true;
} }
@@ -199,7 +199,7 @@ const RenderSuggestions = () => {
); );
}, },
onExit() { onExit() {
popup?.[0]?.destroy(); popup[0]?.destroy();
reactRenderer.destroy(); reactRenderer.destroy();
}, },
}; };
@@ -308,11 +308,11 @@ const renderMentionSuggestions = () => {
onUpdate(props: any) { onUpdate(props: any) {
reactRenderer.updateProps(props); reactRenderer.updateProps(props);
if (!props.clientRect) return; if (!props.clientRect) return;
popup?.[0]?.setProps({ getReferenceClientRect: props.clientRect }); popup[0]?.setProps({ getReferenceClientRect: props.clientRect });
}, },
onKeyDown(props: SuggestionKeyDownProps) { onKeyDown(props: SuggestionKeyDownProps) {
if (props.event.key === "Escape") { if (props.event.key === "Escape") {
popup?.[0]?.hide(); popup[0]?.hide();
return true; return true;
} }
return ( return (
@@ -324,7 +324,7 @@ const renderMentionSuggestions = () => {
); );
}, },
onExit() { onExit() {
popup?.[0]?.destroy(); popup[0]?.destroy();
reactRenderer.destroy(); reactRenderer.destroy();
}, },
}; };
@@ -440,7 +440,6 @@ export default function Editor({
content, content,
onChange, onChange,
onBlur, onBlur,
onSubmit,
readOnly = false, readOnly = false,
workspaceMembers, workspaceMembers,
enableYouTubeEmbed = true, enableYouTubeEmbed = true,
@@ -450,7 +449,6 @@ export default function Editor({
content: string | null; content: string | null;
onChange?: (value: string) => void; onChange?: (value: string) => void;
onBlur?: () => void; onBlur?: () => void;
onSubmit?: () => void;
readOnly?: boolean; readOnly?: boolean;
workspaceMembers: WorkspaceMember[]; workspaceMembers: WorkspaceMember[];
enableYouTubeEmbed?: boolean; enableYouTubeEmbed?: boolean;
@@ -463,16 +461,12 @@ export default function Editor({
// in refs to avoid the editor capturing stale closures on re-render. // in refs to avoid the editor capturing stale closures on re-render.
const onChangeRef = useRef(onChange); const onChangeRef = useRef(onChange);
const onBlurRef = useRef(onBlur); const onBlurRef = useRef(onBlur);
const onSubmitRef = useRef(onSubmit);
useEffect(() => { useEffect(() => {
onChangeRef.current = onChange; onChangeRef.current = onChange;
}, [onChange]); }, [onChange]);
useEffect(() => { useEffect(() => {
onBlurRef.current = onBlur; onBlurRef.current = onBlur;
}, [onBlur]); }, [onBlur]);
useEffect(() => {
onSubmitRef.current = onSubmit;
}, [onSubmit]);
const editor = useEditor( const editor = useEditor(
{ {
@@ -495,8 +489,8 @@ export default function Editor({
Placeholder.configure({ Placeholder.configure({
placeholder: readOnly placeholder: readOnly
? "" ? ""
: (placeholder ?? : placeholder ??
t`Add description... (type '/' to open commands or '@' to mention)`), t`Add description... (type '/' to open commands or '@' to mention)`,
}), }),
SlashCommands.configure({ SlashCommands.configure({
commandItems: getCommandItems(disableHeadings), commandItems: getCommandItems(disableHeadings),
@@ -514,26 +508,24 @@ export default function Editor({
suggestion: { suggestion: {
char: "@", char: "@",
items: ({ query }: { query: string }) => { items: ({ query }: { query: string }) => {
const withEmail = workspaceMembers.filter( const withEmail = workspaceMembers.filter((member) => member.email);
(member) => member.email,
);
const mapped = withEmail.map((member: WorkspaceMember) => ({ const mapped = withEmail.map((member: WorkspaceMember) => ({
id: member.publicId, id: member.publicId,
label: member?.user?.name?.trim() || member.email || "", label: member?.user?.name?.trim() || member.email || "",
image: member?.user?.image ?? null, image: member?.user?.image ?? null,
})); }));
const all: MentionItem[] = mapped.filter( const all: MentionItem[] = mapped.filter(
(item) => item.label && item.label.length > 0, (item) => item.label && item.label.length > 0,
); );
const q = query.toLowerCase().trim(); const q = query.toLowerCase().trim();
if (q === "") { if (q === "") {
return all; return all;
} }
const filtered = all.filter((u) => const filtered = all.filter((u) =>
u.label.toLowerCase().includes(q), u.label.toLowerCase().includes(q),
); );
@@ -559,15 +551,15 @@ export default function Editor({
}, },
}), }),
Typography.configure({ Typography.configure({
openDoubleQuote: false, openDoubleQuote: false,
closeDoubleQuote: false, closeDoubleQuote: false,
openSingleQuote: false, openSingleQuote: false,
closeSingleQuote: false, closeSingleQuote: false,
oneHalf: false, oneHalf: false,
oneQuarter: false, oneQuarter: false,
threeQuarters: false, threeQuarters: false,
superscriptTwo: false, superscriptTwo: false,
superscriptThree: false, superscriptThree: false,
}), }),
...(enableYouTubeEmbed ? [YouTubeNode] : []), ...(enableYouTubeEmbed ? [YouTubeNode] : []),
], ],
@@ -589,13 +581,6 @@ export default function Editor({
attributes: { attributes: {
class: "outline-none focus:outline-none focus-visible:ring-0", class: "outline-none focus:outline-none focus-visible:ring-0",
}, },
handleKeyDown: (_view, event) => {
if ((event.metaKey || event.ctrlKey) && event.key === "Enter") {
onSubmitRef.current?.();
return true;
}
return false;
},
}, },
editable: !readOnly, editable: !readOnly,
injectCSS: false, injectCSS: false,

View File

@@ -4,7 +4,7 @@ import { Button } from "@headlessui/react";
import { t } from "@lingui/core/macro"; import { t } from "@lingui/core/macro";
import { env } from "next-runtime-env"; import { env } from "next-runtime-env";
import { useTheme } from "next-themes"; import { useTheme } from "next-themes";
import { useEffect, useMemo, useState } from "react"; import { useEffect, useState } from "react";
import { HiBolt } from "react-icons/hi2"; import { HiBolt } from "react-icons/hi2";
import { import {
TbLayoutSidebarLeftCollapse, TbLayoutSidebarLeftCollapse,
@@ -92,59 +92,56 @@ export default function SideNavigation({
href: string; href: string;
icon: object; icon: object;
keyboardShortcut: KeyboardShortcut; keyboardShortcut: KeyboardShortcut;
}[] = useMemo( }[] = [
() => [ {
{ name: t`Boards`,
name: t`Boards`, href: "/boards",
href: "/boards", icon: isDarkMode ? boardsIconDark : boardsIconLight,
icon: isDarkMode ? boardsIconDark : boardsIconLight, keyboardShortcut: {
keyboardShortcut: { type: "SEQUENCE",
type: "SEQUENCE", strokes: [{ key: "G" }, { key: "B" }],
strokes: [{ key: "G" }, { key: "B" }], action: () => router.push("/boards"),
action: () => router.push("/boards"), group: "NAVIGATION",
group: "NAVIGATION", description: t`Go to boards`,
description: t`Go to boards`,
},
}, },
{ },
name: t`Templates`, {
href: "/templates", name: t`Templates`,
icon: isDarkMode ? templatesIconDark : templatesIconLight, href: "/templates",
keyboardShortcut: { icon: isDarkMode ? templatesIconDark : templatesIconLight,
type: "SEQUENCE", keyboardShortcut: {
strokes: [{ key: "G" }, { key: "T" }], type: "SEQUENCE",
action: () => router.push("/templates"), strokes: [{ key: "G" }, { key: "T" }],
group: "NAVIGATION", action: () => router.push("/templates"),
description: t`Go to templates`, group: "NAVIGATION",
}, description: t`Go to templates`,
}, },
{ },
name: t`Members`, {
href: "/members", name: t`Members`,
icon: isDarkMode ? membersIconDark : membersIconLight, href: "/members",
keyboardShortcut: { icon: isDarkMode ? membersIconDark : membersIconLight,
type: "SEQUENCE", keyboardShortcut: {
strokes: [{ key: "G" }, { key: "M" }], type: "SEQUENCE",
action: () => router.push("/members"), strokes: [{ key: "G" }, { key: "M" }],
group: "NAVIGATION", action: () => router.push("/members"),
description: t`Go to members`, group: "NAVIGATION",
}, description: t`Go to members`,
}, },
{ },
name: t`Settings`, {
href: "/settings", name: t`Settings`,
icon: isDarkMode ? settingsIconDark : settingsIconLight, href: "/settings",
keyboardShortcut: { icon: isDarkMode ? settingsIconDark : settingsIconLight,
type: "SEQUENCE", keyboardShortcut: {
strokes: [{ key: "G" }, { key: "S" }], type: "SEQUENCE",
action: () => router.push("/settings"), strokes: [{ key: "G" }, { key: "S" }],
group: "NAVIGATION", action: () => router.push("/settings"),
description: t`Go to settings`, group: "NAVIGATION",
}, description: t`Go to settings`,
}, },
], },
[isDarkMode], ];
);
const toggleCollapse = () => { const toggleCollapse = () => {
setIsCollapsed(!isCollapsed); setIsCollapsed(!isCollapsed);

View File

@@ -1,6 +1,6 @@
import type { ReactNode } from "react"; import type { ReactNode } from "react";
import type { Root } from "react-dom/client"; import type { Root } from "react-dom/client";
import type { Placement, Instance as TippyInstance } from "tippy.js"; import type { Placement } from "tippy.js";
import { useEffect, useRef } from "react"; import { useEffect, useRef } from "react";
import { createRoot } from "react-dom/client"; import { createRoot } from "react-dom/client";
import tippy from "tippy.js"; import tippy from "tippy.js";
@@ -20,16 +20,16 @@ export function Tooltip({
}: TooltipProps) { }: TooltipProps) {
const triggerRef = useRef<HTMLDivElement>(null); const triggerRef = useRef<HTMLDivElement>(null);
const rootRef = useRef<Root | null>(null); const rootRef = useRef<Root | null>(null);
const tippyRef = useRef<TippyInstance | null>(null);
const contentRef = useRef(content);
contentRef.current = content;
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;
root.render(content);
const instance = tippy(triggerRef.current, { const instance = tippy(triggerRef.current, {
content: container, content: container,
@@ -39,33 +39,12 @@ export function Tooltip({
theme: "tooltip", theme: "tooltip",
touch: false, touch: false,
}); });
tippyRef.current = instance;
if (contentRef.current) {
root.render(contentRef.current);
} else {
instance.disable();
}
return () => { return () => {
instance.destroy(); instance.destroy();
tippyRef.current = null; rootRef.current?.unmount();
root.unmount();
rootRef.current = null;
}; };
// eslint-disable-next-line react-hooks/exhaustive-deps }, [content, placement, delay]);
}, [placement, delay]);
useEffect(() => {
if (!content) {
tippyRef.current?.disable();
return;
}
if (tippyRef.current) {
tippyRef.current.enable();
rootRef.current?.render(content);
}
}, [content]);
return ( return (
<div ref={triggerRef} className="inline-flex"> <div ref={triggerRef} className="inline-flex">

View File

@@ -2,7 +2,7 @@ import { useRouter } from "next/navigation";
import { Button, Menu, Transition } from "@headlessui/react"; import { Button, Menu, Transition } from "@headlessui/react";
import { t } from "@lingui/core/macro"; import { t } from "@lingui/core/macro";
import { env } from "next-runtime-env"; import { env } from "next-runtime-env";
import { Fragment, useMemo, useState } from "react"; import { Fragment, useState } from "react";
import { HiCheck, HiMagnifyingGlass } from "react-icons/hi2"; import { HiCheck, HiMagnifyingGlass } from "react-icons/hi2";
import { twMerge } from "tailwind-merge"; import { twMerge } from "tailwind-merge";
@@ -26,22 +26,17 @@ export default function WorkspaceMenu({
const router = useRouter(); const router = useRouter();
const [isOpen, setIsOpen] = useState(false); const [isOpen, setIsOpen] = useState(false);
const commandPaletteShortcut = useMemo( const { tooltipContent: commandPaletteShortcutTooltipContent } =
() => ({ useKeyboardShortcut({
type: "PRESS" as const, type: "PRESS",
stroke: { stroke: {
key: "k", key: "k",
modifiers: ["META"] as ("META" | "CONTROL" | "ALT" | "SHIFT")[], modifiers: ["META"],
}, },
action: () => setIsOpen(true), action: () => setIsOpen(true),
description: t`Open command menu`, description: t`Open command menu`,
group: "GENERAL" as const, group: "GENERAL",
}), });
[],
);
const { tooltipContent: commandPaletteShortcutTooltipContent } =
useKeyboardShortcut(commandPaletteShortcut);
return ( return (
<> <>

View File

@@ -52,9 +52,8 @@ export const env = createEnv({
VK_CLIENT_SECRET: z.string().optional(), VK_CLIENT_SECRET: z.string().optional(),
LINKEDIN_CLIENT_ID: z.string().optional(), LINKEDIN_CLIENT_ID: z.string().optional(),
LINKEDIN_CLIENT_SECRET: z.string().optional(), LINKEDIN_CLIENT_SECRET: z.string().optional(),
SUBSCRIBER_API_URL: z.string().url().optional(), NOVU_API_KEY: z.string().optional(),
SUBSCRIBER_API_KEY: z.string().optional(), EMAIL_UNSUBSCRIBE_SECRET: z.string().optional(),
SUBSCRIBER_ENVIRONMENT_ID: z.string().optional(),
// Generic OIDC Provider // Generic OIDC Provider
OIDC_CLIENT_ID: z.string().optional(), OIDC_CLIENT_ID: z.string().optional(),
OIDC_CLIENT_SECRET: z.string().optional(), OIDC_CLIENT_SECRET: z.string().optional(),

View File

@@ -1,5 +1,4 @@
import { useCallback, useEffect, useRef } from "react"; import { useEffect } from "react";
import { useModal } from "~/providers/modal"; import { useModal } from "~/providers/modal";
interface UseModalFormStateOptions<T> { interface UseModalFormStateOptions<T> {
@@ -13,43 +12,25 @@ export function useModalFormState<T extends Record<string, any>>({
initialValues, initialValues,
resetOnClose = false, resetOnClose = false,
}: UseModalFormStateOptions<T>) { }: UseModalFormStateOptions<T>) {
const { const { modalContentType, isOpen, getModalState, setModalState, clearModalState } = useModal();
modalContentType,
isOpen,
getModalState,
setModalState,
clearModalState,
} = useModal();
const isCurrentModal = modalContentType === modalType; const isCurrentModal = modalContentType === modalType;
const savedState = getModalState(modalType) as T | undefined; const savedState = getModalState(modalType) as T | undefined;
// get current form state (using the saved values if available, otherwise the initial values) // get current form state (using the saved values if available, otherwise the initial values)
const formState = savedState || initialValues; const formState = savedState || initialValues;
// Keep refs so the callbacks below stay stable across re-renders. const saveFormState = (state: Partial<T>) => {
const modalTypeRef = useRef(modalType); if (!isCurrentModal) return;
const initialValuesRef = useRef(initialValues);
const getModalStateRef = useRef(getModalState); const currentState = getModalState(modalType) || initialValues;
modalTypeRef.current = modalType; const newState = { ...currentState, ...state };
initialValuesRef.current = initialValues; setModalState(modalType, newState);
getModalStateRef.current = getModalState; };
const saveFormState = useCallback( const clearFormState = () => {
(state: Partial<T>) => { clearModalState(modalType);
const type = modalTypeRef.current; };
const currentState =
getModalStateRef.current(type) ?? initialValuesRef.current;
const newState = { ...currentState, ...state };
setModalState(type, newState);
},
// setModalState is stable (useCallback with [] deps in ModalProvider)
[setModalState],
);
const clearFormState = useCallback(() => {
clearModalState(modalTypeRef.current);
}, [clearModalState]);
useEffect(() => { useEffect(() => {
if (resetOnClose && !isOpen && savedState) { if (resetOnClose && !isOpen && savedState) {
@@ -64,4 +45,4 @@ export function useModalFormState<T extends Record<string, any>>({
isCurrentModal, isCurrentModal,
hasSavedState: !!savedState, hasSavedState: !!savedState,
}; };
} }

View File

@@ -44,7 +44,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]], "origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
"translation": "{0} wurde zu deinen Favoriten hinzugefügt." "translation": "{0} wurde zu deinen Favoriten hinzugefügt."
}, },
"bDI6VI": { "bDI6VI": {
@@ -53,7 +53,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]], "origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
"translation": "{0} wurde aus deinen Favoriten entfernt." "translation": "{0} wurde aus deinen Favoriten entfernt."
}, },
"CJukzS": { "CJukzS": {
@@ -71,7 +71,7 @@
"0": ["isTemplate ? \"Template\" : \"Board\""] "0": ["isTemplate ? \"Template\" : \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 565]], "origin": [["src/views/board/index.tsx", 557]],
"translation": "{0} nicht gefunden" "translation": "{0} nicht gefunden"
}, },
"0xWkkH": { "0xWkkH": {
@@ -286,7 +286,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/card/components/Comment.tsx", 185], ["src/views/card/components/Comment.tsx", 185],
["src/views/card/components/NewCommentForm.tsx", 85] ["src/views/card/components/NewCommentForm.tsx", 68]
], ],
"translation": "Kommentar hinzufügen... (/' für Befehle oder @' zum Erwähnen eingeben)" "translation": "Kommentar hinzufügen... (/' für Befehle oder @' zum Erwähnen eingeben)"
}, },
@@ -294,7 +294,7 @@
"message": "Add description... (type '/' to open commands or '@' to mention)", "message": "Add description... (type '/' to open commands or '@' to mention)",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/components/Editor.tsx", 499]], "origin": [["src/components/Editor.tsx", 493]],
"translation": "Beschreibung hinzufügen... (/' für Befehle oder @' zum Erwähnen eingeben)" "translation": "Beschreibung hinzufügen... (/' für Befehle oder @' zum Erwähnen eingeben)"
}, },
"abUZlY": { "abUZlY": {
@@ -328,7 +328,7 @@
"message": "Add to favorites", "message": "Add to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]], "origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
"translation": "Zu Favoriten hinzufügen" "translation": "Zu Favoriten hinzufügen"
}, },
"cWXW+7": { "cWXW+7": {
@@ -423,7 +423,7 @@
"message": "Added to favorites", "message": "Added to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]], "origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
"translation": "Zu Favoriten hinzugefügt" "translation": "Zu Favoriten hinzugefügt"
}, },
"14Xi3Z": { "14Xi3Z": {
@@ -577,7 +577,7 @@
"message": "Annual", "message": "Annual",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]], "origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
"translation": "Jährlich" "translation": "Jährlich"
}, },
"3bqt9U": { "3bqt9U": {
@@ -657,7 +657,7 @@
"message": "Archive board", "message": "Archive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Board archivieren" "translation": "Board archivieren"
}, },
"TdfEV7": { "TdfEV7": {
@@ -833,7 +833,7 @@
"message": "Best for small teams who want to collaborate and move faster together.", "message": "Best for small teams who want to collaborate and move faster together.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]], "origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
"translation": "Ideal für kleine Teams, die gemeinsam arbeiten und schneller vorankommen möchten." "translation": "Ideal für kleine Teams, die gemeinsam arbeiten und schneller vorankommen möchten."
}, },
"qaS+1/": { "qaS+1/": {
@@ -887,7 +887,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/card/index.tsx", 321], ["src/views/card/index.tsx", 321],
["src/views/public/board/index.tsx", 125] ["src/views/public/board/index.tsx", 125]
], ],
@@ -906,16 +906,9 @@
"message": "Board archived", "message": "Board archived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Board archiviert" "translation": "Board archiviert"
}, },
"wE3hGS": {
"message": "Board moved",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
"translation": "Board verschoben"
},
"wewm3j": { "wewm3j": {
"message": "Board name cannot exceed 100 characters", "message": "Board name cannot exceed 100 characters",
"placeholders": {}, "placeholders": {},
@@ -950,7 +943,7 @@
"message": "Board unarchived", "message": "Board unarchived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Board wiederhergestellt" "translation": "Board wiederhergestellt"
}, },
"Xid3K6": { "Xid3K6": {
@@ -1288,13 +1281,12 @@
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176], ["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
["src/views/board/components/CardContextDuplicateModal.tsx", 267], ["src/views/board/components/CardContextDuplicateModal.tsx", 267],
["src/views/board/components/DeleteBoardConfirmation.tsx", 44], ["src/views/board/components/DeleteBoardConfirmation.tsx", 44],
["src/views/board/components/MoveBoardForm.tsx", 99],
["src/views/card/components/Comment.tsx", 195], ["src/views/card/components/Comment.tsx", 195],
["src/views/card/components/DeleteCardConfirmation.tsx", 86], ["src/views/card/components/DeleteCardConfirmation.tsx", 86],
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64], ["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
["src/views/card/components/DeleteCommentConfirmation.tsx", 77], ["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
["src/views/members/components/DeleteMemberConfirmation.tsx", 55], ["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
["src/views/onboarding/select-plan/index.tsx", 240], ["src/views/onboarding/select-plan/index.tsx", 236],
["src/views/settings/components/Avatar.tsx", 287], ["src/views/settings/components/Avatar.tsx", 287],
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206], ["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
[ [
@@ -1332,13 +1324,6 @@
"origin": [["src/views/card/components/Dropdown.tsx", 48]], "origin": [["src/views/card/components/Dropdown.tsx", 48]],
"translation": "Karte erfolgreich dupliziert." "translation": "Karte erfolgreich dupliziert."
}, },
"AgE2vR": {
"message": "Card member assignments will be cleared when moving to a different workspace.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 92]],
"translation": "Kartenmitgliederzuweisungen werden beim Verschieben in einen anderen Workspace gelöscht."
},
"fEY2vP": { "fEY2vP": {
"message": "Card not found", "message": "Card not found",
"placeholders": {}, "placeholders": {},
@@ -1361,7 +1346,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 309], ["src/views/board/index.tsx", 308],
["src/views/card/components/Dropdown.tsx", 74], ["src/views/card/components/Dropdown.tsx", 74],
["src/views/public/board/CardModal.tsx", 38] ["src/views/public/board/CardModal.tsx", 38]
], ],
@@ -1444,7 +1429,7 @@
"message": "Choose a plan", "message": "Choose a plan",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]], "origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
"translation": "Tarif wählen" "translation": "Tarif wählen"
}, },
"5EMoSo": { "5EMoSo": {
@@ -1719,7 +1704,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 246], ["src/views/onboarding/select-plan/index.tsx", 242],
["src/views/onboarding/workspace-details/index.tsx", 315] ["src/views/onboarding/workspace-details/index.tsx", 315]
], ],
"translation": "Weiter" "translation": "Weiter"
@@ -1914,8 +1899,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 93], ["src/views/board/index.tsx", 92],
["src/views/board/index.tsx", 679] ["src/views/board/index.tsx", 671]
], ],
"translation": "Neue Liste erstellen" "translation": "Neue Liste erstellen"
}, },
@@ -2133,7 +2118,7 @@
"message": "Delete board", "message": "Delete board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Board löschen" "translation": "Board löschen"
}, },
"nabda1": { "nabda1": {
@@ -2164,7 +2149,7 @@
"message": "Delete template", "message": "Delete template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Vorlage löschen" "translation": "Vorlage löschen"
}, },
"snMaH4": { "snMaH4": {
@@ -2226,13 +2211,6 @@
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]], "origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
"translation": "Design" "translation": "Design"
}, },
"Uf+1DF": {
"message": "Destination workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
"translation": "Ziel-Workspace"
},
"Odv3J6": { "Odv3J6": {
"message": "Disconnect GitHub", "message": "Disconnect GitHub",
"placeholders": {}, "placeholders": {},
@@ -2438,7 +2416,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/BoardDropdown.tsx", 106], ["src/views/board/components/BoardDropdown.tsx", 105],
["src/views/board/components/UpdateBoardSlugForm.tsx", 116] ["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
], ],
"translation": "Board-URL bearbeiten" "translation": "Board-URL bearbeiten"
@@ -3016,8 +2994,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 82], ["src/views/onboarding/select-plan/index.tsx", 78],
["src/views/onboarding/select-plan/index.tsx", 83], ["src/views/onboarding/select-plan/index.tsx", 79],
["src/views/pricing/components/FeatureComparisonTable.tsx", 331], ["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
@@ -3125,7 +3103,7 @@
"message": "Get started by creating a new list", "message": "Get started by creating a new list",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 664]], "origin": [["src/views/board/index.tsx", 656]],
"translation": "Legen Sie los, indem Sie eine neue Liste erstellen" "translation": "Legen Sie los, indem Sie eine neue Liste erstellen"
}, },
"oW13KZ": { "oW13KZ": {
@@ -3239,7 +3217,7 @@
"message": "Good for individuals starting out who just need the essentials.", "message": "Good for individuals starting out who just need the essentials.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]], "origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
"translation": "Gut geeignet für Einsteiger, die nur die wichtigsten Funktionen benötigen." "translation": "Gut geeignet für Einsteiger, die nur die wichtigsten Funktionen benötigen."
}, },
"cdyS7J": { "cdyS7J": {
@@ -3765,7 +3743,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/UpdateBoardSlugButton.tsx", 80], ["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
["src/views/board/index.tsx", 307], ["src/views/board/index.tsx", 306],
["src/views/card/components/Dropdown.tsx", 72], ["src/views/card/components/Dropdown.tsx", 72],
["src/views/public/board/CardModal.tsx", 36], ["src/views/public/board/CardModal.tsx", 36],
["src/views/public/board/index.tsx", 77] ["src/views/public/board/index.tsx", 77]
@@ -3865,7 +3843,7 @@
"message": "Make template", "message": "Make template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]], "origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
"translation": "Vorlage erstellen" "translation": "Vorlage erstellen"
}, },
"hB02vO": { "hB02vO": {
@@ -3986,7 +3964,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 67], ["src/views/onboarding/select-plan/index.tsx", 63],
["src/views/pricing/components/Pricing.tsx", 14], ["src/views/pricing/components/Pricing.tsx", 14],
["src/views/pricing/index.tsx", 20] ["src/views/pricing/index.tsx", 20]
], ],
@@ -3999,20 +3977,6 @@
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]], "origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
"translation": "Monatliche Abrechnung" "translation": "Monatliche Abrechnung"
}, },
"sZ/WDz": {
"message": "Move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 107]],
"translation": "Board verschieben"
},
"VvCMyU": {
"message": "Move board to another workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 64]],
"translation": "Board in einen anderen Workspace verschieben"
},
"51UCsN": { "51UCsN": {
"message": "Move to another list", "message": "Move to another list",
"placeholders": {}, "placeholders": {},
@@ -4027,13 +3991,6 @@
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]], "origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
"translation": "In Liste verschieben" "translation": "In Liste verschieben"
}, },
"S3wq2O": {
"message": "Move to workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
"translation": "In Workspace verschieben"
},
"BOqTi5": { "BOqTi5": {
"message": "moved the card from <0>{0}</0> to<1>{1}</1>", "message": "moved the card from <0>{0}</0> to<1>{1}</1>",
"placeholders": { "placeholders": {
@@ -4145,7 +4102,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/NewListForm.tsx", 113], ["src/views/board/components/NewListForm.tsx", 113],
["src/views/board/index.tsx", 628] ["src/views/board/index.tsx", 620]
], ],
"translation": "Neue Liste" "translation": "Neue Liste"
}, },
@@ -4278,14 +4235,14 @@
"message": "No lists", "message": "No lists",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 660]], "origin": [["src/views/board/index.tsx", 652]],
"translation": "Keine Listen" "translation": "Keine Listen"
}, },
"fvLNDy": { "fvLNDy": {
"message": "No lists have been created yet", "message": "No lists have been created yet",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 665]], "origin": [["src/views/board/index.tsx", 657]],
"translation": "Es wurden noch keine Listen erstellt" "translation": "Es wurden noch keine Listen erstellt"
}, },
"i30J2U": { "i30J2U": {
@@ -4602,7 +4559,7 @@
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.", "message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]], "origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
"translation": "Wählen Sie einen Tarif, um loszulegen. Alle kostenpflichtigen Tarife beinhalten eine 14-tägige kostenlose Testphase." "translation": "Wählen Sie einen Tarif, um loszulegen. Alle kostenpflichtigen Tarife beinhalten eine 14-tägige kostenlose Testphase."
}, },
"GdgCoi": { "GdgCoi": {
@@ -4700,15 +4657,15 @@
["src/components/DeleteLabelConfirmation.tsx", 26], ["src/components/DeleteLabelConfirmation.tsx", 26],
["src/components/FeedbackModal.tsx", 41], ["src/components/FeedbackModal.tsx", 41],
["src/components/NewWorkspaceForm.tsx", 110], ["src/components/NewWorkspaceForm.tsx", 110],
["src/views/board/components/BoardDropdown.tsx", 69], ["src/views/board/components/BoardDropdown.tsx", 68],
["src/views/board/components/NewCardForm.tsx", 193], ["src/views/board/components/NewCardForm.tsx", 193],
["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],
["src/views/board/components/NewTemplateForm.tsx", 77], ["src/views/board/components/NewTemplateForm.tsx", 77],
["src/views/board/components/UpdateBoardSlugForm.tsx", 73], ["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
["src/views/board/components/VisibilityButton.tsx", 57], ["src/views/board/components/VisibilityButton.tsx", 57],
["src/views/board/index.tsx", 219], ["src/views/board/index.tsx", 218],
["src/views/board/index.tsx", 275], ["src/views/board/index.tsx", 274],
["src/views/boards/components/ImportBoardsForm.tsx", 243], ["src/views/boards/components/ImportBoardsForm.tsx", 243],
["src/views/boards/components/ImportBoardsForm.tsx", 395], ["src/views/boards/components/ImportBoardsForm.tsx", 395],
["src/views/card/components/AttachmentThumbnails.tsx", 74], ["src/views/card/components/AttachmentThumbnails.tsx", 74],
@@ -4726,7 +4683,7 @@
["src/views/card/components/MemberSelector.tsx", 82], ["src/views/card/components/MemberSelector.tsx", 82],
["src/views/card/components/NewChecklistForm.tsx", 71], ["src/views/card/components/NewChecklistForm.tsx", 71],
["src/views/card/components/NewChecklistItemForm.tsx", 90], ["src/views/card/components/NewChecklistItemForm.tsx", 90],
["src/views/card/components/NewCommentForm.tsx", 38], ["src/views/card/components/NewCommentForm.tsx", 37],
["src/views/card/index.tsx", 236], ["src/views/card/index.tsx", 236],
["src/views/card/index.tsx", 249], ["src/views/card/index.tsx", 249],
["src/views/members/components/DeleteMemberConfirmation.tsx", 28], ["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
@@ -4766,7 +4723,7 @@
"origin": [ "origin": [
["src/views/board/components/CardContextDuplicateModal.tsx", 76], ["src/views/board/components/CardContextDuplicateModal.tsx", 76],
["src/views/board/components/CardContextMoveListModal.tsx", 42], ["src/views/board/components/CardContextMoveListModal.tsx", 42],
["src/views/board/index.tsx", 316], ["src/views/board/index.tsx", 315],
["src/views/card/components/Dropdown.tsx", 55], ["src/views/card/components/Dropdown.tsx", 55],
["src/views/card/components/Dropdown.tsx", 81], ["src/views/card/components/Dropdown.tsx", 81],
["src/views/card/components/Dropdown.tsx", 100], ["src/views/card/components/Dropdown.tsx", 100],
@@ -4829,7 +4786,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 96], ["src/views/onboarding/select-plan/index.tsx", 92],
["src/views/pricing/components/FeatureComparisonTable.tsx", 333], ["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
["src/views/pricing/components/PricingTiers.tsx", 70] ["src/views/pricing/components/PricingTiers.tsx", 70]
], ],
@@ -4935,7 +4892,7 @@
"message": "Remove from favorites", "message": "Remove from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]], "origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
"translation": "Aus Favoriten entfernen" "translation": "Aus Favoriten entfernen"
}, },
"99VIgC": { "99VIgC": {
@@ -4989,7 +4946,7 @@
"message": "Removed from favorites", "message": "Removed from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]], "origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
"translation": "Aus Favoriten entfernt" "translation": "Aus Favoriten entfernt"
}, },
"YVT40D": { "YVT40D": {
@@ -5236,13 +5193,6 @@
], ],
"translation": "Liste auswählen" "translation": "Liste auswählen"
}, },
"NM2hyD": {
"message": "Select a workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
"translation": "Workspace auswählen"
},
"wgNoIs": { "wgNoIs": {
"message": "Select all", "message": "Select all",
"placeholders": {}, "placeholders": {},
@@ -5454,7 +5404,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 319], ["src/views/onboarding/select-plan/index.tsx", 315],
["src/views/onboarding/workspace-details/index.tsx", 386] ["src/views/onboarding/workspace-details/index.tsx", 386]
], ],
"translation": "Abmelden" "translation": "Abmelden"
@@ -5548,7 +5498,7 @@
"message": "Solo", "message": "Solo",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]], "origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
"translation": "Solo" "translation": "Solo"
}, },
"J9+zIR": { "J9+zIR": {
@@ -5615,13 +5565,6 @@
"origin": [["src/views/settings/components/WebhookList.tsx", 232]], "origin": [["src/views/settings/components/WebhookList.tsx", 232]],
"translation": "Status" "translation": "Status"
}, },
"hQRttt": {
"message": "Submit",
"placeholders": {},
"comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
"translation": "Absenden"
},
"WYDptz": { "WYDptz": {
"message": "Subscription Required", "message": "Subscription Required",
"placeholders": {}, "placeholders": {},
@@ -5685,7 +5628,7 @@
"message": "Team", "message": "Team",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]], "origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
"translation": "Team" "translation": "Team"
}, },
"bff61F": { "bff61F": {
@@ -5715,8 +5658,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/board/index.tsx", 574] ["src/views/board/index.tsx", 566]
], ],
"translation": "Vorlage" "translation": "Vorlage"
}, },
@@ -5827,23 +5770,14 @@
"message": "The board has been archived.", "message": "The board has been archived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]], "origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
"translation": "Das Board wurde archiviert." "translation": "Das Board wurde archiviert."
}, },
"ZWk38w": {
"message": "The board has been moved to {0}.",
"placeholders": {
"0": ["targetWorkspace?.name ?? \"the workspace\""]
},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 34]],
"translation": "Das Board wurde nach {0} verschoben."
},
"C6gv54": { "C6gv54": {
"message": "The board has been unarchived.", "message": "The board has been unarchived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]], "origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
"translation": "Das Board wurde wiederhergestellt." "translation": "Das Board wurde wiederhergestellt."
}, },
"nKBUeF": { "nKBUeF": {
@@ -6154,7 +6088,7 @@
"message": "Unable to add comment", "message": "Unable to add comment",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]], "origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
"translation": "Kommentar konnte nicht hinzugefügt werden" "translation": "Kommentar konnte nicht hinzugefügt werden"
}, },
"2Q871c": { "2Q871c": {
@@ -6183,7 +6117,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 314], ["src/views/board/index.tsx", 313],
["src/views/card/components/Dropdown.tsx", 79], ["src/views/card/components/Dropdown.tsx", 79],
["src/views/public/board/CardModal.tsx", 43], ["src/views/public/board/CardModal.tsx", 43],
["src/views/public/board/index.tsx", 84] ["src/views/public/board/index.tsx", 84]
@@ -6294,13 +6228,6 @@
], ],
"translation": "Karte konnte nicht dupliziert werden" "translation": "Karte konnte nicht dupliziert werden"
}, },
"d196/6": {
"message": "Unable to move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 45]],
"translation": "Board konnte nicht verschoben werden"
},
"K7k9u3": { "K7k9u3": {
"message": "Unable to move card", "message": "Unable to move card",
"placeholders": {}, "placeholders": {},
@@ -6361,7 +6288,7 @@
"message": "Unable to update board", "message": "Unable to update board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]], "origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
"translation": "Board konnte nicht aktualisiert werden" "translation": "Board konnte nicht aktualisiert werden"
}, },
"XpcjLO": { "XpcjLO": {
@@ -6383,7 +6310,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 274], ["src/views/board/index.tsx", 273],
["src/views/card/index.tsx", 235] ["src/views/card/index.tsx", 235]
], ],
"translation": "Karte konnte nicht aktualisiert werden" "translation": "Karte konnte nicht aktualisiert werden"
@@ -6428,7 +6355,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 218], ["src/views/board/index.tsx", 217],
["src/views/card/components/ListSelector.tsx", 54] ["src/views/card/components/ListSelector.tsx", 54]
], ],
"translation": "Liste konnte nicht aktualisiert werden" "translation": "Liste konnte nicht aktualisiert werden"
@@ -6468,7 +6395,7 @@
"message": "Unarchive board", "message": "Unarchive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Board wiederherstellen" "translation": "Board wiederherstellen"
}, },
"E8zYtd": { "E8zYtd": {
@@ -6581,7 +6508,7 @@
"message": "Unlimited members and a custom workspace username for teams ready to scale.", "message": "Unlimited members and a custom workspace username for teams ready to scale.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]], "origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
"translation": "Unbegrenzte Mitglieder und ein individueller Workspace-Benutzername für Teams, die wachsen möchten." "translation": "Unbegrenzte Mitglieder und ein individueller Workspace-Benutzername für Teams, die wachsen möchten."
}, },
"i5yNAO": { "i5yNAO": {
@@ -6671,7 +6598,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/members/index.tsx", 295], ["src/views/members/index.tsx", 295],
["src/views/onboarding/select-plan/index.tsx", 245] ["src/views/onboarding/select-plan/index.tsx", 241]
], ],
"translation": "Upgrade" "translation": "Upgrade"
}, },
@@ -7004,7 +6931,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/components/SettingsLayout.tsx", 47], ["src/components/SettingsLayout.tsx", 47],
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/boards/index.tsx", 48], ["src/views/boards/index.tsx", 48],
["src/views/members/index.tsx", 278], ["src/views/members/index.tsx", 278],
["src/views/public/board/index.tsx", 125], ["src/views/public/board/index.tsx", 125],
@@ -7219,13 +7146,6 @@
"origin": [["src/views/home/components/Faqs.tsx", 127]], "origin": [["src/views/home/components/Faqs.tsx", 127]],
"translation": "Sie können selbst hosten, indem Sie den Anweisungen in unserem <0>Repo</0> folgen." "translation": "Sie können selbst hosten, indem Sie den Anweisungen in unserem <0>Repo</0> folgen."
}, },
"tUL16u": {
"message": "You don't have any other workspaces to move this board to.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 68]],
"translation": "Sie haben keine anderen Workspaces, in die Sie dieses Board verschieben können."
},
"h2FKMV": { "h2FKMV": {
"message": "You don't have permission", "message": "You don't have permission",
"placeholders": {}, "placeholders": {},
@@ -7234,8 +7154,8 @@
["src/views/board/components/List.tsx", 117], ["src/views/board/components/List.tsx", 117],
["src/views/board/components/UpdateBoardSlugButton.tsx", 58], ["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
["src/views/board/components/VisibilityButton.tsx", 72], ["src/views/board/components/VisibilityButton.tsx", 72],
["src/views/board/index.tsx", 612], ["src/views/board/index.tsx", 604],
["src/views/board/index.tsx", 670], ["src/views/board/index.tsx", 662],
["src/views/boards/components/BoardsList.tsx", 71], ["src/views/boards/components/BoardsList.tsx", 71],
["src/views/boards/index.tsx", 59], ["src/views/boards/index.tsx", 59],
["src/views/boards/index.tsx", 80] ["src/views/boards/index.tsx", 80]
@@ -7330,7 +7250,7 @@
"message": "Your avatar", "message": "Your avatar",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]], "origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
"translation": "Ihr Avatar" "translation": "Ihr Avatar"
}, },
"evg7+A": { "evg7+A": {

File diff suppressed because one or more lines are too long

View File

@@ -75,7 +75,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
60 59
] ]
], ],
"translation": "{0} has been added to your favorites." "translation": "{0} has been added to your favorites."
@@ -91,7 +91,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
61 60
] ]
], ],
"translation": "{0} has been removed from your favorites." "translation": "{0} has been removed from your favorites."
@@ -123,7 +123,7 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
565 557
] ]
], ],
"translation": "{0} not found" "translation": "{0} not found"
@@ -483,7 +483,7 @@
], ],
[ [
"src/views/card/components/NewCommentForm.tsx", "src/views/card/components/NewCommentForm.tsx",
85 68
] ]
], ],
"translation": "Add comment... (type '/' to open commands or '@' to mention)" "translation": "Add comment... (type '/' to open commands or '@' to mention)"
@@ -495,7 +495,7 @@
"origin": [ "origin": [
[ [
"src/components/Editor.tsx", "src/components/Editor.tsx",
499 493
] ]
], ],
"translation": "Add description... (type '/' to open commands or '@' to mention)" "translation": "Add description... (type '/' to open commands or '@' to mention)"
@@ -551,7 +551,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
137 125
] ]
], ],
"translation": "Add to favorites" "translation": "Add to favorites"
@@ -718,7 +718,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
57 56
] ]
], ],
"translation": "Added to favorites" "translation": "Added to favorites"
@@ -973,7 +973,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
68 64
] ]
], ],
"translation": "Annual" "translation": "Annual"
@@ -1109,7 +1109,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
115 114
] ]
], ],
"translation": "Archive board" "translation": "Archive board"
@@ -1393,7 +1393,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
91 87
] ]
], ],
"translation": "Best for small teams who want to collaborate and move faster together." "translation": "Best for small teams who want to collaborate and move faster together."
@@ -1485,7 +1485,7 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
538 530
], ],
[ [
"src/views/card/index.tsx", "src/views/card/index.tsx",
@@ -1517,23 +1517,11 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
47 46
] ]
], ],
"translation": "Board archived" "translation": "Board archived"
}, },
"wE3hGS": {
"message": "Board moved",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/board/components/MoveBoardForm.tsx",
33
]
],
"translation": "Board moved"
},
"wewm3j": { "wewm3j": {
"message": "Board name cannot exceed 100 characters", "message": "Board name cannot exceed 100 characters",
"placeholders": {}, "placeholders": {},
@@ -1589,7 +1577,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
47 46
] ]
], ],
"translation": "Board unarchived" "translation": "Board unarchived"
@@ -2143,10 +2131,6 @@
"src/views/board/components/DeleteBoardConfirmation.tsx", "src/views/board/components/DeleteBoardConfirmation.tsx",
44 44
], ],
[
"src/views/board/components/MoveBoardForm.tsx",
99
],
[ [
"src/views/card/components/Comment.tsx", "src/views/card/components/Comment.tsx",
195 195
@@ -2169,7 +2153,7 @@
], ],
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
240 236
], ],
[ [
"src/views/settings/components/Avatar.tsx", "src/views/settings/components/Avatar.tsx",
@@ -2242,18 +2226,6 @@
], ],
"translation": "Card duplicated successfully." "translation": "Card duplicated successfully."
}, },
"AgE2vR": {
"message": "Card member assignments will be cleared when moving to a different workspace.",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/board/components/MoveBoardForm.tsx",
92
]
],
"translation": "Card member assignments will be cleared when moving to a different workspace."
},
"fEY2vP": { "fEY2vP": {
"message": "Card not found", "message": "Card not found",
"placeholders": {}, "placeholders": {},
@@ -2289,7 +2261,7 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
309 308
], ],
[ [
"src/views/card/components/Dropdown.tsx", "src/views/card/components/Dropdown.tsx",
@@ -2437,7 +2409,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
153 149
] ]
], ],
"translation": "Choose a plan" "translation": "Choose a plan"
@@ -2885,7 +2857,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
246 242
], ],
[ [
"src/views/onboarding/workspace-details/index.tsx", "src/views/onboarding/workspace-details/index.tsx",
@@ -3205,11 +3177,11 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
93 92
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
679 671
] ]
], ],
"translation": "Create new list" "translation": "Create new list"
@@ -3586,7 +3558,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
148 136
] ]
], ],
"translation": "Delete board" "translation": "Delete board"
@@ -3638,7 +3610,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
148 136
] ]
], ],
"translation": "Delete template" "translation": "Delete template"
@@ -3743,18 +3715,6 @@
], ],
"translation": "Design" "translation": "Design"
}, },
"Uf+1DF": {
"message": "Destination workspace",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/board/components/MoveBoardForm.tsx",
76
]
],
"translation": "Destination workspace"
},
"Odv3J6": { "Odv3J6": {
"message": "Disconnect GitHub", "message": "Disconnect GitHub",
"placeholders": {}, "placeholders": {},
@@ -4122,7 +4082,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
106 105
], ],
[ [
"src/views/board/components/UpdateBoardSlugForm.tsx", "src/views/board/components/UpdateBoardSlugForm.tsx",
@@ -5059,11 +5019,11 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
82 78
], ],
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
83 79
], ],
[ [
"src/views/pricing/components/FeatureComparisonTable.tsx", "src/views/pricing/components/FeatureComparisonTable.tsx",
@@ -5263,7 +5223,7 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
664 656
] ]
], ],
"translation": "Get started by creating a new list" "translation": "Get started by creating a new list"
@@ -5455,7 +5415,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
84 80
] ]
], ],
"translation": "Good for individuals starting out who just need the essentials." "translation": "Good for individuals starting out who just need the essentials."
@@ -6333,7 +6293,7 @@
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
307 306
], ],
[ [
"src/views/card/components/Dropdown.tsx", "src/views/card/components/Dropdown.tsx",
@@ -6505,7 +6465,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
95 94
] ]
], ],
"translation": "Make template" "translation": "Make template"
@@ -6713,7 +6673,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
67 63
], ],
[ [
"src/views/pricing/components/Pricing.tsx", "src/views/pricing/components/Pricing.tsx",
@@ -6738,30 +6698,6 @@
], ],
"translation": "monthly billing" "translation": "monthly billing"
}, },
"sZ/WDz": {
"message": "Move board",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/board/components/MoveBoardForm.tsx",
107
]
],
"translation": "Move board"
},
"VvCMyU": {
"message": "Move board to another workspace",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/board/components/MoveBoardForm.tsx",
64
]
],
"translation": "Move board to another workspace"
},
"51UCsN": { "51UCsN": {
"message": "Move to another list", "message": "Move to another list",
"placeholders": {}, "placeholders": {},
@@ -6786,18 +6722,6 @@
], ],
"translation": "Move to list" "translation": "Move to list"
}, },
"S3wq2O": {
"message": "Move to workspace",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/board/components/BoardDropdown.tsx",
126
]
],
"translation": "Move to workspace"
},
"BOqTi5": { "BOqTi5": {
"message": "moved the card from <0>{0}</0> to<1>{1}</1>", "message": "moved the card from <0>{0}</0> to<1>{1}</1>",
"placeholders": { "placeholders": {
@@ -6996,7 +6920,7 @@
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
628 620
] ]
], ],
"translation": "New list" "translation": "New list"
@@ -7216,7 +7140,7 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
660 652
] ]
], ],
"translation": "No lists" "translation": "No lists"
@@ -7228,7 +7152,7 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
665 657
] ]
], ],
"translation": "No lists have been created yet" "translation": "No lists have been created yet"
@@ -7748,7 +7672,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
156 152
] ]
], ],
"translation": "Pick a plan to get started. All paid plans include a 14-day free trial." "translation": "Pick a plan to get started. All paid plans include a 14-day free trial."
@@ -7912,7 +7836,7 @@
], ],
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
69 68
], ],
[ [
"src/views/board/components/NewCardForm.tsx", "src/views/board/components/NewCardForm.tsx",
@@ -7940,11 +7864,11 @@
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
219 218
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
275 274
], ],
[ [
"src/views/boards/components/ImportBoardsForm.tsx", "src/views/boards/components/ImportBoardsForm.tsx",
@@ -8016,7 +7940,7 @@
], ],
[ [
"src/views/card/components/NewCommentForm.tsx", "src/views/card/components/NewCommentForm.tsx",
38 37
], ],
[ [
"src/views/card/index.tsx", "src/views/card/index.tsx",
@@ -8128,7 +8052,7 @@
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
316 315
], ],
[ [
"src/views/card/components/Dropdown.tsx", "src/views/card/components/Dropdown.tsx",
@@ -8252,7 +8176,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
96 92
], ],
[ [
"src/views/pricing/components/FeatureComparisonTable.tsx", "src/views/pricing/components/FeatureComparisonTable.tsx",
@@ -8432,7 +8356,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
136 124
] ]
], ],
"translation": "Remove from favorites" "translation": "Remove from favorites"
@@ -8527,7 +8451,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
58 57
] ]
], ],
"translation": "Removed from favorites" "translation": "Removed from favorites"
@@ -8936,18 +8860,6 @@
], ],
"translation": "Select a list" "translation": "Select a list"
}, },
"NM2hyD": {
"message": "Select a workspace",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/board/components/MoveBoardForm.tsx",
84
]
],
"translation": "Select a workspace"
},
"wgNoIs": { "wgNoIs": {
"message": "Select all", "message": "Select all",
"placeholders": {}, "placeholders": {},
@@ -9311,7 +9223,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
319 315
], ],
[ [
"src/views/onboarding/workspace-details/index.tsx", "src/views/onboarding/workspace-details/index.tsx",
@@ -9467,7 +9379,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
81 77
] ]
], ],
"translation": "Solo" "translation": "Solo"
@@ -9576,18 +9488,6 @@
], ],
"translation": "Status" "translation": "Status"
}, },
"hQRttt": {
"message": "Submit",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/card/components/NewCommentForm.tsx",
60
]
],
"translation": "Submit"
},
"WYDptz": { "WYDptz": {
"message": "Subscription Required", "message": "Subscription Required",
"placeholders": {}, "placeholders": {},
@@ -9687,7 +9587,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
88 84
] ]
], ],
"translation": "Team" "translation": "Team"
@@ -9739,11 +9639,11 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
538 530
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
574 566
] ]
], ],
"translation": "Template" "translation": "Template"
@@ -9927,27 +9827,11 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
49 48
] ]
], ],
"translation": "The board has been archived." "translation": "The board has been archived."
}, },
"ZWk38w": {
"message": "The board has been moved to {0}.",
"placeholders": {
"0": [
"targetWorkspace?.name ?? \"the workspace\""
]
},
"comments": [],
"origin": [
[
"src/views/board/components/MoveBoardForm.tsx",
34
]
],
"translation": "The board has been moved to {0}."
},
"C6gv54": { "C6gv54": {
"message": "The board has been unarchived.", "message": "The board has been unarchived.",
"placeholders": {}, "placeholders": {},
@@ -9955,7 +9839,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
50 49
] ]
], ],
"translation": "The board has been unarchived." "translation": "The board has been unarchived."
@@ -10455,7 +10339,7 @@
"origin": [ "origin": [
[ [
"src/views/card/components/NewCommentForm.tsx", "src/views/card/components/NewCommentForm.tsx",
37 36
] ]
], ],
"translation": "Unable to add comment" "translation": "Unable to add comment"
@@ -10503,7 +10387,7 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
314 313
], ],
[ [
"src/views/card/components/Dropdown.tsx", "src/views/card/components/Dropdown.tsx",
@@ -10688,18 +10572,6 @@
], ],
"translation": "Unable to duplicate card" "translation": "Unable to duplicate card"
}, },
"d196/6": {
"message": "Unable to move board",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/board/components/MoveBoardForm.tsx",
45
]
],
"translation": "Unable to move board"
},
"K7k9u3": { "K7k9u3": {
"message": "Unable to move card", "message": "Unable to move card",
"placeholders": {}, "placeholders": {},
@@ -10795,7 +10667,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
68 67
] ]
], ],
"translation": "Unable to update board" "translation": "Unable to update board"
@@ -10831,7 +10703,7 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
274 273
], ],
[ [
"src/views/card/index.tsx", "src/views/card/index.tsx",
@@ -10907,7 +10779,7 @@
"origin": [ "origin": [
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
218 217
], ],
[ [
"src/views/card/components/ListSelector.tsx", "src/views/card/components/ListSelector.tsx",
@@ -10975,7 +10847,7 @@
"origin": [ "origin": [
[ [
"src/views/board/components/BoardDropdown.tsx", "src/views/board/components/BoardDropdown.tsx",
115 114
] ]
], ],
"translation": "Unarchive board" "translation": "Unarchive board"
@@ -11183,7 +11055,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
99 95
] ]
], ],
"translation": "Unlimited members and a custom workspace username for teams ready to scale." "translation": "Unlimited members and a custom workspace username for teams ready to scale."
@@ -11343,7 +11215,7 @@
], ],
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
245 241
] ]
], ],
"translation": "Upgrade" "translation": "Upgrade"
@@ -11895,7 +11767,7 @@
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
538 530
], ],
[ [
"src/views/boards/index.tsx", "src/views/boards/index.tsx",
@@ -12245,18 +12117,6 @@
], ],
"translation": "You can self-host by following the instructions in our <0>repo</0>." "translation": "You can self-host by following the instructions in our <0>repo</0>."
}, },
"tUL16u": {
"message": "You don't have any other workspaces to move this board to.",
"placeholders": {},
"comments": [],
"origin": [
[
"src/views/board/components/MoveBoardForm.tsx",
68
]
],
"translation": "You don't have any other workspaces to move this board to."
},
"h2FKMV": { "h2FKMV": {
"message": "You don't have permission", "message": "You don't have permission",
"placeholders": {}, "placeholders": {},
@@ -12276,11 +12136,11 @@
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
612 604
], ],
[ [
"src/views/board/index.tsx", "src/views/board/index.tsx",
670 662
], ],
[ [
"src/views/boards/components/BoardsList.tsx", "src/views/boards/components/BoardsList.tsx",
@@ -12441,7 +12301,7 @@
"origin": [ "origin": [
[ [
"src/views/onboarding/select-plan/index.tsx", "src/views/onboarding/select-plan/index.tsx",
264 260
] ]
], ],
"translation": "Your avatar" "translation": "Your avatar"

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]], "origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
"translation": "{0} se ha añadido a tus favoritos." "translation": "{0} se ha añadido a tus favoritos."
}, },
"bDI6VI": { "bDI6VI": {
@@ -53,7 +53,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]], "origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
"translation": "{0} se ha eliminado de tus favoritos." "translation": "{0} se ha eliminado de tus favoritos."
}, },
"CJukzS": { "CJukzS": {
@@ -71,7 +71,7 @@
"0": ["isTemplate ? \"Template\" : \"Board\""] "0": ["isTemplate ? \"Template\" : \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 565]], "origin": [["src/views/board/index.tsx", 557]],
"translation": "{0} no encontrado" "translation": "{0} no encontrado"
}, },
"0xWkkH": { "0xWkkH": {
@@ -286,7 +286,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/card/components/Comment.tsx", 185], ["src/views/card/components/Comment.tsx", 185],
["src/views/card/components/NewCommentForm.tsx", 85] ["src/views/card/components/NewCommentForm.tsx", 68]
], ],
"translation": "Añadir comentario... (escribe '/' para abrir comandos o '@' para mencionar)" "translation": "Añadir comentario... (escribe '/' para abrir comandos o '@' para mencionar)"
}, },
@@ -294,7 +294,7 @@
"message": "Add description... (type '/' to open commands or '@' to mention)", "message": "Add description... (type '/' to open commands or '@' to mention)",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/components/Editor.tsx", 499]], "origin": [["src/components/Editor.tsx", 493]],
"translation": "Añadir descripción... (escribe '/' para abrir comandos o '@' para mencionar)" "translation": "Añadir descripción... (escribe '/' para abrir comandos o '@' para mencionar)"
}, },
"abUZlY": { "abUZlY": {
@@ -328,7 +328,7 @@
"message": "Add to favorites", "message": "Add to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]], "origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
"translation": "Añadir a favoritos" "translation": "Añadir a favoritos"
}, },
"cWXW+7": { "cWXW+7": {
@@ -423,7 +423,7 @@
"message": "Added to favorites", "message": "Added to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]], "origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
"translation": "Añadido a favoritos" "translation": "Añadido a favoritos"
}, },
"14Xi3Z": { "14Xi3Z": {
@@ -577,7 +577,7 @@
"message": "Annual", "message": "Annual",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]], "origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
"translation": "Anual" "translation": "Anual"
}, },
"3bqt9U": { "3bqt9U": {
@@ -657,7 +657,7 @@
"message": "Archive board", "message": "Archive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Archivar tablero" "translation": "Archivar tablero"
}, },
"TdfEV7": { "TdfEV7": {
@@ -833,7 +833,7 @@
"message": "Best for small teams who want to collaborate and move faster together.", "message": "Best for small teams who want to collaborate and move faster together.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]], "origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
"translation": "Ideal para equipos pequeños que desean colaborar y avanzar más rápido juntos." "translation": "Ideal para equipos pequeños que desean colaborar y avanzar más rápido juntos."
}, },
"qaS+1/": { "qaS+1/": {
@@ -887,7 +887,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/card/index.tsx", 321], ["src/views/card/index.tsx", 321],
["src/views/public/board/index.tsx", 125] ["src/views/public/board/index.tsx", 125]
], ],
@@ -906,16 +906,9 @@
"message": "Board archived", "message": "Board archived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Tablero archivado" "translation": "Tablero archivado"
}, },
"wE3hGS": {
"message": "Board moved",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
"translation": "Tablero movido"
},
"wewm3j": { "wewm3j": {
"message": "Board name cannot exceed 100 characters", "message": "Board name cannot exceed 100 characters",
"placeholders": {}, "placeholders": {},
@@ -950,7 +943,7 @@
"message": "Board unarchived", "message": "Board unarchived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Tablero desarchivado" "translation": "Tablero desarchivado"
}, },
"Xid3K6": { "Xid3K6": {
@@ -1288,13 +1281,12 @@
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176], ["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
["src/views/board/components/CardContextDuplicateModal.tsx", 267], ["src/views/board/components/CardContextDuplicateModal.tsx", 267],
["src/views/board/components/DeleteBoardConfirmation.tsx", 44], ["src/views/board/components/DeleteBoardConfirmation.tsx", 44],
["src/views/board/components/MoveBoardForm.tsx", 99],
["src/views/card/components/Comment.tsx", 195], ["src/views/card/components/Comment.tsx", 195],
["src/views/card/components/DeleteCardConfirmation.tsx", 86], ["src/views/card/components/DeleteCardConfirmation.tsx", 86],
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64], ["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
["src/views/card/components/DeleteCommentConfirmation.tsx", 77], ["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
["src/views/members/components/DeleteMemberConfirmation.tsx", 55], ["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
["src/views/onboarding/select-plan/index.tsx", 240], ["src/views/onboarding/select-plan/index.tsx", 236],
["src/views/settings/components/Avatar.tsx", 287], ["src/views/settings/components/Avatar.tsx", 287],
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206], ["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
[ [
@@ -1332,13 +1324,6 @@
"origin": [["src/views/card/components/Dropdown.tsx", 48]], "origin": [["src/views/card/components/Dropdown.tsx", 48]],
"translation": "Tarjeta duplicada correctamente." "translation": "Tarjeta duplicada correctamente."
}, },
"AgE2vR": {
"message": "Card member assignments will be cleared when moving to a different workspace.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 92]],
"translation": "Las asignaciones de miembros de la tarjeta se borrarán al mover a un espacio de trabajo diferente."
},
"fEY2vP": { "fEY2vP": {
"message": "Card not found", "message": "Card not found",
"placeholders": {}, "placeholders": {},
@@ -1361,7 +1346,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 309], ["src/views/board/index.tsx", 308],
["src/views/card/components/Dropdown.tsx", 74], ["src/views/card/components/Dropdown.tsx", 74],
["src/views/public/board/CardModal.tsx", 38] ["src/views/public/board/CardModal.tsx", 38]
], ],
@@ -1444,7 +1429,7 @@
"message": "Choose a plan", "message": "Choose a plan",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]], "origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
"translation": "Elige un plan" "translation": "Elige un plan"
}, },
"5EMoSo": { "5EMoSo": {
@@ -1719,7 +1704,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 246], ["src/views/onboarding/select-plan/index.tsx", 242],
["src/views/onboarding/workspace-details/index.tsx", 315] ["src/views/onboarding/workspace-details/index.tsx", 315]
], ],
"translation": "Continuar" "translation": "Continuar"
@@ -1914,8 +1899,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 93], ["src/views/board/index.tsx", 92],
["src/views/board/index.tsx", 679] ["src/views/board/index.tsx", 671]
], ],
"translation": "Crear nueva lista" "translation": "Crear nueva lista"
}, },
@@ -2133,7 +2118,7 @@
"message": "Delete board", "message": "Delete board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Eliminar tablero" "translation": "Eliminar tablero"
}, },
"nabda1": { "nabda1": {
@@ -2164,7 +2149,7 @@
"message": "Delete template", "message": "Delete template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Eliminar plantilla" "translation": "Eliminar plantilla"
}, },
"snMaH4": { "snMaH4": {
@@ -2226,13 +2211,6 @@
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]], "origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
"translation": "Diseño" "translation": "Diseño"
}, },
"Uf+1DF": {
"message": "Destination workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
"translation": "Espacio de trabajo de destino"
},
"Odv3J6": { "Odv3J6": {
"message": "Disconnect GitHub", "message": "Disconnect GitHub",
"placeholders": {}, "placeholders": {},
@@ -2438,7 +2416,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/BoardDropdown.tsx", 106], ["src/views/board/components/BoardDropdown.tsx", 105],
["src/views/board/components/UpdateBoardSlugForm.tsx", 116] ["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
], ],
"translation": "Editar URL del tablero" "translation": "Editar URL del tablero"
@@ -3016,8 +2994,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 82], ["src/views/onboarding/select-plan/index.tsx", 78],
["src/views/onboarding/select-plan/index.tsx", 83], ["src/views/onboarding/select-plan/index.tsx", 79],
["src/views/pricing/components/FeatureComparisonTable.tsx", 331], ["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
@@ -3125,7 +3103,7 @@
"message": "Get started by creating a new list", "message": "Get started by creating a new list",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 664]], "origin": [["src/views/board/index.tsx", 656]],
"translation": "Comienza creando una nueva lista" "translation": "Comienza creando una nueva lista"
}, },
"oW13KZ": { "oW13KZ": {
@@ -3239,7 +3217,7 @@
"message": "Good for individuals starting out who just need the essentials.", "message": "Good for individuals starting out who just need the essentials.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]], "origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
"translation": "Ideal para personas que comienzan y solo necesitan lo esencial." "translation": "Ideal para personas que comienzan y solo necesitan lo esencial."
}, },
"cdyS7J": { "cdyS7J": {
@@ -3765,7 +3743,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/UpdateBoardSlugButton.tsx", 80], ["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
["src/views/board/index.tsx", 307], ["src/views/board/index.tsx", 306],
["src/views/card/components/Dropdown.tsx", 72], ["src/views/card/components/Dropdown.tsx", 72],
["src/views/public/board/CardModal.tsx", 36], ["src/views/public/board/CardModal.tsx", 36],
["src/views/public/board/index.tsx", 77] ["src/views/public/board/index.tsx", 77]
@@ -3865,7 +3843,7 @@
"message": "Make template", "message": "Make template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]], "origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
"translation": "Crear plantilla" "translation": "Crear plantilla"
}, },
"hB02vO": { "hB02vO": {
@@ -3986,7 +3964,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 67], ["src/views/onboarding/select-plan/index.tsx", 63],
["src/views/pricing/components/Pricing.tsx", 14], ["src/views/pricing/components/Pricing.tsx", 14],
["src/views/pricing/index.tsx", 20] ["src/views/pricing/index.tsx", 20]
], ],
@@ -3999,20 +3977,6 @@
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]], "origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
"translation": "facturación mensual" "translation": "facturación mensual"
}, },
"sZ/WDz": {
"message": "Move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 107]],
"translation": "Mover tablero"
},
"VvCMyU": {
"message": "Move board to another workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 64]],
"translation": "Mover tablero a otro espacio de trabajo"
},
"51UCsN": { "51UCsN": {
"message": "Move to another list", "message": "Move to another list",
"placeholders": {}, "placeholders": {},
@@ -4027,13 +3991,6 @@
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]], "origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
"translation": "Mover a lista" "translation": "Mover a lista"
}, },
"S3wq2O": {
"message": "Move to workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
"translation": "Mover al espacio de trabajo"
},
"BOqTi5": { "BOqTi5": {
"message": "moved the card from <0>{0}</0> to<1>{1}</1>", "message": "moved the card from <0>{0}</0> to<1>{1}</1>",
"placeholders": { "placeholders": {
@@ -4145,7 +4102,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/NewListForm.tsx", 113], ["src/views/board/components/NewListForm.tsx", 113],
["src/views/board/index.tsx", 628] ["src/views/board/index.tsx", 620]
], ],
"translation": "Nueva lista" "translation": "Nueva lista"
}, },
@@ -4278,14 +4235,14 @@
"message": "No lists", "message": "No lists",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 660]], "origin": [["src/views/board/index.tsx", 652]],
"translation": "Sin listas" "translation": "Sin listas"
}, },
"fvLNDy": { "fvLNDy": {
"message": "No lists have been created yet", "message": "No lists have been created yet",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 665]], "origin": [["src/views/board/index.tsx", 657]],
"translation": "Aún no se han creado listas" "translation": "Aún no se han creado listas"
}, },
"i30J2U": { "i30J2U": {
@@ -4602,7 +4559,7 @@
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.", "message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]], "origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
"translation": "Elige un plan para comenzar. Todos los planes de pago incluyen una prueba gratuita de 14 días." "translation": "Elige un plan para comenzar. Todos los planes de pago incluyen una prueba gratuita de 14 días."
}, },
"GdgCoi": { "GdgCoi": {
@@ -4700,15 +4657,15 @@
["src/components/DeleteLabelConfirmation.tsx", 26], ["src/components/DeleteLabelConfirmation.tsx", 26],
["src/components/FeedbackModal.tsx", 41], ["src/components/FeedbackModal.tsx", 41],
["src/components/NewWorkspaceForm.tsx", 110], ["src/components/NewWorkspaceForm.tsx", 110],
["src/views/board/components/BoardDropdown.tsx", 69], ["src/views/board/components/BoardDropdown.tsx", 68],
["src/views/board/components/NewCardForm.tsx", 193], ["src/views/board/components/NewCardForm.tsx", 193],
["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],
["src/views/board/components/NewTemplateForm.tsx", 77], ["src/views/board/components/NewTemplateForm.tsx", 77],
["src/views/board/components/UpdateBoardSlugForm.tsx", 73], ["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
["src/views/board/components/VisibilityButton.tsx", 57], ["src/views/board/components/VisibilityButton.tsx", 57],
["src/views/board/index.tsx", 219], ["src/views/board/index.tsx", 218],
["src/views/board/index.tsx", 275], ["src/views/board/index.tsx", 274],
["src/views/boards/components/ImportBoardsForm.tsx", 243], ["src/views/boards/components/ImportBoardsForm.tsx", 243],
["src/views/boards/components/ImportBoardsForm.tsx", 395], ["src/views/boards/components/ImportBoardsForm.tsx", 395],
["src/views/card/components/AttachmentThumbnails.tsx", 74], ["src/views/card/components/AttachmentThumbnails.tsx", 74],
@@ -4726,7 +4683,7 @@
["src/views/card/components/MemberSelector.tsx", 82], ["src/views/card/components/MemberSelector.tsx", 82],
["src/views/card/components/NewChecklistForm.tsx", 71], ["src/views/card/components/NewChecklistForm.tsx", 71],
["src/views/card/components/NewChecklistItemForm.tsx", 90], ["src/views/card/components/NewChecklistItemForm.tsx", 90],
["src/views/card/components/NewCommentForm.tsx", 38], ["src/views/card/components/NewCommentForm.tsx", 37],
["src/views/card/index.tsx", 236], ["src/views/card/index.tsx", 236],
["src/views/card/index.tsx", 249], ["src/views/card/index.tsx", 249],
["src/views/members/components/DeleteMemberConfirmation.tsx", 28], ["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
@@ -4766,7 +4723,7 @@
"origin": [ "origin": [
["src/views/board/components/CardContextDuplicateModal.tsx", 76], ["src/views/board/components/CardContextDuplicateModal.tsx", 76],
["src/views/board/components/CardContextMoveListModal.tsx", 42], ["src/views/board/components/CardContextMoveListModal.tsx", 42],
["src/views/board/index.tsx", 316], ["src/views/board/index.tsx", 315],
["src/views/card/components/Dropdown.tsx", 55], ["src/views/card/components/Dropdown.tsx", 55],
["src/views/card/components/Dropdown.tsx", 81], ["src/views/card/components/Dropdown.tsx", 81],
["src/views/card/components/Dropdown.tsx", 100], ["src/views/card/components/Dropdown.tsx", 100],
@@ -4829,7 +4786,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 96], ["src/views/onboarding/select-plan/index.tsx", 92],
["src/views/pricing/components/FeatureComparisonTable.tsx", 333], ["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
["src/views/pricing/components/PricingTiers.tsx", 70] ["src/views/pricing/components/PricingTiers.tsx", 70]
], ],
@@ -4935,7 +4892,7 @@
"message": "Remove from favorites", "message": "Remove from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]], "origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
"translation": "Eliminar de favoritos" "translation": "Eliminar de favoritos"
}, },
"99VIgC": { "99VIgC": {
@@ -4989,7 +4946,7 @@
"message": "Removed from favorites", "message": "Removed from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]], "origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
"translation": "Eliminado de favoritos" "translation": "Eliminado de favoritos"
}, },
"YVT40D": { "YVT40D": {
@@ -5236,13 +5193,6 @@
], ],
"translation": "Seleccionar una lista" "translation": "Seleccionar una lista"
}, },
"NM2hyD": {
"message": "Select a workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
"translation": "Selecciona un espacio de trabajo"
},
"wgNoIs": { "wgNoIs": {
"message": "Select all", "message": "Select all",
"placeholders": {}, "placeholders": {},
@@ -5454,7 +5404,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 319], ["src/views/onboarding/select-plan/index.tsx", 315],
["src/views/onboarding/workspace-details/index.tsx", 386] ["src/views/onboarding/workspace-details/index.tsx", 386]
], ],
"translation": "Cerrar sesión" "translation": "Cerrar sesión"
@@ -5548,7 +5498,7 @@
"message": "Solo", "message": "Solo",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]], "origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
"translation": "Individual" "translation": "Individual"
}, },
"J9+zIR": { "J9+zIR": {
@@ -5615,13 +5565,6 @@
"origin": [["src/views/settings/components/WebhookList.tsx", 232]], "origin": [["src/views/settings/components/WebhookList.tsx", 232]],
"translation": "Estado" "translation": "Estado"
}, },
"hQRttt": {
"message": "Submit",
"placeholders": {},
"comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
"translation": "Enviar"
},
"WYDptz": { "WYDptz": {
"message": "Subscription Required", "message": "Subscription Required",
"placeholders": {}, "placeholders": {},
@@ -5685,7 +5628,7 @@
"message": "Team", "message": "Team",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]], "origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
"translation": "Equipo" "translation": "Equipo"
}, },
"bff61F": { "bff61F": {
@@ -5715,8 +5658,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/board/index.tsx", 574] ["src/views/board/index.tsx", 566]
], ],
"translation": "Plantilla" "translation": "Plantilla"
}, },
@@ -5827,23 +5770,14 @@
"message": "The board has been archived.", "message": "The board has been archived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]], "origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
"translation": "El tablero ha sido archivado." "translation": "El tablero ha sido archivado."
}, },
"ZWk38w": {
"message": "The board has been moved to {0}.",
"placeholders": {
"0": ["targetWorkspace?.name ?? \"the workspace\""]
},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 34]],
"translation": "El tablero se ha movido a {0}."
},
"C6gv54": { "C6gv54": {
"message": "The board has been unarchived.", "message": "The board has been unarchived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]], "origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
"translation": "El tablero ha sido desarchivado." "translation": "El tablero ha sido desarchivado."
}, },
"nKBUeF": { "nKBUeF": {
@@ -6154,7 +6088,7 @@
"message": "Unable to add comment", "message": "Unable to add comment",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]], "origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
"translation": "No se pudo agregar el comentario" "translation": "No se pudo agregar el comentario"
}, },
"2Q871c": { "2Q871c": {
@@ -6183,7 +6117,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 314], ["src/views/board/index.tsx", 313],
["src/views/card/components/Dropdown.tsx", 79], ["src/views/card/components/Dropdown.tsx", 79],
["src/views/public/board/CardModal.tsx", 43], ["src/views/public/board/CardModal.tsx", 43],
["src/views/public/board/index.tsx", 84] ["src/views/public/board/index.tsx", 84]
@@ -6294,13 +6228,6 @@
], ],
"translation": "No se puede duplicar la tarjeta" "translation": "No se puede duplicar la tarjeta"
}, },
"d196/6": {
"message": "Unable to move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 45]],
"translation": "No se pudo mover el tablero"
},
"K7k9u3": { "K7k9u3": {
"message": "Unable to move card", "message": "Unable to move card",
"placeholders": {}, "placeholders": {},
@@ -6361,7 +6288,7 @@
"message": "Unable to update board", "message": "Unable to update board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]], "origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
"translation": "No se pudo actualizar el tablero" "translation": "No se pudo actualizar el tablero"
}, },
"XpcjLO": { "XpcjLO": {
@@ -6383,7 +6310,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 274], ["src/views/board/index.tsx", 273],
["src/views/card/index.tsx", 235] ["src/views/card/index.tsx", 235]
], ],
"translation": "No se pudo actualizar la tarjeta" "translation": "No se pudo actualizar la tarjeta"
@@ -6428,7 +6355,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 218], ["src/views/board/index.tsx", 217],
["src/views/card/components/ListSelector.tsx", 54] ["src/views/card/components/ListSelector.tsx", 54]
], ],
"translation": "No se pudo actualizar la lista" "translation": "No se pudo actualizar la lista"
@@ -6468,7 +6395,7 @@
"message": "Unarchive board", "message": "Unarchive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Desarchivar tablero" "translation": "Desarchivar tablero"
}, },
"E8zYtd": { "E8zYtd": {
@@ -6581,7 +6508,7 @@
"message": "Unlimited members and a custom workspace username for teams ready to scale.", "message": "Unlimited members and a custom workspace username for teams ready to scale.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]], "origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
"translation": "Miembros ilimitados y un nombre de usuario personalizado para el espacio de trabajo para equipos listos para escalar." "translation": "Miembros ilimitados y un nombre de usuario personalizado para el espacio de trabajo para equipos listos para escalar."
}, },
"i5yNAO": { "i5yNAO": {
@@ -6671,7 +6598,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/members/index.tsx", 295], ["src/views/members/index.tsx", 295],
["src/views/onboarding/select-plan/index.tsx", 245] ["src/views/onboarding/select-plan/index.tsx", 241]
], ],
"translation": "Actualizar" "translation": "Actualizar"
}, },
@@ -7004,7 +6931,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/components/SettingsLayout.tsx", 47], ["src/components/SettingsLayout.tsx", 47],
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/boards/index.tsx", 48], ["src/views/boards/index.tsx", 48],
["src/views/members/index.tsx", 278], ["src/views/members/index.tsx", 278],
["src/views/public/board/index.tsx", 125], ["src/views/public/board/index.tsx", 125],
@@ -7219,13 +7146,6 @@
"origin": [["src/views/home/components/Faqs.tsx", 127]], "origin": [["src/views/home/components/Faqs.tsx", 127]],
"translation": "Puedes auto-alojar siguiendo las instrucciones en nuestro <0>repositorio</0>." "translation": "Puedes auto-alojar siguiendo las instrucciones en nuestro <0>repositorio</0>."
}, },
"tUL16u": {
"message": "You don't have any other workspaces to move this board to.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 68]],
"translation": "No tienes ningún otro espacio de trabajo al que mover este tablero."
},
"h2FKMV": { "h2FKMV": {
"message": "You don't have permission", "message": "You don't have permission",
"placeholders": {}, "placeholders": {},
@@ -7234,8 +7154,8 @@
["src/views/board/components/List.tsx", 117], ["src/views/board/components/List.tsx", 117],
["src/views/board/components/UpdateBoardSlugButton.tsx", 58], ["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
["src/views/board/components/VisibilityButton.tsx", 72], ["src/views/board/components/VisibilityButton.tsx", 72],
["src/views/board/index.tsx", 612], ["src/views/board/index.tsx", 604],
["src/views/board/index.tsx", 670], ["src/views/board/index.tsx", 662],
["src/views/boards/components/BoardsList.tsx", 71], ["src/views/boards/components/BoardsList.tsx", 71],
["src/views/boards/index.tsx", 59], ["src/views/boards/index.tsx", 59],
["src/views/boards/index.tsx", 80] ["src/views/boards/index.tsx", 80]
@@ -7330,7 +7250,7 @@
"message": "Your avatar", "message": "Your avatar",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]], "origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
"translation": "Tu avatar" "translation": "Tu avatar"
}, },
"evg7+A": { "evg7+A": {

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]], "origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
"translation": "{0} a été ajouté à vos favoris." "translation": "{0} a été ajouté à vos favoris."
}, },
"bDI6VI": { "bDI6VI": {
@@ -53,7 +53,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]], "origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
"translation": "{0} a été retiré de vos favoris." "translation": "{0} a été retiré de vos favoris."
}, },
"CJukzS": { "CJukzS": {
@@ -71,7 +71,7 @@
"0": ["isTemplate ? \"Template\" : \"Board\""] "0": ["isTemplate ? \"Template\" : \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 565]], "origin": [["src/views/board/index.tsx", 557]],
"translation": "{0} introuvable" "translation": "{0} introuvable"
}, },
"0xWkkH": { "0xWkkH": {
@@ -286,7 +286,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/card/components/Comment.tsx", 185], ["src/views/card/components/Comment.tsx", 185],
["src/views/card/components/NewCommentForm.tsx", 85] ["src/views/card/components/NewCommentForm.tsx", 68]
], ],
"translation": "Ajouter un commentaire... (tapez « / » pour ouvrir les commandes ou « @ » pour mentionner)" "translation": "Ajouter un commentaire... (tapez « / » pour ouvrir les commandes ou « @ » pour mentionner)"
}, },
@@ -294,7 +294,7 @@
"message": "Add description... (type '/' to open commands or '@' to mention)", "message": "Add description... (type '/' to open commands or '@' to mention)",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/components/Editor.tsx", 499]], "origin": [["src/components/Editor.tsx", 493]],
"translation": "Ajouter une description... (tapez « / » pour ouvrir les commandes ou « @ » pour mentionner)" "translation": "Ajouter une description... (tapez « / » pour ouvrir les commandes ou « @ » pour mentionner)"
}, },
"abUZlY": { "abUZlY": {
@@ -328,7 +328,7 @@
"message": "Add to favorites", "message": "Add to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]], "origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
"translation": "Ajouter aux favoris" "translation": "Ajouter aux favoris"
}, },
"cWXW+7": { "cWXW+7": {
@@ -423,7 +423,7 @@
"message": "Added to favorites", "message": "Added to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]], "origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
"translation": "Ajouté aux favoris" "translation": "Ajouté aux favoris"
}, },
"14Xi3Z": { "14Xi3Z": {
@@ -577,7 +577,7 @@
"message": "Annual", "message": "Annual",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]], "origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
"translation": "Annuel" "translation": "Annuel"
}, },
"3bqt9U": { "3bqt9U": {
@@ -657,7 +657,7 @@
"message": "Archive board", "message": "Archive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Archiver le tableau" "translation": "Archiver le tableau"
}, },
"TdfEV7": { "TdfEV7": {
@@ -833,7 +833,7 @@
"message": "Best for small teams who want to collaborate and move faster together.", "message": "Best for small teams who want to collaborate and move faster together.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]], "origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
"translation": "Idéal pour les petites équipes qui souhaitent collaborer et avancer plus rapidement ensemble." "translation": "Idéal pour les petites équipes qui souhaitent collaborer et avancer plus rapidement ensemble."
}, },
"qaS+1/": { "qaS+1/": {
@@ -887,7 +887,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/card/index.tsx", 321], ["src/views/card/index.tsx", 321],
["src/views/public/board/index.tsx", 125] ["src/views/public/board/index.tsx", 125]
], ],
@@ -906,16 +906,9 @@
"message": "Board archived", "message": "Board archived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Tableau archivé" "translation": "Tableau archivé"
}, },
"wE3hGS": {
"message": "Board moved",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
"translation": "Tableau déplacé"
},
"wewm3j": { "wewm3j": {
"message": "Board name cannot exceed 100 characters", "message": "Board name cannot exceed 100 characters",
"placeholders": {}, "placeholders": {},
@@ -950,7 +943,7 @@
"message": "Board unarchived", "message": "Board unarchived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Tableau désarchivé" "translation": "Tableau désarchivé"
}, },
"Xid3K6": { "Xid3K6": {
@@ -1288,13 +1281,12 @@
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176], ["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
["src/views/board/components/CardContextDuplicateModal.tsx", 267], ["src/views/board/components/CardContextDuplicateModal.tsx", 267],
["src/views/board/components/DeleteBoardConfirmation.tsx", 44], ["src/views/board/components/DeleteBoardConfirmation.tsx", 44],
["src/views/board/components/MoveBoardForm.tsx", 99],
["src/views/card/components/Comment.tsx", 195], ["src/views/card/components/Comment.tsx", 195],
["src/views/card/components/DeleteCardConfirmation.tsx", 86], ["src/views/card/components/DeleteCardConfirmation.tsx", 86],
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64], ["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
["src/views/card/components/DeleteCommentConfirmation.tsx", 77], ["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
["src/views/members/components/DeleteMemberConfirmation.tsx", 55], ["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
["src/views/onboarding/select-plan/index.tsx", 240], ["src/views/onboarding/select-plan/index.tsx", 236],
["src/views/settings/components/Avatar.tsx", 287], ["src/views/settings/components/Avatar.tsx", 287],
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206], ["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
[ [
@@ -1332,13 +1324,6 @@
"origin": [["src/views/card/components/Dropdown.tsx", 48]], "origin": [["src/views/card/components/Dropdown.tsx", 48]],
"translation": "Carte dupliquée avec succès." "translation": "Carte dupliquée avec succès."
}, },
"AgE2vR": {
"message": "Card member assignments will be cleared when moving to a different workspace.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 92]],
"translation": "Les membres affectés aux cartes seront supprimés lors du déplacement vers un autre espace de travail."
},
"fEY2vP": { "fEY2vP": {
"message": "Card not found", "message": "Card not found",
"placeholders": {}, "placeholders": {},
@@ -1361,7 +1346,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 309], ["src/views/board/index.tsx", 308],
["src/views/card/components/Dropdown.tsx", 74], ["src/views/card/components/Dropdown.tsx", 74],
["src/views/public/board/CardModal.tsx", 38] ["src/views/public/board/CardModal.tsx", 38]
], ],
@@ -1444,7 +1429,7 @@
"message": "Choose a plan", "message": "Choose a plan",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]], "origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
"translation": "Choisir un forfait" "translation": "Choisir un forfait"
}, },
"5EMoSo": { "5EMoSo": {
@@ -1719,7 +1704,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 246], ["src/views/onboarding/select-plan/index.tsx", 242],
["src/views/onboarding/workspace-details/index.tsx", 315] ["src/views/onboarding/workspace-details/index.tsx", 315]
], ],
"translation": "Continuer" "translation": "Continuer"
@@ -1914,8 +1899,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 93], ["src/views/board/index.tsx", 92],
["src/views/board/index.tsx", 679] ["src/views/board/index.tsx", 671]
], ],
"translation": "Créer une nouvelle liste" "translation": "Créer une nouvelle liste"
}, },
@@ -2133,7 +2118,7 @@
"message": "Delete board", "message": "Delete board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Supprimer le tableau" "translation": "Supprimer le tableau"
}, },
"nabda1": { "nabda1": {
@@ -2164,7 +2149,7 @@
"message": "Delete template", "message": "Delete template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Supprimer le modèle" "translation": "Supprimer le modèle"
}, },
"snMaH4": { "snMaH4": {
@@ -2226,13 +2211,6 @@
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]], "origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
"translation": "Design" "translation": "Design"
}, },
"Uf+1DF": {
"message": "Destination workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
"translation": "Espace de travail de destination"
},
"Odv3J6": { "Odv3J6": {
"message": "Disconnect GitHub", "message": "Disconnect GitHub",
"placeholders": {}, "placeholders": {},
@@ -2438,7 +2416,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/BoardDropdown.tsx", 106], ["src/views/board/components/BoardDropdown.tsx", 105],
["src/views/board/components/UpdateBoardSlugForm.tsx", 116] ["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
], ],
"translation": "Modifier l'URL du tableau" "translation": "Modifier l'URL du tableau"
@@ -3016,8 +2994,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 82], ["src/views/onboarding/select-plan/index.tsx", 78],
["src/views/onboarding/select-plan/index.tsx", 83], ["src/views/onboarding/select-plan/index.tsx", 79],
["src/views/pricing/components/FeatureComparisonTable.tsx", 331], ["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
@@ -3125,7 +3103,7 @@
"message": "Get started by creating a new list", "message": "Get started by creating a new list",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 664]], "origin": [["src/views/board/index.tsx", 656]],
"translation": "Commencez en créant une nouvelle liste" "translation": "Commencez en créant une nouvelle liste"
}, },
"oW13KZ": { "oW13KZ": {
@@ -3239,7 +3217,7 @@
"message": "Good for individuals starting out who just need the essentials.", "message": "Good for individuals starting out who just need the essentials.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]], "origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
"translation": "Idéal pour les particuliers qui débutent et qui ont simplement besoin de l'essentiel." "translation": "Idéal pour les particuliers qui débutent et qui ont simplement besoin de l'essentiel."
}, },
"cdyS7J": { "cdyS7J": {
@@ -3765,7 +3743,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/UpdateBoardSlugButton.tsx", 80], ["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
["src/views/board/index.tsx", 307], ["src/views/board/index.tsx", 306],
["src/views/card/components/Dropdown.tsx", 72], ["src/views/card/components/Dropdown.tsx", 72],
["src/views/public/board/CardModal.tsx", 36], ["src/views/public/board/CardModal.tsx", 36],
["src/views/public/board/index.tsx", 77] ["src/views/public/board/index.tsx", 77]
@@ -3865,7 +3843,7 @@
"message": "Make template", "message": "Make template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]], "origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
"translation": "Créer un modèle" "translation": "Créer un modèle"
}, },
"hB02vO": { "hB02vO": {
@@ -3986,7 +3964,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 67], ["src/views/onboarding/select-plan/index.tsx", 63],
["src/views/pricing/components/Pricing.tsx", 14], ["src/views/pricing/components/Pricing.tsx", 14],
["src/views/pricing/index.tsx", 20] ["src/views/pricing/index.tsx", 20]
], ],
@@ -3999,20 +3977,6 @@
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]], "origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
"translation": "facturation mensuelle" "translation": "facturation mensuelle"
}, },
"sZ/WDz": {
"message": "Move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 107]],
"translation": "Déplacer le tableau"
},
"VvCMyU": {
"message": "Move board to another workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 64]],
"translation": "Déplacer le tableau vers un autre espace de travail"
},
"51UCsN": { "51UCsN": {
"message": "Move to another list", "message": "Move to another list",
"placeholders": {}, "placeholders": {},
@@ -4027,13 +3991,6 @@
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]], "origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
"translation": "Déplacer vers la liste" "translation": "Déplacer vers la liste"
}, },
"S3wq2O": {
"message": "Move to workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
"translation": "Déplacer vers l'espace de travail"
},
"BOqTi5": { "BOqTi5": {
"message": "moved the card from <0>{0}</0> to<1>{1}</1>", "message": "moved the card from <0>{0}</0> to<1>{1}</1>",
"placeholders": { "placeholders": {
@@ -4145,7 +4102,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/NewListForm.tsx", 113], ["src/views/board/components/NewListForm.tsx", 113],
["src/views/board/index.tsx", 628] ["src/views/board/index.tsx", 620]
], ],
"translation": "Nouvelle liste" "translation": "Nouvelle liste"
}, },
@@ -4278,14 +4235,14 @@
"message": "No lists", "message": "No lists",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 660]], "origin": [["src/views/board/index.tsx", 652]],
"translation": "Aucune liste" "translation": "Aucune liste"
}, },
"fvLNDy": { "fvLNDy": {
"message": "No lists have been created yet", "message": "No lists have been created yet",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 665]], "origin": [["src/views/board/index.tsx", 657]],
"translation": "Aucune liste n'a encore été créée" "translation": "Aucune liste n'a encore été créée"
}, },
"i30J2U": { "i30J2U": {
@@ -4602,7 +4559,7 @@
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.", "message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]], "origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
"translation": "Choisissez un forfait pour commencer. Tous les forfaits payants incluent un essai gratuit de 14 jours." "translation": "Choisissez un forfait pour commencer. Tous les forfaits payants incluent un essai gratuit de 14 jours."
}, },
"GdgCoi": { "GdgCoi": {
@@ -4700,15 +4657,15 @@
["src/components/DeleteLabelConfirmation.tsx", 26], ["src/components/DeleteLabelConfirmation.tsx", 26],
["src/components/FeedbackModal.tsx", 41], ["src/components/FeedbackModal.tsx", 41],
["src/components/NewWorkspaceForm.tsx", 110], ["src/components/NewWorkspaceForm.tsx", 110],
["src/views/board/components/BoardDropdown.tsx", 69], ["src/views/board/components/BoardDropdown.tsx", 68],
["src/views/board/components/NewCardForm.tsx", 193], ["src/views/board/components/NewCardForm.tsx", 193],
["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],
["src/views/board/components/NewTemplateForm.tsx", 77], ["src/views/board/components/NewTemplateForm.tsx", 77],
["src/views/board/components/UpdateBoardSlugForm.tsx", 73], ["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
["src/views/board/components/VisibilityButton.tsx", 57], ["src/views/board/components/VisibilityButton.tsx", 57],
["src/views/board/index.tsx", 219], ["src/views/board/index.tsx", 218],
["src/views/board/index.tsx", 275], ["src/views/board/index.tsx", 274],
["src/views/boards/components/ImportBoardsForm.tsx", 243], ["src/views/boards/components/ImportBoardsForm.tsx", 243],
["src/views/boards/components/ImportBoardsForm.tsx", 395], ["src/views/boards/components/ImportBoardsForm.tsx", 395],
["src/views/card/components/AttachmentThumbnails.tsx", 74], ["src/views/card/components/AttachmentThumbnails.tsx", 74],
@@ -4726,7 +4683,7 @@
["src/views/card/components/MemberSelector.tsx", 82], ["src/views/card/components/MemberSelector.tsx", 82],
["src/views/card/components/NewChecklistForm.tsx", 71], ["src/views/card/components/NewChecklistForm.tsx", 71],
["src/views/card/components/NewChecklistItemForm.tsx", 90], ["src/views/card/components/NewChecklistItemForm.tsx", 90],
["src/views/card/components/NewCommentForm.tsx", 38], ["src/views/card/components/NewCommentForm.tsx", 37],
["src/views/card/index.tsx", 236], ["src/views/card/index.tsx", 236],
["src/views/card/index.tsx", 249], ["src/views/card/index.tsx", 249],
["src/views/members/components/DeleteMemberConfirmation.tsx", 28], ["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
@@ -4766,7 +4723,7 @@
"origin": [ "origin": [
["src/views/board/components/CardContextDuplicateModal.tsx", 76], ["src/views/board/components/CardContextDuplicateModal.tsx", 76],
["src/views/board/components/CardContextMoveListModal.tsx", 42], ["src/views/board/components/CardContextMoveListModal.tsx", 42],
["src/views/board/index.tsx", 316], ["src/views/board/index.tsx", 315],
["src/views/card/components/Dropdown.tsx", 55], ["src/views/card/components/Dropdown.tsx", 55],
["src/views/card/components/Dropdown.tsx", 81], ["src/views/card/components/Dropdown.tsx", 81],
["src/views/card/components/Dropdown.tsx", 100], ["src/views/card/components/Dropdown.tsx", 100],
@@ -4829,7 +4786,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 96], ["src/views/onboarding/select-plan/index.tsx", 92],
["src/views/pricing/components/FeatureComparisonTable.tsx", 333], ["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
["src/views/pricing/components/PricingTiers.tsx", 70] ["src/views/pricing/components/PricingTiers.tsx", 70]
], ],
@@ -4935,7 +4892,7 @@
"message": "Remove from favorites", "message": "Remove from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]], "origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
"translation": "Retirer des favoris" "translation": "Retirer des favoris"
}, },
"99VIgC": { "99VIgC": {
@@ -4989,7 +4946,7 @@
"message": "Removed from favorites", "message": "Removed from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]], "origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
"translation": "Retiré des favoris" "translation": "Retiré des favoris"
}, },
"YVT40D": { "YVT40D": {
@@ -5236,13 +5193,6 @@
], ],
"translation": "Sélectionner une liste" "translation": "Sélectionner une liste"
}, },
"NM2hyD": {
"message": "Select a workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
"translation": "Sélectionnez un espace de travail"
},
"wgNoIs": { "wgNoIs": {
"message": "Select all", "message": "Select all",
"placeholders": {}, "placeholders": {},
@@ -5454,7 +5404,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 319], ["src/views/onboarding/select-plan/index.tsx", 315],
["src/views/onboarding/workspace-details/index.tsx", 386] ["src/views/onboarding/workspace-details/index.tsx", 386]
], ],
"translation": "Se déconnecter" "translation": "Se déconnecter"
@@ -5548,7 +5498,7 @@
"message": "Solo", "message": "Solo",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]], "origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
"translation": "Solo" "translation": "Solo"
}, },
"J9+zIR": { "J9+zIR": {
@@ -5615,13 +5565,6 @@
"origin": [["src/views/settings/components/WebhookList.tsx", 232]], "origin": [["src/views/settings/components/WebhookList.tsx", 232]],
"translation": "Statut" "translation": "Statut"
}, },
"hQRttt": {
"message": "Submit",
"placeholders": {},
"comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
"translation": "Soumettre"
},
"WYDptz": { "WYDptz": {
"message": "Subscription Required", "message": "Subscription Required",
"placeholders": {}, "placeholders": {},
@@ -5685,7 +5628,7 @@
"message": "Team", "message": "Team",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]], "origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
"translation": "Équipe" "translation": "Équipe"
}, },
"bff61F": { "bff61F": {
@@ -5715,8 +5658,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/board/index.tsx", 574] ["src/views/board/index.tsx", 566]
], ],
"translation": "Modèle" "translation": "Modèle"
}, },
@@ -5827,23 +5770,14 @@
"message": "The board has been archived.", "message": "The board has been archived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]], "origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
"translation": "Le tableau a été archivé." "translation": "Le tableau a été archivé."
}, },
"ZWk38w": {
"message": "The board has been moved to {0}.",
"placeholders": {
"0": ["targetWorkspace?.name ?? \"the workspace\""]
},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 34]],
"translation": "Le tableau a été déplacé vers {0}."
},
"C6gv54": { "C6gv54": {
"message": "The board has been unarchived.", "message": "The board has been unarchived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]], "origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
"translation": "Le tableau a été désarchivé." "translation": "Le tableau a été désarchivé."
}, },
"nKBUeF": { "nKBUeF": {
@@ -6154,7 +6088,7 @@
"message": "Unable to add comment", "message": "Unable to add comment",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]], "origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
"translation": "Impossible d'ajouter le commentaire" "translation": "Impossible d'ajouter le commentaire"
}, },
"2Q871c": { "2Q871c": {
@@ -6183,7 +6117,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 314], ["src/views/board/index.tsx", 313],
["src/views/card/components/Dropdown.tsx", 79], ["src/views/card/components/Dropdown.tsx", 79],
["src/views/public/board/CardModal.tsx", 43], ["src/views/public/board/CardModal.tsx", 43],
["src/views/public/board/index.tsx", 84] ["src/views/public/board/index.tsx", 84]
@@ -6294,13 +6228,6 @@
], ],
"translation": "Impossible de dupliquer la carte" "translation": "Impossible de dupliquer la carte"
}, },
"d196/6": {
"message": "Unable to move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 45]],
"translation": "Impossible de déplacer le tableau"
},
"K7k9u3": { "K7k9u3": {
"message": "Unable to move card", "message": "Unable to move card",
"placeholders": {}, "placeholders": {},
@@ -6361,7 +6288,7 @@
"message": "Unable to update board", "message": "Unable to update board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]], "origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
"translation": "Impossible de mettre à jour le tableau" "translation": "Impossible de mettre à jour le tableau"
}, },
"XpcjLO": { "XpcjLO": {
@@ -6383,7 +6310,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 274], ["src/views/board/index.tsx", 273],
["src/views/card/index.tsx", 235] ["src/views/card/index.tsx", 235]
], ],
"translation": "Impossible de mettre à jour la carte" "translation": "Impossible de mettre à jour la carte"
@@ -6428,7 +6355,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 218], ["src/views/board/index.tsx", 217],
["src/views/card/components/ListSelector.tsx", 54] ["src/views/card/components/ListSelector.tsx", 54]
], ],
"translation": "Impossible de mettre à jour la liste" "translation": "Impossible de mettre à jour la liste"
@@ -6468,7 +6395,7 @@
"message": "Unarchive board", "message": "Unarchive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Désarchiver le tableau" "translation": "Désarchiver le tableau"
}, },
"E8zYtd": { "E8zYtd": {
@@ -6581,7 +6508,7 @@
"message": "Unlimited members and a custom workspace username for teams ready to scale.", "message": "Unlimited members and a custom workspace username for teams ready to scale.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]], "origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
"translation": "Membres illimités et un nom d'utilisateur d'espace de travail personnalisé pour les équipes prêtes à évoluer." "translation": "Membres illimités et un nom d'utilisateur d'espace de travail personnalisé pour les équipes prêtes à évoluer."
}, },
"i5yNAO": { "i5yNAO": {
@@ -6671,7 +6598,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/members/index.tsx", 295], ["src/views/members/index.tsx", 295],
["src/views/onboarding/select-plan/index.tsx", 245] ["src/views/onboarding/select-plan/index.tsx", 241]
], ],
"translation": "Mettre à niveau" "translation": "Mettre à niveau"
}, },
@@ -7004,7 +6931,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/components/SettingsLayout.tsx", 47], ["src/components/SettingsLayout.tsx", 47],
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/boards/index.tsx", 48], ["src/views/boards/index.tsx", 48],
["src/views/members/index.tsx", 278], ["src/views/members/index.tsx", 278],
["src/views/public/board/index.tsx", 125], ["src/views/public/board/index.tsx", 125],
@@ -7219,13 +7146,6 @@
"origin": [["src/views/home/components/Faqs.tsx", 127]], "origin": [["src/views/home/components/Faqs.tsx", 127]],
"translation": "Vous pouvez auto-héberger en suivant les instructions de notre <0>dépôt</0>." "translation": "Vous pouvez auto-héberger en suivant les instructions de notre <0>dépôt</0>."
}, },
"tUL16u": {
"message": "You don't have any other workspaces to move this board to.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 68]],
"translation": "Vous n'avez aucun autre espace de travail vers lequel déplacer ce tableau."
},
"h2FKMV": { "h2FKMV": {
"message": "You don't have permission", "message": "You don't have permission",
"placeholders": {}, "placeholders": {},
@@ -7234,8 +7154,8 @@
["src/views/board/components/List.tsx", 117], ["src/views/board/components/List.tsx", 117],
["src/views/board/components/UpdateBoardSlugButton.tsx", 58], ["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
["src/views/board/components/VisibilityButton.tsx", 72], ["src/views/board/components/VisibilityButton.tsx", 72],
["src/views/board/index.tsx", 612], ["src/views/board/index.tsx", 604],
["src/views/board/index.tsx", 670], ["src/views/board/index.tsx", 662],
["src/views/boards/components/BoardsList.tsx", 71], ["src/views/boards/components/BoardsList.tsx", 71],
["src/views/boards/index.tsx", 59], ["src/views/boards/index.tsx", 59],
["src/views/boards/index.tsx", 80] ["src/views/boards/index.tsx", 80]
@@ -7330,7 +7250,7 @@
"message": "Your avatar", "message": "Your avatar",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]], "origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
"translation": "Votre avatar" "translation": "Votre avatar"
}, },
"evg7+A": { "evg7+A": {

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]], "origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
"translation": "{0} è stato aggiunto ai tuoi preferiti." "translation": "{0} è stato aggiunto ai tuoi preferiti."
}, },
"bDI6VI": { "bDI6VI": {
@@ -53,7 +53,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]], "origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
"translation": "{0} è stato rimosso dai tuoi preferiti." "translation": "{0} è stato rimosso dai tuoi preferiti."
}, },
"CJukzS": { "CJukzS": {
@@ -71,7 +71,7 @@
"0": ["isTemplate ? \"Template\" : \"Board\""] "0": ["isTemplate ? \"Template\" : \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 565]], "origin": [["src/views/board/index.tsx", 557]],
"translation": "{0} non trovato" "translation": "{0} non trovato"
}, },
"0xWkkH": { "0xWkkH": {
@@ -286,7 +286,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/card/components/Comment.tsx", 185], ["src/views/card/components/Comment.tsx", 185],
["src/views/card/components/NewCommentForm.tsx", 85] ["src/views/card/components/NewCommentForm.tsx", 68]
], ],
"translation": "Aggiungi commento... (digita '/' per aprire i comandi o '@' per menzionare)" "translation": "Aggiungi commento... (digita '/' per aprire i comandi o '@' per menzionare)"
}, },
@@ -294,7 +294,7 @@
"message": "Add description... (type '/' to open commands or '@' to mention)", "message": "Add description... (type '/' to open commands or '@' to mention)",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/components/Editor.tsx", 499]], "origin": [["src/components/Editor.tsx", 493]],
"translation": "Aggiungi descrizione... (digita '/' per aprire i comandi o '@' per menzionare)" "translation": "Aggiungi descrizione... (digita '/' per aprire i comandi o '@' per menzionare)"
}, },
"abUZlY": { "abUZlY": {
@@ -328,7 +328,7 @@
"message": "Add to favorites", "message": "Add to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]], "origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
"translation": "Aggiungi ai preferiti" "translation": "Aggiungi ai preferiti"
}, },
"cWXW+7": { "cWXW+7": {
@@ -423,7 +423,7 @@
"message": "Added to favorites", "message": "Added to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]], "origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
"translation": "Aggiunto ai preferiti" "translation": "Aggiunto ai preferiti"
}, },
"14Xi3Z": { "14Xi3Z": {
@@ -577,7 +577,7 @@
"message": "Annual", "message": "Annual",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]], "origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
"translation": "Annuale" "translation": "Annuale"
}, },
"3bqt9U": { "3bqt9U": {
@@ -657,7 +657,7 @@
"message": "Archive board", "message": "Archive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Archivia bacheca" "translation": "Archivia bacheca"
}, },
"TdfEV7": { "TdfEV7": {
@@ -833,7 +833,7 @@
"message": "Best for small teams who want to collaborate and move faster together.", "message": "Best for small teams who want to collaborate and move faster together.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]], "origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
"translation": "Ideale per piccoli team che vogliono collaborare e muoversi più velocemente insieme." "translation": "Ideale per piccoli team che vogliono collaborare e muoversi più velocemente insieme."
}, },
"qaS+1/": { "qaS+1/": {
@@ -887,7 +887,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/card/index.tsx", 321], ["src/views/card/index.tsx", 321],
["src/views/public/board/index.tsx", 125] ["src/views/public/board/index.tsx", 125]
], ],
@@ -906,16 +906,9 @@
"message": "Board archived", "message": "Board archived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Bacheca archiviata" "translation": "Bacheca archiviata"
}, },
"wE3hGS": {
"message": "Board moved",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
"translation": "Bacheca spostata"
},
"wewm3j": { "wewm3j": {
"message": "Board name cannot exceed 100 characters", "message": "Board name cannot exceed 100 characters",
"placeholders": {}, "placeholders": {},
@@ -950,7 +943,7 @@
"message": "Board unarchived", "message": "Board unarchived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Bacheca ripristinata" "translation": "Bacheca ripristinata"
}, },
"Xid3K6": { "Xid3K6": {
@@ -1288,13 +1281,12 @@
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176], ["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
["src/views/board/components/CardContextDuplicateModal.tsx", 267], ["src/views/board/components/CardContextDuplicateModal.tsx", 267],
["src/views/board/components/DeleteBoardConfirmation.tsx", 44], ["src/views/board/components/DeleteBoardConfirmation.tsx", 44],
["src/views/board/components/MoveBoardForm.tsx", 99],
["src/views/card/components/Comment.tsx", 195], ["src/views/card/components/Comment.tsx", 195],
["src/views/card/components/DeleteCardConfirmation.tsx", 86], ["src/views/card/components/DeleteCardConfirmation.tsx", 86],
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64], ["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
["src/views/card/components/DeleteCommentConfirmation.tsx", 77], ["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
["src/views/members/components/DeleteMemberConfirmation.tsx", 55], ["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
["src/views/onboarding/select-plan/index.tsx", 240], ["src/views/onboarding/select-plan/index.tsx", 236],
["src/views/settings/components/Avatar.tsx", 287], ["src/views/settings/components/Avatar.tsx", 287],
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206], ["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
[ [
@@ -1332,13 +1324,6 @@
"origin": [["src/views/card/components/Dropdown.tsx", 48]], "origin": [["src/views/card/components/Dropdown.tsx", 48]],
"translation": "Scheda duplicata con successo." "translation": "Scheda duplicata con successo."
}, },
"AgE2vR": {
"message": "Card member assignments will be cleared when moving to a different workspace.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 92]],
"translation": "Le assegnazioni dei membri della scheda verranno cancellate quando si sposta in un'area di lavoro diversa."
},
"fEY2vP": { "fEY2vP": {
"message": "Card not found", "message": "Card not found",
"placeholders": {}, "placeholders": {},
@@ -1361,7 +1346,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 309], ["src/views/board/index.tsx", 308],
["src/views/card/components/Dropdown.tsx", 74], ["src/views/card/components/Dropdown.tsx", 74],
["src/views/public/board/CardModal.tsx", 38] ["src/views/public/board/CardModal.tsx", 38]
], ],
@@ -1444,7 +1429,7 @@
"message": "Choose a plan", "message": "Choose a plan",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]], "origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
"translation": "Scegli un piano" "translation": "Scegli un piano"
}, },
"5EMoSo": { "5EMoSo": {
@@ -1719,7 +1704,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 246], ["src/views/onboarding/select-plan/index.tsx", 242],
["src/views/onboarding/workspace-details/index.tsx", 315] ["src/views/onboarding/workspace-details/index.tsx", 315]
], ],
"translation": "Continua" "translation": "Continua"
@@ -1914,8 +1899,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 93], ["src/views/board/index.tsx", 92],
["src/views/board/index.tsx", 679] ["src/views/board/index.tsx", 671]
], ],
"translation": "Crea nuova lista" "translation": "Crea nuova lista"
}, },
@@ -2133,7 +2118,7 @@
"message": "Delete board", "message": "Delete board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Elimina board" "translation": "Elimina board"
}, },
"nabda1": { "nabda1": {
@@ -2164,7 +2149,7 @@
"message": "Delete template", "message": "Delete template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Elimina template" "translation": "Elimina template"
}, },
"snMaH4": { "snMaH4": {
@@ -2226,13 +2211,6 @@
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]], "origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
"translation": "Design" "translation": "Design"
}, },
"Uf+1DF": {
"message": "Destination workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
"translation": "Area di lavoro di destinazione"
},
"Odv3J6": { "Odv3J6": {
"message": "Disconnect GitHub", "message": "Disconnect GitHub",
"placeholders": {}, "placeholders": {},
@@ -2438,7 +2416,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/BoardDropdown.tsx", 106], ["src/views/board/components/BoardDropdown.tsx", 105],
["src/views/board/components/UpdateBoardSlugForm.tsx", 116] ["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
], ],
"translation": "Modifica URL bacheca" "translation": "Modifica URL bacheca"
@@ -3016,8 +2994,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 82], ["src/views/onboarding/select-plan/index.tsx", 78],
["src/views/onboarding/select-plan/index.tsx", 83], ["src/views/onboarding/select-plan/index.tsx", 79],
["src/views/pricing/components/FeatureComparisonTable.tsx", 331], ["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
@@ -3125,7 +3103,7 @@
"message": "Get started by creating a new list", "message": "Get started by creating a new list",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 664]], "origin": [["src/views/board/index.tsx", 656]],
"translation": "Inizia creando una nuova lista" "translation": "Inizia creando una nuova lista"
}, },
"oW13KZ": { "oW13KZ": {
@@ -3239,7 +3217,7 @@
"message": "Good for individuals starting out who just need the essentials.", "message": "Good for individuals starting out who just need the essentials.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]], "origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
"translation": "Perfetto per chi inizia e ha bisogno solo delle funzionalità essenziali." "translation": "Perfetto per chi inizia e ha bisogno solo delle funzionalità essenziali."
}, },
"cdyS7J": { "cdyS7J": {
@@ -3765,7 +3743,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/UpdateBoardSlugButton.tsx", 80], ["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
["src/views/board/index.tsx", 307], ["src/views/board/index.tsx", 306],
["src/views/card/components/Dropdown.tsx", 72], ["src/views/card/components/Dropdown.tsx", 72],
["src/views/public/board/CardModal.tsx", 36], ["src/views/public/board/CardModal.tsx", 36],
["src/views/public/board/index.tsx", 77] ["src/views/public/board/index.tsx", 77]
@@ -3865,7 +3843,7 @@
"message": "Make template", "message": "Make template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]], "origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
"translation": "Crea template" "translation": "Crea template"
}, },
"hB02vO": { "hB02vO": {
@@ -3986,7 +3964,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 67], ["src/views/onboarding/select-plan/index.tsx", 63],
["src/views/pricing/components/Pricing.tsx", 14], ["src/views/pricing/components/Pricing.tsx", 14],
["src/views/pricing/index.tsx", 20] ["src/views/pricing/index.tsx", 20]
], ],
@@ -3999,20 +3977,6 @@
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]], "origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
"translation": "fatturazione mensile" "translation": "fatturazione mensile"
}, },
"sZ/WDz": {
"message": "Move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 107]],
"translation": "Sposta bacheca"
},
"VvCMyU": {
"message": "Move board to another workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 64]],
"translation": "Sposta la bacheca in un'altra area di lavoro"
},
"51UCsN": { "51UCsN": {
"message": "Move to another list", "message": "Move to another list",
"placeholders": {}, "placeholders": {},
@@ -4027,13 +3991,6 @@
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]], "origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
"translation": "Sposta nell'elenco" "translation": "Sposta nell'elenco"
}, },
"S3wq2O": {
"message": "Move to workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
"translation": "Sposta nell'area di lavoro"
},
"BOqTi5": { "BOqTi5": {
"message": "moved the card from <0>{0}</0> to<1>{1}</1>", "message": "moved the card from <0>{0}</0> to<1>{1}</1>",
"placeholders": { "placeholders": {
@@ -4145,7 +4102,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/NewListForm.tsx", 113], ["src/views/board/components/NewListForm.tsx", 113],
["src/views/board/index.tsx", 628] ["src/views/board/index.tsx", 620]
], ],
"translation": "Nuova lista" "translation": "Nuova lista"
}, },
@@ -4278,14 +4235,14 @@
"message": "No lists", "message": "No lists",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 660]], "origin": [["src/views/board/index.tsx", 652]],
"translation": "Nessuna lista" "translation": "Nessuna lista"
}, },
"fvLNDy": { "fvLNDy": {
"message": "No lists have been created yet", "message": "No lists have been created yet",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 665]], "origin": [["src/views/board/index.tsx", 657]],
"translation": "Nessuna lista è stata ancora creata" "translation": "Nessuna lista è stata ancora creata"
}, },
"i30J2U": { "i30J2U": {
@@ -4602,7 +4559,7 @@
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.", "message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]], "origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
"translation": "Scegli un piano per iniziare. Tutti i piani a pagamento includono una prova gratuita di 14 giorni." "translation": "Scegli un piano per iniziare. Tutti i piani a pagamento includono una prova gratuita di 14 giorni."
}, },
"GdgCoi": { "GdgCoi": {
@@ -4700,15 +4657,15 @@
["src/components/DeleteLabelConfirmation.tsx", 26], ["src/components/DeleteLabelConfirmation.tsx", 26],
["src/components/FeedbackModal.tsx", 41], ["src/components/FeedbackModal.tsx", 41],
["src/components/NewWorkspaceForm.tsx", 110], ["src/components/NewWorkspaceForm.tsx", 110],
["src/views/board/components/BoardDropdown.tsx", 69], ["src/views/board/components/BoardDropdown.tsx", 68],
["src/views/board/components/NewCardForm.tsx", 193], ["src/views/board/components/NewCardForm.tsx", 193],
["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],
["src/views/board/components/NewTemplateForm.tsx", 77], ["src/views/board/components/NewTemplateForm.tsx", 77],
["src/views/board/components/UpdateBoardSlugForm.tsx", 73], ["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
["src/views/board/components/VisibilityButton.tsx", 57], ["src/views/board/components/VisibilityButton.tsx", 57],
["src/views/board/index.tsx", 219], ["src/views/board/index.tsx", 218],
["src/views/board/index.tsx", 275], ["src/views/board/index.tsx", 274],
["src/views/boards/components/ImportBoardsForm.tsx", 243], ["src/views/boards/components/ImportBoardsForm.tsx", 243],
["src/views/boards/components/ImportBoardsForm.tsx", 395], ["src/views/boards/components/ImportBoardsForm.tsx", 395],
["src/views/card/components/AttachmentThumbnails.tsx", 74], ["src/views/card/components/AttachmentThumbnails.tsx", 74],
@@ -4726,7 +4683,7 @@
["src/views/card/components/MemberSelector.tsx", 82], ["src/views/card/components/MemberSelector.tsx", 82],
["src/views/card/components/NewChecklistForm.tsx", 71], ["src/views/card/components/NewChecklistForm.tsx", 71],
["src/views/card/components/NewChecklistItemForm.tsx", 90], ["src/views/card/components/NewChecklistItemForm.tsx", 90],
["src/views/card/components/NewCommentForm.tsx", 38], ["src/views/card/components/NewCommentForm.tsx", 37],
["src/views/card/index.tsx", 236], ["src/views/card/index.tsx", 236],
["src/views/card/index.tsx", 249], ["src/views/card/index.tsx", 249],
["src/views/members/components/DeleteMemberConfirmation.tsx", 28], ["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
@@ -4766,7 +4723,7 @@
"origin": [ "origin": [
["src/views/board/components/CardContextDuplicateModal.tsx", 76], ["src/views/board/components/CardContextDuplicateModal.tsx", 76],
["src/views/board/components/CardContextMoveListModal.tsx", 42], ["src/views/board/components/CardContextMoveListModal.tsx", 42],
["src/views/board/index.tsx", 316], ["src/views/board/index.tsx", 315],
["src/views/card/components/Dropdown.tsx", 55], ["src/views/card/components/Dropdown.tsx", 55],
["src/views/card/components/Dropdown.tsx", 81], ["src/views/card/components/Dropdown.tsx", 81],
["src/views/card/components/Dropdown.tsx", 100], ["src/views/card/components/Dropdown.tsx", 100],
@@ -4829,7 +4786,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 96], ["src/views/onboarding/select-plan/index.tsx", 92],
["src/views/pricing/components/FeatureComparisonTable.tsx", 333], ["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
["src/views/pricing/components/PricingTiers.tsx", 70] ["src/views/pricing/components/PricingTiers.tsx", 70]
], ],
@@ -4935,7 +4892,7 @@
"message": "Remove from favorites", "message": "Remove from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]], "origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
"translation": "Rimuovi dai preferiti" "translation": "Rimuovi dai preferiti"
}, },
"99VIgC": { "99VIgC": {
@@ -4989,7 +4946,7 @@
"message": "Removed from favorites", "message": "Removed from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]], "origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
"translation": "Rimosso dai preferiti" "translation": "Rimosso dai preferiti"
}, },
"YVT40D": { "YVT40D": {
@@ -5236,13 +5193,6 @@
], ],
"translation": "Seleziona un elenco" "translation": "Seleziona un elenco"
}, },
"NM2hyD": {
"message": "Select a workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
"translation": "Seleziona un'area di lavoro"
},
"wgNoIs": { "wgNoIs": {
"message": "Select all", "message": "Select all",
"placeholders": {}, "placeholders": {},
@@ -5454,7 +5404,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 319], ["src/views/onboarding/select-plan/index.tsx", 315],
["src/views/onboarding/workspace-details/index.tsx", 386] ["src/views/onboarding/workspace-details/index.tsx", 386]
], ],
"translation": "Esci" "translation": "Esci"
@@ -5548,7 +5498,7 @@
"message": "Solo", "message": "Solo",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]], "origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
"translation": "Solo" "translation": "Solo"
}, },
"J9+zIR": { "J9+zIR": {
@@ -5615,13 +5565,6 @@
"origin": [["src/views/settings/components/WebhookList.tsx", 232]], "origin": [["src/views/settings/components/WebhookList.tsx", 232]],
"translation": "Stato" "translation": "Stato"
}, },
"hQRttt": {
"message": "Submit",
"placeholders": {},
"comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
"translation": "Invia"
},
"WYDptz": { "WYDptz": {
"message": "Subscription Required", "message": "Subscription Required",
"placeholders": {}, "placeholders": {},
@@ -5685,7 +5628,7 @@
"message": "Team", "message": "Team",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]], "origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
"translation": "Team" "translation": "Team"
}, },
"bff61F": { "bff61F": {
@@ -5715,8 +5658,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/board/index.tsx", 574] ["src/views/board/index.tsx", 566]
], ],
"translation": "Template" "translation": "Template"
}, },
@@ -5827,23 +5770,14 @@
"message": "The board has been archived.", "message": "The board has been archived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]], "origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
"translation": "La bacheca è stata archiviata." "translation": "La bacheca è stata archiviata."
}, },
"ZWk38w": {
"message": "The board has been moved to {0}.",
"placeholders": {
"0": ["targetWorkspace?.name ?? \"the workspace\""]
},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 34]],
"translation": "La bacheca è stata spostata in {0}."
},
"C6gv54": { "C6gv54": {
"message": "The board has been unarchived.", "message": "The board has been unarchived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]], "origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
"translation": "La bacheca è stata ripristinata." "translation": "La bacheca è stata ripristinata."
}, },
"nKBUeF": { "nKBUeF": {
@@ -6154,7 +6088,7 @@
"message": "Unable to add comment", "message": "Unable to add comment",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]], "origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
"translation": "Impossibile aggiungere il commento" "translation": "Impossibile aggiungere il commento"
}, },
"2Q871c": { "2Q871c": {
@@ -6183,7 +6117,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 314], ["src/views/board/index.tsx", 313],
["src/views/card/components/Dropdown.tsx", 79], ["src/views/card/components/Dropdown.tsx", 79],
["src/views/public/board/CardModal.tsx", 43], ["src/views/public/board/CardModal.tsx", 43],
["src/views/public/board/index.tsx", 84] ["src/views/public/board/index.tsx", 84]
@@ -6294,13 +6228,6 @@
], ],
"translation": "Impossibile duplicare la scheda" "translation": "Impossibile duplicare la scheda"
}, },
"d196/6": {
"message": "Unable to move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 45]],
"translation": "Impossibile spostare la bacheca"
},
"K7k9u3": { "K7k9u3": {
"message": "Unable to move card", "message": "Unable to move card",
"placeholders": {}, "placeholders": {},
@@ -6361,7 +6288,7 @@
"message": "Unable to update board", "message": "Unable to update board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]], "origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
"translation": "Impossibile aggiornare la board" "translation": "Impossibile aggiornare la board"
}, },
"XpcjLO": { "XpcjLO": {
@@ -6383,7 +6310,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 274], ["src/views/board/index.tsx", 273],
["src/views/card/index.tsx", 235] ["src/views/card/index.tsx", 235]
], ],
"translation": "Impossibile aggiornare la card" "translation": "Impossibile aggiornare la card"
@@ -6428,7 +6355,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 218], ["src/views/board/index.tsx", 217],
["src/views/card/components/ListSelector.tsx", 54] ["src/views/card/components/ListSelector.tsx", 54]
], ],
"translation": "Impossibile aggiornare la lista" "translation": "Impossibile aggiornare la lista"
@@ -6468,7 +6395,7 @@
"message": "Unarchive board", "message": "Unarchive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Ripristina bacheca" "translation": "Ripristina bacheca"
}, },
"E8zYtd": { "E8zYtd": {
@@ -6581,7 +6508,7 @@
"message": "Unlimited members and a custom workspace username for teams ready to scale.", "message": "Unlimited members and a custom workspace username for teams ready to scale.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]], "origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
"translation": "Membri illimitati e un nome utente workspace personalizzato per i team pronti a crescere." "translation": "Membri illimitati e un nome utente workspace personalizzato per i team pronti a crescere."
}, },
"i5yNAO": { "i5yNAO": {
@@ -6671,7 +6598,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/members/index.tsx", 295], ["src/views/members/index.tsx", 295],
["src/views/onboarding/select-plan/index.tsx", 245] ["src/views/onboarding/select-plan/index.tsx", 241]
], ],
"translation": "Aggiorna" "translation": "Aggiorna"
}, },
@@ -7004,7 +6931,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/components/SettingsLayout.tsx", 47], ["src/components/SettingsLayout.tsx", 47],
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/boards/index.tsx", 48], ["src/views/boards/index.tsx", 48],
["src/views/members/index.tsx", 278], ["src/views/members/index.tsx", 278],
["src/views/public/board/index.tsx", 125], ["src/views/public/board/index.tsx", 125],
@@ -7219,13 +7146,6 @@
"origin": [["src/views/home/components/Faqs.tsx", 127]], "origin": [["src/views/home/components/Faqs.tsx", 127]],
"translation": "Puoi effettuare il self-hosting seguendo le istruzioni nel nostro <0>repo</0>." "translation": "Puoi effettuare il self-hosting seguendo le istruzioni nel nostro <0>repo</0>."
}, },
"tUL16u": {
"message": "You don't have any other workspaces to move this board to.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 68]],
"translation": "Non hai altre aree di lavoro in cui spostare questa bacheca."
},
"h2FKMV": { "h2FKMV": {
"message": "You don't have permission", "message": "You don't have permission",
"placeholders": {}, "placeholders": {},
@@ -7234,8 +7154,8 @@
["src/views/board/components/List.tsx", 117], ["src/views/board/components/List.tsx", 117],
["src/views/board/components/UpdateBoardSlugButton.tsx", 58], ["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
["src/views/board/components/VisibilityButton.tsx", 72], ["src/views/board/components/VisibilityButton.tsx", 72],
["src/views/board/index.tsx", 612], ["src/views/board/index.tsx", 604],
["src/views/board/index.tsx", 670], ["src/views/board/index.tsx", 662],
["src/views/boards/components/BoardsList.tsx", 71], ["src/views/boards/components/BoardsList.tsx", 71],
["src/views/boards/index.tsx", 59], ["src/views/boards/index.tsx", 59],
["src/views/boards/index.tsx", 80] ["src/views/boards/index.tsx", 80]
@@ -7330,7 +7250,7 @@
"message": "Your avatar", "message": "Your avatar",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]], "origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
"translation": "Il tuo avatar" "translation": "Il tuo avatar"
}, },
"evg7+A": { "evg7+A": {

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]], "origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
"translation": "{0} is toegevoegd aan je favorieten." "translation": "{0} is toegevoegd aan je favorieten."
}, },
"bDI6VI": { "bDI6VI": {
@@ -53,7 +53,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]], "origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
"translation": "{0} is verwijderd uit je favorieten." "translation": "{0} is verwijderd uit je favorieten."
}, },
"CJukzS": { "CJukzS": {
@@ -71,7 +71,7 @@
"0": ["isTemplate ? \"Template\" : \"Board\""] "0": ["isTemplate ? \"Template\" : \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 565]], "origin": [["src/views/board/index.tsx", 557]],
"translation": "{0} niet gevonden" "translation": "{0} niet gevonden"
}, },
"0xWkkH": { "0xWkkH": {
@@ -286,7 +286,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/card/components/Comment.tsx", 185], ["src/views/card/components/Comment.tsx", 185],
["src/views/card/components/NewCommentForm.tsx", 85] ["src/views/card/components/NewCommentForm.tsx", 68]
], ],
"translation": "Voeg opmerking toe... (typ '/' om commando's te openen of '@' om te vermelden)" "translation": "Voeg opmerking toe... (typ '/' om commando's te openen of '@' om te vermelden)"
}, },
@@ -294,7 +294,7 @@
"message": "Add description... (type '/' to open commands or '@' to mention)", "message": "Add description... (type '/' to open commands or '@' to mention)",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/components/Editor.tsx", 499]], "origin": [["src/components/Editor.tsx", 493]],
"translation": "Voeg beschrijving toe... (typ '/' om commando's te openen of '@' om te vermelden)" "translation": "Voeg beschrijving toe... (typ '/' om commando's te openen of '@' om te vermelden)"
}, },
"abUZlY": { "abUZlY": {
@@ -328,7 +328,7 @@
"message": "Add to favorites", "message": "Add to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]], "origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
"translation": "Toevoegen aan favorieten" "translation": "Toevoegen aan favorieten"
}, },
"cWXW+7": { "cWXW+7": {
@@ -423,7 +423,7 @@
"message": "Added to favorites", "message": "Added to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]], "origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
"translation": "Toegevoegd aan favorieten" "translation": "Toegevoegd aan favorieten"
}, },
"14Xi3Z": { "14Xi3Z": {
@@ -577,7 +577,7 @@
"message": "Annual", "message": "Annual",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]], "origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
"translation": "Jaarlijks" "translation": "Jaarlijks"
}, },
"3bqt9U": { "3bqt9U": {
@@ -657,7 +657,7 @@
"message": "Archive board", "message": "Archive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Board archiveren" "translation": "Board archiveren"
}, },
"TdfEV7": { "TdfEV7": {
@@ -833,7 +833,7 @@
"message": "Best for small teams who want to collaborate and move faster together.", "message": "Best for small teams who want to collaborate and move faster together.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]], "origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
"translation": "Het beste voor kleine teams die willen samenwerken en sneller vooruit willen komen." "translation": "Het beste voor kleine teams die willen samenwerken en sneller vooruit willen komen."
}, },
"qaS+1/": { "qaS+1/": {
@@ -887,7 +887,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/card/index.tsx", 321], ["src/views/card/index.tsx", 321],
["src/views/public/board/index.tsx", 125] ["src/views/public/board/index.tsx", 125]
], ],
@@ -906,16 +906,9 @@
"message": "Board archived", "message": "Board archived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Board gearchiveerd" "translation": "Board gearchiveerd"
}, },
"wE3hGS": {
"message": "Board moved",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
"translation": "Bord verplaatst"
},
"wewm3j": { "wewm3j": {
"message": "Board name cannot exceed 100 characters", "message": "Board name cannot exceed 100 characters",
"placeholders": {}, "placeholders": {},
@@ -950,7 +943,7 @@
"message": "Board unarchived", "message": "Board unarchived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Board gedearchiveerd" "translation": "Board gedearchiveerd"
}, },
"Xid3K6": { "Xid3K6": {
@@ -1288,13 +1281,12 @@
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176], ["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
["src/views/board/components/CardContextDuplicateModal.tsx", 267], ["src/views/board/components/CardContextDuplicateModal.tsx", 267],
["src/views/board/components/DeleteBoardConfirmation.tsx", 44], ["src/views/board/components/DeleteBoardConfirmation.tsx", 44],
["src/views/board/components/MoveBoardForm.tsx", 99],
["src/views/card/components/Comment.tsx", 195], ["src/views/card/components/Comment.tsx", 195],
["src/views/card/components/DeleteCardConfirmation.tsx", 86], ["src/views/card/components/DeleteCardConfirmation.tsx", 86],
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64], ["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
["src/views/card/components/DeleteCommentConfirmation.tsx", 77], ["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
["src/views/members/components/DeleteMemberConfirmation.tsx", 55], ["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
["src/views/onboarding/select-plan/index.tsx", 240], ["src/views/onboarding/select-plan/index.tsx", 236],
["src/views/settings/components/Avatar.tsx", 287], ["src/views/settings/components/Avatar.tsx", 287],
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206], ["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
[ [
@@ -1332,13 +1324,6 @@
"origin": [["src/views/card/components/Dropdown.tsx", 48]], "origin": [["src/views/card/components/Dropdown.tsx", 48]],
"translation": "Kaart succesvol gedupliceerd." "translation": "Kaart succesvol gedupliceerd."
}, },
"AgE2vR": {
"message": "Card member assignments will be cleared when moving to a different workspace.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 92]],
"translation": "Kaartleden worden verwijderd bij het verplaatsen naar een andere werkruimte."
},
"fEY2vP": { "fEY2vP": {
"message": "Card not found", "message": "Card not found",
"placeholders": {}, "placeholders": {},
@@ -1361,7 +1346,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 309], ["src/views/board/index.tsx", 308],
["src/views/card/components/Dropdown.tsx", 74], ["src/views/card/components/Dropdown.tsx", 74],
["src/views/public/board/CardModal.tsx", 38] ["src/views/public/board/CardModal.tsx", 38]
], ],
@@ -1444,7 +1429,7 @@
"message": "Choose a plan", "message": "Choose a plan",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]], "origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
"translation": "Kies een abonnement" "translation": "Kies een abonnement"
}, },
"5EMoSo": { "5EMoSo": {
@@ -1719,7 +1704,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 246], ["src/views/onboarding/select-plan/index.tsx", 242],
["src/views/onboarding/workspace-details/index.tsx", 315] ["src/views/onboarding/workspace-details/index.tsx", 315]
], ],
"translation": "Doorgaan" "translation": "Doorgaan"
@@ -1914,8 +1899,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 93], ["src/views/board/index.tsx", 92],
["src/views/board/index.tsx", 679] ["src/views/board/index.tsx", 671]
], ],
"translation": "Maak nieuwe lijst" "translation": "Maak nieuwe lijst"
}, },
@@ -2133,7 +2118,7 @@
"message": "Delete board", "message": "Delete board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Bord verwijderen" "translation": "Bord verwijderen"
}, },
"nabda1": { "nabda1": {
@@ -2164,7 +2149,7 @@
"message": "Delete template", "message": "Delete template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Sjabloon verwijderen" "translation": "Sjabloon verwijderen"
}, },
"snMaH4": { "snMaH4": {
@@ -2226,13 +2211,6 @@
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]], "origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
"translation": "Ontwerp" "translation": "Ontwerp"
}, },
"Uf+1DF": {
"message": "Destination workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
"translation": "Bestemmingswerkruimte"
},
"Odv3J6": { "Odv3J6": {
"message": "Disconnect GitHub", "message": "Disconnect GitHub",
"placeholders": {}, "placeholders": {},
@@ -2438,7 +2416,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/BoardDropdown.tsx", 106], ["src/views/board/components/BoardDropdown.tsx", 105],
["src/views/board/components/UpdateBoardSlugForm.tsx", 116] ["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
], ],
"translation": "Bord-URL bewerken" "translation": "Bord-URL bewerken"
@@ -3016,8 +2994,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 82], ["src/views/onboarding/select-plan/index.tsx", 78],
["src/views/onboarding/select-plan/index.tsx", 83], ["src/views/onboarding/select-plan/index.tsx", 79],
["src/views/pricing/components/FeatureComparisonTable.tsx", 331], ["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
@@ -3125,7 +3103,7 @@
"message": "Get started by creating a new list", "message": "Get started by creating a new list",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 664]], "origin": [["src/views/board/index.tsx", 656]],
"translation": "Ga aan de slag door een nieuwe lijst te maken" "translation": "Ga aan de slag door een nieuwe lijst te maken"
}, },
"oW13KZ": { "oW13KZ": {
@@ -3239,7 +3217,7 @@
"message": "Good for individuals starting out who just need the essentials.", "message": "Good for individuals starting out who just need the essentials.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]], "origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
"translation": "Geschikt voor individuen die net beginnen en alleen de basisbehoeften hebben." "translation": "Geschikt voor individuen die net beginnen en alleen de basisbehoeften hebben."
}, },
"cdyS7J": { "cdyS7J": {
@@ -3765,7 +3743,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/UpdateBoardSlugButton.tsx", 80], ["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
["src/views/board/index.tsx", 307], ["src/views/board/index.tsx", 306],
["src/views/card/components/Dropdown.tsx", 72], ["src/views/card/components/Dropdown.tsx", 72],
["src/views/public/board/CardModal.tsx", 36], ["src/views/public/board/CardModal.tsx", 36],
["src/views/public/board/index.tsx", 77] ["src/views/public/board/index.tsx", 77]
@@ -3865,7 +3843,7 @@
"message": "Make template", "message": "Make template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]], "origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
"translation": "Sjabloon maken" "translation": "Sjabloon maken"
}, },
"hB02vO": { "hB02vO": {
@@ -3986,7 +3964,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 67], ["src/views/onboarding/select-plan/index.tsx", 63],
["src/views/pricing/components/Pricing.tsx", 14], ["src/views/pricing/components/Pricing.tsx", 14],
["src/views/pricing/index.tsx", 20] ["src/views/pricing/index.tsx", 20]
], ],
@@ -3999,20 +3977,6 @@
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]], "origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
"translation": "maandelijkse facturering" "translation": "maandelijkse facturering"
}, },
"sZ/WDz": {
"message": "Move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 107]],
"translation": "Bord verplaatsen"
},
"VvCMyU": {
"message": "Move board to another workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 64]],
"translation": "Bord naar een andere werkruimte verplaatsen"
},
"51UCsN": { "51UCsN": {
"message": "Move to another list", "message": "Move to another list",
"placeholders": {}, "placeholders": {},
@@ -4027,13 +3991,6 @@
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]], "origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
"translation": "Verplaats naar lijst" "translation": "Verplaats naar lijst"
}, },
"S3wq2O": {
"message": "Move to workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
"translation": "Verplaatsen naar werkruimte"
},
"BOqTi5": { "BOqTi5": {
"message": "moved the card from <0>{0}</0> to<1>{1}</1>", "message": "moved the card from <0>{0}</0> to<1>{1}</1>",
"placeholders": { "placeholders": {
@@ -4145,7 +4102,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/NewListForm.tsx", 113], ["src/views/board/components/NewListForm.tsx", 113],
["src/views/board/index.tsx", 628] ["src/views/board/index.tsx", 620]
], ],
"translation": "Nieuwe lijst" "translation": "Nieuwe lijst"
}, },
@@ -4278,14 +4235,14 @@
"message": "No lists", "message": "No lists",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 660]], "origin": [["src/views/board/index.tsx", 652]],
"translation": "Geen lijsten" "translation": "Geen lijsten"
}, },
"fvLNDy": { "fvLNDy": {
"message": "No lists have been created yet", "message": "No lists have been created yet",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 665]], "origin": [["src/views/board/index.tsx", 657]],
"translation": "Er zijn nog geen lijsten aangemaakt" "translation": "Er zijn nog geen lijsten aangemaakt"
}, },
"i30J2U": { "i30J2U": {
@@ -4602,7 +4559,7 @@
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.", "message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]], "origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
"translation": "Kies een abonnement om te beginnen. Alle betaalde abonnementen hebben een gratis proefperiode van 14 dagen." "translation": "Kies een abonnement om te beginnen. Alle betaalde abonnementen hebben een gratis proefperiode van 14 dagen."
}, },
"GdgCoi": { "GdgCoi": {
@@ -4700,15 +4657,15 @@
["src/components/DeleteLabelConfirmation.tsx", 26], ["src/components/DeleteLabelConfirmation.tsx", 26],
["src/components/FeedbackModal.tsx", 41], ["src/components/FeedbackModal.tsx", 41],
["src/components/NewWorkspaceForm.tsx", 110], ["src/components/NewWorkspaceForm.tsx", 110],
["src/views/board/components/BoardDropdown.tsx", 69], ["src/views/board/components/BoardDropdown.tsx", 68],
["src/views/board/components/NewCardForm.tsx", 193], ["src/views/board/components/NewCardForm.tsx", 193],
["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],
["src/views/board/components/NewTemplateForm.tsx", 77], ["src/views/board/components/NewTemplateForm.tsx", 77],
["src/views/board/components/UpdateBoardSlugForm.tsx", 73], ["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
["src/views/board/components/VisibilityButton.tsx", 57], ["src/views/board/components/VisibilityButton.tsx", 57],
["src/views/board/index.tsx", 219], ["src/views/board/index.tsx", 218],
["src/views/board/index.tsx", 275], ["src/views/board/index.tsx", 274],
["src/views/boards/components/ImportBoardsForm.tsx", 243], ["src/views/boards/components/ImportBoardsForm.tsx", 243],
["src/views/boards/components/ImportBoardsForm.tsx", 395], ["src/views/boards/components/ImportBoardsForm.tsx", 395],
["src/views/card/components/AttachmentThumbnails.tsx", 74], ["src/views/card/components/AttachmentThumbnails.tsx", 74],
@@ -4726,7 +4683,7 @@
["src/views/card/components/MemberSelector.tsx", 82], ["src/views/card/components/MemberSelector.tsx", 82],
["src/views/card/components/NewChecklistForm.tsx", 71], ["src/views/card/components/NewChecklistForm.tsx", 71],
["src/views/card/components/NewChecklistItemForm.tsx", 90], ["src/views/card/components/NewChecklistItemForm.tsx", 90],
["src/views/card/components/NewCommentForm.tsx", 38], ["src/views/card/components/NewCommentForm.tsx", 37],
["src/views/card/index.tsx", 236], ["src/views/card/index.tsx", 236],
["src/views/card/index.tsx", 249], ["src/views/card/index.tsx", 249],
["src/views/members/components/DeleteMemberConfirmation.tsx", 28], ["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
@@ -4766,7 +4723,7 @@
"origin": [ "origin": [
["src/views/board/components/CardContextDuplicateModal.tsx", 76], ["src/views/board/components/CardContextDuplicateModal.tsx", 76],
["src/views/board/components/CardContextMoveListModal.tsx", 42], ["src/views/board/components/CardContextMoveListModal.tsx", 42],
["src/views/board/index.tsx", 316], ["src/views/board/index.tsx", 315],
["src/views/card/components/Dropdown.tsx", 55], ["src/views/card/components/Dropdown.tsx", 55],
["src/views/card/components/Dropdown.tsx", 81], ["src/views/card/components/Dropdown.tsx", 81],
["src/views/card/components/Dropdown.tsx", 100], ["src/views/card/components/Dropdown.tsx", 100],
@@ -4829,7 +4786,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 96], ["src/views/onboarding/select-plan/index.tsx", 92],
["src/views/pricing/components/FeatureComparisonTable.tsx", 333], ["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
["src/views/pricing/components/PricingTiers.tsx", 70] ["src/views/pricing/components/PricingTiers.tsx", 70]
], ],
@@ -4935,7 +4892,7 @@
"message": "Remove from favorites", "message": "Remove from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]], "origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
"translation": "Verwijderen uit favorieten" "translation": "Verwijderen uit favorieten"
}, },
"99VIgC": { "99VIgC": {
@@ -4989,7 +4946,7 @@
"message": "Removed from favorites", "message": "Removed from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]], "origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
"translation": "Verwijderd uit favorieten" "translation": "Verwijderd uit favorieten"
}, },
"YVT40D": { "YVT40D": {
@@ -5236,13 +5193,6 @@
], ],
"translation": "Selecteer een lijst" "translation": "Selecteer een lijst"
}, },
"NM2hyD": {
"message": "Select a workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
"translation": "Selecteer een werkruimte"
},
"wgNoIs": { "wgNoIs": {
"message": "Select all", "message": "Select all",
"placeholders": {}, "placeholders": {},
@@ -5454,7 +5404,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 319], ["src/views/onboarding/select-plan/index.tsx", 315],
["src/views/onboarding/workspace-details/index.tsx", 386] ["src/views/onboarding/workspace-details/index.tsx", 386]
], ],
"translation": "Uitloggen" "translation": "Uitloggen"
@@ -5548,7 +5498,7 @@
"message": "Solo", "message": "Solo",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]], "origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
"translation": "Solo" "translation": "Solo"
}, },
"J9+zIR": { "J9+zIR": {
@@ -5615,13 +5565,6 @@
"origin": [["src/views/settings/components/WebhookList.tsx", 232]], "origin": [["src/views/settings/components/WebhookList.tsx", 232]],
"translation": "Status" "translation": "Status"
}, },
"hQRttt": {
"message": "Submit",
"placeholders": {},
"comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
"translation": "Verzenden"
},
"WYDptz": { "WYDptz": {
"message": "Subscription Required", "message": "Subscription Required",
"placeholders": {}, "placeholders": {},
@@ -5685,7 +5628,7 @@
"message": "Team", "message": "Team",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]], "origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
"translation": "Team" "translation": "Team"
}, },
"bff61F": { "bff61F": {
@@ -5715,8 +5658,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/board/index.tsx", 574] ["src/views/board/index.tsx", 566]
], ],
"translation": "Sjabloon" "translation": "Sjabloon"
}, },
@@ -5827,23 +5770,14 @@
"message": "The board has been archived.", "message": "The board has been archived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]], "origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
"translation": "Het board is gearchiveerd." "translation": "Het board is gearchiveerd."
}, },
"ZWk38w": {
"message": "The board has been moved to {0}.",
"placeholders": {
"0": ["targetWorkspace?.name ?? \"the workspace\""]
},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 34]],
"translation": "Het bord is verplaatst naar {0}."
},
"C6gv54": { "C6gv54": {
"message": "The board has been unarchived.", "message": "The board has been unarchived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]], "origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
"translation": "Het board is gedearchiveerd." "translation": "Het board is gedearchiveerd."
}, },
"nKBUeF": { "nKBUeF": {
@@ -6154,7 +6088,7 @@
"message": "Unable to add comment", "message": "Unable to add comment",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]], "origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
"translation": "Kan opmerking niet toevoegen" "translation": "Kan opmerking niet toevoegen"
}, },
"2Q871c": { "2Q871c": {
@@ -6183,7 +6117,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 314], ["src/views/board/index.tsx", 313],
["src/views/card/components/Dropdown.tsx", 79], ["src/views/card/components/Dropdown.tsx", 79],
["src/views/public/board/CardModal.tsx", 43], ["src/views/public/board/CardModal.tsx", 43],
["src/views/public/board/index.tsx", 84] ["src/views/public/board/index.tsx", 84]
@@ -6294,13 +6228,6 @@
], ],
"translation": "Kan kaart niet dupliceren" "translation": "Kan kaart niet dupliceren"
}, },
"d196/6": {
"message": "Unable to move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 45]],
"translation": "Kan bord niet verplaatsen"
},
"K7k9u3": { "K7k9u3": {
"message": "Unable to move card", "message": "Unable to move card",
"placeholders": {}, "placeholders": {},
@@ -6361,7 +6288,7 @@
"message": "Unable to update board", "message": "Unable to update board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]], "origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
"translation": "Kan bord niet bijwerken" "translation": "Kan bord niet bijwerken"
}, },
"XpcjLO": { "XpcjLO": {
@@ -6383,7 +6310,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 274], ["src/views/board/index.tsx", 273],
["src/views/card/index.tsx", 235] ["src/views/card/index.tsx", 235]
], ],
"translation": "Kan kaart niet bijwerken" "translation": "Kan kaart niet bijwerken"
@@ -6428,7 +6355,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 218], ["src/views/board/index.tsx", 217],
["src/views/card/components/ListSelector.tsx", 54] ["src/views/card/components/ListSelector.tsx", 54]
], ],
"translation": "Kan lijst niet bijwerken" "translation": "Kan lijst niet bijwerken"
@@ -6468,7 +6395,7 @@
"message": "Unarchive board", "message": "Unarchive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Board dearchiveren" "translation": "Board dearchiveren"
}, },
"E8zYtd": { "E8zYtd": {
@@ -6581,7 +6508,7 @@
"message": "Unlimited members and a custom workspace username for teams ready to scale.", "message": "Unlimited members and a custom workspace username for teams ready to scale.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]], "origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
"translation": "Onbeperkt aantal leden en een aangepaste werkruimte-URL voor teams die klaar zijn om te groeien." "translation": "Onbeperkt aantal leden en een aangepaste werkruimte-URL voor teams die klaar zijn om te groeien."
}, },
"i5yNAO": { "i5yNAO": {
@@ -6671,7 +6598,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/members/index.tsx", 295], ["src/views/members/index.tsx", 295],
["src/views/onboarding/select-plan/index.tsx", 245] ["src/views/onboarding/select-plan/index.tsx", 241]
], ],
"translation": "Upgraden" "translation": "Upgraden"
}, },
@@ -7004,7 +6931,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/components/SettingsLayout.tsx", 47], ["src/components/SettingsLayout.tsx", 47],
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/boards/index.tsx", 48], ["src/views/boards/index.tsx", 48],
["src/views/members/index.tsx", 278], ["src/views/members/index.tsx", 278],
["src/views/public/board/index.tsx", 125], ["src/views/public/board/index.tsx", 125],
@@ -7219,13 +7146,6 @@
"origin": [["src/views/home/components/Faqs.tsx", 127]], "origin": [["src/views/home/components/Faqs.tsx", 127]],
"translation": "Je kunt zelf hosten door de instructies in onze <0>repo</0> te volgen." "translation": "Je kunt zelf hosten door de instructies in onze <0>repo</0> te volgen."
}, },
"tUL16u": {
"message": "You don't have any other workspaces to move this board to.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 68]],
"translation": "Je hebt geen andere werkruimtes waar je dit bord naartoe kunt verplaatsen."
},
"h2FKMV": { "h2FKMV": {
"message": "You don't have permission", "message": "You don't have permission",
"placeholders": {}, "placeholders": {},
@@ -7234,8 +7154,8 @@
["src/views/board/components/List.tsx", 117], ["src/views/board/components/List.tsx", 117],
["src/views/board/components/UpdateBoardSlugButton.tsx", 58], ["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
["src/views/board/components/VisibilityButton.tsx", 72], ["src/views/board/components/VisibilityButton.tsx", 72],
["src/views/board/index.tsx", 612], ["src/views/board/index.tsx", 604],
["src/views/board/index.tsx", 670], ["src/views/board/index.tsx", 662],
["src/views/boards/components/BoardsList.tsx", 71], ["src/views/boards/components/BoardsList.tsx", 71],
["src/views/boards/index.tsx", 59], ["src/views/boards/index.tsx", 59],
["src/views/boards/index.tsx", 80] ["src/views/boards/index.tsx", 80]
@@ -7330,7 +7250,7 @@
"message": "Your avatar", "message": "Your avatar",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]], "origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
"translation": "Jouw avatar" "translation": "Jouw avatar"
}, },
"evg7+A": { "evg7+A": {

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]], "origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
"translation": "{0} został dodany do ulubionych." "translation": "{0} został dodany do ulubionych."
}, },
"bDI6VI": { "bDI6VI": {
@@ -53,7 +53,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]], "origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
"translation": "{0} został usunięty z ulubionych." "translation": "{0} został usunięty z ulubionych."
}, },
"CJukzS": { "CJukzS": {
@@ -71,7 +71,7 @@
"0": ["isTemplate ? \"Template\" : \"Board\""] "0": ["isTemplate ? \"Template\" : \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 565]], "origin": [["src/views/board/index.tsx", 557]],
"translation": "{0} nie znaleziono" "translation": "{0} nie znaleziono"
}, },
"0xWkkH": { "0xWkkH": {
@@ -286,7 +286,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/card/components/Comment.tsx", 185], ["src/views/card/components/Comment.tsx", 185],
["src/views/card/components/NewCommentForm.tsx", 85] ["src/views/card/components/NewCommentForm.tsx", 68]
], ],
"translation": "Dodaj komentarz... (wpisz '/' aby otworzyć polecenia lub '@', aby wspomnieć)" "translation": "Dodaj komentarz... (wpisz '/' aby otworzyć polecenia lub '@', aby wspomnieć)"
}, },
@@ -294,7 +294,7 @@
"message": "Add description... (type '/' to open commands or '@' to mention)", "message": "Add description... (type '/' to open commands or '@' to mention)",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/components/Editor.tsx", 499]], "origin": [["src/components/Editor.tsx", 493]],
"translation": "Dodaj opis... (wpisz '/' aby otworzyć polecenia lub '@', aby wspomnieć)" "translation": "Dodaj opis... (wpisz '/' aby otworzyć polecenia lub '@', aby wspomnieć)"
}, },
"abUZlY": { "abUZlY": {
@@ -328,7 +328,7 @@
"message": "Add to favorites", "message": "Add to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]], "origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
"translation": "Dodaj do ulubionych" "translation": "Dodaj do ulubionych"
}, },
"cWXW+7": { "cWXW+7": {
@@ -423,7 +423,7 @@
"message": "Added to favorites", "message": "Added to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]], "origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
"translation": "Dodano do ulubionych" "translation": "Dodano do ulubionych"
}, },
"14Xi3Z": { "14Xi3Z": {
@@ -577,7 +577,7 @@
"message": "Annual", "message": "Annual",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]], "origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
"translation": "Rocznie" "translation": "Rocznie"
}, },
"3bqt9U": { "3bqt9U": {
@@ -657,7 +657,7 @@
"message": "Archive board", "message": "Archive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Zarchiwizuj tablicę" "translation": "Zarchiwizuj tablicę"
}, },
"TdfEV7": { "TdfEV7": {
@@ -833,7 +833,7 @@
"message": "Best for small teams who want to collaborate and move faster together.", "message": "Best for small teams who want to collaborate and move faster together.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]], "origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
"translation": "Najlepszy dla małych zespołów, które chcą współpracować i działać szybciej razem." "translation": "Najlepszy dla małych zespołów, które chcą współpracować i działać szybciej razem."
}, },
"qaS+1/": { "qaS+1/": {
@@ -887,7 +887,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/card/index.tsx", 321], ["src/views/card/index.tsx", 321],
["src/views/public/board/index.tsx", 125] ["src/views/public/board/index.tsx", 125]
], ],
@@ -906,16 +906,9 @@
"message": "Board archived", "message": "Board archived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Tablica zarchiwizowana" "translation": "Tablica zarchiwizowana"
}, },
"wE3hGS": {
"message": "Board moved",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
"translation": "Tablica przeniesiona"
},
"wewm3j": { "wewm3j": {
"message": "Board name cannot exceed 100 characters", "message": "Board name cannot exceed 100 characters",
"placeholders": {}, "placeholders": {},
@@ -950,7 +943,7 @@
"message": "Board unarchived", "message": "Board unarchived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Tablica przywrócona z archiwum" "translation": "Tablica przywrócona z archiwum"
}, },
"Xid3K6": { "Xid3K6": {
@@ -1288,13 +1281,12 @@
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176], ["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
["src/views/board/components/CardContextDuplicateModal.tsx", 267], ["src/views/board/components/CardContextDuplicateModal.tsx", 267],
["src/views/board/components/DeleteBoardConfirmation.tsx", 44], ["src/views/board/components/DeleteBoardConfirmation.tsx", 44],
["src/views/board/components/MoveBoardForm.tsx", 99],
["src/views/card/components/Comment.tsx", 195], ["src/views/card/components/Comment.tsx", 195],
["src/views/card/components/DeleteCardConfirmation.tsx", 86], ["src/views/card/components/DeleteCardConfirmation.tsx", 86],
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64], ["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
["src/views/card/components/DeleteCommentConfirmation.tsx", 77], ["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
["src/views/members/components/DeleteMemberConfirmation.tsx", 55], ["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
["src/views/onboarding/select-plan/index.tsx", 240], ["src/views/onboarding/select-plan/index.tsx", 236],
["src/views/settings/components/Avatar.tsx", 287], ["src/views/settings/components/Avatar.tsx", 287],
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206], ["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
[ [
@@ -1332,13 +1324,6 @@
"origin": [["src/views/card/components/Dropdown.tsx", 48]], "origin": [["src/views/card/components/Dropdown.tsx", 48]],
"translation": "Karta została pomyślnie zduplikowana." "translation": "Karta została pomyślnie zduplikowana."
}, },
"AgE2vR": {
"message": "Card member assignments will be cleared when moving to a different workspace.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 92]],
"translation": "Przypisania członków do kart zostaną usunięte podczas przenoszenia do innego obszaru roboczego."
},
"fEY2vP": { "fEY2vP": {
"message": "Card not found", "message": "Card not found",
"placeholders": {}, "placeholders": {},
@@ -1361,7 +1346,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 309], ["src/views/board/index.tsx", 308],
["src/views/card/components/Dropdown.tsx", 74], ["src/views/card/components/Dropdown.tsx", 74],
["src/views/public/board/CardModal.tsx", 38] ["src/views/public/board/CardModal.tsx", 38]
], ],
@@ -1444,7 +1429,7 @@
"message": "Choose a plan", "message": "Choose a plan",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]], "origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
"translation": "Wybierz plan" "translation": "Wybierz plan"
}, },
"5EMoSo": { "5EMoSo": {
@@ -1719,7 +1704,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 246], ["src/views/onboarding/select-plan/index.tsx", 242],
["src/views/onboarding/workspace-details/index.tsx", 315] ["src/views/onboarding/workspace-details/index.tsx", 315]
], ],
"translation": "Kontynuuj" "translation": "Kontynuuj"
@@ -1914,8 +1899,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 93], ["src/views/board/index.tsx", 92],
["src/views/board/index.tsx", 679] ["src/views/board/index.tsx", 671]
], ],
"translation": "Utwórz nową listę" "translation": "Utwórz nową listę"
}, },
@@ -2133,7 +2118,7 @@
"message": "Delete board", "message": "Delete board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Usuń tablicę" "translation": "Usuń tablicę"
}, },
"nabda1": { "nabda1": {
@@ -2164,7 +2149,7 @@
"message": "Delete template", "message": "Delete template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Usuń szablon" "translation": "Usuń szablon"
}, },
"snMaH4": { "snMaH4": {
@@ -2226,13 +2211,6 @@
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]], "origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
"translation": "Design" "translation": "Design"
}, },
"Uf+1DF": {
"message": "Destination workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
"translation": "Docelowy obszar roboczy"
},
"Odv3J6": { "Odv3J6": {
"message": "Disconnect GitHub", "message": "Disconnect GitHub",
"placeholders": {}, "placeholders": {},
@@ -2438,7 +2416,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/BoardDropdown.tsx", 106], ["src/views/board/components/BoardDropdown.tsx", 105],
["src/views/board/components/UpdateBoardSlugForm.tsx", 116] ["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
], ],
"translation": "Edytuj URL tablicy" "translation": "Edytuj URL tablicy"
@@ -3016,8 +2994,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 82], ["src/views/onboarding/select-plan/index.tsx", 78],
["src/views/onboarding/select-plan/index.tsx", 83], ["src/views/onboarding/select-plan/index.tsx", 79],
["src/views/pricing/components/FeatureComparisonTable.tsx", 331], ["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
@@ -3125,7 +3103,7 @@
"message": "Get started by creating a new list", "message": "Get started by creating a new list",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 664]], "origin": [["src/views/board/index.tsx", 656]],
"translation": "Rozpocznij, tworząc nową listę" "translation": "Rozpocznij, tworząc nową listę"
}, },
"oW13KZ": { "oW13KZ": {
@@ -3239,7 +3217,7 @@
"message": "Good for individuals starting out who just need the essentials.", "message": "Good for individuals starting out who just need the essentials.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]], "origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
"translation": "Dobry dla osób zaczynających, które potrzebują tylko podstaw." "translation": "Dobry dla osób zaczynających, które potrzebują tylko podstaw."
}, },
"cdyS7J": { "cdyS7J": {
@@ -3765,7 +3743,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/UpdateBoardSlugButton.tsx", 80], ["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
["src/views/board/index.tsx", 307], ["src/views/board/index.tsx", 306],
["src/views/card/components/Dropdown.tsx", 72], ["src/views/card/components/Dropdown.tsx", 72],
["src/views/public/board/CardModal.tsx", 36], ["src/views/public/board/CardModal.tsx", 36],
["src/views/public/board/index.tsx", 77] ["src/views/public/board/index.tsx", 77]
@@ -3865,7 +3843,7 @@
"message": "Make template", "message": "Make template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]], "origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
"translation": "Utwórz szablon" "translation": "Utwórz szablon"
}, },
"hB02vO": { "hB02vO": {
@@ -3986,7 +3964,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 67], ["src/views/onboarding/select-plan/index.tsx", 63],
["src/views/pricing/components/Pricing.tsx", 14], ["src/views/pricing/components/Pricing.tsx", 14],
["src/views/pricing/index.tsx", 20] ["src/views/pricing/index.tsx", 20]
], ],
@@ -3999,20 +3977,6 @@
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]], "origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
"translation": "rozliczenie miesięczne" "translation": "rozliczenie miesięczne"
}, },
"sZ/WDz": {
"message": "Move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 107]],
"translation": "Przenieś tablicę"
},
"VvCMyU": {
"message": "Move board to another workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 64]],
"translation": "Przenieś tablicę do innego obszaru roboczego"
},
"51UCsN": { "51UCsN": {
"message": "Move to another list", "message": "Move to another list",
"placeholders": {}, "placeholders": {},
@@ -4027,13 +3991,6 @@
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]], "origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
"translation": "Przenieś do listy" "translation": "Przenieś do listy"
}, },
"S3wq2O": {
"message": "Move to workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
"translation": "Przenieś do obszaru roboczego"
},
"BOqTi5": { "BOqTi5": {
"message": "moved the card from <0>{0}</0> to<1>{1}</1>", "message": "moved the card from <0>{0}</0> to<1>{1}</1>",
"placeholders": { "placeholders": {
@@ -4145,7 +4102,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/NewListForm.tsx", 113], ["src/views/board/components/NewListForm.tsx", 113],
["src/views/board/index.tsx", 628] ["src/views/board/index.tsx", 620]
], ],
"translation": "Nowa lista" "translation": "Nowa lista"
}, },
@@ -4278,14 +4235,14 @@
"message": "No lists", "message": "No lists",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 660]], "origin": [["src/views/board/index.tsx", 652]],
"translation": "Brak list" "translation": "Brak list"
}, },
"fvLNDy": { "fvLNDy": {
"message": "No lists have been created yet", "message": "No lists have been created yet",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 665]], "origin": [["src/views/board/index.tsx", 657]],
"translation": "Nie utworzono jeszcze żadnych list" "translation": "Nie utworzono jeszcze żadnych list"
}, },
"i30J2U": { "i30J2U": {
@@ -4602,7 +4559,7 @@
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.", "message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]], "origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
"translation": "Wybierz plan, aby rozpocząć. Wszystkie płatne plany zawierają 14-dniowy bezpłatny okres próbny." "translation": "Wybierz plan, aby rozpocząć. Wszystkie płatne plany zawierają 14-dniowy bezpłatny okres próbny."
}, },
"GdgCoi": { "GdgCoi": {
@@ -4700,15 +4657,15 @@
["src/components/DeleteLabelConfirmation.tsx", 26], ["src/components/DeleteLabelConfirmation.tsx", 26],
["src/components/FeedbackModal.tsx", 41], ["src/components/FeedbackModal.tsx", 41],
["src/components/NewWorkspaceForm.tsx", 110], ["src/components/NewWorkspaceForm.tsx", 110],
["src/views/board/components/BoardDropdown.tsx", 69], ["src/views/board/components/BoardDropdown.tsx", 68],
["src/views/board/components/NewCardForm.tsx", 193], ["src/views/board/components/NewCardForm.tsx", 193],
["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],
["src/views/board/components/NewTemplateForm.tsx", 77], ["src/views/board/components/NewTemplateForm.tsx", 77],
["src/views/board/components/UpdateBoardSlugForm.tsx", 73], ["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
["src/views/board/components/VisibilityButton.tsx", 57], ["src/views/board/components/VisibilityButton.tsx", 57],
["src/views/board/index.tsx", 219], ["src/views/board/index.tsx", 218],
["src/views/board/index.tsx", 275], ["src/views/board/index.tsx", 274],
["src/views/boards/components/ImportBoardsForm.tsx", 243], ["src/views/boards/components/ImportBoardsForm.tsx", 243],
["src/views/boards/components/ImportBoardsForm.tsx", 395], ["src/views/boards/components/ImportBoardsForm.tsx", 395],
["src/views/card/components/AttachmentThumbnails.tsx", 74], ["src/views/card/components/AttachmentThumbnails.tsx", 74],
@@ -4726,7 +4683,7 @@
["src/views/card/components/MemberSelector.tsx", 82], ["src/views/card/components/MemberSelector.tsx", 82],
["src/views/card/components/NewChecklistForm.tsx", 71], ["src/views/card/components/NewChecklistForm.tsx", 71],
["src/views/card/components/NewChecklistItemForm.tsx", 90], ["src/views/card/components/NewChecklistItemForm.tsx", 90],
["src/views/card/components/NewCommentForm.tsx", 38], ["src/views/card/components/NewCommentForm.tsx", 37],
["src/views/card/index.tsx", 236], ["src/views/card/index.tsx", 236],
["src/views/card/index.tsx", 249], ["src/views/card/index.tsx", 249],
["src/views/members/components/DeleteMemberConfirmation.tsx", 28], ["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
@@ -4766,7 +4723,7 @@
"origin": [ "origin": [
["src/views/board/components/CardContextDuplicateModal.tsx", 76], ["src/views/board/components/CardContextDuplicateModal.tsx", 76],
["src/views/board/components/CardContextMoveListModal.tsx", 42], ["src/views/board/components/CardContextMoveListModal.tsx", 42],
["src/views/board/index.tsx", 316], ["src/views/board/index.tsx", 315],
["src/views/card/components/Dropdown.tsx", 55], ["src/views/card/components/Dropdown.tsx", 55],
["src/views/card/components/Dropdown.tsx", 81], ["src/views/card/components/Dropdown.tsx", 81],
["src/views/card/components/Dropdown.tsx", 100], ["src/views/card/components/Dropdown.tsx", 100],
@@ -4829,7 +4786,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 96], ["src/views/onboarding/select-plan/index.tsx", 92],
["src/views/pricing/components/FeatureComparisonTable.tsx", 333], ["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
["src/views/pricing/components/PricingTiers.tsx", 70] ["src/views/pricing/components/PricingTiers.tsx", 70]
], ],
@@ -4935,7 +4892,7 @@
"message": "Remove from favorites", "message": "Remove from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]], "origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
"translation": "Usuń z ulubionych" "translation": "Usuń z ulubionych"
}, },
"99VIgC": { "99VIgC": {
@@ -4989,7 +4946,7 @@
"message": "Removed from favorites", "message": "Removed from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]], "origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
"translation": "Usunięto z ulubionych" "translation": "Usunięto z ulubionych"
}, },
"YVT40D": { "YVT40D": {
@@ -5236,13 +5193,6 @@
], ],
"translation": "Wybierz listę" "translation": "Wybierz listę"
}, },
"NM2hyD": {
"message": "Select a workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
"translation": "Wybierz obszar roboczy"
},
"wgNoIs": { "wgNoIs": {
"message": "Select all", "message": "Select all",
"placeholders": {}, "placeholders": {},
@@ -5454,7 +5404,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 319], ["src/views/onboarding/select-plan/index.tsx", 315],
["src/views/onboarding/workspace-details/index.tsx", 386] ["src/views/onboarding/workspace-details/index.tsx", 386]
], ],
"translation": "Wyloguj się" "translation": "Wyloguj się"
@@ -5548,7 +5498,7 @@
"message": "Solo", "message": "Solo",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]], "origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
"translation": "Solo" "translation": "Solo"
}, },
"J9+zIR": { "J9+zIR": {
@@ -5615,13 +5565,6 @@
"origin": [["src/views/settings/components/WebhookList.tsx", 232]], "origin": [["src/views/settings/components/WebhookList.tsx", 232]],
"translation": "Status" "translation": "Status"
}, },
"hQRttt": {
"message": "Submit",
"placeholders": {},
"comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
"translation": "Prześlij"
},
"WYDptz": { "WYDptz": {
"message": "Subscription Required", "message": "Subscription Required",
"placeholders": {}, "placeholders": {},
@@ -5685,7 +5628,7 @@
"message": "Team", "message": "Team",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]], "origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
"translation": "Zespół" "translation": "Zespół"
}, },
"bff61F": { "bff61F": {
@@ -5715,8 +5658,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/board/index.tsx", 574] ["src/views/board/index.tsx", 566]
], ],
"translation": "Szablon" "translation": "Szablon"
}, },
@@ -5827,23 +5770,14 @@
"message": "The board has been archived.", "message": "The board has been archived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]], "origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
"translation": "Tablica została zarchiwizowana." "translation": "Tablica została zarchiwizowana."
}, },
"ZWk38w": {
"message": "The board has been moved to {0}.",
"placeholders": {
"0": ["targetWorkspace?.name ?? \"the workspace\""]
},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 34]],
"translation": "Tablica została przeniesiona do {0}."
},
"C6gv54": { "C6gv54": {
"message": "The board has been unarchived.", "message": "The board has been unarchived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]], "origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
"translation": "Tablica została przywrócona z archiwum." "translation": "Tablica została przywrócona z archiwum."
}, },
"nKBUeF": { "nKBUeF": {
@@ -6154,7 +6088,7 @@
"message": "Unable to add comment", "message": "Unable to add comment",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]], "origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
"translation": "Nie można dodać komentarza" "translation": "Nie można dodać komentarza"
}, },
"2Q871c": { "2Q871c": {
@@ -6183,7 +6117,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 314], ["src/views/board/index.tsx", 313],
["src/views/card/components/Dropdown.tsx", 79], ["src/views/card/components/Dropdown.tsx", 79],
["src/views/public/board/CardModal.tsx", 43], ["src/views/public/board/CardModal.tsx", 43],
["src/views/public/board/index.tsx", 84] ["src/views/public/board/index.tsx", 84]
@@ -6294,13 +6228,6 @@
], ],
"translation": "Nie można zduplikować karty" "translation": "Nie można zduplikować karty"
}, },
"d196/6": {
"message": "Unable to move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 45]],
"translation": "Nie można przenieść tablicy"
},
"K7k9u3": { "K7k9u3": {
"message": "Unable to move card", "message": "Unable to move card",
"placeholders": {}, "placeholders": {},
@@ -6361,7 +6288,7 @@
"message": "Unable to update board", "message": "Unable to update board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]], "origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
"translation": "Nie można zaktualizować tablicy" "translation": "Nie można zaktualizować tablicy"
}, },
"XpcjLO": { "XpcjLO": {
@@ -6383,7 +6310,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 274], ["src/views/board/index.tsx", 273],
["src/views/card/index.tsx", 235] ["src/views/card/index.tsx", 235]
], ],
"translation": "Nie można zaktualizować karty" "translation": "Nie można zaktualizować karty"
@@ -6428,7 +6355,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 218], ["src/views/board/index.tsx", 217],
["src/views/card/components/ListSelector.tsx", 54] ["src/views/card/components/ListSelector.tsx", 54]
], ],
"translation": "Nie można zaktualizować listy" "translation": "Nie można zaktualizować listy"
@@ -6468,7 +6395,7 @@
"message": "Unarchive board", "message": "Unarchive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Przywróć tablicę z archiwum" "translation": "Przywróć tablicę z archiwum"
}, },
"E8zYtd": { "E8zYtd": {
@@ -6581,7 +6508,7 @@
"message": "Unlimited members and a custom workspace username for teams ready to scale.", "message": "Unlimited members and a custom workspace username for teams ready to scale.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]], "origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
"translation": "Nieograniczona liczba członków i niestandardowa nazwa użytkownika przestrzeni roboczej dla zespołów gotowych do rozwoju." "translation": "Nieograniczona liczba członków i niestandardowa nazwa użytkownika przestrzeni roboczej dla zespołów gotowych do rozwoju."
}, },
"i5yNAO": { "i5yNAO": {
@@ -6671,7 +6598,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/members/index.tsx", 295], ["src/views/members/index.tsx", 295],
["src/views/onboarding/select-plan/index.tsx", 245] ["src/views/onboarding/select-plan/index.tsx", 241]
], ],
"translation": "Uaktualnij" "translation": "Uaktualnij"
}, },
@@ -7004,7 +6931,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/components/SettingsLayout.tsx", 47], ["src/components/SettingsLayout.tsx", 47],
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/boards/index.tsx", 48], ["src/views/boards/index.tsx", 48],
["src/views/members/index.tsx", 278], ["src/views/members/index.tsx", 278],
["src/views/public/board/index.tsx", 125], ["src/views/public/board/index.tsx", 125],
@@ -7219,13 +7146,6 @@
"origin": [["src/views/home/components/Faqs.tsx", 127]], "origin": [["src/views/home/components/Faqs.tsx", 127]],
"translation": "Możesz samodzielnie hostować, postępując zgodnie z instrukcjami w naszym <0>repozytorium</0>." "translation": "Możesz samodzielnie hostować, postępując zgodnie z instrukcjami w naszym <0>repozytorium</0>."
}, },
"tUL16u": {
"message": "You don't have any other workspaces to move this board to.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 68]],
"translation": "Nie masz żadnych innych obszarów roboczych, do których można przenieść tę tablicę."
},
"h2FKMV": { "h2FKMV": {
"message": "You don't have permission", "message": "You don't have permission",
"placeholders": {}, "placeholders": {},
@@ -7234,8 +7154,8 @@
["src/views/board/components/List.tsx", 117], ["src/views/board/components/List.tsx", 117],
["src/views/board/components/UpdateBoardSlugButton.tsx", 58], ["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
["src/views/board/components/VisibilityButton.tsx", 72], ["src/views/board/components/VisibilityButton.tsx", 72],
["src/views/board/index.tsx", 612], ["src/views/board/index.tsx", 604],
["src/views/board/index.tsx", 670], ["src/views/board/index.tsx", 662],
["src/views/boards/components/BoardsList.tsx", 71], ["src/views/boards/components/BoardsList.tsx", 71],
["src/views/boards/index.tsx", 59], ["src/views/boards/index.tsx", 59],
["src/views/boards/index.tsx", 80] ["src/views/boards/index.tsx", 80]
@@ -7330,7 +7250,7 @@
"message": "Your avatar", "message": "Your avatar",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]], "origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
"translation": "Twój awatar" "translation": "Twój awatar"
}, },
"evg7+A": { "evg7+A": {

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]], "origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
"translation": "{0} foi adicionado aos seus favoritos." "translation": "{0} foi adicionado aos seus favoritos."
}, },
"bDI6VI": { "bDI6VI": {
@@ -53,7 +53,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]], "origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
"translation": "{0} foi removido dos seus favoritos." "translation": "{0} foi removido dos seus favoritos."
}, },
"CJukzS": { "CJukzS": {
@@ -71,7 +71,7 @@
"0": ["isTemplate ? \"Template\" : \"Board\""] "0": ["isTemplate ? \"Template\" : \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 565]], "origin": [["src/views/board/index.tsx", 557]],
"translation": "{0} não encontrado" "translation": "{0} não encontrado"
}, },
"0xWkkH": { "0xWkkH": {
@@ -286,7 +286,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/card/components/Comment.tsx", 185], ["src/views/card/components/Comment.tsx", 185],
["src/views/card/components/NewCommentForm.tsx", 85] ["src/views/card/components/NewCommentForm.tsx", 68]
], ],
"translation": "Adicionar comentário... (digite '/' para abrir comandos ou '@' para mencionar)" "translation": "Adicionar comentário... (digite '/' para abrir comandos ou '@' para mencionar)"
}, },
@@ -294,7 +294,7 @@
"message": "Add description... (type '/' to open commands or '@' to mention)", "message": "Add description... (type '/' to open commands or '@' to mention)",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/components/Editor.tsx", 499]], "origin": [["src/components/Editor.tsx", 493]],
"translation": "Adicionar descrição... (digite '/' para abrir comandos ou '@' para mencionar)" "translation": "Adicionar descrição... (digite '/' para abrir comandos ou '@' para mencionar)"
}, },
"abUZlY": { "abUZlY": {
@@ -328,7 +328,7 @@
"message": "Add to favorites", "message": "Add to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]], "origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
"translation": "Adicionar aos favoritos" "translation": "Adicionar aos favoritos"
}, },
"cWXW+7": { "cWXW+7": {
@@ -423,7 +423,7 @@
"message": "Added to favorites", "message": "Added to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]], "origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
"translation": "Adicionado aos favoritos" "translation": "Adicionado aos favoritos"
}, },
"14Xi3Z": { "14Xi3Z": {
@@ -577,7 +577,7 @@
"message": "Annual", "message": "Annual",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]], "origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
"translation": "Anual" "translation": "Anual"
}, },
"3bqt9U": { "3bqt9U": {
@@ -657,7 +657,7 @@
"message": "Archive board", "message": "Archive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Arquivar quadro" "translation": "Arquivar quadro"
}, },
"TdfEV7": { "TdfEV7": {
@@ -833,7 +833,7 @@
"message": "Best for small teams who want to collaborate and move faster together.", "message": "Best for small teams who want to collaborate and move faster together.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]], "origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
"translation": "Ideal para pequenas equipes que desejam colaborar e avançar mais rápido juntas." "translation": "Ideal para pequenas equipes que desejam colaborar e avançar mais rápido juntas."
}, },
"qaS+1/": { "qaS+1/": {
@@ -887,7 +887,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/card/index.tsx", 321], ["src/views/card/index.tsx", 321],
["src/views/public/board/index.tsx", 125] ["src/views/public/board/index.tsx", 125]
], ],
@@ -906,16 +906,9 @@
"message": "Board archived", "message": "Board archived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Quadro arquivado" "translation": "Quadro arquivado"
}, },
"wE3hGS": {
"message": "Board moved",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
"translation": "Quadro movido"
},
"wewm3j": { "wewm3j": {
"message": "Board name cannot exceed 100 characters", "message": "Board name cannot exceed 100 characters",
"placeholders": {}, "placeholders": {},
@@ -950,7 +943,7 @@
"message": "Board unarchived", "message": "Board unarchived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Quadro desarquivado" "translation": "Quadro desarquivado"
}, },
"Xid3K6": { "Xid3K6": {
@@ -1288,13 +1281,12 @@
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176], ["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
["src/views/board/components/CardContextDuplicateModal.tsx", 267], ["src/views/board/components/CardContextDuplicateModal.tsx", 267],
["src/views/board/components/DeleteBoardConfirmation.tsx", 44], ["src/views/board/components/DeleteBoardConfirmation.tsx", 44],
["src/views/board/components/MoveBoardForm.tsx", 99],
["src/views/card/components/Comment.tsx", 195], ["src/views/card/components/Comment.tsx", 195],
["src/views/card/components/DeleteCardConfirmation.tsx", 86], ["src/views/card/components/DeleteCardConfirmation.tsx", 86],
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64], ["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
["src/views/card/components/DeleteCommentConfirmation.tsx", 77], ["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
["src/views/members/components/DeleteMemberConfirmation.tsx", 55], ["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
["src/views/onboarding/select-plan/index.tsx", 240], ["src/views/onboarding/select-plan/index.tsx", 236],
["src/views/settings/components/Avatar.tsx", 287], ["src/views/settings/components/Avatar.tsx", 287],
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206], ["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
[ [
@@ -1332,13 +1324,6 @@
"origin": [["src/views/card/components/Dropdown.tsx", 48]], "origin": [["src/views/card/components/Dropdown.tsx", 48]],
"translation": "Card duplicado com sucesso." "translation": "Card duplicado com sucesso."
}, },
"AgE2vR": {
"message": "Card member assignments will be cleared when moving to a different workspace.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 92]],
"translation": "As atribuições de membros do cartão serão removidas ao mover para um workspace diferente."
},
"fEY2vP": { "fEY2vP": {
"message": "Card not found", "message": "Card not found",
"placeholders": {}, "placeholders": {},
@@ -1361,7 +1346,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 309], ["src/views/board/index.tsx", 308],
["src/views/card/components/Dropdown.tsx", 74], ["src/views/card/components/Dropdown.tsx", 74],
["src/views/public/board/CardModal.tsx", 38] ["src/views/public/board/CardModal.tsx", 38]
], ],
@@ -1444,7 +1429,7 @@
"message": "Choose a plan", "message": "Choose a plan",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]], "origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
"translation": "Escolha um plano" "translation": "Escolha um plano"
}, },
"5EMoSo": { "5EMoSo": {
@@ -1719,7 +1704,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 246], ["src/views/onboarding/select-plan/index.tsx", 242],
["src/views/onboarding/workspace-details/index.tsx", 315] ["src/views/onboarding/workspace-details/index.tsx", 315]
], ],
"translation": "Continuar" "translation": "Continuar"
@@ -1914,8 +1899,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 93], ["src/views/board/index.tsx", 92],
["src/views/board/index.tsx", 679] ["src/views/board/index.tsx", 671]
], ],
"translation": "Criar nova lista" "translation": "Criar nova lista"
}, },
@@ -2133,7 +2118,7 @@
"message": "Delete board", "message": "Delete board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Excluir quadro" "translation": "Excluir quadro"
}, },
"nabda1": { "nabda1": {
@@ -2164,7 +2149,7 @@
"message": "Delete template", "message": "Delete template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Excluir modelo" "translation": "Excluir modelo"
}, },
"snMaH4": { "snMaH4": {
@@ -2226,13 +2211,6 @@
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]], "origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
"translation": "Design" "translation": "Design"
}, },
"Uf+1DF": {
"message": "Destination workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
"translation": "Workspace de destino"
},
"Odv3J6": { "Odv3J6": {
"message": "Disconnect GitHub", "message": "Disconnect GitHub",
"placeholders": {}, "placeholders": {},
@@ -2438,7 +2416,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/BoardDropdown.tsx", 106], ["src/views/board/components/BoardDropdown.tsx", 105],
["src/views/board/components/UpdateBoardSlugForm.tsx", 116] ["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
], ],
"translation": "Editar URL do quadro" "translation": "Editar URL do quadro"
@@ -3016,8 +2994,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 82], ["src/views/onboarding/select-plan/index.tsx", 78],
["src/views/onboarding/select-plan/index.tsx", 83], ["src/views/onboarding/select-plan/index.tsx", 79],
["src/views/pricing/components/FeatureComparisonTable.tsx", 331], ["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
@@ -3125,7 +3103,7 @@
"message": "Get started by creating a new list", "message": "Get started by creating a new list",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 664]], "origin": [["src/views/board/index.tsx", 656]],
"translation": "Comece criando uma nova lista" "translation": "Comece criando uma nova lista"
}, },
"oW13KZ": { "oW13KZ": {
@@ -3239,7 +3217,7 @@
"message": "Good for individuals starting out who just need the essentials.", "message": "Good for individuals starting out who just need the essentials.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]], "origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
"translation": "Bom para indivíduos começando que precisam apenas do essencial." "translation": "Bom para indivíduos começando que precisam apenas do essencial."
}, },
"cdyS7J": { "cdyS7J": {
@@ -3765,7 +3743,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/UpdateBoardSlugButton.tsx", 80], ["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
["src/views/board/index.tsx", 307], ["src/views/board/index.tsx", 306],
["src/views/card/components/Dropdown.tsx", 72], ["src/views/card/components/Dropdown.tsx", 72],
["src/views/public/board/CardModal.tsx", 36], ["src/views/public/board/CardModal.tsx", 36],
["src/views/public/board/index.tsx", 77] ["src/views/public/board/index.tsx", 77]
@@ -3865,7 +3843,7 @@
"message": "Make template", "message": "Make template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]], "origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
"translation": "Criar modelo" "translation": "Criar modelo"
}, },
"hB02vO": { "hB02vO": {
@@ -3986,7 +3964,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 67], ["src/views/onboarding/select-plan/index.tsx", 63],
["src/views/pricing/components/Pricing.tsx", 14], ["src/views/pricing/components/Pricing.tsx", 14],
["src/views/pricing/index.tsx", 20] ["src/views/pricing/index.tsx", 20]
], ],
@@ -3999,20 +3977,6 @@
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]], "origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
"translation": "cobrança mensal" "translation": "cobrança mensal"
}, },
"sZ/WDz": {
"message": "Move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 107]],
"translation": "Mover quadro"
},
"VvCMyU": {
"message": "Move board to another workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 64]],
"translation": "Mover quadro para outro workspace"
},
"51UCsN": { "51UCsN": {
"message": "Move to another list", "message": "Move to another list",
"placeholders": {}, "placeholders": {},
@@ -4027,13 +3991,6 @@
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]], "origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
"translation": "Mover para lista" "translation": "Mover para lista"
}, },
"S3wq2O": {
"message": "Move to workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
"translation": "Mover para workspace"
},
"BOqTi5": { "BOqTi5": {
"message": "moved the card from <0>{0}</0> to<1>{1}</1>", "message": "moved the card from <0>{0}</0> to<1>{1}</1>",
"placeholders": { "placeholders": {
@@ -4145,7 +4102,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/NewListForm.tsx", 113], ["src/views/board/components/NewListForm.tsx", 113],
["src/views/board/index.tsx", 628] ["src/views/board/index.tsx", 620]
], ],
"translation": "Nova lista" "translation": "Nova lista"
}, },
@@ -4278,14 +4235,14 @@
"message": "No lists", "message": "No lists",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 660]], "origin": [["src/views/board/index.tsx", 652]],
"translation": "Nenhuma lista" "translation": "Nenhuma lista"
}, },
"fvLNDy": { "fvLNDy": {
"message": "No lists have been created yet", "message": "No lists have been created yet",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 665]], "origin": [["src/views/board/index.tsx", 657]],
"translation": "Nenhuma lista foi criada ainda" "translation": "Nenhuma lista foi criada ainda"
}, },
"i30J2U": { "i30J2U": {
@@ -4602,7 +4559,7 @@
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.", "message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]], "origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
"translation": "Escolha um plano para começar. Todos os planos pagos incluem 14 dias de teste grátis." "translation": "Escolha um plano para começar. Todos os planos pagos incluem 14 dias de teste grátis."
}, },
"GdgCoi": { "GdgCoi": {
@@ -4700,15 +4657,15 @@
["src/components/DeleteLabelConfirmation.tsx", 26], ["src/components/DeleteLabelConfirmation.tsx", 26],
["src/components/FeedbackModal.tsx", 41], ["src/components/FeedbackModal.tsx", 41],
["src/components/NewWorkspaceForm.tsx", 110], ["src/components/NewWorkspaceForm.tsx", 110],
["src/views/board/components/BoardDropdown.tsx", 69], ["src/views/board/components/BoardDropdown.tsx", 68],
["src/views/board/components/NewCardForm.tsx", 193], ["src/views/board/components/NewCardForm.tsx", 193],
["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],
["src/views/board/components/NewTemplateForm.tsx", 77], ["src/views/board/components/NewTemplateForm.tsx", 77],
["src/views/board/components/UpdateBoardSlugForm.tsx", 73], ["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
["src/views/board/components/VisibilityButton.tsx", 57], ["src/views/board/components/VisibilityButton.tsx", 57],
["src/views/board/index.tsx", 219], ["src/views/board/index.tsx", 218],
["src/views/board/index.tsx", 275], ["src/views/board/index.tsx", 274],
["src/views/boards/components/ImportBoardsForm.tsx", 243], ["src/views/boards/components/ImportBoardsForm.tsx", 243],
["src/views/boards/components/ImportBoardsForm.tsx", 395], ["src/views/boards/components/ImportBoardsForm.tsx", 395],
["src/views/card/components/AttachmentThumbnails.tsx", 74], ["src/views/card/components/AttachmentThumbnails.tsx", 74],
@@ -4726,7 +4683,7 @@
["src/views/card/components/MemberSelector.tsx", 82], ["src/views/card/components/MemberSelector.tsx", 82],
["src/views/card/components/NewChecklistForm.tsx", 71], ["src/views/card/components/NewChecklistForm.tsx", 71],
["src/views/card/components/NewChecklistItemForm.tsx", 90], ["src/views/card/components/NewChecklistItemForm.tsx", 90],
["src/views/card/components/NewCommentForm.tsx", 38], ["src/views/card/components/NewCommentForm.tsx", 37],
["src/views/card/index.tsx", 236], ["src/views/card/index.tsx", 236],
["src/views/card/index.tsx", 249], ["src/views/card/index.tsx", 249],
["src/views/members/components/DeleteMemberConfirmation.tsx", 28], ["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
@@ -4766,7 +4723,7 @@
"origin": [ "origin": [
["src/views/board/components/CardContextDuplicateModal.tsx", 76], ["src/views/board/components/CardContextDuplicateModal.tsx", 76],
["src/views/board/components/CardContextMoveListModal.tsx", 42], ["src/views/board/components/CardContextMoveListModal.tsx", 42],
["src/views/board/index.tsx", 316], ["src/views/board/index.tsx", 315],
["src/views/card/components/Dropdown.tsx", 55], ["src/views/card/components/Dropdown.tsx", 55],
["src/views/card/components/Dropdown.tsx", 81], ["src/views/card/components/Dropdown.tsx", 81],
["src/views/card/components/Dropdown.tsx", 100], ["src/views/card/components/Dropdown.tsx", 100],
@@ -4829,7 +4786,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 96], ["src/views/onboarding/select-plan/index.tsx", 92],
["src/views/pricing/components/FeatureComparisonTable.tsx", 333], ["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
["src/views/pricing/components/PricingTiers.tsx", 70] ["src/views/pricing/components/PricingTiers.tsx", 70]
], ],
@@ -4935,7 +4892,7 @@
"message": "Remove from favorites", "message": "Remove from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]], "origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
"translation": "Remover dos favoritos" "translation": "Remover dos favoritos"
}, },
"99VIgC": { "99VIgC": {
@@ -4989,7 +4946,7 @@
"message": "Removed from favorites", "message": "Removed from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]], "origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
"translation": "Removido dos favoritos" "translation": "Removido dos favoritos"
}, },
"YVT40D": { "YVT40D": {
@@ -5236,13 +5193,6 @@
], ],
"translation": "Selecione uma lista" "translation": "Selecione uma lista"
}, },
"NM2hyD": {
"message": "Select a workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
"translation": "Selecione um workspace"
},
"wgNoIs": { "wgNoIs": {
"message": "Select all", "message": "Select all",
"placeholders": {}, "placeholders": {},
@@ -5454,7 +5404,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 319], ["src/views/onboarding/select-plan/index.tsx", 315],
["src/views/onboarding/workspace-details/index.tsx", 386] ["src/views/onboarding/workspace-details/index.tsx", 386]
], ],
"translation": "Sair" "translation": "Sair"
@@ -5548,7 +5498,7 @@
"message": "Solo", "message": "Solo",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]], "origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
"translation": "Solo" "translation": "Solo"
}, },
"J9+zIR": { "J9+zIR": {
@@ -5615,13 +5565,6 @@
"origin": [["src/views/settings/components/WebhookList.tsx", 232]], "origin": [["src/views/settings/components/WebhookList.tsx", 232]],
"translation": "Status" "translation": "Status"
}, },
"hQRttt": {
"message": "Submit",
"placeholders": {},
"comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
"translation": "Enviar"
},
"WYDptz": { "WYDptz": {
"message": "Subscription Required", "message": "Subscription Required",
"placeholders": {}, "placeholders": {},
@@ -5685,7 +5628,7 @@
"message": "Team", "message": "Team",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]], "origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
"translation": "Equipe" "translation": "Equipe"
}, },
"bff61F": { "bff61F": {
@@ -5715,8 +5658,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/board/index.tsx", 574] ["src/views/board/index.tsx", 566]
], ],
"translation": "Modelo" "translation": "Modelo"
}, },
@@ -5827,23 +5770,14 @@
"message": "The board has been archived.", "message": "The board has been archived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]], "origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
"translation": "O quadro foi arquivado." "translation": "O quadro foi arquivado."
}, },
"ZWk38w": {
"message": "The board has been moved to {0}.",
"placeholders": {
"0": ["targetWorkspace?.name ?? \"the workspace\""]
},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 34]],
"translation": "O quadro foi movido para {0}."
},
"C6gv54": { "C6gv54": {
"message": "The board has been unarchived.", "message": "The board has been unarchived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]], "origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
"translation": "O quadro foi desarquivado." "translation": "O quadro foi desarquivado."
}, },
"nKBUeF": { "nKBUeF": {
@@ -6154,7 +6088,7 @@
"message": "Unable to add comment", "message": "Unable to add comment",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]], "origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
"translation": "Não foi possível adicionar comentário" "translation": "Não foi possível adicionar comentário"
}, },
"2Q871c": { "2Q871c": {
@@ -6183,7 +6117,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 314], ["src/views/board/index.tsx", 313],
["src/views/card/components/Dropdown.tsx", 79], ["src/views/card/components/Dropdown.tsx", 79],
["src/views/public/board/CardModal.tsx", 43], ["src/views/public/board/CardModal.tsx", 43],
["src/views/public/board/index.tsx", 84] ["src/views/public/board/index.tsx", 84]
@@ -6294,13 +6228,6 @@
], ],
"translation": "Não foi possível duplicar o cartão" "translation": "Não foi possível duplicar o cartão"
}, },
"d196/6": {
"message": "Unable to move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 45]],
"translation": "Não foi possível mover o quadro"
},
"K7k9u3": { "K7k9u3": {
"message": "Unable to move card", "message": "Unable to move card",
"placeholders": {}, "placeholders": {},
@@ -6361,7 +6288,7 @@
"message": "Unable to update board", "message": "Unable to update board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]], "origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
"translation": "Não foi possível atualizar o quadro" "translation": "Não foi possível atualizar o quadro"
}, },
"XpcjLO": { "XpcjLO": {
@@ -6383,7 +6310,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 274], ["src/views/board/index.tsx", 273],
["src/views/card/index.tsx", 235] ["src/views/card/index.tsx", 235]
], ],
"translation": "Não foi possível atualizar o cartão" "translation": "Não foi possível atualizar o cartão"
@@ -6428,7 +6355,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 218], ["src/views/board/index.tsx", 217],
["src/views/card/components/ListSelector.tsx", 54] ["src/views/card/components/ListSelector.tsx", 54]
], ],
"translation": "Não foi possível atualizar a lista" "translation": "Não foi possível atualizar a lista"
@@ -6468,7 +6395,7 @@
"message": "Unarchive board", "message": "Unarchive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Desarquivar quadro" "translation": "Desarquivar quadro"
}, },
"E8zYtd": { "E8zYtd": {
@@ -6581,7 +6508,7 @@
"message": "Unlimited members and a custom workspace username for teams ready to scale.", "message": "Unlimited members and a custom workspace username for teams ready to scale.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]], "origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
"translation": "Membros ilimitados e um nome de usuário personalizado para equipes prontas para crescer." "translation": "Membros ilimitados e um nome de usuário personalizado para equipes prontas para crescer."
}, },
"i5yNAO": { "i5yNAO": {
@@ -6671,7 +6598,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/members/index.tsx", 295], ["src/views/members/index.tsx", 295],
["src/views/onboarding/select-plan/index.tsx", 245] ["src/views/onboarding/select-plan/index.tsx", 241]
], ],
"translation": "Atualizar" "translation": "Atualizar"
}, },
@@ -7004,7 +6931,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/components/SettingsLayout.tsx", 47], ["src/components/SettingsLayout.tsx", 47],
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/boards/index.tsx", 48], ["src/views/boards/index.tsx", 48],
["src/views/members/index.tsx", 278], ["src/views/members/index.tsx", 278],
["src/views/public/board/index.tsx", 125], ["src/views/public/board/index.tsx", 125],
@@ -7219,13 +7146,6 @@
"origin": [["src/views/home/components/Faqs.tsx", 127]], "origin": [["src/views/home/components/Faqs.tsx", 127]],
"translation": "Você pode fazer self-host seguindo as instruções em nosso <0>repositório</0>." "translation": "Você pode fazer self-host seguindo as instruções em nosso <0>repositório</0>."
}, },
"tUL16u": {
"message": "You don't have any other workspaces to move this board to.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 68]],
"translation": "Você não tem outros workspaces para mover este quadro."
},
"h2FKMV": { "h2FKMV": {
"message": "You don't have permission", "message": "You don't have permission",
"placeholders": {}, "placeholders": {},
@@ -7234,8 +7154,8 @@
["src/views/board/components/List.tsx", 117], ["src/views/board/components/List.tsx", 117],
["src/views/board/components/UpdateBoardSlugButton.tsx", 58], ["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
["src/views/board/components/VisibilityButton.tsx", 72], ["src/views/board/components/VisibilityButton.tsx", 72],
["src/views/board/index.tsx", 612], ["src/views/board/index.tsx", 604],
["src/views/board/index.tsx", 670], ["src/views/board/index.tsx", 662],
["src/views/boards/components/BoardsList.tsx", 71], ["src/views/boards/components/BoardsList.tsx", 71],
["src/views/boards/index.tsx", 59], ["src/views/boards/index.tsx", 59],
["src/views/boards/index.tsx", 80] ["src/views/boards/index.tsx", 80]
@@ -7330,7 +7250,7 @@
"message": "Your avatar", "message": "Your avatar",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]], "origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
"translation": "Seu avatar" "translation": "Seu avatar"
}, },
"evg7+A": { "evg7+A": {

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]], "origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
"translation": "{0} добавлен в избранное." "translation": "{0} добавлен в избранное."
}, },
"bDI6VI": { "bDI6VI": {
@@ -53,7 +53,7 @@
"0": ["boardName ?? \"Board\""] "0": ["boardName ?? \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]], "origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
"translation": "{0} удалён из избранного." "translation": "{0} удалён из избранного."
}, },
"CJukzS": { "CJukzS": {
@@ -71,7 +71,7 @@
"0": ["isTemplate ? \"Template\" : \"Board\""] "0": ["isTemplate ? \"Template\" : \"Board\""]
}, },
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 565]], "origin": [["src/views/board/index.tsx", 557]],
"translation": "{0} не найдено" "translation": "{0} не найдено"
}, },
"0xWkkH": { "0xWkkH": {
@@ -286,7 +286,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/card/components/Comment.tsx", 185], ["src/views/card/components/Comment.tsx", 185],
["src/views/card/components/NewCommentForm.tsx", 85] ["src/views/card/components/NewCommentForm.tsx", 68]
], ],
"translation": "Добавить комментарий... (введите '/' для открытия команд или '@' для упоминания)" "translation": "Добавить комментарий... (введите '/' для открытия команд или '@' для упоминания)"
}, },
@@ -294,7 +294,7 @@
"message": "Add description... (type '/' to open commands or '@' to mention)", "message": "Add description... (type '/' to open commands or '@' to mention)",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/components/Editor.tsx", 499]], "origin": [["src/components/Editor.tsx", 493]],
"translation": "Добавить описание... (введите '/' для открытия команд или '@' для упоминания)" "translation": "Добавить описание... (введите '/' для открытия команд или '@' для упоминания)"
}, },
"abUZlY": { "abUZlY": {
@@ -328,7 +328,7 @@
"message": "Add to favorites", "message": "Add to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]], "origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
"translation": "Добавить в избранное" "translation": "Добавить в избранное"
}, },
"cWXW+7": { "cWXW+7": {
@@ -423,7 +423,7 @@
"message": "Added to favorites", "message": "Added to favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]], "origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
"translation": "Добавлено в избранное" "translation": "Добавлено в избранное"
}, },
"14Xi3Z": { "14Xi3Z": {
@@ -577,7 +577,7 @@
"message": "Annual", "message": "Annual",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]], "origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
"translation": "Ежегодно" "translation": "Ежегодно"
}, },
"3bqt9U": { "3bqt9U": {
@@ -657,7 +657,7 @@
"message": "Archive board", "message": "Archive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Архивировать доску" "translation": "Архивировать доску"
}, },
"TdfEV7": { "TdfEV7": {
@@ -833,7 +833,7 @@
"message": "Best for small teams who want to collaborate and move faster together.", "message": "Best for small teams who want to collaborate and move faster together.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]], "origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
"translation": "Идеально для небольших команд, которые хотят сотрудничать и работать быстрее вместе." "translation": "Идеально для небольших команд, которые хотят сотрудничать и работать быстрее вместе."
}, },
"qaS+1/": { "qaS+1/": {
@@ -887,7 +887,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/card/index.tsx", 321], ["src/views/card/index.tsx", 321],
["src/views/public/board/index.tsx", 125] ["src/views/public/board/index.tsx", 125]
], ],
@@ -906,16 +906,9 @@
"message": "Board archived", "message": "Board archived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Доска архивирована" "translation": "Доска архивирована"
}, },
"wE3hGS": {
"message": "Board moved",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
"translation": "Доска перемещена"
},
"wewm3j": { "wewm3j": {
"message": "Board name cannot exceed 100 characters", "message": "Board name cannot exceed 100 characters",
"placeholders": {}, "placeholders": {},
@@ -950,7 +943,7 @@
"message": "Board unarchived", "message": "Board unarchived",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]], "origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
"translation": "Доска восстановлена из архива" "translation": "Доска восстановлена из архива"
}, },
"Xid3K6": { "Xid3K6": {
@@ -1288,13 +1281,12 @@
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176], ["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
["src/views/board/components/CardContextDuplicateModal.tsx", 267], ["src/views/board/components/CardContextDuplicateModal.tsx", 267],
["src/views/board/components/DeleteBoardConfirmation.tsx", 44], ["src/views/board/components/DeleteBoardConfirmation.tsx", 44],
["src/views/board/components/MoveBoardForm.tsx", 99],
["src/views/card/components/Comment.tsx", 195], ["src/views/card/components/Comment.tsx", 195],
["src/views/card/components/DeleteCardConfirmation.tsx", 86], ["src/views/card/components/DeleteCardConfirmation.tsx", 86],
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64], ["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
["src/views/card/components/DeleteCommentConfirmation.tsx", 77], ["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
["src/views/members/components/DeleteMemberConfirmation.tsx", 55], ["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
["src/views/onboarding/select-plan/index.tsx", 240], ["src/views/onboarding/select-plan/index.tsx", 236],
["src/views/settings/components/Avatar.tsx", 287], ["src/views/settings/components/Avatar.tsx", 287],
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206], ["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
[ [
@@ -1332,13 +1324,6 @@
"origin": [["src/views/card/components/Dropdown.tsx", 48]], "origin": [["src/views/card/components/Dropdown.tsx", 48]],
"translation": "Карточка успешно продублирована." "translation": "Карточка успешно продублирована."
}, },
"AgE2vR": {
"message": "Card member assignments will be cleared when moving to a different workspace.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 92]],
"translation": "При перемещении в другой рабочий пространство назначения участников карточек будут очищены."
},
"fEY2vP": { "fEY2vP": {
"message": "Card not found", "message": "Card not found",
"placeholders": {}, "placeholders": {},
@@ -1361,7 +1346,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 309], ["src/views/board/index.tsx", 308],
["src/views/card/components/Dropdown.tsx", 74], ["src/views/card/components/Dropdown.tsx", 74],
["src/views/public/board/CardModal.tsx", 38] ["src/views/public/board/CardModal.tsx", 38]
], ],
@@ -1444,7 +1429,7 @@
"message": "Choose a plan", "message": "Choose a plan",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]], "origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
"translation": "Выберите тариф" "translation": "Выберите тариф"
}, },
"5EMoSo": { "5EMoSo": {
@@ -1719,7 +1704,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 246], ["src/views/onboarding/select-plan/index.tsx", 242],
["src/views/onboarding/workspace-details/index.tsx", 315] ["src/views/onboarding/workspace-details/index.tsx", 315]
], ],
"translation": "Продолжить" "translation": "Продолжить"
@@ -1914,8 +1899,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 93], ["src/views/board/index.tsx", 92],
["src/views/board/index.tsx", 679] ["src/views/board/index.tsx", 671]
], ],
"translation": "Создать новый список" "translation": "Создать новый список"
}, },
@@ -2133,7 +2118,7 @@
"message": "Delete board", "message": "Delete board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Удалить доску" "translation": "Удалить доску"
}, },
"nabda1": { "nabda1": {
@@ -2164,7 +2149,7 @@
"message": "Delete template", "message": "Delete template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]], "origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
"translation": "Удалить шаблон" "translation": "Удалить шаблон"
}, },
"snMaH4": { "snMaH4": {
@@ -2226,13 +2211,6 @@
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]], "origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
"translation": "Дизайн" "translation": "Дизайн"
}, },
"Uf+1DF": {
"message": "Destination workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
"translation": "Рабочее пространство назначения"
},
"Odv3J6": { "Odv3J6": {
"message": "Disconnect GitHub", "message": "Disconnect GitHub",
"placeholders": {}, "placeholders": {},
@@ -2438,7 +2416,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/BoardDropdown.tsx", 106], ["src/views/board/components/BoardDropdown.tsx", 105],
["src/views/board/components/UpdateBoardSlugForm.tsx", 116] ["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
], ],
"translation": "Изменить URL доски" "translation": "Изменить URL доски"
@@ -3016,8 +2994,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 82], ["src/views/onboarding/select-plan/index.tsx", 78],
["src/views/onboarding/select-plan/index.tsx", 83], ["src/views/onboarding/select-plan/index.tsx", 79],
["src/views/pricing/components/FeatureComparisonTable.tsx", 331], ["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
["src/views/pricing/components/Pricing.tsx", 32], ["src/views/pricing/components/Pricing.tsx", 32],
@@ -3125,7 +3103,7 @@
"message": "Get started by creating a new list", "message": "Get started by creating a new list",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 664]], "origin": [["src/views/board/index.tsx", 656]],
"translation": "Начните с создания нового списка" "translation": "Начните с создания нового списка"
}, },
"oW13KZ": { "oW13KZ": {
@@ -3239,7 +3217,7 @@
"message": "Good for individuals starting out who just need the essentials.", "message": "Good for individuals starting out who just need the essentials.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]], "origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
"translation": "Подходит для начинающих пользователей, которым нужны только базовые функции." "translation": "Подходит для начинающих пользователей, которым нужны только базовые функции."
}, },
"cdyS7J": { "cdyS7J": {
@@ -3765,7 +3743,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/UpdateBoardSlugButton.tsx", 80], ["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
["src/views/board/index.tsx", 307], ["src/views/board/index.tsx", 306],
["src/views/card/components/Dropdown.tsx", 72], ["src/views/card/components/Dropdown.tsx", 72],
["src/views/public/board/CardModal.tsx", 36], ["src/views/public/board/CardModal.tsx", 36],
["src/views/public/board/index.tsx", 77] ["src/views/public/board/index.tsx", 77]
@@ -3865,7 +3843,7 @@
"message": "Make template", "message": "Make template",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]], "origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
"translation": "Создать шаблон" "translation": "Создать шаблон"
}, },
"hB02vO": { "hB02vO": {
@@ -3986,7 +3964,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 67], ["src/views/onboarding/select-plan/index.tsx", 63],
["src/views/pricing/components/Pricing.tsx", 14], ["src/views/pricing/components/Pricing.tsx", 14],
["src/views/pricing/index.tsx", 20] ["src/views/pricing/index.tsx", 20]
], ],
@@ -3999,20 +3977,6 @@
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]], "origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
"translation": "ежемесячная оплата" "translation": "ежемесячная оплата"
}, },
"sZ/WDz": {
"message": "Move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 107]],
"translation": "Переместить доску"
},
"VvCMyU": {
"message": "Move board to another workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 64]],
"translation": "Переместить доску в другое рабочее пространство"
},
"51UCsN": { "51UCsN": {
"message": "Move to another list", "message": "Move to another list",
"placeholders": {}, "placeholders": {},
@@ -4027,13 +3991,6 @@
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]], "origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
"translation": "Переместить в список" "translation": "Переместить в список"
}, },
"S3wq2O": {
"message": "Move to workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
"translation": "Переместить в рабочее пространство"
},
"BOqTi5": { "BOqTi5": {
"message": "moved the card from <0>{0}</0> to<1>{1}</1>", "message": "moved the card from <0>{0}</0> to<1>{1}</1>",
"placeholders": { "placeholders": {
@@ -4145,7 +4102,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/components/NewListForm.tsx", 113], ["src/views/board/components/NewListForm.tsx", 113],
["src/views/board/index.tsx", 628] ["src/views/board/index.tsx", 620]
], ],
"translation": "Новый список" "translation": "Новый список"
}, },
@@ -4278,14 +4235,14 @@
"message": "No lists", "message": "No lists",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 660]], "origin": [["src/views/board/index.tsx", 652]],
"translation": "Нет списков" "translation": "Нет списков"
}, },
"fvLNDy": { "fvLNDy": {
"message": "No lists have been created yet", "message": "No lists have been created yet",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/index.tsx", 665]], "origin": [["src/views/board/index.tsx", 657]],
"translation": "Списки ещё не созданы" "translation": "Списки ещё не созданы"
}, },
"i30J2U": { "i30J2U": {
@@ -4602,7 +4559,7 @@
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.", "message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]], "origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
"translation": "Выберите тариф, чтобы начать. Все платные тарифы включают 14-дневный бесплатный пробный период." "translation": "Выберите тариф, чтобы начать. Все платные тарифы включают 14-дневный бесплатный пробный период."
}, },
"GdgCoi": { "GdgCoi": {
@@ -4700,15 +4657,15 @@
["src/components/DeleteLabelConfirmation.tsx", 26], ["src/components/DeleteLabelConfirmation.tsx", 26],
["src/components/FeedbackModal.tsx", 41], ["src/components/FeedbackModal.tsx", 41],
["src/components/NewWorkspaceForm.tsx", 110], ["src/components/NewWorkspaceForm.tsx", 110],
["src/views/board/components/BoardDropdown.tsx", 69], ["src/views/board/components/BoardDropdown.tsx", 68],
["src/views/board/components/NewCardForm.tsx", 193], ["src/views/board/components/NewCardForm.tsx", 193],
["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],
["src/views/board/components/NewTemplateForm.tsx", 77], ["src/views/board/components/NewTemplateForm.tsx", 77],
["src/views/board/components/UpdateBoardSlugForm.tsx", 73], ["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
["src/views/board/components/VisibilityButton.tsx", 57], ["src/views/board/components/VisibilityButton.tsx", 57],
["src/views/board/index.tsx", 219], ["src/views/board/index.tsx", 218],
["src/views/board/index.tsx", 275], ["src/views/board/index.tsx", 274],
["src/views/boards/components/ImportBoardsForm.tsx", 243], ["src/views/boards/components/ImportBoardsForm.tsx", 243],
["src/views/boards/components/ImportBoardsForm.tsx", 395], ["src/views/boards/components/ImportBoardsForm.tsx", 395],
["src/views/card/components/AttachmentThumbnails.tsx", 74], ["src/views/card/components/AttachmentThumbnails.tsx", 74],
@@ -4726,7 +4683,7 @@
["src/views/card/components/MemberSelector.tsx", 82], ["src/views/card/components/MemberSelector.tsx", 82],
["src/views/card/components/NewChecklistForm.tsx", 71], ["src/views/card/components/NewChecklistForm.tsx", 71],
["src/views/card/components/NewChecklistItemForm.tsx", 90], ["src/views/card/components/NewChecklistItemForm.tsx", 90],
["src/views/card/components/NewCommentForm.tsx", 38], ["src/views/card/components/NewCommentForm.tsx", 37],
["src/views/card/index.tsx", 236], ["src/views/card/index.tsx", 236],
["src/views/card/index.tsx", 249], ["src/views/card/index.tsx", 249],
["src/views/members/components/DeleteMemberConfirmation.tsx", 28], ["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
@@ -4766,7 +4723,7 @@
"origin": [ "origin": [
["src/views/board/components/CardContextDuplicateModal.tsx", 76], ["src/views/board/components/CardContextDuplicateModal.tsx", 76],
["src/views/board/components/CardContextMoveListModal.tsx", 42], ["src/views/board/components/CardContextMoveListModal.tsx", 42],
["src/views/board/index.tsx", 316], ["src/views/board/index.tsx", 315],
["src/views/card/components/Dropdown.tsx", 55], ["src/views/card/components/Dropdown.tsx", 55],
["src/views/card/components/Dropdown.tsx", 81], ["src/views/card/components/Dropdown.tsx", 81],
["src/views/card/components/Dropdown.tsx", 100], ["src/views/card/components/Dropdown.tsx", 100],
@@ -4829,7 +4786,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 96], ["src/views/onboarding/select-plan/index.tsx", 92],
["src/views/pricing/components/FeatureComparisonTable.tsx", 333], ["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
["src/views/pricing/components/PricingTiers.tsx", 70] ["src/views/pricing/components/PricingTiers.tsx", 70]
], ],
@@ -4935,7 +4892,7 @@
"message": "Remove from favorites", "message": "Remove from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]], "origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
"translation": "Удалить из избранного" "translation": "Удалить из избранного"
}, },
"99VIgC": { "99VIgC": {
@@ -4989,7 +4946,7 @@
"message": "Removed from favorites", "message": "Removed from favorites",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]], "origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
"translation": "Удалено из избранного" "translation": "Удалено из избранного"
}, },
"YVT40D": { "YVT40D": {
@@ -5236,13 +5193,6 @@
], ],
"translation": "Выберите список" "translation": "Выберите список"
}, },
"NM2hyD": {
"message": "Select a workspace",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
"translation": "Выберите рабочее пространство"
},
"wgNoIs": { "wgNoIs": {
"message": "Select all", "message": "Select all",
"placeholders": {}, "placeholders": {},
@@ -5454,7 +5404,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/onboarding/select-plan/index.tsx", 319], ["src/views/onboarding/select-plan/index.tsx", 315],
["src/views/onboarding/workspace-details/index.tsx", 386] ["src/views/onboarding/workspace-details/index.tsx", 386]
], ],
"translation": "Выйти" "translation": "Выйти"
@@ -5548,7 +5498,7 @@
"message": "Solo", "message": "Solo",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]], "origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
"translation": "Индивидуальный" "translation": "Индивидуальный"
}, },
"J9+zIR": { "J9+zIR": {
@@ -5615,13 +5565,6 @@
"origin": [["src/views/settings/components/WebhookList.tsx", 232]], "origin": [["src/views/settings/components/WebhookList.tsx", 232]],
"translation": "Статус" "translation": "Статус"
}, },
"hQRttt": {
"message": "Submit",
"placeholders": {},
"comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
"translation": "Отправить"
},
"WYDptz": { "WYDptz": {
"message": "Subscription Required", "message": "Subscription Required",
"placeholders": {}, "placeholders": {},
@@ -5685,7 +5628,7 @@
"message": "Team", "message": "Team",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]], "origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
"translation": "Команда" "translation": "Команда"
}, },
"bff61F": { "bff61F": {
@@ -5715,8 +5658,8 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/board/index.tsx", 574] ["src/views/board/index.tsx", 566]
], ],
"translation": "Шаблон" "translation": "Шаблон"
}, },
@@ -5827,23 +5770,14 @@
"message": "The board has been archived.", "message": "The board has been archived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]], "origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
"translation": "Доска была архивирована." "translation": "Доска была архивирована."
}, },
"ZWk38w": {
"message": "The board has been moved to {0}.",
"placeholders": {
"0": ["targetWorkspace?.name ?? \"the workspace\""]
},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 34]],
"translation": "Доска была перемещена в {0}."
},
"C6gv54": { "C6gv54": {
"message": "The board has been unarchived.", "message": "The board has been unarchived.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]], "origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
"translation": "Доска была восстановлена из архива." "translation": "Доска была восстановлена из архива."
}, },
"nKBUeF": { "nKBUeF": {
@@ -6154,7 +6088,7 @@
"message": "Unable to add comment", "message": "Unable to add comment",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]], "origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
"translation": "Не удалось добавить комментарий" "translation": "Не удалось добавить комментарий"
}, },
"2Q871c": { "2Q871c": {
@@ -6183,7 +6117,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 314], ["src/views/board/index.tsx", 313],
["src/views/card/components/Dropdown.tsx", 79], ["src/views/card/components/Dropdown.tsx", 79],
["src/views/public/board/CardModal.tsx", 43], ["src/views/public/board/CardModal.tsx", 43],
["src/views/public/board/index.tsx", 84] ["src/views/public/board/index.tsx", 84]
@@ -6294,13 +6228,6 @@
], ],
"translation": "Невозможно дублировать карточку" "translation": "Невозможно дублировать карточку"
}, },
"d196/6": {
"message": "Unable to move board",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 45]],
"translation": "Не удалось переместить доску"
},
"K7k9u3": { "K7k9u3": {
"message": "Unable to move card", "message": "Unable to move card",
"placeholders": {}, "placeholders": {},
@@ -6361,7 +6288,7 @@
"message": "Unable to update board", "message": "Unable to update board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]], "origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
"translation": "Не удалось обновить доску" "translation": "Не удалось обновить доску"
}, },
"XpcjLO": { "XpcjLO": {
@@ -6383,7 +6310,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 274], ["src/views/board/index.tsx", 273],
["src/views/card/index.tsx", 235] ["src/views/card/index.tsx", 235]
], ],
"translation": "Не удалось обновить карточку" "translation": "Не удалось обновить карточку"
@@ -6428,7 +6355,7 @@
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/board/index.tsx", 218], ["src/views/board/index.tsx", 217],
["src/views/card/components/ListSelector.tsx", 54] ["src/views/card/components/ListSelector.tsx", 54]
], ],
"translation": "Не удалось обновить список" "translation": "Не удалось обновить список"
@@ -6468,7 +6395,7 @@
"message": "Unarchive board", "message": "Unarchive board",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]], "origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
"translation": "Восстановить доску из архива" "translation": "Восстановить доску из архива"
}, },
"E8zYtd": { "E8zYtd": {
@@ -6581,7 +6508,7 @@
"message": "Unlimited members and a custom workspace username for teams ready to scale.", "message": "Unlimited members and a custom workspace username for teams ready to scale.",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]], "origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
"translation": "Неограниченное количество участников и персональное имя рабочего пространства для команд, готовых к масштабированию." "translation": "Неограниченное количество участников и персональное имя рабочего пространства для команд, готовых к масштабированию."
}, },
"i5yNAO": { "i5yNAO": {
@@ -6671,7 +6598,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/views/members/index.tsx", 295], ["src/views/members/index.tsx", 295],
["src/views/onboarding/select-plan/index.tsx", 245] ["src/views/onboarding/select-plan/index.tsx", 241]
], ],
"translation": "Обновить" "translation": "Обновить"
}, },
@@ -7004,7 +6931,7 @@
"comments": [], "comments": [],
"origin": [ "origin": [
["src/components/SettingsLayout.tsx", 47], ["src/components/SettingsLayout.tsx", 47],
["src/views/board/index.tsx", 538], ["src/views/board/index.tsx", 530],
["src/views/boards/index.tsx", 48], ["src/views/boards/index.tsx", 48],
["src/views/members/index.tsx", 278], ["src/views/members/index.tsx", 278],
["src/views/public/board/index.tsx", 125], ["src/views/public/board/index.tsx", 125],
@@ -7219,13 +7146,6 @@
"origin": [["src/views/home/components/Faqs.tsx", 127]], "origin": [["src/views/home/components/Faqs.tsx", 127]],
"translation": "Вы можете развернуть сервис самостоятельно, следуя инструкциям в нашем <0>репозитории</0>." "translation": "Вы можете развернуть сервис самостоятельно, следуя инструкциям в нашем <0>репозитории</0>."
}, },
"tUL16u": {
"message": "You don't have any other workspaces to move this board to.",
"placeholders": {},
"comments": [],
"origin": [["src/views/board/components/MoveBoardForm.tsx", 68]],
"translation": "У вас нет других рабочих пространств для перемещения этой доски."
},
"h2FKMV": { "h2FKMV": {
"message": "You don't have permission", "message": "You don't have permission",
"placeholders": {}, "placeholders": {},
@@ -7234,8 +7154,8 @@
["src/views/board/components/List.tsx", 117], ["src/views/board/components/List.tsx", 117],
["src/views/board/components/UpdateBoardSlugButton.tsx", 58], ["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
["src/views/board/components/VisibilityButton.tsx", 72], ["src/views/board/components/VisibilityButton.tsx", 72],
["src/views/board/index.tsx", 612], ["src/views/board/index.tsx", 604],
["src/views/board/index.tsx", 670], ["src/views/board/index.tsx", 662],
["src/views/boards/components/BoardsList.tsx", 71], ["src/views/boards/components/BoardsList.tsx", 71],
["src/views/boards/index.tsx", 59], ["src/views/boards/index.tsx", 59],
["src/views/boards/index.tsx", 80] ["src/views/boards/index.tsx", 80]
@@ -7330,7 +7250,7 @@
"message": "Your avatar", "message": "Your avatar",
"placeholders": {}, "placeholders": {},
"comments": [], "comments": [],
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]], "origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
"translation": "Ваш аватар" "translation": "Ваш аватар"
}, },
"evg7+A": { "evg7+A": {

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,108 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { Novu } from "@novu/api";
import { jwtVerify } from "jose";
import { z } from "zod";
import { withApiLogging } from "@kan/api/utils/apiLogging";
import { withRateLimit } from "@kan/api/utils/rateLimit";
import { env } from "~/env";
const requestSchema = z.object({
token: z.string().min(1),
});
const tokenPayloadSchema = z.object({
subscriberId: z.string(),
});
type ResponseData =
| { success: true }
| { success: false; error: string; code?: string };
const textEncoder = new TextEncoder();
export default withRateLimit(
{ points: 100, duration: 60 },
withApiLogging(
async (req: NextApiRequest, res: NextApiResponse<ResponseData>) => {
if (process.env.NEXT_PUBLIC_KAN_ENV !== "cloud") {
return res.status(404).json({
success: false,
error: "Unsubscribe endpoint is not available.",
code: "UNAVAILABLE",
});
}
if (req.method !== "POST") {
res.setHeader("Allow", "POST");
return res.status(405).json({
success: false,
error: "Method not allowed.",
code: "METHOD_NOT_ALLOWED",
});
}
const parsedBody = requestSchema.safeParse(req.body);
if (!parsedBody.success) {
return res.status(400).json({
success: false,
error: "Invalid request payload.",
code: "BAD_REQUEST",
});
}
if (!env.EMAIL_UNSUBSCRIBE_SECRET || !env.NOVU_API_KEY) {
return res.status(500).json({
success: false,
error: "Unsubscribe service is not configured.",
code: "NOT_CONFIGURED",
});
}
let payload: z.infer<typeof tokenPayloadSchema>;
try {
const verified = await jwtVerify(
parsedBody.data.token,
textEncoder.encode(env.EMAIL_UNSUBSCRIBE_SECRET),
{
// We intentionally do not use exp/iat claims
// tokens are long-lived and validated only by signature + payload.
clockTolerance: "0s",
},
);
payload = tokenPayloadSchema.parse(verified.payload);
} catch {
return res.status(401).json({
success: false,
error: "Your unsubscribe link is invalid or has expired.",
code: "INVALID_TOKEN",
});
}
const novu = new Novu({ secretKey: env.NOVU_API_KEY });
try {
await novu.subscribers.preferences.update(
{
channels: {
email: false,
},
},
payload.subscriberId,
);
} catch (error) {
return res.status(502).json({
success: false,
error:
"We could not update your email preferences right now. Please try again later.",
code: "NOVU_ERROR",
});
}
return res.status(200).json({ success: true });
},
),
);

View File

@@ -0,0 +1,110 @@
import { useRouter } from "next/router";
import { t } from "@lingui/core/macro";
import { useEffect, useState } from "react";
import Button from "~/components/Button";
import { PageHead } from "~/components/PageHead";
import PatternedBackground from "~/components/PatternedBackground";
type UnsubscribeStatus = "idle" | "processing" | "success" | "error";
export default function UnsubscribePage() {
const router = useRouter();
const [token, setToken] = useState("");
const [status, setStatus] = useState<UnsubscribeStatus>("idle");
const [errorMessage, setErrorMessage] = useState<string | null>(null);
useEffect(() => {
if (!router.isReady) return;
const value = router.query.token;
if (typeof value === "string") {
setToken(value);
} else if (Array.isArray(value)) {
setToken(value[0] ?? "");
} else {
setToken("");
}
}, [router.isReady, router.query.token]);
const handleUnsubscribe = async () => {
if (!token) {
setStatus("error");
setErrorMessage(
t`Your unsubscribe link is missing a token. Please open the latest email and try again.`,
);
return;
}
setStatus("processing");
setErrorMessage(null);
try {
const response = await fetch("/api/unsubscribe", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ token }),
});
if (!response.ok) {
const payload = (await response.json().catch(() => null)) as {
error?: string;
} | null;
throw new Error(
payload?.error ??
"We couldn't update your preferences. Please try again.",
);
}
setStatus("success");
} catch (error) {
setStatus("error");
setErrorMessage(
t`We couldn't update your preferences. Please try again.`,
);
}
};
const title = t`Unsubscribe`;
return (
<>
<PageHead title={`${title} | kan.bn`} />
<div className="relative flex min-h-screen items-center justify-center px-4 py-12 sm:px-6 lg:px-8">
<PatternedBackground />
<div className="z-10 w-full max-w-md space-y-6">
<div>
<h1 className="mt-6 text-center text-3xl font-bold tracking-tight text-light-1000 dark:text-dark-1000">
{t`Do you want to unsubscribe?`}
</h1>
<p className="mt-4 text-center text-sm text-light-900 dark:text-dark-800">
{t`Confirm your email preferences:`}
</p>
</div>
<div className="flex justify-center">
<Button
onClick={handleUnsubscribe}
disabled={status === "success"}
isLoading={status === "processing"}
variant="primary"
size="md"
>
{t`Unsubscribe`}
</Button>
</div>
{status === "success" && (
<p className="text-center text-sm text-light-900 dark:text-dark-800">
{t`You have been unsubscribed!`}
</p>
)}
{status === "error" && (
<p className="mx-auto max-w-[300px] text-center text-sm font-medium text-red-600 dark:text-red-400">
{errorMessage}
</p>
)}
</div>
</div>
</>
);
}

View File

@@ -1,4 +1,4 @@
import { createContext, useCallback, useContext, useState } from "react"; import { createContext, useContext, useState } from "react";
interface PopupContextType { interface PopupContextType {
isOpen: boolean; isOpen: boolean;
@@ -25,27 +25,24 @@ export const PopupProvider: React.FC<Props> = ({ children }) => {
const [popupMessage, setPopupMessage] = useState(""); const [popupMessage, setPopupMessage] = useState("");
const [popupIcon, setPopupIcon] = useState(""); const [popupIcon, setPopupIcon] = useState("");
const showPopup = useCallback( const showPopup = ({
({ header,
header, message,
message, icon,
icon, }: {
}: { header: string;
header: string; message: string;
message: string; icon: string;
icon: string; }) => {
}) => { setIsOpen(true);
setIsOpen(true); setPopupHeader(header);
setPopupHeader(header); setPopupMessage(message);
setPopupMessage(message); setPopupIcon(icon);
setPopupIcon(icon); };
},
[],
);
const hidePopup = useCallback(() => { const hidePopup = () => {
setIsOpen(false); setIsOpen(false);
}, []); };
return ( return (
<PopupContext.Provider <PopupContext.Provider

View File

@@ -1,7 +1,6 @@
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { t } from "@lingui/core/macro"; import { t } from "@lingui/core/macro";
import { import {
HiArrowRightOnRectangle,
HiEllipsisHorizontal, HiEllipsisHorizontal,
HiLink, HiLink,
HiOutlineDocumentDuplicate, HiOutlineDocumentDuplicate,
@@ -89,7 +88,7 @@ export default function BoardDropdown({
const isArchiveActionPending = updateBoard.isPending; const isArchiveActionPending = updateBoard.isPending;
const items = [ const items = [
...(!isTemplate && canCreateBoard ...(isTemplate && canCreateBoard
? [ ? [
{ {
label: t`Make template`, label: t`Make template`,
@@ -120,17 +119,6 @@ export default function BoardDropdown({
}, },
] ]
: []), : []),
...(!isTemplate && canEditBoard
? [
{
label: t`Move to workspace`,
action: () => openModal("MOVE_BOARD"),
icon: (
<HiArrowRightOnRectangle className="h-[16px] w-[16px] text-dark-900" />
),
},
]
: []),
{ {
label: isFavorite label: isFavorite
? t`Remove from favorites` ? t`Remove from favorites`

View File

@@ -1,113 +0,0 @@
import { useRouter } from "next/navigation";
import { t } from "@lingui/core/macro";
import { useState } from "react";
import Button from "~/components/Button";
import { useModal } from "~/providers/modal";
import { usePopup } from "~/providers/popup";
import { useWorkspace } from "~/providers/workspace";
import { api } from "~/utils/api";
export function MoveBoardForm({
boardPublicId,
}: {
boardPublicId: string;
}) {
const router = useRouter();
const { closeModal } = useModal();
const { showPopup } = usePopup();
const { workspace, availableWorkspaces, switchWorkspace } = useWorkspace();
const [targetWorkspacePublicId, setTargetWorkspacePublicId] = useState("");
const otherWorkspaces = availableWorkspaces.filter(
(ws) => ws.publicId !== workspace.publicId && ws.role !== "guest",
);
const moveBoard = api.board.move.useMutation({
onSuccess: () => {
const targetWorkspace = availableWorkspaces.find(
(ws) => ws.publicId === targetWorkspacePublicId,
);
closeModal();
showPopup({
header: t`Board moved`,
message: t`The board has been moved to ${targetWorkspace?.name ?? "the workspace"}.`,
icon: "success",
});
if (targetWorkspace) {
switchWorkspace(targetWorkspace);
} else {
router.push("/boards");
}
},
onError: (error) => {
showPopup({
header: t`Unable to move board`,
message: error.message,
icon: "error",
});
},
});
const handleMoveBoard = () => {
if (!targetWorkspacePublicId) return;
moveBoard.mutate({
boardPublicId,
targetWorkspacePublicId,
});
};
return (
<div className="p-5">
<div className="flex w-full flex-col justify-between pb-4">
<h2 className="text-md pb-4 font-medium text-neutral-900 dark:text-dark-1000">
{t`Move board to another workspace`}
</h2>
{otherWorkspaces.length === 0 ? (
<p className="text-sm font-medium text-light-900 dark:text-dark-900">
{t`You don't have any other workspaces to move this board to.`}
</p>
) : (
<>
<label
htmlFor="target-workspace"
className="mb-2 text-sm font-medium text-light-900 dark:text-dark-900"
>
{t`Destination workspace`}
</label>
<select
id="target-workspace"
value={targetWorkspacePublicId}
onChange={(e) => setTargetWorkspacePublicId(e.target.value)}
className="block w-full rounded-md border-0 bg-dark-300 bg-white/5 py-1.5 text-sm shadow-sm ring-1 ring-inset ring-light-600 placeholder:text-dark-800 focus:ring-2 focus:ring-inset focus:ring-light-700 dark:text-dark-1000 dark:ring-dark-700 dark:focus:ring-dark-700 sm:leading-6"
>
<option value="">{t`Select a workspace`}</option>
{otherWorkspaces.map((ws) => (
<option key={ws.publicId} value={ws.publicId}>
{ws.name}
</option>
))}
</select>
<p className="mt-3 text-sm text-light-800 dark:text-dark-800">
{t`Card member assignments will be cleared when moving to a different workspace.`}
</p>
</>
)}
</div>
<div className="mt-5 flex justify-end space-x-2 sm:mt-6">
<Button onClick={() => closeModal()} variant="secondary">
{t`Cancel`}
</Button>
{otherWorkspaces.length > 0 && (
<Button
onClick={handleMoveBoard}
isLoading={moveBoard.isPending}
disabled={!targetWorkspacePublicId}
>
{t`Move board`}
</Button>
)}
</div>
</div>
);
}

View File

@@ -5,7 +5,7 @@ import { useRouter } from "next/router";
import { t } from "@lingui/core/macro"; import { t } from "@lingui/core/macro";
import { keepPreviousData } from "@tanstack/react-query"; import { keepPreviousData } from "@tanstack/react-query";
import { env } from "next-runtime-env"; import { env } from "next-runtime-env";
import { useEffect, useMemo, useState } from "react"; import { useEffect, useState } from "react";
import { DragDropContext, Draggable } from "react-beautiful-dnd"; import { DragDropContext, Draggable } from "react-beautiful-dnd";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
import { import {
@@ -49,7 +49,6 @@ import { DeleteBoardConfirmation } from "./components/DeleteBoardConfirmation";
import { DeleteListConfirmation } from "./components/DeleteListConfirmation"; import { DeleteListConfirmation } from "./components/DeleteListConfirmation";
import Filters from "./components/Filters"; import Filters from "./components/Filters";
import List from "./components/List"; import List from "./components/List";
import { MoveBoardForm } from "./components/MoveBoardForm";
import { NewCardForm } from "./components/NewCardForm"; import { NewCardForm } from "./components/NewCardForm";
import { NewListForm } from "./components/NewListForm"; import { NewListForm } from "./components/NewListForm";
import { NewTemplateForm } from "./components/NewTemplateForm"; import { NewTemplateForm } from "./components/NewTemplateForm";
@@ -85,26 +84,21 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
const { canCreateList, canEditList, canEditCard, canEditBoard } = const { canCreateList, canEditList, canEditCard, canEditBoard } =
usePermissions(); usePermissions();
const { tooltipContent: createListShortcutTooltipContent } =
useKeyboardShortcut({
type: "PRESS",
stroke: { key: "C" },
action: () => boardId && canCreateList && openNewListForm(boardId),
description: t`Create new list`,
group: "ACTIONS",
});
const boardId = params?.boardId const boardId = params?.boardId
? Array.isArray(params.boardId) ? Array.isArray(params.boardId)
? params.boardId[0] ? params.boardId[0]
: params.boardId : params.boardId
: null; : null;
const createListShortcut = useMemo(
() => ({
type: "PRESS" as const,
stroke: { key: "C" },
action: () => boardId && canCreateList && openNewListForm(boardId),
description: t`Create new list`,
group: "ACTIONS" as const,
}),
[boardId, canCreateList],
);
const { tooltipContent: createListShortcutTooltipContent } =
useKeyboardShortcut(createListShortcut);
const updateBoard = api.board.update.useMutation(); const updateBoard = api.board.update.useMutation();
const { register, handleSubmit, setValue } = useForm<UpdateBoardInput>({ const { register, handleSubmit, setValue } = useForm<UpdateBoardInput>({
@@ -466,13 +460,6 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
/> />
</Modal> </Modal>
<Modal
modalSize="sm"
isVisible={isOpen && modalContentType === "MOVE_BOARD"}
>
<MoveBoardForm boardPublicId={boardId ?? ""} />
</Modal>
<Modal <Modal
modalSize="sm" modalSize="sm"
isVisible={isOpen && modalContentType === "CREATE_TEMPLATE"} isVisible={isOpen && modalContentType === "CREATE_TEMPLATE"}

View File

@@ -5,12 +5,8 @@ import {
ListboxOptions, ListboxOptions,
} from "@headlessui/react"; } from "@headlessui/react";
import { t } from "@lingui/core/macro"; import { t } from "@lingui/core/macro";
import { useMemo, useState } from "react"; import { HiArrowDownTray, HiChevronDown, HiOutlinePlusSmall } from "react-icons/hi2";
import { import { useState } from "react";
HiArrowDownTray,
HiChevronDown,
HiOutlinePlusSmall,
} from "react-icons/hi2";
import Button from "~/components/Button"; import Button from "~/components/Button";
import FeedbackModal from "~/components/FeedbackModal"; import FeedbackModal from "~/components/FeedbackModal";
@@ -37,19 +33,14 @@ export default function BoardsPage({ isTemplate }: { isTemplate?: boolean }) {
const [activeTab, setActiveTab] = useState<"boards" | "archived">("boards"); const [activeTab, setActiveTab] = useState<"boards" | "archived">("boards");
const { canCreateBoard } = usePermissions(); const { canCreateBoard } = usePermissions();
const createBoardShortcut = useMemo( const { tooltipContent: createModalShortcutTooltipContent } =
() => ({ useKeyboardShortcut({
type: "PRESS" as const, type: "PRESS",
stroke: { key: "C" }, stroke: { key: "C" },
action: () => canCreateBoard && openModal("NEW_BOARD"), action: () => canCreateBoard && openModal("NEW_BOARD"),
description: t`Create new ${isTemplate ? "template" : "board"}`, description: t`Create new ${isTemplate ? "template" : "board"}`,
group: "ACTIONS" as const, group: "ACTIONS",
}), });
[canCreateBoard, isTemplate, openModal],
);
const { tooltipContent: createModalShortcutTooltipContent } =
useKeyboardShortcut(createBoardShortcut);
return ( return (
<> <>
@@ -146,7 +137,7 @@ export default function BoardsPage({ isTemplate }: { isTemplate?: boolean }) {
onChange={(tab) => setActiveTab(tab)} onChange={(tab) => setActiveTab(tab)}
> >
<div className="relative mb-4"> <div className="relative mb-4">
<ListboxButton className="w-full appearance-none rounded-md border-0 bg-light-50 py-3 pl-3 pr-10 text-left text-sm font-semibold text-light-1000 shadow-sm ring-1 ring-inset ring-light-300 dark:bg-dark-50 dark:text-dark-1000 dark:ring-dark-300 dark:focus:ring-dark-500"> <ListboxButton className="w-full appearance-none rounded-md border-0 bg-light-50 py-3 pl-3 pr-10 text-left text-sm font-semibold text-light-1000 shadow-sm ring-1 ring-inset ring-light-300 dark:bg-dark-50 dark:text-dark-1000 dark:ring-dark-300 dark:focus:ring-dark-500">
{boardsTabs.find((tab) => tab.key === activeTab)?.label ?? {boardsTabs.find((tab) => tab.key === activeTab)?.label ??
"Select a tab"} "Select a tab"}
<HiChevronDown <HiChevronDown
@@ -160,10 +151,9 @@ export default function BoardsPage({ isTemplate }: { isTemplate?: boolean }) {
key={tab.key} key={tab.key}
value={tab.key} value={tab.key}
className={({ selected }) => className={({ selected }) =>
`relative cursor-pointer select-none py-2 pl-3 pr-9 ${ `relative cursor-pointer select-none py-2 pl-3 pr-9 ${selected
selected ? "font-bold text-light-1000 dark:text-dark-1000"
? "font-bold text-light-1000 dark:text-dark-1000" : "font-normal text-light-1000 dark:text-dark-1000"
: "font-normal text-light-1000 dark:text-dark-1000"
}` }`
} }
> >
@@ -185,11 +175,10 @@ export default function BoardsPage({ isTemplate }: { isTemplate?: boolean }) {
key={tab.key} key={tab.key}
type="button" type="button"
onClick={() => setActiveTab(tab.key)} onClick={() => setActiveTab(tab.key)}
className={`mb-8 mt-2 whitespace-nowrap px-1 py-0 text-sm font-semibold transition-colors focus:outline-none ${ className={`whitespace-nowrap px-1 py-0 mt-2 mb-8 text-sm font-semibold transition-colors focus:outline-none ${activeTab === tab.key
activeTab === tab.key ? "border-light-1000 text-light-1000 dark:border-dark-1000 dark:text-dark-1000"
? "border-light-1000 text-light-1000 dark:border-dark-1000 dark:text-dark-1000" : "border-transparent text-light-900 hover:border-light-950 hover:text-light-950 dark:text-dark-900 dark:hover:border-white/20 dark:hover:text-dark-950"
: "border-transparent text-light-900 hover:border-light-950 hover:text-light-950 dark:text-dark-900 dark:hover:border-white/20 dark:hover:text-dark-950" }`}
}`}
> >
{tab.label} {tab.label}
</button> </button>

View File

@@ -2,10 +2,9 @@ import { t } from "@lingui/core/macro";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
import { HiOutlineArrowUp } from "react-icons/hi2"; import { HiOutlineArrowUp } from "react-icons/hi2";
import type { WorkspaceMember } from "~/components/Editor";
import Editor from "~/components/Editor"; import Editor from "~/components/Editor";
import type { WorkspaceMember } from "~/components/Editor";
import LoadingSpinner from "~/components/LoadingSpinner"; import LoadingSpinner from "~/components/LoadingSpinner";
import { Tooltip } from "~/components/Tooltip";
import { usePermissions } from "~/hooks/usePermissions"; import { usePermissions } from "~/hooks/usePermissions";
import { usePopup } from "~/providers/popup"; import { usePopup } from "~/providers/popup";
import { api } from "~/utils/api"; import { api } from "~/utils/api";
@@ -52,21 +51,6 @@ const NewCommentForm = ({
}); });
}; };
const isMac =
typeof navigator !== "undefined" && navigator.userAgent.includes("Mac");
const submitTooltip = (
<div className="flex flex-row items-center gap-2 text-[11px]">
{t`Submit`}
<span className="inline-flex items-center justify-center rounded border border-light-400 bg-light-200 px-1.5 py-0.5 font-mono text-[8px] font-semibold text-neutral-900 dark:border-dark-400 dark:bg-dark-200 dark:text-dark-950">
{isMac ? "⌘" : "Ctrl"}
</span>
<span className="inline-flex items-center justify-center rounded border border-light-400 bg-light-200 px-1.5 py-0.5 font-mono text-[8px] font-semibold text-neutral-900 dark:border-dark-400 dark:bg-dark-200 dark:text-dark-950">
Enter
</span>
</div>
);
if (!canCreateComment) { if (!canCreateComment) {
return null; return null;
} }
@@ -79,26 +63,23 @@ const NewCommentForm = ({
<Editor <Editor
content={watch("comment")} content={watch("comment")}
onChange={(value) => setValue("comment", value)} onChange={(value) => setValue("comment", value)}
onSubmit={handleSubmit(onSubmit)}
workspaceMembers={workspaceMembers} workspaceMembers={workspaceMembers}
enableYouTubeEmbed={false} enableYouTubeEmbed={false}
placeholder={t`Add comment... (type '/' to open commands or '@' to mention)`} placeholder={t`Add comment... (type '/' to open commands or '@' to mention)`}
disableHeadings={true} disableHeadings={true}
/> />
<div className="flex justify-end"> <div className="flex justify-end">
<Tooltip content={submitTooltip} placement="top"> <button
<button type="submit"
type="submit" disabled={addCommentMutation.isPending}
disabled={addCommentMutation.isPending} className="flex h-8 w-8 items-center justify-center rounded-full border border-light-600 bg-light-300 hover:bg-light-400 disabled:opacity-50 dark:border-dark-400 dark:bg-dark-200 dark:hover:bg-dark-400"
className="flex h-8 w-8 items-center justify-center rounded-full border border-light-600 bg-light-300 hover:bg-light-400 disabled:opacity-50 dark:border-dark-400 dark:bg-dark-200 dark:hover:bg-dark-400" >
> {addCommentMutation.isPending ? (
{addCommentMutation.isPending ? ( <LoadingSpinner size="sm" />
<LoadingSpinner size="sm" /> ) : (
) : ( <HiOutlineArrowUp />
<HiOutlineArrowUp /> )}
)} </button>
</button>
</Tooltip>
</div> </div>
</form> </form>
); );

View File

@@ -48,11 +48,7 @@ export default function SelectPlanView() {
(searchParams.get("billing") as Billing | null) ?? "annual", (searchParams.get("billing") as Billing | null) ?? "annual",
); );
const returnUrl = searchParams.get("returnUrl") ?? "/boards"; const returnUrl = searchParams.get("returnUrl") ?? "/boards";
const workspacePublicId = const workspacePublicId = searchParams.get("workspacePublicId");
searchParams.get("workspacePublicId") ??
(typeof window !== "undefined"
? localStorage.getItem("workspacePublicId")
: null);
const { data: workspaces } = api.workspace.all.useQuery(); const { data: workspaces } = api.workspace.all.useQuery();
const { data: session } = authClient.useSession(); const { data: session } = authClient.useSession();
const { data: user } = api.user.getUser.useQuery(undefined, { const { data: user } = api.user.getUser.useQuery(undefined, {

View File

@@ -61,9 +61,9 @@ services:
- SMTP_REJECT_UNAUTHORIZED=${SMTP_REJECT_UNAUTHORIZED} - SMTP_REJECT_UNAUTHORIZED=${SMTP_REJECT_UNAUTHORIZED}
# Notifications # Notifications
- SUBSCRIBER_API_URL=${SUBSCRIBER_API_URL} - NOVU_API_KEY=${NOVU_API_KEY}
- SUBSCRIBER_API_KEY=${SUBSCRIBER_API_KEY} - DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL}
- SUBSCRIBER_ENVIRONMENT_ID=${SUBSCRIBER_ENVIRONMENT_ID} - EMAIL_UNSUBSCRIBE_SECRET=${EMAIL_UNSUBSCRIBE_SECRET}
# S3 storage # S3 storage
- S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID} - S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID}

View File

@@ -1,268 +0,0 @@
import { describe, it, expect, vi, beforeEach } from "vitest";
import { TRPCError } from "@trpc/server";
// Mock all imports used by board.ts before importing the router
vi.mock("@kan/db/repository/board.repo", () => ({
getBoardForMove: vi.fn(),
isBoardSlugAvailable: vi.fn(),
moveToWorkspace: vi.fn(),
getIdByPublicId: vi.fn(),
getByPublicId: vi.fn(),
getWithListIdsByPublicId: vi.fn(),
getWithLatestListIndexByPublicId: vi.fn(),
getWorkspaceAndBoardIdByBoardPublicId: vi.fn(),
create: vi.fn(),
update: vi.fn(),
updatePositions: vi.fn(),
archive: vi.fn(),
deleteBoard: vi.fn(),
getAllByWorkspaceId: vi.fn(),
createFavorite: vi.fn(),
deleteFavorite: vi.fn(),
getFavorite: vi.fn(),
}));
vi.mock("@kan/db/repository/workspace.repo", () => ({
getByPublicId: vi.fn(),
}));
vi.mock("@kan/db/repository/card.repo", () => ({
getByPublicId: vi.fn(),
create: vi.fn(),
update: vi.fn(),
}));
vi.mock("@kan/db/repository/cardActivity.repo", () => ({
create: vi.fn(),
}));
vi.mock("@kan/db/repository/label.repo", () => ({
create: vi.fn(),
getById: vi.fn(),
getByPublicId: vi.fn(),
}));
vi.mock("@kan/db/repository/list.repo", () => ({
create: vi.fn(),
getByPublicId: vi.fn(),
}));
vi.mock("../utils/permissions", () => ({
assertCanEdit: vi.fn(),
assertCanDelete: vi.fn(),
assertPermission: vi.fn(),
}));
vi.mock("@kan/shared/utils", () => ({
generateSlug: vi.fn((name: string) => name.toLowerCase().replace(/\s+/g, "-")),
generateUID: vi.fn(() => "abc123"),
generateAvatarUrl: vi.fn(),
convertDueDateFiltersToRanges: vi.fn(),
}));
vi.mock("@kan/shared/constants", () => ({
colours: [],
}));
import * as boardRepo from "@kan/db/repository/board.repo";
import * as workspaceRepo from "@kan/db/repository/workspace.repo";
import { assertCanEdit, assertPermission } from "../utils/permissions";
const mockGetBoardForMove = boardRepo.getBoardForMove as ReturnType<typeof vi.fn>;
const mockIsBoardSlugAvailable = boardRepo.isBoardSlugAvailable as ReturnType<typeof vi.fn>;
const mockMoveToWorkspace = boardRepo.moveToWorkspace as ReturnType<typeof vi.fn>;
const mockWorkspaceGetByPublicId = workspaceRepo.getByPublicId as ReturnType<typeof vi.fn>;
const mockAssertCanEdit = assertCanEdit as ReturnType<typeof vi.fn>;
const mockAssertPermission = assertPermission as ReturnType<typeof vi.fn>;
describe("board.move", () => {
const mockDb = {} as never;
const mockUser = { id: "user-123", name: "Test User", email: "test@example.com" };
const mockInput = {
boardPublicId: "brd-123456789",
targetWorkspacePublicId: "ws-target-789",
};
const mockBoard = {
id: 1,
name: "My Board",
slug: "my-board",
type: "board" as const,
isArchived: false,
workspaceId: 10,
createdBy: "user-123",
};
const mockTargetWorkspace = { id: 20, publicId: "ws-target-789" };
beforeEach(() => {
vi.clearAllMocks();
mockAssertCanEdit.mockResolvedValue(undefined);
mockAssertPermission.mockResolvedValue(undefined);
});
it("throws UNAUTHORIZED when user is not authenticated", async () => {
const { boardRouter } = await import("./board");
const ctx = { user: null, db: mockDb } as never;
await expect(
boardRouter.createCaller(ctx).move(mockInput),
).rejects.toThrow(TRPCError);
});
it("throws NOT_FOUND when board does not exist", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce(null);
const ctx = { user: mockUser, db: mockDb } as never;
await expect(
boardRouter.createCaller(ctx).move(mockInput),
).rejects.toThrow(TRPCError);
});
it("throws BAD_REQUEST for template boards", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce({ ...mockBoard, type: "template" });
const ctx = { user: mockUser, db: mockDb } as never;
await expect(
boardRouter.createCaller(ctx).move(mockInput),
).rejects.toThrow(TRPCError);
});
it("throws BAD_REQUEST for archived boards", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce({ ...mockBoard, isArchived: true });
const ctx = { user: mockUser, db: mockDb } as never;
await expect(
boardRouter.createCaller(ctx).move(mockInput),
).rejects.toThrow(TRPCError);
});
it("checks board:edit permission on source workspace", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce(mockBoard);
mockAssertCanEdit.mockRejectedValueOnce(
new TRPCError({ code: "FORBIDDEN", message: "No permission" }),
);
const ctx = { user: mockUser, db: mockDb } as never;
await expect(
boardRouter.createCaller(ctx).move(mockInput),
).rejects.toThrow(TRPCError);
expect(mockAssertCanEdit).toHaveBeenCalledWith(
mockDb,
mockUser.id,
mockBoard.workspaceId,
"board:edit",
mockBoard.createdBy,
);
});
it("throws NOT_FOUND when target workspace does not exist", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce(mockBoard);
mockWorkspaceGetByPublicId.mockResolvedValueOnce(null);
const ctx = { user: mockUser, db: mockDb } as never;
await expect(
boardRouter.createCaller(ctx).move(mockInput),
).rejects.toThrow(TRPCError);
});
it("throws NOT_FOUND when target workspace is soft-deleted", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce(mockBoard);
mockWorkspaceGetByPublicId.mockResolvedValueOnce({
...mockTargetWorkspace,
deletedAt: new Date(),
});
const ctx = { user: mockUser, db: mockDb } as never;
await expect(
boardRouter.createCaller(ctx).move(mockInput),
).rejects.toThrow(TRPCError);
});
it("throws BAD_REQUEST when target is the same workspace", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce(mockBoard);
mockWorkspaceGetByPublicId.mockResolvedValueOnce({
id: mockBoard.workspaceId,
publicId: "ws-target-789",
});
const ctx = { user: mockUser, db: mockDb } as never;
await expect(
boardRouter.createCaller(ctx).move(mockInput),
).rejects.toThrow(TRPCError);
});
it("checks board:create permission on target workspace", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce(mockBoard);
mockWorkspaceGetByPublicId.mockResolvedValueOnce(mockTargetWorkspace);
mockAssertPermission.mockRejectedValueOnce(
new TRPCError({ code: "FORBIDDEN", message: "No permission" }),
);
const ctx = { user: mockUser, db: mockDb } as never;
await expect(
boardRouter.createCaller(ctx).move(mockInput),
).rejects.toThrow(TRPCError);
expect(mockAssertPermission).toHaveBeenCalledWith(
mockDb,
mockUser.id,
mockTargetWorkspace.id,
"board:create",
);
});
it("appends UID suffix when slug conflicts in target workspace", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce(mockBoard);
mockWorkspaceGetByPublicId.mockResolvedValueOnce(mockTargetWorkspace);
mockIsBoardSlugAvailable.mockResolvedValueOnce(false);
mockMoveToWorkspace.mockResolvedValueOnce(undefined);
const ctx = { user: mockUser, db: mockDb } as never;
await boardRouter.createCaller(ctx).move(mockInput);
expect(mockMoveToWorkspace).toHaveBeenCalledWith(
mockDb,
mockBoard.id,
mockTargetWorkspace.id,
"my-board-abc123",
);
});
it("moves board successfully with available slug", async () => {
const { boardRouter } = await import("./board");
mockGetBoardForMove.mockResolvedValueOnce(mockBoard);
mockWorkspaceGetByPublicId.mockResolvedValueOnce(mockTargetWorkspace);
mockIsBoardSlugAvailable.mockResolvedValueOnce(true);
mockMoveToWorkspace.mockResolvedValueOnce(undefined);
const ctx = { user: mockUser, db: mockDb } as never;
const result = await boardRouter.createCaller(ctx).move(mockInput);
expect(result).toEqual({ success: true });
expect(mockMoveToWorkspace).toHaveBeenCalledWith(
mockDb,
mockBoard.id,
mockTargetWorkspace.id,
"my-board",
);
});
});

View File

@@ -644,119 +644,6 @@ export const boardRouter = createTRPCRouter({
} }
} }
return { success: true };
}),
move: protectedProcedure
.meta({
openapi: {
method: "POST",
path: "/boards/{boardPublicId}/move",
summary: "Move board to another workspace",
description:
"Moves a board and all its contents to a different workspace",
tags: ["Boards"],
protect: true,
},
})
.input(
z.object({
boardPublicId: z.string().min(12),
targetWorkspacePublicId: z.string().min(12),
}),
)
.output(z.object({ success: z.boolean() }))
.mutation(async ({ ctx, input }) => {
const userId = ctx.user?.id;
if (!userId)
throw new TRPCError({
message: `User not authenticated`,
code: "UNAUTHORIZED",
});
// Get source board
const board = await boardRepo.getBoardForMove(
ctx.db,
input.boardPublicId,
);
if (!board)
throw new TRPCError({
message: `Board with public ID ${input.boardPublicId} not found`,
code: "NOT_FOUND",
});
if (board.type === "template")
throw new TRPCError({
message: `Templates cannot be moved between workspaces`,
code: "BAD_REQUEST",
});
if (board.isArchived)
throw new TRPCError({
message: `Archived boards cannot be moved. Unarchive the board first.`,
code: "BAD_REQUEST",
});
// Check permission to edit board in source workspace
await assertCanEdit(
ctx.db,
userId,
board.workspaceId,
"board:edit",
board.createdBy ?? null,
);
// Get target workspace. workspaceRepo.getByPublicId does not yet
// filter soft-deleted workspaces (legacy: same is true for several
// peer callers); guard at this call site so we never move a board
// into a tombstoned workspace. A wider fix to make the repo treat
// deleted-as-not-found is a separate concern.
const targetWorkspace = await workspaceRepo.getByPublicId(
ctx.db,
input.targetWorkspacePublicId,
);
if (!targetWorkspace || targetWorkspace.deletedAt)
throw new TRPCError({
message: `Target workspace not found`,
code: "NOT_FOUND",
});
if (targetWorkspace.id === board.workspaceId)
throw new TRPCError({
message: `Board is already in this workspace`,
code: "BAD_REQUEST",
});
// Check permission to create boards in target workspace
await assertPermission(
ctx.db,
userId,
targetWorkspace.id,
"board:create",
);
let slug = board.slug ?? generateSlug(board.name);
const isSlugAvailable = await boardRepo.isBoardSlugAvailable(
ctx.db,
slug,
targetWorkspace.id,
);
if (!isSlugAvailable) {
slug = `${slug}-${generateUID()}`;
}
// Move the board
await boardRepo.moveToWorkspace(
ctx.db,
board.id,
targetWorkspace.id,
slug,
);
return { success: true }; return { success: true };
}), }),
checkSlugAvailability: publicProcedure checkSlugAvailability: publicProcedure

View File

@@ -8,24 +8,20 @@ import * as checklistRepo from "@kan/db/repository/checklist.repo";
import * as labelRepo from "@kan/db/repository/label.repo"; import * as labelRepo from "@kan/db/repository/label.repo";
import * as listRepo from "@kan/db/repository/list.repo"; import * as listRepo from "@kan/db/repository/list.repo";
import * as workspaceRepo from "@kan/db/repository/workspace.repo"; import * as workspaceRepo from "@kan/db/repository/workspace.repo";
import { generateAttachmentUrl, generateAvatarUrl } from "@kan/shared/utils";
import {
activityItemSchema,
cardCreateResponseSchema,
cardDetailSchema,
cardUpdateResponseSchema,
commentDeleteResponseSchema,
commentResponseSchema,
} from "../schemas";
import { createTRPCRouter, protectedProcedure, publicProcedure } from "../trpc"; import { createTRPCRouter, protectedProcedure, publicProcedure } from "../trpc";
import {
cardCreateResponseSchema,
cardUpdateResponseSchema,
cardDetailSchema,
commentResponseSchema,
commentDeleteResponseSchema,
activityItemSchema,
} from "../schemas";
import { mergeActivities } from "../utils/activities"; import { mergeActivities } from "../utils/activities";
import { sendMentionEmails } from "../utils/notifications"; import { sendMentionEmails } from "../utils/notifications";
import { import { assertCanDelete, assertCanEdit, assertPermission } from "../utils/permissions";
assertCanDelete, import { generateAttachmentUrl, generateAvatarUrl } from "@kan/shared/utils";
assertCanEdit,
assertPermission,
} from "../utils/permissions";
import { import {
createCardWebhookPayload, createCardWebhookPayload,
sendWebhooksForWorkspace, sendWebhooksForWorkspace,
@@ -250,12 +246,7 @@ export const cardRouter = createTRPCRouter({
code: "NOT_FOUND", code: "NOT_FOUND",
}); });
await assertPermission( await assertPermission(ctx.db, userId, card.workspaceId, "comment:create");
ctx.db,
userId,
card.workspaceId,
"comment:create",
);
const newComment = await cardCommentRepo.create(ctx.db, { const newComment = await cardCommentRepo.create(ctx.db, {
comment: input.comment, comment: input.comment,
@@ -333,7 +324,7 @@ export const cardRouter = createTRPCRouter({
input.commentPublicId, input.commentPublicId,
); );
if (!existingComment || existingComment.cardId !== card.id) if (!existingComment)
throw new TRPCError({ throw new TRPCError({
message: `Comment with public ID ${input.commentPublicId} not found`, message: `Comment with public ID ${input.commentPublicId} not found`,
code: "NOT_FOUND", code: "NOT_FOUND",
@@ -421,7 +412,7 @@ export const cardRouter = createTRPCRouter({
input.commentPublicId, input.commentPublicId,
); );
if (!existingComment || existingComment.cardId !== card.id) if (!existingComment)
throw new TRPCError({ throw new TRPCError({
message: `Comment with public ID ${input.commentPublicId} not found`, message: `Comment with public ID ${input.commentPublicId} not found`,
code: "NOT_FOUND", code: "NOT_FOUND",
@@ -910,7 +901,10 @@ export const cardRouter = createTRPCRouter({
| undefined; | undefined;
if (input.listPublicId) { if (input.listPublicId) {
newList = await listRepo.getByPublicId(ctx.db, input.listPublicId); newList = await listRepo.getByPublicId(
ctx.db,
input.listPublicId,
);
if (!newList) if (!newList)
throw new TRPCError({ throw new TRPCError({
@@ -1054,14 +1048,12 @@ export const cardRouter = createTRPCRouter({
) { ) {
webhookChanges.dueDate = { from: previousDueDate, to: input.dueDate }; webhookChanges.dueDate = { from: previousDueDate, to: input.dueDate };
} }
const movedToNewList = Boolean( const movedToNewList = Boolean(newListId && existingCard.listId !== newListId);
newListId && existingCard.listId !== newListId,
);
const currentWebhookListPublicId = movedToNewList const currentWebhookListPublicId = movedToNewList
? input.listPublicId! ? input.listPublicId!
: existingCard.list.publicId; : existingCard.list.publicId;
const currentWebhookListName = movedToNewList const currentWebhookListName = movedToNewList
? (newList?.name ?? card.listName) ? newList?.name ?? card.listName
: existingCard.list.name; : existingCard.list.name;
if (movedToNewList) { if (movedToNewList) {
@@ -1299,10 +1291,7 @@ export const cardRouter = createTRPCRouter({
if (input.copyLabels && sourceCard.labels?.length) { if (input.copyLabels && sourceCard.labels?.length) {
const labelPublicIds = sourceCard.labels.map((l) => l.publicId); const labelPublicIds = sourceCard.labels.map((l) => l.publicId);
const labels = await labelRepo.getAllByPublicIds( const labels = await labelRepo.getAllByPublicIds(ctx.db, labelPublicIds);
ctx.db,
labelPublicIds,
);
if (labels.length) { if (labels.length) {
const labelsInsert = labels.map((label) => ({ const labelsInsert = labels.map((label) => ({
cardId: newCard.id, cardId: newCard.id,

View File

@@ -1,9 +1,4 @@
import { env } from "next-runtime-env"; import { describe, it, expect, vi, beforeEach } from "vitest";
import { beforeEach, describe, expect, it, vi } from "vitest";
import * as memberRepo from "@kan/db/repository/member.repo";
import { createDatabaseHooks } from "./hooks";
vi.mock("next-runtime-env", () => ({ vi.mock("next-runtime-env", () => ({
env: vi.fn(), env: vi.fn(),
@@ -20,11 +15,11 @@ vi.mock("@kan/db/repository/user.repo", () => ({
})); }));
vi.mock("@kan/email", () => ({ vi.mock("@kan/email", () => ({
createSubscriber: vi.fn(), notificationClient: null,
triggerSubscriberWorkflow: vi.fn(),
})); }));
vi.mock("@kan/shared", () => ({ vi.mock("@kan/shared", () => ({
createEmailUnsubscribeLink: vi.fn(),
createS3Client: vi.fn(), createS3Client: vi.fn(),
})); }));
@@ -32,10 +27,17 @@ vi.mock("@aws-sdk/client-s3", () => ({
PutObjectCommand: vi.fn(), PutObjectCommand: vi.fn(),
})); }));
vi.mock("@novu/api/models/components", () => ({
ChatOrPushProviderEnum: { Discord: "discord" },
}));
import { env } from "next-runtime-env";
import * as memberRepo from "@kan/db/repository/member.repo";
import { createDatabaseHooks } from "./hooks";
const mockEnv = env as ReturnType<typeof vi.fn>; const mockEnv = env as ReturnType<typeof vi.fn>;
const mockGetByEmailAndStatus = memberRepo.getByEmailAndStatus as ReturnType< const mockGetByEmailAndStatus =
typeof vi.fn memberRepo.getByEmailAndStatus as ReturnType<typeof vi.fn>;
>;
const db = {} as Parameters<typeof createDatabaseHooks>[0]; const db = {} as Parameters<typeof createDatabaseHooks>[0];

View File

@@ -1,18 +1,19 @@
import { PutObjectCommand } from "@aws-sdk/client-s3"; import { PutObjectCommand } from "@aws-sdk/client-s3";
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";
import type { dbClient } from "@kan/db/client"; 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 { createSubscriber, triggerSubscriberWorkflow } from "@kan/email"; import { notificationClient } from "@kan/email";
import { createLogger } from "@kan/logger"; import { createLogger } from "@kan/logger";
import { createS3Client } from "@kan/shared"; import { createEmailUnsubscribeLink, createS3Client } from "@kan/shared";
import { downloadImage } from "./utils";
const log = createLogger("auth"); const log = createLogger("auth");
import { downloadImage } from "./utils";
type BetterAuthUser = { type BetterAuthUser = {
id: string; id: string;
createdAt: Date; createdAt: Date;
@@ -93,49 +94,53 @@ export function createDatabaseHooks(db: dbClient) {
} }
} }
const [firstName, ...rest] = (user.name || "") if (notificationClient) {
.split(" ") try {
.filter(Boolean); const [firstName, ...rest] = (user.name || "")
const lastName = rest.length ? rest.join(" ") : undefined; .split(" ")
.filter(Boolean);
const lastName = rest.length ? rest.join(" ") : undefined;
const avatarUrl = avatarKey
? `${env("NEXT_PUBLIC_STORAGE_URL")}/${env("NEXT_PUBLIC_AVATAR_BUCKET_NAME")}/${avatarKey}`
: undefined;
try { const unsubscribeUrl = await createEmailUnsubscribeLink(user.id);
const avatarUrl = avatarKey
? `${env("NEXT_PUBLIC_STORAGE_URL")}/${env("NEXT_PUBLIC_AVATAR_BUCKET_NAME")}/${avatarKey}`
: undefined;
await createSubscriber({ log.info({ workflowId: "user-signup", userId: user.id, email: user.email }, "Triggering Novu workflow");
publicId: user.id, await notificationClient.trigger({
email: user.email, to: {
externalId: user.id, subscriberId: user.id,
firstName, firstName: firstName,
lastName, lastName: lastName,
name: user.name, email: user.email,
attributes: { avatar: avatarUrl,
avatarUrl, data: {
emailVerified: user.emailVerified, emailVerified: user.emailVerified,
stripeCustomerId: user.stripeCustomerId, stripeCustomerId: user.stripeCustomerId,
createdAt: user.createdAt, createdAt: user.createdAt,
updatedAt: user.updatedAt, updatedAt: user.updatedAt,
}, },
}); },
} catch (error) { payload: {
log.error({ err: error }, "Error creating subscriber"); emailUnsubscribeUrl: unsubscribeUrl,
} },
workflowId: "user-signup",
});
log.info({ workflowId: "user-signup", userId: user.id }, "Novu workflow triggered");
try { await notificationClient.subscribers.credentials.update(
log.info( {
{ workflowId: "user-signup", userId: user.id, email: user.email }, providerId: ChatOrPushProviderEnum.Discord,
"Triggering user-signup workflow", credentials: {
); webhookUrl: env("DISCORD_WEBHOOK_URL"),
await triggerSubscriberWorkflow("user-signup", { },
publicId: user.id, integrationIdentifier: "discord",
}); },
log.info( user.id,
{ workflowId: "user-signup", userId: user.id }, );
"user-signup workflow triggered", } catch (error) {
); log.error({ err: error }, "Error adding user to notification client");
} catch (error) { }
log.error({ err: error }, "Error triggering user-signup workflow");
} }
}, },
}, },

View File

@@ -3,8 +3,9 @@ import type Stripe from "stripe";
import type { dbClient } from "@kan/db/client"; import type { dbClient } from "@kan/db/client";
import * as userRepo from "@kan/db/repository/user.repo"; import * as userRepo from "@kan/db/repository/user.repo";
import { triggerSubscriberWorkflow } from "@kan/email"; import { notificationClient } from "@kan/email";
import { createLogger } from "@kan/logger"; import { createLogger } from "@kan/logger";
import { createEmailUnsubscribeLink } from "@kan/shared";
const log = createLogger("auth"); const log = createLogger("auth");
@@ -23,22 +24,30 @@ export async function triggerWorkflow(
cancellationDetails?: Stripe.Subscription.CancellationDetails | null, cancellationDetails?: Stripe.Subscription.CancellationDetails | null,
) { ) {
try { try {
if (!subscription.stripeCustomerId) return; if (!subscription.stripeCustomerId || !notificationClient) return;
const user = await userRepo.getByStripeCustomerId( const user = await userRepo.getByStripeCustomerId(
db, db,
subscription.stripeCustomerId, subscription.stripeCustomerId,
); );
if (!user) return; if (!user || !notificationClient) return;
log.info({ workflowId, userId: user.id }, "Triggering workflow"); const unsubscribeUrl = await createEmailUnsubscribeLink(user.id);
await triggerSubscriberWorkflow(
log.info({ workflowId, userId: user.id }, "Triggering Novu workflow");
await notificationClient.trigger({
to: {
subscriberId: user.id,
},
payload: {
...subscription,
cancellationDetails,
emailUnsubscribeUrl: unsubscribeUrl,
},
workflowId, workflowId,
{ publicId: user.id }, });
{ ...subscription, cancellationDetails }, log.info({ workflowId, userId: user.id }, "Novu workflow triggered");
);
log.info({ workflowId, userId: user.id }, "Workflow triggered");
} catch (error) { } catch (error) {
log.error({ err: error, workflowId }, "Error triggering workflow"); log.error({ err: error, workflowId }, "Error triggering workflow");
} }

View File

@@ -724,30 +724,6 @@ export const getWorkspaceAndBoardIdByBoardPublicId = async (
return result; return result;
}; };
/**
* Fetches the board fields needed by the move mutation:
* identity, naming, type guards, and workspace ownership.
* Soft-deleted boards are excluded — moving a tombstoned board has
* no defensible semantics.
*/
export const getBoardForMove = async (
db: dbClient,
boardPublicId: string,
) => {
return db.query.boards.findFirst({
columns: {
id: true,
name: true,
slug: true,
type: true,
isArchived: true,
workspaceId: true,
createdBy: true,
},
where: and(eq(boards.publicId, boardPublicId), isNull(boards.deletedAt)),
});
};
export const isBoardSlugAvailable = async ( export const isBoardSlugAvailable = async (
db: dbClient, db: dbClient,
boardSlug: string, boardSlug: string,
@@ -993,61 +969,6 @@ export const createFromSnapshot = async (
}); });
}; };
export const moveToWorkspace = async (
db: dbClient,
boardId: number,
targetWorkspaceId: number,
newSlug?: string,
) => {
return db.transaction(async (tx) => {
// Update the board's workspace (and slug if provided)
const [updatedBoard] = await tx
.update(boards)
.set({
workspaceId: targetWorkspaceId,
...(newSlug && { slug: newSlug }),
updatedAt: new Date(),
})
.where(eq(boards.id, boardId))
.returning({
publicId: boards.publicId,
name: boards.name,
});
if (!updatedBoard) throw new Error("Failed to move board");
// Get every card ID ever belonging to this board, including
// soft-deleted cards under soft-deleted lists. Member assignments
// point at workspace-scoped members that no longer exist after
// the move; if we leave assignments on soft-deleted cards, a later
// restore would resurrect rogue references to the old workspace.
const boardLists = await tx
.select({ id: lists.id })
.from(lists)
.where(eq(lists.boardId, boardId));
if (boardLists.length > 0) {
const listIds = boardLists.map((l) => l.id);
const boardCards = await tx
.select({ id: cards.id })
.from(cards)
.where(inArray(cards.listId, listIds));
if (boardCards.length > 0) {
const cardIds = boardCards.map((c) => c.id);
// Clear all card member assignments (they reference workspace-scoped members)
await tx
.delete(cardToWorkspaceMembers)
.where(inArray(cardToWorkspaceMembers.cardId, cardIds));
}
}
return updatedBoard;
});
};
export const addUserFavorite = async ( export const addUserFavorite = async (
db: dbClient, db: dbClient,
userId: string, userId: string,

View File

@@ -45,7 +45,6 @@ export const getByPublicId = (db: dbClient, publicId: string) => {
publicId: true, publicId: true,
comment: true, comment: true,
createdBy: true, createdBy: true,
cardId: true,
}, },
where: eq(comments.publicId, publicId), where: eq(comments.publicId, publicId),
}); });

View File

@@ -176,7 +176,6 @@ export const getByPublicId = (db: dbClient, workspacePublicId: string) => {
name: true, name: true,
plan: true, plan: true,
slug: true, slug: true,
deletedAt: true,
createdBy: true, createdBy: true,
}, },
where: eq(workspaces.publicId, workspacePublicId), where: eq(workspaces.publicId, workspacePublicId),

View File

@@ -24,6 +24,7 @@
}, },
"dependencies": { "dependencies": {
"@kan/logger": "workspace:^", "@kan/logger": "workspace:^",
"@novu/api": "^3.11.0",
"@react-email/components": "^1.0.1", "@react-email/components": "^1.0.1",
"nodemailer": "^7.0.3", "nodemailer": "^7.0.3",
"react-email": "^5.0.6" "react-email": "^5.0.6"

View File

@@ -1,8 +1,4 @@
export const name = "email"; export const name = "email";
export { sendEmail } from "./sendEmail"; export { sendEmail } from "./sendEmail";
export { export { notificationClient } from "./notificationClient";
createSubscriber,
updateSubscriberPreferences,
triggerSubscriberWorkflow,
} from "./subscriberClient";

View File

@@ -0,0 +1,6 @@
import { Novu } from "@novu/api";
export const notificationClient =
process.env.NEXT_PUBLIC_KAN_ENV === "cloud" && process.env.NOVU_API_KEY
? new Novu({ secretKey: process.env.NOVU_API_KEY })
: null;

View File

@@ -1,115 +0,0 @@
import { createLogger } from "@kan/logger";
const log = createLogger("subscriberClient");
export const subscriberClient =
process.env.NEXT_PUBLIC_KAN_ENV === "cloud" &&
process.env.SUBSCRIBER_API_URL &&
process.env.SUBSCRIBER_API_KEY &&
process.env.SUBSCRIBER_ENVIRONMENT_ID
? {
apiUrl: process.env.SUBSCRIBER_API_URL,
apiKey: process.env.SUBSCRIBER_API_KEY,
environmentId: process.env.SUBSCRIBER_ENVIRONMENT_ID,
}
: null;
async function subscriberRequest(
method: string,
path: string,
body: unknown,
errorMessage: string,
) {
if (!subscriberClient) return;
const url = `${subscriberClient.apiUrl}${path}`;
log.debug({ method, url, body }, "subscriber.dev request");
try {
const response = await fetch(url, {
method,
headers: {
"Content-Type": "application/json",
"X-API-Key": subscriberClient.apiKey,
},
body: JSON.stringify(body),
});
const responseBody = await response.text().catch(() => undefined);
log.debug(
{ method, url, status: response.status, body: responseBody },
"subscriber.dev response",
);
if (!response.ok) {
log.error(
{ status: response.status, body: responseBody },
errorMessage,
);
}
} catch (error) {
log.error({ err: error }, errorMessage);
}
}
interface CreateSubscriberInput {
publicId: string;
email: string;
externalId: string;
firstName?: string;
lastName?: string;
name?: string;
attributes?: Record<string, unknown>;
}
export async function createSubscriber(input: CreateSubscriberInput) {
if (!subscriberClient) return;
await subscriberRequest(
"POST",
`/environments/${subscriberClient.environmentId}/subscribers`,
input,
"Failed to create subscriber.dev subscriber",
);
}
interface UpdateSubscriberPreferencesInput {
email: boolean;
}
export async function updateSubscriberPreferences(
subscriberId: string,
input: UpdateSubscriberPreferencesInput,
) {
if (!subscriberClient) return;
await subscriberRequest(
"PATCH",
`/environments/${subscriberClient.environmentId}/subscribers/${subscriberId}/preferences`,
input,
"Failed to update subscriber preferences",
);
}
interface TriggerWorkflowSubscriberInput {
publicId?: string;
externalId?: string;
email?: string;
}
export async function triggerSubscriberWorkflow(
key: string,
subscriber: TriggerWorkflowSubscriberInput,
payload?: Record<string, unknown>,
) {
if (!subscriberClient) return;
await subscriberRequest(
"POST",
`/environments/${subscriberClient.environmentId}/workflows/trigger`,
{ key, subscriber, payload },
"Failed to trigger subscriber.dev workflow",
);
}

View File

@@ -119,7 +119,7 @@ export function registerCardTools(server: McpServer): void {
content: z.string().describe("Comment text"), content: z.string().describe("Comment text"),
}, },
async ({ cardPublicId, content }) => { async ({ cardPublicId, content }) => {
const data = await kanRequest("POST", `/cards/${cardPublicId}/comments`, { comment: content }); const data = await kanRequest("POST", `/cards/${cardPublicId}/comments`, { content });
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] }; return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
}, },
); );
@@ -136,7 +136,7 @@ export function registerCardTools(server: McpServer): void {
const data = await kanRequest( const data = await kanRequest(
"PUT", "PUT",
`/cards/${cardPublicId}/comments/${commentPublicId}`, `/cards/${cardPublicId}/comments/${commentPublicId}`,
{ comment: content }, { content },
); );
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] }; return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
}, },

View File

@@ -0,0 +1,32 @@
import { SignJWT } from "jose";
import { env } from "next-runtime-env";
const encoder = new TextEncoder();
/**
* Creates a longlived unsubscribe link for a given user/subscriber.
*
* `${NEXT_PUBLIC_BASE_URL}/unsubscribe?token=<jwt>`
*
* The JWT payload only contains the subscriberId. There is no expiry
* on purpose unsubscribe links should remain valid indefinitely.
*
*/
export async function createEmailUnsubscribeLink(
userId: string,
): Promise<string | null> {
const baseUrl = env("NEXT_PUBLIC_BASE_URL");
const secret = process.env.EMAIL_UNSUBSCRIBE_SECRET;
if (!baseUrl || !secret) {
// Environment not configured for unsubscribe links.
return null;
}
const token = await new SignJWT({ subscriberId: userId })
.setProtectedHeader({ alg: "HS256" })
// No expiration on purpose; unsubscribe links are longlived.
.sign(encoder.encode(secret));
return `${baseUrl}/unsubscribe?token=${encodeURIComponent(token)}`;
}

View File

@@ -2,6 +2,7 @@ export * from "./generateUID";
export * from "./generateSlug"; export * from "./generateSlug";
export * from "./generateWorkspacePrefix"; export * from "./generateWorkspacePrefix";
export * from "./subscriptions"; export * from "./subscriptions";
export * from "./email";
export * from "./dueDateFilters"; export * from "./dueDateFilters";
export * from "./s3"; export * from "./s3";
export * from "./mentions"; export * from "./mentions";

43
pnpm-lock.yaml generated
View File

@@ -103,9 +103,6 @@ importers:
'@kan/db': '@kan/db':
specifier: workspace:^ specifier: workspace:^
version: link:../../packages/db version: link:../../packages/db
'@kan/email':
specifier: workspace:^
version: link:../../packages/email
'@kan/logger': '@kan/logger':
specifier: workspace:^ specifier: workspace:^
version: link:../../packages/logger version: link:../../packages/logger
@@ -124,6 +121,9 @@ importers:
'@lingui/react': '@lingui/react':
specifier: ^5.3.2 specifier: ^5.3.2
version: 5.4.1(@lingui/babel-plugin-lingui-macro@5.4.1(typescript@5.9.2))(react@18.3.1) version: 5.4.1(@lingui/babel-plugin-lingui-macro@5.4.1(typescript@5.9.2))(react@18.3.1)
'@novu/api':
specifier: ^3.11.0
version: 3.11.0
'@t3-oss/env-nextjs': '@t3-oss/env-nextjs':
specifier: ^0.11.1 specifier: ^0.11.1
version: 0.11.1(typescript@5.9.2)(zod@3.25.76) version: 0.11.1(typescript@5.9.2)(zod@3.25.76)
@@ -467,6 +467,9 @@ importers:
'@kan/logger': '@kan/logger':
specifier: workspace:^ specifier: workspace:^
version: link:../logger version: link:../logger
'@novu/api':
specifier: ^3.11.0
version: 3.11.0
'@react-email/components': '@react-email/components':
specifier: ^1.0.1 specifier: ^1.0.1
version: 1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) version: 1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -1538,11 +1541,11 @@ packages:
'@esbuild-kit/core-utils@3.3.2': '@esbuild-kit/core-utils@3.3.2':
resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==}
deprecated: 'Merged into tsx: https://tsx.hirok.io' deprecated: 'Merged into tsx: https://tsx.is'
'@esbuild-kit/esm-loader@2.6.5': '@esbuild-kit/esm-loader@2.6.5':
resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==}
deprecated: 'Merged into tsx: https://tsx.hirok.io' deprecated: 'Merged into tsx: https://tsx.is'
'@esbuild/aix-ppc64@0.19.12': '@esbuild/aix-ppc64@0.19.12':
resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
@@ -2995,6 +2998,9 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
'@novu/api@3.11.0':
resolution: {integrity: sha512-8u0mB5VThL7MhdxoN0UoA4CS9eu2k3Xa6iulauMhCHENuJNxUNuirJWq5t8jDoH4bFTQTfMN0VRkC0qodKR2qA==}
'@octokit/auth-token@3.0.4': '@octokit/auth-token@3.0.4':
resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==} resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==}
engines: {node: '>= 14'} engines: {node: '>= 14'}
@@ -3091,111 +3097,95 @@ packages:
'@react-email/body@0.2.0': '@react-email/body@0.2.0':
resolution: {integrity: sha512-9GCWmVmKUAoRfloboCd+RKm6X17xn7eGL7HnpAZUnjBXBilWCxsKnLMTC/ixSHDKS/A/057M1Tx6ZUXd89sVBw==} resolution: {integrity: sha512-9GCWmVmKUAoRfloboCd+RKm6X17xn7eGL7HnpAZUnjBXBilWCxsKnLMTC/ixSHDKS/A/057M1Tx6ZUXd89sVBw==}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/button@0.2.0': '@react-email/button@0.2.0':
resolution: {integrity: sha512-8i+v6cMxr2emz4ihCrRiYJPp2/sdYsNNsBzXStlcA+/B9Umpm5Jj3WJKYpgTPM+aeyiqlG/MMI1AucnBm4f1oQ==} resolution: {integrity: sha512-8i+v6cMxr2emz4ihCrRiYJPp2/sdYsNNsBzXStlcA+/B9Umpm5Jj3WJKYpgTPM+aeyiqlG/MMI1AucnBm4f1oQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/code-block@0.2.0': '@react-email/code-block@0.2.0':
resolution: {integrity: sha512-eIrPW9PIFgDopQU0e/OPpwCW2QWQDtNZDSsiN4sJO8KdMnWWnXJicnRfzrit5rHwFo+Y98i+w/Y5ScnBAFr1dQ==} resolution: {integrity: sha512-eIrPW9PIFgDopQU0e/OPpwCW2QWQDtNZDSsiN4sJO8KdMnWWnXJicnRfzrit5rHwFo+Y98i+w/Y5ScnBAFr1dQ==}
engines: {node: '>=22.0.0'} engines: {node: '>=22.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/code-inline@0.0.5': '@react-email/code-inline@0.0.5':
resolution: {integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==} resolution: {integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/column@0.0.13': '@react-email/column@0.0.13':
resolution: {integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==} resolution: {integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/components@1.0.1': '@react-email/components@1.0.1':
resolution: {integrity: sha512-HnL0Y/up61sOBQT2cQg9N/kCoW0bP727gDs2MkFWQYELg6+iIHidMDvENXFC0f1ZE6hTB+4t7sszptvTcJWsDA==} resolution: {integrity: sha512-HnL0Y/up61sOBQT2cQg9N/kCoW0bP727gDs2MkFWQYELg6+iIHidMDvENXFC0f1ZE6hTB+4t7sszptvTcJWsDA==}
engines: {node: '>=22.0.0'} engines: {node: '>=22.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/container@0.0.15': '@react-email/container@0.0.15':
resolution: {integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==} resolution: {integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/font@0.0.9': '@react-email/font@0.0.9':
resolution: {integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==} resolution: {integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/head@0.0.12': '@react-email/head@0.0.12':
resolution: {integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==} resolution: {integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/heading@0.0.15': '@react-email/heading@0.0.15':
resolution: {integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==} resolution: {integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/hr@0.0.11': '@react-email/hr@0.0.11':
resolution: {integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==} resolution: {integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/html@0.0.11': '@react-email/html@0.0.11':
resolution: {integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==} resolution: {integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/img@0.0.11': '@react-email/img@0.0.11':
resolution: {integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==} resolution: {integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/link@0.0.12': '@react-email/link@0.0.12':
resolution: {integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==} resolution: {integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/markdown@0.0.17': '@react-email/markdown@0.0.17':
resolution: {integrity: sha512-6op3AfsBC9BJKkhG+eoMFRFWlr0/f3FYbtQrK+VhGzJocEAY0WINIFN+W8xzXr//3IL0K/aKtnH3FtpIuescQQ==} resolution: {integrity: sha512-6op3AfsBC9BJKkhG+eoMFRFWlr0/f3FYbtQrK+VhGzJocEAY0WINIFN+W8xzXr//3IL0K/aKtnH3FtpIuescQQ==}
engines: {node: '>=22.0.0'} engines: {node: '>=22.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/preview@0.0.13': '@react-email/preview@0.0.13':
resolution: {integrity: sha512-F7j9FJ0JN/A4d7yr+aw28p4uX7VLWs7hTHtLo7WRyw4G+Lit6Zucq4UWKRxJC8lpsUdzVmG7aBJnKOT+urqs/w==} resolution: {integrity: sha512-F7j9FJ0JN/A4d7yr+aw28p4uX7VLWs7hTHtLo7WRyw4G+Lit6Zucq4UWKRxJC8lpsUdzVmG7aBJnKOT+urqs/w==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
@@ -3209,21 +3199,18 @@ packages:
'@react-email/row@0.0.12': '@react-email/row@0.0.12':
resolution: {integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==} resolution: {integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/section@0.0.16': '@react-email/section@0.0.16':
resolution: {integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==} resolution: {integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
'@react-email/tailwind@2.0.1': '@react-email/tailwind@2.0.1':
resolution: {integrity: sha512-/xq0IDYVY7863xPY7cdI45Xoz7M6CnIQBJcQvbqN7MNVpopfH9f+mhjayV1JGfKaxlGWuxfLKhgi9T2shsnEFg==} resolution: {integrity: sha512-/xq0IDYVY7863xPY7cdI45Xoz7M6CnIQBJcQvbqN7MNVpopfH9f+mhjayV1JGfKaxlGWuxfLKhgi9T2shsnEFg==}
engines: {node: '>=22.0.0'} engines: {node: '>=22.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
'@react-email/body': 0.2.0 '@react-email/body': 0.2.0
'@react-email/button': 0.2.0 '@react-email/button': 0.2.0
@@ -3262,7 +3249,6 @@ packages:
'@react-email/text@0.1.5': '@react-email/text@0.1.5':
resolution: {integrity: sha512-o5PNHFSE085VMXayxH+SJ1LSOtGsTv+RpNKnTiJDrJUwoBu77G3PlKOsZZQHCNyD28WsQpl9v2WcJLbQudqwPg==} resolution: {integrity: sha512-o5PNHFSE085VMXayxH+SJ1LSOtGsTv+RpNKnTiJDrJUwoBu77G3PlKOsZZQHCNyD28WsQpl9v2WcJLbQudqwPg==}
engines: {node: '>=18.0.0'} engines: {node: '>=18.0.0'}
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
peerDependencies: peerDependencies:
react: ^18.0 || ^19.0 || ^19.0.0-rc react: ^18.0 || ^19.0 || ^19.0.0-rc
@@ -4310,7 +4296,6 @@ packages:
'@ungap/structured-clone@1.3.0': '@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
deprecated: Potential CWE-502 - Update to 1.3.1 or higher
'@vitest/expect@3.2.4': '@vitest/expect@3.2.4':
resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
@@ -4633,7 +4618,6 @@ packages:
basic-ftp@5.0.5: basic-ftp@5.0.5:
resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
deprecated: Security vulnerability fixed in 5.2.1, please upgrade
before-after-hook@2.2.3: before-after-hook@2.2.3:
resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
@@ -8750,7 +8734,6 @@ packages:
uuid@9.0.1: uuid@9.0.1:
resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028).
hasBin: true hasBin: true
uvu@0.5.6: uvu@0.5.6:
@@ -11496,6 +11479,10 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5 '@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1 fastq: 1.19.1
'@novu/api@3.11.0':
dependencies:
zod: 3.25.76
'@octokit/auth-token@3.0.4': {} '@octokit/auth-token@3.0.4': {}
'@octokit/core@4.2.4': '@octokit/core@4.2.4':

View File

@@ -123,6 +123,7 @@
"NEXT_PUBLIC_KAN_ENV", "NEXT_PUBLIC_KAN_ENV",
"NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY", "NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY",
"STRIPE_SECRET_KEY", "STRIPE_SECRET_KEY",
"DISCORD_WEBHOOK_URL",
"STRIPE_WEBHOOK_SECRET", "STRIPE_WEBHOOK_SECRET",
"STRIPE_WEBHOOK_SECRET_LEGACY", "STRIPE_WEBHOOK_SECRET_LEGACY",
"STRIPE_PRO_PLAN_MONTHLY_PRICE_ID", "STRIPE_PRO_PLAN_MONTHLY_PRICE_ID",
@@ -147,6 +148,8 @@
"PORT", "PORT",
"BETTER_AUTH_SECRET", "BETTER_AUTH_SECRET",
"BETTER_AUTH_TRUSTED_ORIGINS", "BETTER_AUTH_TRUSTED_ORIGINS",
"NOVU_API_KEY",
"EMAIL_UNSUBSCRIBE_SECRET",
"REDIS_URL", "REDIS_URL",
"LOG_LEVEL", "LOG_LEVEL",
"AXIOM_TOKEN", "AXIOM_TOKEN",