Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 994bf5c7e0 | |||
| 61123f708d | |||
| 5a8a478386 | |||
|
|
02b367fcaa | ||
|
|
f9aaebc4b5 | ||
|
|
56af094c50 | ||
|
|
e9ebd06eaa | ||
|
|
b4e9dd3811 | ||
|
|
d6aa82e070 | ||
|
|
4291d7bc8c | ||
|
|
5c72968d44 | ||
|
|
5b586f4871 | ||
|
|
fee82e5e73 | ||
|
|
03a043784a | ||
|
|
395dbfae04 | ||
|
|
9ec4bedd9a | ||
|
|
ca694595c7 | ||
|
|
0500d5171d | ||
|
|
a15e193f66 | ||
|
|
019ecbc364 | ||
|
|
82b2b4a8e1 | ||
|
|
c1adb2d4dd | ||
|
|
25ed4e39b3 |
@@ -60,3 +60,7 @@ pnpm-debug.log
|
||||
|
||||
# Cloud compose (separate deployment)
|
||||
cloud/
|
||||
|
||||
# Local temporary caches
|
||||
.pnpm-store
|
||||
v8-compile-cache-0
|
||||
|
||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -4,6 +4,9 @@
|
||||
node_modules
|
||||
.pnp
|
||||
.pnp.js
|
||||
.pnpm/
|
||||
.pnpm-store/
|
||||
v8-compile-cache-0/
|
||||
|
||||
# testing
|
||||
coverage
|
||||
@@ -55,4 +58,7 @@ i18n.cache
|
||||
# pgdata
|
||||
/apps/web/pgdata
|
||||
|
||||
.claude
|
||||
# local scripts
|
||||
scripts/
|
||||
|
||||
.claude
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"version": "1.10",
|
||||
"locale": {
|
||||
"source": "en",
|
||||
"targets": ["fr", "de", "es", "it", "nl", "ru", "pl", "pt-BR"]
|
||||
"targets": ["fr", "de", "es", "it", "nl", "ru", "pl", "pt-BR", "zh-CN"]
|
||||
},
|
||||
"buckets": {
|
||||
"json": {
|
||||
|
||||
@@ -384,6 +384,9 @@ checksums:
|
||||
i0ZMQl/message: f739058266a2cb6a3d7cca14de09c69a
|
||||
i0ZMQl/origin/0/0: 0ad2af981579a62b084b3d41462c5546
|
||||
i0ZMQl/translation: f739058266a2cb6a3d7cca14de09c69a
|
||||
wE3hGS/message: 1b3bccc465ad34111956b1c705c52031
|
||||
wE3hGS/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
|
||||
wE3hGS/translation: 1b3bccc465ad34111956b1c705c52031
|
||||
wewm3j/message: 985c0177744ec56d8dac84f66ec284ca
|
||||
wewm3j/origin/0/0: bcd95e286f12800a3e7ee0a71feb3ca5
|
||||
wewm3j/translation: 985c0177744ec56d8dac84f66ec284ca
|
||||
@@ -536,19 +539,20 @@ checksums:
|
||||
dEgA5A/origin/1/0: a50c4fbde8da6e0a77c4e0aef0b44dea
|
||||
dEgA5A/origin/2/0: 97bd206a05414e2a571020d64e166093
|
||||
dEgA5A/origin/3/0: 522726bb62051656dc0d165185d6b451
|
||||
dEgA5A/origin/4/0: b2059fa4b8b99cc10440da26475b234c
|
||||
dEgA5A/origin/5/0: 2a382c1cdf010f01a8e95c3e05f6df53
|
||||
dEgA5A/origin/6/0: d55f532bb5ae247e3a018978be0da463
|
||||
dEgA5A/origin/7/0: 4b4f55c033add8db69178563832227c6
|
||||
dEgA5A/origin/8/0: 68450df287fb46ea629e818732c1291a
|
||||
dEgA5A/origin/9/0: 15ea2dfd5eae4e05b226b1320103476e
|
||||
dEgA5A/origin/10/0: 03c00909b41be01231cd3e843c8ee44e
|
||||
dEgA5A/origin/11/0: 0627e0040ca4939c9a57349e98c51797
|
||||
dEgA5A/origin/12/0: 15792234f408027822ee71ccddde6f9b
|
||||
dEgA5A/origin/13/0: 5c60161e173f5eae9276d8e4c70b4ebb
|
||||
dEgA5A/origin/14/0: a1fde3fcce608870830f168f027727ff
|
||||
dEgA5A/origin/15/0: 83911e3eacbad4583e2b1647a784d154
|
||||
dEgA5A/origin/16/0: dbad0c8d7863cb41f5495264f82e7081
|
||||
dEgA5A/origin/4/0: f8e87f3fc3dc63bc7961601feb860fa8
|
||||
dEgA5A/origin/5/0: b2059fa4b8b99cc10440da26475b234c
|
||||
dEgA5A/origin/6/0: 2a382c1cdf010f01a8e95c3e05f6df53
|
||||
dEgA5A/origin/7/0: d55f532bb5ae247e3a018978be0da463
|
||||
dEgA5A/origin/8/0: 4b4f55c033add8db69178563832227c6
|
||||
dEgA5A/origin/9/0: 68450df287fb46ea629e818732c1291a
|
||||
dEgA5A/origin/10/0: 15ea2dfd5eae4e05b226b1320103476e
|
||||
dEgA5A/origin/11/0: 03c00909b41be01231cd3e843c8ee44e
|
||||
dEgA5A/origin/12/0: 0627e0040ca4939c9a57349e98c51797
|
||||
dEgA5A/origin/13/0: 15792234f408027822ee71ccddde6f9b
|
||||
dEgA5A/origin/14/0: 5c60161e173f5eae9276d8e4c70b4ebb
|
||||
dEgA5A/origin/15/0: a1fde3fcce608870830f168f027727ff
|
||||
dEgA5A/origin/16/0: 83911e3eacbad4583e2b1647a784d154
|
||||
dEgA5A/origin/17/0: dbad0c8d7863cb41f5495264f82e7081
|
||||
dEgA5A/translation: 2e2a849c2223911717de8caa2c71bade
|
||||
kryGs%2B/message: bba0beaced7ea954ceb980f2b022ffee
|
||||
kryGs%2B/origin/0/0: 15fd9c05fc09ccbbb54aadc4aa5e5501
|
||||
@@ -560,6 +564,9 @@ checksums:
|
||||
9trBXW/message: 0035c67fb6f70992effb263b0b30e6d4
|
||||
9trBXW/origin/0/0: 1b05beba6bdd908015fa8e798717f024
|
||||
9trBXW/translation: 0035c67fb6f70992effb263b0b30e6d4
|
||||
AgE2vR/message: a295a7050379531f9f56ada01c32e8e1
|
||||
AgE2vR/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
|
||||
AgE2vR/translation: a295a7050379531f9f56ada01c32e8e1
|
||||
fEY2vP/message: 91509e2f92b0b3b11330b6983139fdbf
|
||||
fEY2vP/origin/0/0: 15fd9c05fc09ccbbb54aadc4aa5e5501
|
||||
fEY2vP/origin/1/0: 15fd9c05fc09ccbbb54aadc4aa5e5501
|
||||
@@ -932,6 +939,9 @@ checksums:
|
||||
f8fH8W/message: 991b75727b6784c1a063a7462b76186d
|
||||
f8fH8W/origin/0/0: eb63312c63f6c8d2a5b6520c89012123
|
||||
f8fH8W/translation: 991b75727b6784c1a063a7462b76186d
|
||||
Uf%2B1DF/message: e5b4d2df65d6676318682404de4e38d3
|
||||
Uf%2B1DF/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
|
||||
Uf%2B1DF/translation: e5b4d2df65d6676318682404de4e38d3
|
||||
Odv3J6/message: f3cc49ba2dc3f9c33917f8a749d68bf5
|
||||
Odv3J6/origin/0/0: 9d4260644f1a12f41d6b72574eeb111c
|
||||
Odv3J6/translation: f3cc49ba2dc3f9c33917f8a749d68bf5
|
||||
@@ -1675,12 +1685,21 @@ checksums:
|
||||
vneRvS/message: e228107df80015377112d41f4f155cb3
|
||||
vneRvS/origin/0/0: 8628ddb6f4ded25c0f17e2cbda8207d3
|
||||
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/origin/0/0: 0eeeb7e68164ff118040918f1ef00a7a
|
||||
51UCsN/translation: ce14fde5e972c2b5276c25ddded817c4
|
||||
J4%2BOTA/message: 6ad27e803483208b5313660b7b5791d3
|
||||
J4%2BOTA/origin/0/0: fd0e66cef8d46e96bcf3143a12f9b6db
|
||||
J4%2BOTA/translation: 6ad27e803483208b5313660b7b5791d3
|
||||
S3wq2O/message: 9268b9b2e31373e5ac2e29c19d08e1ef
|
||||
S3wq2O/origin/0/0: 0ad2af981579a62b084b3d41462c5546
|
||||
S3wq2O/translation: 9268b9b2e31373e5ac2e29c19d08e1ef
|
||||
BOqTi5/message: 11edf0427766c26db541d46379dc3c16
|
||||
BOqTi5/placeholders/0/0: 9db68a4b386b9fa1fd1d5797c32be100
|
||||
BOqTi5/placeholders/1/0: b837a9e8bd06b58be95699b3ee663f43
|
||||
@@ -2216,6 +2235,9 @@ checksums:
|
||||
zYRVNp/message: 8b36455dd5b43e56d2ab06e522c3bacc
|
||||
zYRVNp/origin/0/0: 97bd206a05414e2a571020d64e166093
|
||||
zYRVNp/translation: 8b36455dd5b43e56d2ab06e522c3bacc
|
||||
NM2hyD/message: dfd9e9abdca731ba9ca3fcff645b575e
|
||||
NM2hyD/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
|
||||
NM2hyD/translation: dfd9e9abdca731ba9ca3fcff645b575e
|
||||
wgNoIs/message: eedc7cdb02de467c15dc418a066a77f2
|
||||
wgNoIs/origin/0/0: 3c57a918258af4b44c187f58d203345f
|
||||
wgNoIs/origin/1/0: 3c57a918258af4b44c187f58d203345f
|
||||
@@ -2373,6 +2395,9 @@ checksums:
|
||||
uAQUqI/message: 4e1fcce15854d824919b4a582c697c90
|
||||
uAQUqI/origin/0/0: dc1a240d2d0cccb102c67ca311d4e457
|
||||
uAQUqI/translation: 4e1fcce15854d824919b4a582c697c90
|
||||
hQRttt/message: 7c91ef5f747eea9f77a9c4f23e19fb2e
|
||||
hQRttt/origin/0/0: b1f4eb6768222ea825703105f6014486
|
||||
hQRttt/translation: 7c91ef5f747eea9f77a9c4f23e19fb2e
|
||||
WYDptz/message: 05f2b4abfc36def17756a6969983cf86
|
||||
WYDptz/origin/0/0: 8628ddb6f4ded25c0f17e2cbda8207d3
|
||||
WYDptz/translation: 05f2b4abfc36def17756a6969983cf86
|
||||
@@ -2459,6 +2484,10 @@ checksums:
|
||||
NcFrgC/message: bd15a7b3d8b4bce18cd42682ea1ec164
|
||||
NcFrgC/origin/0/0: 0ad2af981579a62b084b3d41462c5546
|
||||
NcFrgC/translation: bd15a7b3d8b4bce18cd42682ea1ec164
|
||||
ZWk38w/message: 0a6b07963240d329f206e280282e36da
|
||||
ZWk38w/placeholders/0/0: 9622afa3aca4038b79417d808a505c87
|
||||
ZWk38w/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
|
||||
ZWk38w/translation: 0a6b07963240d329f206e280282e36da
|
||||
C6gv54/message: 1573c77059bc92df17e661befda8d9b7
|
||||
C6gv54/origin/0/0: 0ad2af981579a62b084b3d41462c5546
|
||||
C6gv54/translation: 1573c77059bc92df17e661befda8d9b7
|
||||
@@ -2644,6 +2673,9 @@ checksums:
|
||||
Oo4E6p/origin/0/0: 97bd206a05414e2a571020d64e166093
|
||||
Oo4E6p/origin/1/0: 1b05beba6bdd908015fa8e798717f024
|
||||
Oo4E6p/translation: af985cf72c47df76e2f2139a427d9948
|
||||
d196%2F6/message: 64c37452b5ff985b44f1347ce0ef659f
|
||||
d196%2F6/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
|
||||
d196%2F6/translation: 64c37452b5ff985b44f1347ce0ef659f
|
||||
K7k9u3/message: 1cf9d227042f6a65adba38cb7296830d
|
||||
K7k9u3/origin/0/0: fd0e66cef8d46e96bcf3143a12f9b6db
|
||||
K7k9u3/translation: 1cf9d227042f6a65adba38cb7296830d
|
||||
@@ -3030,6 +3062,9 @@ checksums:
|
||||
vAj6xG/message: a6152a41b2d8f64d5a657e5b8bc808a9
|
||||
vAj6xG/origin/0/0: 4980d8e27a628e7cd9a70b839d844083
|
||||
vAj6xG/translation: a6152a41b2d8f64d5a657e5b8bc808a9
|
||||
tUL16u/message: 9064ca54e8a3ad28c03a173bc7b01184
|
||||
tUL16u/origin/0/0: f8e87f3fc3dc63bc7961601feb860fa8
|
||||
tUL16u/translation: 9064ca54e8a3ad28c03a173bc7b01184
|
||||
h2FKMV/message: 11d928b1993d95d54a95f85f8ae5016d
|
||||
h2FKMV/origin/0/0: 6812b79a8fdc3527586b523d4c137340
|
||||
h2FKMV/origin/1/0: 85d0a3237fa9329fba3f0278a2cd7284
|
||||
|
||||
@@ -3,7 +3,7 @@ import { formatter } from "@lingui/format-json";
|
||||
|
||||
|
||||
export default defineConfig({
|
||||
locales: ["en", "fr", "de", "es", "it", "nl", "ru", "pl", "pt-BR"],
|
||||
locales: ["en", "fr", "de", "es", "it", "nl", "ru", "pl", "pt-BR", "zh-CN"],
|
||||
sourceLocale: "en",
|
||||
catalogs: [
|
||||
{
|
||||
|
||||
@@ -27,13 +27,13 @@
|
||||
"@kan/api": "workspace:*",
|
||||
"@kan/auth": "workspace:*",
|
||||
"@kan/db": "workspace:^",
|
||||
"@kan/email": "workspace:^",
|
||||
"@kan/logger": "workspace:^",
|
||||
"@kan/shared": "workspace:^",
|
||||
"@lingui/babel-preset-react": "^2.9.2",
|
||||
"@lingui/conf": "^5.3.2",
|
||||
"@lingui/macro": "^5.3.2",
|
||||
"@lingui/react": "^5.3.2",
|
||||
"@novu/api": "^3.11.0",
|
||||
"@t3-oss/env-nextjs": "^0.11.1",
|
||||
"@tailwindcss/typography": "^0.5.16",
|
||||
"@tanstack/react-query": "catalog:",
|
||||
|
||||
@@ -10,6 +10,7 @@ import { t } from "@lingui/core/macro";
|
||||
import Link from "@tiptap/extension-link";
|
||||
import Mention from "@tiptap/extension-mention";
|
||||
import Placeholder from "@tiptap/extension-placeholder";
|
||||
import Typography from "@tiptap/extension-typography";
|
||||
import {
|
||||
BubbleMenu,
|
||||
EditorContent,
|
||||
@@ -17,7 +18,6 @@ import {
|
||||
ReactRenderer,
|
||||
useEditor,
|
||||
} from "@tiptap/react";
|
||||
import Typography from "@tiptap/extension-typography";
|
||||
import StarterKit from "@tiptap/starter-kit";
|
||||
import Suggestion from "@tiptap/suggestion";
|
||||
import {
|
||||
@@ -180,13 +180,13 @@ const RenderSuggestions = () => {
|
||||
|
||||
if (!props.clientRect) return;
|
||||
|
||||
popup[0]?.setProps({
|
||||
popup?.[0]?.setProps({
|
||||
getReferenceClientRect: props.clientRect,
|
||||
});
|
||||
},
|
||||
onKeyDown(props: SuggestionKeyDownProps): boolean {
|
||||
if (props.event.key === "Escape") {
|
||||
popup[0]?.hide();
|
||||
popup?.[0]?.hide();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ const RenderSuggestions = () => {
|
||||
);
|
||||
},
|
||||
onExit() {
|
||||
popup[0]?.destroy();
|
||||
popup?.[0]?.destroy();
|
||||
reactRenderer.destroy();
|
||||
},
|
||||
};
|
||||
@@ -308,11 +308,11 @@ const renderMentionSuggestions = () => {
|
||||
onUpdate(props: any) {
|
||||
reactRenderer.updateProps(props);
|
||||
if (!props.clientRect) return;
|
||||
popup[0]?.setProps({ getReferenceClientRect: props.clientRect });
|
||||
popup?.[0]?.setProps({ getReferenceClientRect: props.clientRect });
|
||||
},
|
||||
onKeyDown(props: SuggestionKeyDownProps) {
|
||||
if (props.event.key === "Escape") {
|
||||
popup[0]?.hide();
|
||||
popup?.[0]?.hide();
|
||||
return true;
|
||||
}
|
||||
return (
|
||||
@@ -324,7 +324,7 @@ const renderMentionSuggestions = () => {
|
||||
);
|
||||
},
|
||||
onExit() {
|
||||
popup[0]?.destroy();
|
||||
popup?.[0]?.destroy();
|
||||
reactRenderer.destroy();
|
||||
},
|
||||
};
|
||||
@@ -440,6 +440,7 @@ export default function Editor({
|
||||
content,
|
||||
onChange,
|
||||
onBlur,
|
||||
onSubmit,
|
||||
readOnly = false,
|
||||
workspaceMembers,
|
||||
enableYouTubeEmbed = true,
|
||||
@@ -449,6 +450,7 @@ export default function Editor({
|
||||
content: string | null;
|
||||
onChange?: (value: string) => void;
|
||||
onBlur?: () => void;
|
||||
onSubmit?: () => void;
|
||||
readOnly?: boolean;
|
||||
workspaceMembers: WorkspaceMember[];
|
||||
enableYouTubeEmbed?: boolean;
|
||||
@@ -461,12 +463,16 @@ export default function Editor({
|
||||
// in refs to avoid the editor capturing stale closures on re-render.
|
||||
const onChangeRef = useRef(onChange);
|
||||
const onBlurRef = useRef(onBlur);
|
||||
const onSubmitRef = useRef(onSubmit);
|
||||
useEffect(() => {
|
||||
onChangeRef.current = onChange;
|
||||
}, [onChange]);
|
||||
useEffect(() => {
|
||||
onBlurRef.current = onBlur;
|
||||
}, [onBlur]);
|
||||
useEffect(() => {
|
||||
onSubmitRef.current = onSubmit;
|
||||
}, [onSubmit]);
|
||||
|
||||
const editor = useEditor(
|
||||
{
|
||||
@@ -489,8 +495,8 @@ export default function Editor({
|
||||
Placeholder.configure({
|
||||
placeholder: readOnly
|
||||
? ""
|
||||
: placeholder ??
|
||||
t`Add description... (type '/' to open commands or '@' to mention)`,
|
||||
: (placeholder ??
|
||||
t`Add description... (type '/' to open commands or '@' to mention)`),
|
||||
}),
|
||||
SlashCommands.configure({
|
||||
commandItems: getCommandItems(disableHeadings),
|
||||
@@ -508,24 +514,26 @@ export default function Editor({
|
||||
suggestion: {
|
||||
char: "@",
|
||||
items: ({ query }: { query: string }) => {
|
||||
const withEmail = workspaceMembers.filter((member) => member.email);
|
||||
|
||||
const withEmail = workspaceMembers.filter(
|
||||
(member) => member.email,
|
||||
);
|
||||
|
||||
const mapped = withEmail.map((member: WorkspaceMember) => ({
|
||||
id: member.publicId,
|
||||
label: member?.user?.name?.trim() || member.email || "",
|
||||
image: member?.user?.image ?? null,
|
||||
}));
|
||||
|
||||
|
||||
const all: MentionItem[] = mapped.filter(
|
||||
(item) => item.label && item.label.length > 0,
|
||||
);
|
||||
|
||||
|
||||
const q = query.toLowerCase().trim();
|
||||
|
||||
|
||||
if (q === "") {
|
||||
return all;
|
||||
}
|
||||
|
||||
|
||||
const filtered = all.filter((u) =>
|
||||
u.label.toLowerCase().includes(q),
|
||||
);
|
||||
@@ -551,15 +559,15 @@ export default function Editor({
|
||||
},
|
||||
}),
|
||||
Typography.configure({
|
||||
openDoubleQuote: false,
|
||||
closeDoubleQuote: false,
|
||||
openSingleQuote: false,
|
||||
closeSingleQuote: false,
|
||||
oneHalf: false,
|
||||
oneQuarter: false,
|
||||
threeQuarters: false,
|
||||
superscriptTwo: false,
|
||||
superscriptThree: false,
|
||||
openDoubleQuote: false,
|
||||
closeDoubleQuote: false,
|
||||
openSingleQuote: false,
|
||||
closeSingleQuote: false,
|
||||
oneHalf: false,
|
||||
oneQuarter: false,
|
||||
threeQuarters: false,
|
||||
superscriptTwo: false,
|
||||
superscriptThree: false,
|
||||
}),
|
||||
...(enableYouTubeEmbed ? [YouTubeNode] : []),
|
||||
],
|
||||
@@ -581,6 +589,13 @@ export default function Editor({
|
||||
attributes: {
|
||||
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,
|
||||
injectCSS: false,
|
||||
|
||||
@@ -4,7 +4,7 @@ import { Button } from "@headlessui/react";
|
||||
import { t } from "@lingui/core/macro";
|
||||
import { env } from "next-runtime-env";
|
||||
import { useTheme } from "next-themes";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import { HiBolt } from "react-icons/hi2";
|
||||
import {
|
||||
TbLayoutSidebarLeftCollapse,
|
||||
@@ -28,6 +28,7 @@ import ButtonComponent from "~/components/Button";
|
||||
import ReactiveButton from "~/components/ReactiveButton";
|
||||
import UserMenu from "~/components/UserMenu";
|
||||
import WorkspaceMenu from "~/components/WorkspaceMenu";
|
||||
import { useLinguiContext } from "~/providers/lingui";
|
||||
import { useWorkspace } from "~/providers/workspace";
|
||||
import { api } from "~/utils/api";
|
||||
|
||||
@@ -50,6 +51,7 @@ export default function SideNavigation({
|
||||
}: SideNavigationProps) {
|
||||
const router = useRouter();
|
||||
const { workspace } = useWorkspace();
|
||||
const { locale } = useLinguiContext();
|
||||
const [isCollapsed, setIsCollapsed] = useState(false);
|
||||
const [isInitialised, setIsInitialised] = useState(false);
|
||||
|
||||
@@ -92,56 +94,59 @@ export default function SideNavigation({
|
||||
href: string;
|
||||
icon: object;
|
||||
keyboardShortcut: KeyboardShortcut;
|
||||
}[] = [
|
||||
{
|
||||
name: t`Boards`,
|
||||
href: "/boards",
|
||||
icon: isDarkMode ? boardsIconDark : boardsIconLight,
|
||||
keyboardShortcut: {
|
||||
type: "SEQUENCE",
|
||||
strokes: [{ key: "G" }, { key: "B" }],
|
||||
action: () => router.push("/boards"),
|
||||
group: "NAVIGATION",
|
||||
description: t`Go to boards`,
|
||||
}[] = useMemo(
|
||||
() => [
|
||||
{
|
||||
name: t`Boards`,
|
||||
href: "/boards",
|
||||
icon: isDarkMode ? boardsIconDark : boardsIconLight,
|
||||
keyboardShortcut: {
|
||||
type: "SEQUENCE",
|
||||
strokes: [{ key: "G" }, { key: "B" }],
|
||||
action: () => router.push("/boards"),
|
||||
group: "NAVIGATION",
|
||||
description: t`Go to boards`,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: t`Templates`,
|
||||
href: "/templates",
|
||||
icon: isDarkMode ? templatesIconDark : templatesIconLight,
|
||||
keyboardShortcut: {
|
||||
type: "SEQUENCE",
|
||||
strokes: [{ key: "G" }, { key: "T" }],
|
||||
action: () => router.push("/templates"),
|
||||
group: "NAVIGATION",
|
||||
description: t`Go to templates`,
|
||||
{
|
||||
name: t`Templates`,
|
||||
href: "/templates",
|
||||
icon: isDarkMode ? templatesIconDark : templatesIconLight,
|
||||
keyboardShortcut: {
|
||||
type: "SEQUENCE",
|
||||
strokes: [{ key: "G" }, { key: "T" }],
|
||||
action: () => router.push("/templates"),
|
||||
group: "NAVIGATION",
|
||||
description: t`Go to templates`,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: t`Members`,
|
||||
href: "/members",
|
||||
icon: isDarkMode ? membersIconDark : membersIconLight,
|
||||
keyboardShortcut: {
|
||||
type: "SEQUENCE",
|
||||
strokes: [{ key: "G" }, { key: "M" }],
|
||||
action: () => router.push("/members"),
|
||||
group: "NAVIGATION",
|
||||
description: t`Go to members`,
|
||||
{
|
||||
name: t`Members`,
|
||||
href: "/members",
|
||||
icon: isDarkMode ? membersIconDark : membersIconLight,
|
||||
keyboardShortcut: {
|
||||
type: "SEQUENCE",
|
||||
strokes: [{ key: "G" }, { key: "M" }],
|
||||
action: () => router.push("/members"),
|
||||
group: "NAVIGATION",
|
||||
description: t`Go to members`,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: t`Settings`,
|
||||
href: "/settings",
|
||||
icon: isDarkMode ? settingsIconDark : settingsIconLight,
|
||||
keyboardShortcut: {
|
||||
type: "SEQUENCE",
|
||||
strokes: [{ key: "G" }, { key: "S" }],
|
||||
action: () => router.push("/settings"),
|
||||
group: "NAVIGATION",
|
||||
description: t`Go to settings`,
|
||||
{
|
||||
name: t`Settings`,
|
||||
href: "/settings",
|
||||
icon: isDarkMode ? settingsIconDark : settingsIconLight,
|
||||
keyboardShortcut: {
|
||||
type: "SEQUENCE",
|
||||
strokes: [{ key: "G" }, { key: "S" }],
|
||||
action: () => router.push("/settings"),
|
||||
group: "NAVIGATION",
|
||||
description: t`Go to settings`,
|
||||
},
|
||||
},
|
||||
},
|
||||
];
|
||||
],
|
||||
[isDarkMode, locale, router],
|
||||
);
|
||||
|
||||
const toggleCollapse = () => {
|
||||
setIsCollapsed(!isCollapsed);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { ReactNode } from "react";
|
||||
import type { Root } from "react-dom/client";
|
||||
import type { Placement } from "tippy.js";
|
||||
import type { Placement, Instance as TippyInstance } from "tippy.js";
|
||||
import { useEffect, useRef } from "react";
|
||||
import { createRoot } from "react-dom/client";
|
||||
import tippy from "tippy.js";
|
||||
@@ -20,16 +20,16 @@ export function Tooltip({
|
||||
}: TooltipProps) {
|
||||
const triggerRef = useRef<HTMLDivElement>(null);
|
||||
const rootRef = useRef<Root | null>(null);
|
||||
const tippyRef = useRef<TippyInstance | null>(null);
|
||||
const contentRef = useRef(content);
|
||||
contentRef.current = content;
|
||||
|
||||
useEffect(() => {
|
||||
if (!triggerRef.current) return;
|
||||
|
||||
if (!content) return;
|
||||
|
||||
const container = document.createElement("div");
|
||||
const root = createRoot(container);
|
||||
rootRef.current = root;
|
||||
root.render(content);
|
||||
|
||||
const instance = tippy(triggerRef.current, {
|
||||
content: container,
|
||||
@@ -39,12 +39,33 @@ export function Tooltip({
|
||||
theme: "tooltip",
|
||||
touch: false,
|
||||
});
|
||||
tippyRef.current = instance;
|
||||
|
||||
if (contentRef.current) {
|
||||
root.render(contentRef.current);
|
||||
} else {
|
||||
instance.disable();
|
||||
}
|
||||
|
||||
return () => {
|
||||
instance.destroy();
|
||||
rootRef.current?.unmount();
|
||||
tippyRef.current = null;
|
||||
root.unmount();
|
||||
rootRef.current = null;
|
||||
};
|
||||
}, [content, placement, delay]);
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [placement, delay]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!content) {
|
||||
tippyRef.current?.disable();
|
||||
return;
|
||||
}
|
||||
if (tippyRef.current) {
|
||||
tippyRef.current.enable();
|
||||
rootRef.current?.render(content);
|
||||
}
|
||||
}, [content]);
|
||||
|
||||
return (
|
||||
<div ref={triggerRef} className="inline-flex">
|
||||
|
||||
@@ -2,11 +2,12 @@ import { useRouter } from "next/navigation";
|
||||
import { Button, Menu, Transition } from "@headlessui/react";
|
||||
import { t } from "@lingui/core/macro";
|
||||
import { env } from "next-runtime-env";
|
||||
import { Fragment, useState } from "react";
|
||||
import { Fragment, useMemo, useState } from "react";
|
||||
import { HiCheck, HiMagnifyingGlass } from "react-icons/hi2";
|
||||
import { twMerge } from "tailwind-merge";
|
||||
|
||||
import { useKeyboardShortcut } from "~/providers/keyboard-shortcuts";
|
||||
import { useLinguiContext } from "~/providers/lingui";
|
||||
import { useModal } from "~/providers/modal";
|
||||
import { useWorkspace } from "~/providers/workspace";
|
||||
import { api } from "~/utils/api";
|
||||
@@ -20,23 +21,29 @@ export default function WorkspaceMenu({
|
||||
}) {
|
||||
const { workspace, isLoading, availableWorkspaces, switchWorkspace } =
|
||||
useWorkspace();
|
||||
const { locale } = useLinguiContext();
|
||||
const { openModal } = useModal();
|
||||
const { data: hasPartnerSlot } =
|
||||
api.workspace.hasAvailablePartnerSlot.useQuery();
|
||||
const router = useRouter();
|
||||
const [isOpen, setIsOpen] = useState(false);
|
||||
|
||||
const { tooltipContent: commandPaletteShortcutTooltipContent } =
|
||||
useKeyboardShortcut({
|
||||
type: "PRESS",
|
||||
const commandPaletteShortcut = useMemo(
|
||||
() => ({
|
||||
type: "PRESS" as const,
|
||||
stroke: {
|
||||
key: "k",
|
||||
modifiers: ["META"],
|
||||
modifiers: ["META"] as ("META" | "CONTROL" | "ALT" | "SHIFT")[],
|
||||
},
|
||||
action: () => setIsOpen(true),
|
||||
description: t`Open command menu`,
|
||||
group: "GENERAL",
|
||||
});
|
||||
group: "GENERAL" as const,
|
||||
}),
|
||||
[locale],
|
||||
);
|
||||
|
||||
const { tooltipContent: commandPaletteShortcutTooltipContent } =
|
||||
useKeyboardShortcut(commandPaletteShortcut);
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
@@ -52,8 +52,9 @@ export const env = createEnv({
|
||||
VK_CLIENT_SECRET: z.string().optional(),
|
||||
LINKEDIN_CLIENT_ID: z.string().optional(),
|
||||
LINKEDIN_CLIENT_SECRET: z.string().optional(),
|
||||
NOVU_API_KEY: z.string().optional(),
|
||||
EMAIL_UNSUBSCRIBE_SECRET: z.string().optional(),
|
||||
SUBSCRIBER_API_URL: z.string().url().optional(),
|
||||
SUBSCRIBER_API_KEY: z.string().optional(),
|
||||
SUBSCRIBER_ENVIRONMENT_ID: z.string().optional(),
|
||||
// Generic OIDC Provider
|
||||
OIDC_CLIENT_ID: z.string().optional(),
|
||||
OIDC_CLIENT_SECRET: z.string().optional(),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { Locale as DateFnsLocale } from "date-fns";
|
||||
import { useLingui } from "@lingui/react";
|
||||
import { de, enGB, es, fr, it, nl, pl, ptBR, ru } from "date-fns/locale";
|
||||
import { de, enGB, es, fr, it, nl, pl, ptBR, ru, zhCN } from "date-fns/locale";
|
||||
|
||||
import type { Locale } from "~/locales";
|
||||
import { useLinguiContext } from "~/providers/lingui";
|
||||
@@ -20,6 +20,7 @@ export function useLocalisation() {
|
||||
ru,
|
||||
pl,
|
||||
ptbr: ptBR,
|
||||
"zh-CN": zhCN,
|
||||
};
|
||||
|
||||
const currentDateLocale = dateLocaleMap[locale] ?? enGB;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { useEffect } from "react";
|
||||
import { useCallback, useEffect, useRef } from "react";
|
||||
|
||||
import { useModal } from "~/providers/modal";
|
||||
|
||||
interface UseModalFormStateOptions<T> {
|
||||
@@ -12,25 +13,43 @@ export function useModalFormState<T extends Record<string, any>>({
|
||||
initialValues,
|
||||
resetOnClose = false,
|
||||
}: UseModalFormStateOptions<T>) {
|
||||
const { modalContentType, isOpen, getModalState, setModalState, clearModalState } = useModal();
|
||||
|
||||
const {
|
||||
modalContentType,
|
||||
isOpen,
|
||||
getModalState,
|
||||
setModalState,
|
||||
clearModalState,
|
||||
} = useModal();
|
||||
|
||||
const isCurrentModal = modalContentType === modalType;
|
||||
const savedState = getModalState(modalType) as T | undefined;
|
||||
|
||||
|
||||
// get current form state (using the saved values if available, otherwise the initial values)
|
||||
const formState = savedState || initialValues;
|
||||
|
||||
const saveFormState = (state: Partial<T>) => {
|
||||
if (!isCurrentModal) return;
|
||||
|
||||
const currentState = getModalState(modalType) || initialValues;
|
||||
const newState = { ...currentState, ...state };
|
||||
setModalState(modalType, newState);
|
||||
};
|
||||
// Keep refs so the callbacks below stay stable across re-renders.
|
||||
const modalTypeRef = useRef(modalType);
|
||||
const initialValuesRef = useRef(initialValues);
|
||||
const getModalStateRef = useRef(getModalState);
|
||||
modalTypeRef.current = modalType;
|
||||
initialValuesRef.current = initialValues;
|
||||
getModalStateRef.current = getModalState;
|
||||
|
||||
const clearFormState = () => {
|
||||
clearModalState(modalType);
|
||||
};
|
||||
const saveFormState = useCallback(
|
||||
(state: Partial<T>) => {
|
||||
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(() => {
|
||||
if (resetOnClose && !isOpen && savedState) {
|
||||
@@ -45,4 +64,4 @@ export function useModalFormState<T extends Record<string, any>>({
|
||||
isCurrentModal,
|
||||
hasSavedState: !!savedState,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"0": ["isTemplate ? \"Templates\" : \"Boards\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 53]],
|
||||
"origin": [["src/views/boards/index.tsx", 62]],
|
||||
"translation": "{0}"
|
||||
},
|
||||
"JArWcF": {
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/card/index.tsx", 321]
|
||||
],
|
||||
"translation": "{0} | {1}"
|
||||
@@ -44,7 +44,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"translation": "{0} wurde zu deinen Favoriten hinzugefügt."
|
||||
},
|
||||
"bDI6VI": {
|
||||
@@ -53,7 +53,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]],
|
||||
"translation": "{0} wurde aus deinen Favoriten entfernt."
|
||||
},
|
||||
"CJukzS": {
|
||||
@@ -71,7 +71,7 @@
|
||||
"0": ["isTemplate ? \"Template\" : \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 557]],
|
||||
"origin": [["src/views/board/index.tsx", 570]],
|
||||
"translation": "{0} nicht gefunden"
|
||||
},
|
||||
"0xWkkH": {
|
||||
@@ -220,7 +220,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 26],
|
||||
["src/views/boards/index.tsx", 30],
|
||||
["src/views/settings/components/NewWebhookModal.tsx", 321],
|
||||
["src/views/settings/components/WebhookList.tsx", 106]
|
||||
],
|
||||
@@ -286,7 +286,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/card/components/Comment.tsx", 185],
|
||||
["src/views/card/components/NewCommentForm.tsx", 68]
|
||||
["src/views/card/components/NewCommentForm.tsx", 85]
|
||||
],
|
||||
"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)",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/Editor.tsx", 493]],
|
||||
"origin": [["src/components/Editor.tsx", 499]],
|
||||
"translation": "Beschreibung hinzufügen... (‚/' für Befehle oder ‚@' zum Erwähnen eingeben)"
|
||||
},
|
||||
"abUZlY": {
|
||||
@@ -328,7 +328,7 @@
|
||||
"message": "Add to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]],
|
||||
"translation": "Zu Favoriten hinzufügen"
|
||||
},
|
||||
"cWXW+7": {
|
||||
@@ -423,7 +423,7 @@
|
||||
"message": "Added to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"translation": "Zu Favoriten hinzugefügt"
|
||||
},
|
||||
"14Xi3Z": {
|
||||
@@ -577,7 +577,7 @@
|
||||
"message": "Annual",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]],
|
||||
"translation": "Jährlich"
|
||||
},
|
||||
"3bqt9U": {
|
||||
@@ -657,14 +657,14 @@
|
||||
"message": "Archive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Board archivieren"
|
||||
},
|
||||
"TdfEV7": {
|
||||
"message": "Archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 27]],
|
||||
"origin": [["src/views/boards/index.tsx", 31]],
|
||||
"translation": "Archiviert"
|
||||
},
|
||||
"lo8xBK": {
|
||||
@@ -833,7 +833,7 @@
|
||||
"message": "Best for small teams who want to collaborate and move faster together.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]],
|
||||
"translation": "Ideal für kleine Teams, die gemeinsam arbeiten und schneller vorankommen möchten."
|
||||
},
|
||||
"qaS+1/": {
|
||||
@@ -887,7 +887,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/card/index.tsx", 321],
|
||||
["src/views/public/board/index.tsx", 125]
|
||||
],
|
||||
@@ -906,9 +906,16 @@
|
||||
"message": "Board archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Board archiviert"
|
||||
},
|
||||
"wE3hGS": {
|
||||
"message": "Board moved",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
|
||||
"translation": "Board verschoben"
|
||||
},
|
||||
"wewm3j": {
|
||||
"message": "Board name cannot exceed 100 characters",
|
||||
"placeholders": {},
|
||||
@@ -943,7 +950,7 @@
|
||||
"message": "Board unarchived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Board wiederhergestellt"
|
||||
},
|
||||
"Xid3K6": {
|
||||
@@ -999,7 +1006,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 97],
|
||||
["src/components/SideNavigation.tsx", 98],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 73]
|
||||
],
|
||||
"translation": "Boards"
|
||||
@@ -1281,12 +1288,13 @@
|
||||
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 267],
|
||||
["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/DeleteCardConfirmation.tsx", 86],
|
||||
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
|
||||
["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
|
||||
["src/views/onboarding/select-plan/index.tsx", 236],
|
||||
["src/views/onboarding/select-plan/index.tsx", 240],
|
||||
["src/views/settings/components/Avatar.tsx", 287],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
|
||||
[
|
||||
@@ -1324,6 +1332,13 @@
|
||||
"origin": [["src/views/card/components/Dropdown.tsx", 48]],
|
||||
"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": {
|
||||
"message": "Card not found",
|
||||
"placeholders": {},
|
||||
@@ -1346,7 +1361,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 308],
|
||||
["src/views/board/index.tsx", 314],
|
||||
["src/views/card/components/Dropdown.tsx", 74],
|
||||
["src/views/public/board/CardModal.tsx", 38]
|
||||
],
|
||||
@@ -1429,7 +1444,7 @@
|
||||
"message": "Choose a plan",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]],
|
||||
"translation": "Tarif wählen"
|
||||
},
|
||||
"5EMoSo": {
|
||||
@@ -1611,7 +1626,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 81]],
|
||||
"translation": "Bestätigen Sie Ihre E-Mail-Einstellungen:"
|
||||
"translation": "Bestätigen Sie Ihre E-Mail-Einstellungen:",
|
||||
"obsolete": true
|
||||
},
|
||||
"479pdJ": {
|
||||
"message": "Confirm your new password",
|
||||
@@ -1704,7 +1720,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 242],
|
||||
["src/views/onboarding/select-plan/index.tsx", 246],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 315]
|
||||
],
|
||||
"translation": "Weiter"
|
||||
@@ -1873,7 +1889,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/components/BoardsList.tsx", 80],
|
||||
["src/views/boards/index.tsx", 41]
|
||||
["src/views/boards/index.tsx", 45]
|
||||
],
|
||||
"translation": "Neues {0} erstellen"
|
||||
},
|
||||
@@ -1899,8 +1915,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 92],
|
||||
["src/views/board/index.tsx", 671]
|
||||
["src/views/board/index.tsx", 99],
|
||||
["src/views/board/index.tsx", 684]
|
||||
],
|
||||
"translation": "Neue Liste erstellen"
|
||||
},
|
||||
@@ -1924,7 +1940,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/NewWorkspaceForm.tsx", 227],
|
||||
["src/components/WorkspaceMenu.tsx", 171]
|
||||
["src/components/WorkspaceMenu.tsx", 176]
|
||||
],
|
||||
"translation": "Workspace erstellen"
|
||||
},
|
||||
@@ -2118,7 +2134,7 @@
|
||||
"message": "Delete board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Board löschen"
|
||||
},
|
||||
"nabda1": {
|
||||
@@ -2149,7 +2165,7 @@
|
||||
"message": "Delete template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Vorlage löschen"
|
||||
},
|
||||
"snMaH4": {
|
||||
@@ -2211,6 +2227,13 @@
|
||||
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
|
||||
"translation": "Design"
|
||||
},
|
||||
"Uf+1DF": {
|
||||
"message": "Destination workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
|
||||
"translation": "Ziel-Workspace"
|
||||
},
|
||||
"Odv3J6": {
|
||||
"message": "Disconnect GitHub",
|
||||
"placeholders": {},
|
||||
@@ -2272,7 +2295,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 78]],
|
||||
"translation": "Möchten Sie das Abonnement kündigen?"
|
||||
"translation": "Möchten Sie das Abonnement kündigen?",
|
||||
"obsolete": true
|
||||
},
|
||||
"JyXBgS": {
|
||||
"message": "docs",
|
||||
@@ -2416,7 +2440,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/BoardDropdown.tsx", 105],
|
||||
["src/views/board/components/BoardDropdown.tsx", 106],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
|
||||
],
|
||||
"translation": "Board-URL bearbeiten"
|
||||
@@ -2994,8 +3018,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 78],
|
||||
["src/views/onboarding/select-plan/index.tsx", 79],
|
||||
["src/views/onboarding/select-plan/index.tsx", 82],
|
||||
["src/views/onboarding/select-plan/index.tsx", 83],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
@@ -3103,7 +3127,7 @@
|
||||
"message": "Get started by creating a new list",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 656]],
|
||||
"origin": [["src/views/board/index.tsx", 669]],
|
||||
"translation": "Legen Sie los, indem Sie eine neue Liste erstellen"
|
||||
},
|
||||
"oW13KZ": {
|
||||
@@ -3180,7 +3204,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 105],
|
||||
["src/components/SideNavigation.tsx", 106],
|
||||
["src/pages/404.tsx", 44]
|
||||
],
|
||||
"translation": "Zu den Boards"
|
||||
@@ -3196,28 +3220,28 @@
|
||||
"message": "Go to members",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 129]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 130]],
|
||||
"translation": "Zu den Mitgliedern"
|
||||
},
|
||||
"1WuwiM": {
|
||||
"message": "Go to settings",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 141]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 142]],
|
||||
"translation": "Zu den Einstellungen"
|
||||
},
|
||||
"csFbe+": {
|
||||
"message": "Go to templates",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 117]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 118]],
|
||||
"translation": "Zu Vorlagen gehen"
|
||||
},
|
||||
"SUvm1Y": {
|
||||
"message": "Good for individuals starting out who just need the essentials.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"translation": "Gut geeignet für Einsteiger, die nur die wichtigsten Funktionen benötigen."
|
||||
},
|
||||
"cdyS7J": {
|
||||
@@ -3360,7 +3384,7 @@
|
||||
"message": "Import",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 73]],
|
||||
"origin": [["src/views/boards/index.tsx", 82]],
|
||||
"translation": "Importieren"
|
||||
},
|
||||
"2MPcep": {
|
||||
@@ -3743,7 +3767,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
|
||||
["src/views/board/index.tsx", 306],
|
||||
["src/views/board/index.tsx", 312],
|
||||
["src/views/card/components/Dropdown.tsx", 72],
|
||||
["src/views/public/board/CardModal.tsx", 36],
|
||||
["src/views/public/board/index.tsx", 77]
|
||||
@@ -3843,7 +3867,7 @@
|
||||
"message": "Make template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]],
|
||||
"translation": "Vorlage erstellen"
|
||||
},
|
||||
"hB02vO": {
|
||||
@@ -3923,7 +3947,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 121],
|
||||
["src/components/SideNavigation.tsx", 122],
|
||||
["src/views/board/components/Filters.tsx", 147],
|
||||
["src/views/board/components/NewCardForm.tsx", 386],
|
||||
["src/views/card/index.tsx", 143],
|
||||
@@ -3964,7 +3988,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 63],
|
||||
["src/views/onboarding/select-plan/index.tsx", 67],
|
||||
["src/views/pricing/components/Pricing.tsx", 14],
|
||||
["src/views/pricing/index.tsx", 20]
|
||||
],
|
||||
@@ -3977,6 +4001,20 @@
|
||||
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
|
||||
"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": {
|
||||
"message": "Move to another list",
|
||||
"placeholders": {},
|
||||
@@ -3991,6 +4029,13 @@
|
||||
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
|
||||
"translation": "In Liste verschieben"
|
||||
},
|
||||
"S3wq2O": {
|
||||
"message": "Move to workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
|
||||
"translation": "In Workspace verschieben"
|
||||
},
|
||||
"BOqTi5": {
|
||||
"message": "moved the card from <0>{0}</0> to<1>{1}</1>",
|
||||
"placeholders": {
|
||||
@@ -4047,7 +4092,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 95],
|
||||
["src/views/boards/index.tsx", 104],
|
||||
["src/views/home/components/Features.tsx", 73]
|
||||
],
|
||||
"translation": "Neu"
|
||||
@@ -4102,7 +4147,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/NewListForm.tsx", 113],
|
||||
["src/views/board/index.tsx", 620]
|
||||
["src/views/board/index.tsx", 633]
|
||||
],
|
||||
"translation": "Neue Liste"
|
||||
},
|
||||
@@ -4235,14 +4280,14 @@
|
||||
"message": "No lists",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 652]],
|
||||
"origin": [["src/views/board/index.tsx", 665]],
|
||||
"translation": "Keine Listen"
|
||||
},
|
||||
"fvLNDy": {
|
||||
"message": "No lists have been created yet",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 657]],
|
||||
"origin": [["src/views/board/index.tsx", 670]],
|
||||
"translation": "Es wurden noch keine Listen erstellt"
|
||||
},
|
||||
"i30J2U": {
|
||||
@@ -4559,7 +4604,7 @@
|
||||
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]],
|
||||
"translation": "Wählen Sie einen Tarif, um loszulegen. Alle kostenpflichtigen Tarife beinhalten eine 14-tägige kostenlose Testphase."
|
||||
},
|
||||
"GdgCoi": {
|
||||
@@ -4657,15 +4702,15 @@
|
||||
["src/components/DeleteLabelConfirmation.tsx", 26],
|
||||
["src/components/FeedbackModal.tsx", 41],
|
||||
["src/components/NewWorkspaceForm.tsx", 110],
|
||||
["src/views/board/components/BoardDropdown.tsx", 68],
|
||||
["src/views/board/components/BoardDropdown.tsx", 69],
|
||||
["src/views/board/components/NewCardForm.tsx", 193],
|
||||
["src/views/board/components/NewListForm.tsx", 79],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 61],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 77],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
|
||||
["src/views/board/components/VisibilityButton.tsx", 57],
|
||||
["src/views/board/index.tsx", 218],
|
||||
["src/views/board/index.tsx", 274],
|
||||
["src/views/board/index.tsx", 224],
|
||||
["src/views/board/index.tsx", 280],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
@@ -4683,7 +4728,7 @@
|
||||
["src/views/card/components/MemberSelector.tsx", 82],
|
||||
["src/views/card/components/NewChecklistForm.tsx", 71],
|
||||
["src/views/card/components/NewChecklistItemForm.tsx", 90],
|
||||
["src/views/card/components/NewCommentForm.tsx", 37],
|
||||
["src/views/card/components/NewCommentForm.tsx", 38],
|
||||
["src/views/card/index.tsx", 236],
|
||||
["src/views/card/index.tsx", 249],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
|
||||
@@ -4723,7 +4768,7 @@
|
||||
"origin": [
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 76],
|
||||
["src/views/board/components/CardContextMoveListModal.tsx", 42],
|
||||
["src/views/board/index.tsx", 315],
|
||||
["src/views/board/index.tsx", 321],
|
||||
["src/views/card/components/Dropdown.tsx", 55],
|
||||
["src/views/card/components/Dropdown.tsx", 81],
|
||||
["src/views/card/components/Dropdown.tsx", 100],
|
||||
@@ -4786,7 +4831,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 92],
|
||||
["src/views/onboarding/select-plan/index.tsx", 96],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
|
||||
["src/views/pricing/components/PricingTiers.tsx", 70]
|
||||
],
|
||||
@@ -4892,7 +4937,7 @@
|
||||
"message": "Remove from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"translation": "Aus Favoriten entfernen"
|
||||
},
|
||||
"99VIgC": {
|
||||
@@ -4946,7 +4991,7 @@
|
||||
"message": "Removed from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]],
|
||||
"translation": "Aus Favoriten entfernt"
|
||||
},
|
||||
"YVT40D": {
|
||||
@@ -5193,6 +5238,13 @@
|
||||
],
|
||||
"translation": "Liste auswählen"
|
||||
},
|
||||
"NM2hyD": {
|
||||
"message": "Select a workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
|
||||
"translation": "Workspace auswählen"
|
||||
},
|
||||
"wgNoIs": {
|
||||
"message": "Select all",
|
||||
"placeholders": {},
|
||||
@@ -5309,7 +5361,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 102],
|
||||
["src/components/SideNavigation.tsx", 133]
|
||||
["src/components/SideNavigation.tsx", 134]
|
||||
],
|
||||
"translation": "Einstellungen"
|
||||
},
|
||||
@@ -5404,7 +5456,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 315],
|
||||
["src/views/onboarding/select-plan/index.tsx", 319],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 386]
|
||||
],
|
||||
"translation": "Abmelden"
|
||||
@@ -5498,7 +5550,7 @@
|
||||
"message": "Solo",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]],
|
||||
"translation": "Solo"
|
||||
},
|
||||
"J9+zIR": {
|
||||
@@ -5545,9 +5597,9 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 225],
|
||||
["src/components/SideNavigation.tsx", 226],
|
||||
["src/components/SideNavigation.tsx", 236]
|
||||
["src/components/SideNavigation.tsx", 228],
|
||||
["src/components/SideNavigation.tsx", 229],
|
||||
["src/components/SideNavigation.tsx", 239]
|
||||
],
|
||||
"translation": "Kostenlose Testversion starten"
|
||||
},
|
||||
@@ -5565,6 +5617,13 @@
|
||||
"origin": [["src/views/settings/components/WebhookList.tsx", 232]],
|
||||
"translation": "Status"
|
||||
},
|
||||
"hQRttt": {
|
||||
"message": "Submit",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
|
||||
"translation": "Absenden"
|
||||
},
|
||||
"WYDptz": {
|
||||
"message": "Subscription Required",
|
||||
"placeholders": {},
|
||||
@@ -5628,7 +5687,7 @@
|
||||
"message": "Team",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]],
|
||||
"translation": "Team"
|
||||
},
|
||||
"bff61F": {
|
||||
@@ -5658,8 +5717,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 566]
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/board/index.tsx", 579]
|
||||
],
|
||||
"translation": "Vorlage"
|
||||
},
|
||||
@@ -5696,7 +5755,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 109],
|
||||
["src/components/SideNavigation.tsx", 110],
|
||||
["src/views/home/components/Features.tsx", 115]
|
||||
],
|
||||
"translation": "Vorlagen"
|
||||
@@ -5770,14 +5829,23 @@
|
||||
"message": "The board has been archived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"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": {
|
||||
"message": "The board has been unarchived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]],
|
||||
"translation": "Das Board wurde wiederhergestellt."
|
||||
},
|
||||
"nKBUeF": {
|
||||
@@ -6088,7 +6156,7 @@
|
||||
"message": "Unable to add comment",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]],
|
||||
"translation": "Kommentar konnte nicht hinzugefügt werden"
|
||||
},
|
||||
"2Q871c": {
|
||||
@@ -6117,7 +6185,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 313],
|
||||
["src/views/board/index.tsx", 319],
|
||||
["src/views/card/components/Dropdown.tsx", 79],
|
||||
["src/views/public/board/CardModal.tsx", 43],
|
||||
["src/views/public/board/index.tsx", 84]
|
||||
@@ -6228,6 +6296,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Unable to move card",
|
||||
"placeholders": {},
|
||||
@@ -6288,7 +6363,7 @@
|
||||
"message": "Unable to update board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]],
|
||||
"translation": "Board konnte nicht aktualisiert werden"
|
||||
},
|
||||
"XpcjLO": {
|
||||
@@ -6310,7 +6385,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 273],
|
||||
["src/views/board/index.tsx", 279],
|
||||
["src/views/card/index.tsx", 235]
|
||||
],
|
||||
"translation": "Karte konnte nicht aktualisiert werden"
|
||||
@@ -6355,7 +6430,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 217],
|
||||
["src/views/board/index.tsx", 223],
|
||||
["src/views/card/components/ListSelector.tsx", 54]
|
||||
],
|
||||
"translation": "Liste konnte nicht aktualisiert werden"
|
||||
@@ -6395,7 +6470,7 @@
|
||||
"message": "Unarchive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Board wiederherstellen"
|
||||
},
|
||||
"E8zYtd": {
|
||||
@@ -6508,7 +6583,7 @@
|
||||
"message": "Unlimited members and a custom workspace username for teams ready to scale.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]],
|
||||
"translation": "Unbegrenzte Mitglieder und ein individueller Workspace-Benutzername für Teams, die wachsen möchten."
|
||||
},
|
||||
"i5yNAO": {
|
||||
@@ -6533,7 +6608,8 @@
|
||||
["src/pages/unsubscribe/index.tsx", 68],
|
||||
["src/pages/unsubscribe/index.tsx", 93]
|
||||
],
|
||||
"translation": "Abmelden"
|
||||
"translation": "Abmelden",
|
||||
"obsolete": true
|
||||
},
|
||||
"EkH9pt": {
|
||||
"message": "Update",
|
||||
@@ -6598,7 +6674,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/index.tsx", 295],
|
||||
["src/views/onboarding/select-plan/index.tsx", 241]
|
||||
["src/views/onboarding/select-plan/index.tsx", 245]
|
||||
],
|
||||
"translation": "Upgrade"
|
||||
},
|
||||
@@ -6778,7 +6854,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 63]],
|
||||
"translation": "Wir konnten Ihre Einstellungen nicht aktualisieren. Bitte versuchen Sie es erneut."
|
||||
"translation": "Wir konnten Ihre Einstellungen nicht aktualisieren. Bitte versuchen Sie es erneut.",
|
||||
"obsolete": true
|
||||
},
|
||||
"7sdSkl": {
|
||||
"message": "We sent a link to {magicLinkRecipient}",
|
||||
@@ -6931,8 +7008,8 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 47],
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/members/index.tsx", 278],
|
||||
["src/views/public/board/index.tsx", 125],
|
||||
["src/views/public/boards/index.tsx", 75]
|
||||
@@ -7146,6 +7223,13 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 127]],
|
||||
"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": {
|
||||
"message": "You don't have permission",
|
||||
"placeholders": {},
|
||||
@@ -7154,11 +7238,11 @@
|
||||
["src/views/board/components/List.tsx", 117],
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
|
||||
["src/views/board/components/VisibilityButton.tsx", 72],
|
||||
["src/views/board/index.tsx", 604],
|
||||
["src/views/board/index.tsx", 662],
|
||||
["src/views/board/index.tsx", 617],
|
||||
["src/views/board/index.tsx", 675],
|
||||
["src/views/boards/components/BoardsList.tsx", 71],
|
||||
["src/views/boards/index.tsx", 59],
|
||||
["src/views/boards/index.tsx", 80]
|
||||
["src/views/boards/index.tsx", 68],
|
||||
["src/views/boards/index.tsx", 89]
|
||||
],
|
||||
"translation": "Sie haben keine Berechtigung"
|
||||
},
|
||||
@@ -7181,7 +7265,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 98]],
|
||||
"translation": "Sie wurden abgemeldet!"
|
||||
"translation": "Sie wurden abgemeldet!",
|
||||
"obsolete": true
|
||||
},
|
||||
"R275Pz": {
|
||||
"message": "You have unlimited seats with your Pro Plan. There is no additional charge for new members!",
|
||||
@@ -7250,7 +7335,7 @@
|
||||
"message": "Your avatar",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]],
|
||||
"translation": "Ihr Avatar"
|
||||
},
|
||||
"evg7+A": {
|
||||
@@ -7360,7 +7445,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 33]],
|
||||
"translation": "Ihrem Abmelde-Link fehlt ein Token. Bitte öffnen Sie die neueste E-Mail und versuchen Sie es erneut."
|
||||
"translation": "Ihrem Abmelde-Link fehlt ein Token. Bitte öffnen Sie die neueste E-Mail und versuchen Sie es erneut.",
|
||||
"obsolete": true
|
||||
},
|
||||
"GRAGsB": {
|
||||
"message": "Your workspace",
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -19,7 +19,7 @@
|
||||
"0": ["isTemplate ? \"Templates\" : \"Boards\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 53]],
|
||||
"origin": [["src/views/boards/index.tsx", 62]],
|
||||
"translation": "{0}"
|
||||
},
|
||||
"JArWcF": {
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/card/index.tsx", 321]
|
||||
],
|
||||
"translation": "{0} | {1}"
|
||||
@@ -44,7 +44,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"translation": "{0} se ha añadido a tus favoritos."
|
||||
},
|
||||
"bDI6VI": {
|
||||
@@ -53,7 +53,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]],
|
||||
"translation": "{0} se ha eliminado de tus favoritos."
|
||||
},
|
||||
"CJukzS": {
|
||||
@@ -71,7 +71,7 @@
|
||||
"0": ["isTemplate ? \"Template\" : \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 557]],
|
||||
"origin": [["src/views/board/index.tsx", 570]],
|
||||
"translation": "{0} no encontrado"
|
||||
},
|
||||
"0xWkkH": {
|
||||
@@ -220,7 +220,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 26],
|
||||
["src/views/boards/index.tsx", 30],
|
||||
["src/views/settings/components/NewWebhookModal.tsx", 321],
|
||||
["src/views/settings/components/WebhookList.tsx", 106]
|
||||
],
|
||||
@@ -286,7 +286,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/card/components/Comment.tsx", 185],
|
||||
["src/views/card/components/NewCommentForm.tsx", 68]
|
||||
["src/views/card/components/NewCommentForm.tsx", 85]
|
||||
],
|
||||
"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)",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/Editor.tsx", 493]],
|
||||
"origin": [["src/components/Editor.tsx", 499]],
|
||||
"translation": "Añadir descripción... (escribe '/' para abrir comandos o '@' para mencionar)"
|
||||
},
|
||||
"abUZlY": {
|
||||
@@ -328,7 +328,7 @@
|
||||
"message": "Add to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]],
|
||||
"translation": "Añadir a favoritos"
|
||||
},
|
||||
"cWXW+7": {
|
||||
@@ -423,7 +423,7 @@
|
||||
"message": "Added to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"translation": "Añadido a favoritos"
|
||||
},
|
||||
"14Xi3Z": {
|
||||
@@ -577,7 +577,7 @@
|
||||
"message": "Annual",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]],
|
||||
"translation": "Anual"
|
||||
},
|
||||
"3bqt9U": {
|
||||
@@ -657,14 +657,14 @@
|
||||
"message": "Archive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Archivar tablero"
|
||||
},
|
||||
"TdfEV7": {
|
||||
"message": "Archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 27]],
|
||||
"origin": [["src/views/boards/index.tsx", 31]],
|
||||
"translation": "Archivado"
|
||||
},
|
||||
"lo8xBK": {
|
||||
@@ -833,7 +833,7 @@
|
||||
"message": "Best for small teams who want to collaborate and move faster together.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]],
|
||||
"translation": "Ideal para equipos pequeños que desean colaborar y avanzar más rápido juntos."
|
||||
},
|
||||
"qaS+1/": {
|
||||
@@ -887,7 +887,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/card/index.tsx", 321],
|
||||
["src/views/public/board/index.tsx", 125]
|
||||
],
|
||||
@@ -906,9 +906,16 @@
|
||||
"message": "Board archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Tablero archivado"
|
||||
},
|
||||
"wE3hGS": {
|
||||
"message": "Board moved",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
|
||||
"translation": "Tablero movido"
|
||||
},
|
||||
"wewm3j": {
|
||||
"message": "Board name cannot exceed 100 characters",
|
||||
"placeholders": {},
|
||||
@@ -943,7 +950,7 @@
|
||||
"message": "Board unarchived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Tablero desarchivado"
|
||||
},
|
||||
"Xid3K6": {
|
||||
@@ -999,7 +1006,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 97],
|
||||
["src/components/SideNavigation.tsx", 98],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 73]
|
||||
],
|
||||
"translation": "Tableros"
|
||||
@@ -1281,12 +1288,13 @@
|
||||
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 267],
|
||||
["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/DeleteCardConfirmation.tsx", 86],
|
||||
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
|
||||
["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
|
||||
["src/views/onboarding/select-plan/index.tsx", 236],
|
||||
["src/views/onboarding/select-plan/index.tsx", 240],
|
||||
["src/views/settings/components/Avatar.tsx", 287],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
|
||||
[
|
||||
@@ -1324,6 +1332,13 @@
|
||||
"origin": [["src/views/card/components/Dropdown.tsx", 48]],
|
||||
"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": {
|
||||
"message": "Card not found",
|
||||
"placeholders": {},
|
||||
@@ -1346,7 +1361,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 308],
|
||||
["src/views/board/index.tsx", 314],
|
||||
["src/views/card/components/Dropdown.tsx", 74],
|
||||
["src/views/public/board/CardModal.tsx", 38]
|
||||
],
|
||||
@@ -1429,7 +1444,7 @@
|
||||
"message": "Choose a plan",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]],
|
||||
"translation": "Elige un plan"
|
||||
},
|
||||
"5EMoSo": {
|
||||
@@ -1611,7 +1626,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 81]],
|
||||
"translation": "Confirma tus preferencias de correo electrónico:"
|
||||
"translation": "Confirma tus preferencias de correo electrónico:",
|
||||
"obsolete": true
|
||||
},
|
||||
"479pdJ": {
|
||||
"message": "Confirm your new password",
|
||||
@@ -1704,7 +1720,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 242],
|
||||
["src/views/onboarding/select-plan/index.tsx", 246],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 315]
|
||||
],
|
||||
"translation": "Continuar"
|
||||
@@ -1873,7 +1889,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/components/BoardsList.tsx", 80],
|
||||
["src/views/boards/index.tsx", 41]
|
||||
["src/views/boards/index.tsx", 45]
|
||||
],
|
||||
"translation": "Crear nuevo {0}"
|
||||
},
|
||||
@@ -1899,8 +1915,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 92],
|
||||
["src/views/board/index.tsx", 671]
|
||||
["src/views/board/index.tsx", 99],
|
||||
["src/views/board/index.tsx", 684]
|
||||
],
|
||||
"translation": "Crear nueva lista"
|
||||
},
|
||||
@@ -1924,7 +1940,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/NewWorkspaceForm.tsx", 227],
|
||||
["src/components/WorkspaceMenu.tsx", 171]
|
||||
["src/components/WorkspaceMenu.tsx", 176]
|
||||
],
|
||||
"translation": "Crear espacio de trabajo"
|
||||
},
|
||||
@@ -2118,7 +2134,7 @@
|
||||
"message": "Delete board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Eliminar tablero"
|
||||
},
|
||||
"nabda1": {
|
||||
@@ -2149,7 +2165,7 @@
|
||||
"message": "Delete template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Eliminar plantilla"
|
||||
},
|
||||
"snMaH4": {
|
||||
@@ -2211,6 +2227,13 @@
|
||||
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
|
||||
"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": {
|
||||
"message": "Disconnect GitHub",
|
||||
"placeholders": {},
|
||||
@@ -2272,7 +2295,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 78]],
|
||||
"translation": "¿Quieres cancelar la suscripción?"
|
||||
"translation": "¿Quieres cancelar la suscripción?",
|
||||
"obsolete": true
|
||||
},
|
||||
"JyXBgS": {
|
||||
"message": "docs",
|
||||
@@ -2416,7 +2440,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/BoardDropdown.tsx", 105],
|
||||
["src/views/board/components/BoardDropdown.tsx", 106],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
|
||||
],
|
||||
"translation": "Editar URL del tablero"
|
||||
@@ -2994,8 +3018,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 78],
|
||||
["src/views/onboarding/select-plan/index.tsx", 79],
|
||||
["src/views/onboarding/select-plan/index.tsx", 82],
|
||||
["src/views/onboarding/select-plan/index.tsx", 83],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
@@ -3103,7 +3127,7 @@
|
||||
"message": "Get started by creating a new list",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 656]],
|
||||
"origin": [["src/views/board/index.tsx", 669]],
|
||||
"translation": "Comienza creando una nueva lista"
|
||||
},
|
||||
"oW13KZ": {
|
||||
@@ -3180,7 +3204,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 105],
|
||||
["src/components/SideNavigation.tsx", 106],
|
||||
["src/pages/404.tsx", 44]
|
||||
],
|
||||
"translation": "Ir a tableros"
|
||||
@@ -3196,28 +3220,28 @@
|
||||
"message": "Go to members",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 129]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 130]],
|
||||
"translation": "Ir a miembros"
|
||||
},
|
||||
"1WuwiM": {
|
||||
"message": "Go to settings",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 141]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 142]],
|
||||
"translation": "Ir a configuración"
|
||||
},
|
||||
"csFbe+": {
|
||||
"message": "Go to templates",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 117]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 118]],
|
||||
"translation": "Ir a plantillas"
|
||||
},
|
||||
"SUvm1Y": {
|
||||
"message": "Good for individuals starting out who just need the essentials.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"translation": "Ideal para personas que comienzan y solo necesitan lo esencial."
|
||||
},
|
||||
"cdyS7J": {
|
||||
@@ -3360,7 +3384,7 @@
|
||||
"message": "Import",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 73]],
|
||||
"origin": [["src/views/boards/index.tsx", 82]],
|
||||
"translation": "Importar"
|
||||
},
|
||||
"2MPcep": {
|
||||
@@ -3743,7 +3767,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
|
||||
["src/views/board/index.tsx", 306],
|
||||
["src/views/board/index.tsx", 312],
|
||||
["src/views/card/components/Dropdown.tsx", 72],
|
||||
["src/views/public/board/CardModal.tsx", 36],
|
||||
["src/views/public/board/index.tsx", 77]
|
||||
@@ -3843,7 +3867,7 @@
|
||||
"message": "Make template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]],
|
||||
"translation": "Crear plantilla"
|
||||
},
|
||||
"hB02vO": {
|
||||
@@ -3923,7 +3947,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 121],
|
||||
["src/components/SideNavigation.tsx", 122],
|
||||
["src/views/board/components/Filters.tsx", 147],
|
||||
["src/views/board/components/NewCardForm.tsx", 386],
|
||||
["src/views/card/index.tsx", 143],
|
||||
@@ -3964,7 +3988,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 63],
|
||||
["src/views/onboarding/select-plan/index.tsx", 67],
|
||||
["src/views/pricing/components/Pricing.tsx", 14],
|
||||
["src/views/pricing/index.tsx", 20]
|
||||
],
|
||||
@@ -3977,6 +4001,20 @@
|
||||
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
|
||||
"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": {
|
||||
"message": "Move to another list",
|
||||
"placeholders": {},
|
||||
@@ -3991,6 +4029,13 @@
|
||||
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
|
||||
"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": {
|
||||
"message": "moved the card from <0>{0}</0> to<1>{1}</1>",
|
||||
"placeholders": {
|
||||
@@ -4047,7 +4092,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 95],
|
||||
["src/views/boards/index.tsx", 104],
|
||||
["src/views/home/components/Features.tsx", 73]
|
||||
],
|
||||
"translation": "Nuevo"
|
||||
@@ -4102,7 +4147,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/NewListForm.tsx", 113],
|
||||
["src/views/board/index.tsx", 620]
|
||||
["src/views/board/index.tsx", 633]
|
||||
],
|
||||
"translation": "Nueva lista"
|
||||
},
|
||||
@@ -4235,14 +4280,14 @@
|
||||
"message": "No lists",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 652]],
|
||||
"origin": [["src/views/board/index.tsx", 665]],
|
||||
"translation": "Sin listas"
|
||||
},
|
||||
"fvLNDy": {
|
||||
"message": "No lists have been created yet",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 657]],
|
||||
"origin": [["src/views/board/index.tsx", 670]],
|
||||
"translation": "Aún no se han creado listas"
|
||||
},
|
||||
"i30J2U": {
|
||||
@@ -4559,7 +4604,7 @@
|
||||
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]],
|
||||
"translation": "Elige un plan para comenzar. Todos los planes de pago incluyen una prueba gratuita de 14 días."
|
||||
},
|
||||
"GdgCoi": {
|
||||
@@ -4657,15 +4702,15 @@
|
||||
["src/components/DeleteLabelConfirmation.tsx", 26],
|
||||
["src/components/FeedbackModal.tsx", 41],
|
||||
["src/components/NewWorkspaceForm.tsx", 110],
|
||||
["src/views/board/components/BoardDropdown.tsx", 68],
|
||||
["src/views/board/components/BoardDropdown.tsx", 69],
|
||||
["src/views/board/components/NewCardForm.tsx", 193],
|
||||
["src/views/board/components/NewListForm.tsx", 79],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 61],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 77],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
|
||||
["src/views/board/components/VisibilityButton.tsx", 57],
|
||||
["src/views/board/index.tsx", 218],
|
||||
["src/views/board/index.tsx", 274],
|
||||
["src/views/board/index.tsx", 224],
|
||||
["src/views/board/index.tsx", 280],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
@@ -4683,7 +4728,7 @@
|
||||
["src/views/card/components/MemberSelector.tsx", 82],
|
||||
["src/views/card/components/NewChecklistForm.tsx", 71],
|
||||
["src/views/card/components/NewChecklistItemForm.tsx", 90],
|
||||
["src/views/card/components/NewCommentForm.tsx", 37],
|
||||
["src/views/card/components/NewCommentForm.tsx", 38],
|
||||
["src/views/card/index.tsx", 236],
|
||||
["src/views/card/index.tsx", 249],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
|
||||
@@ -4723,7 +4768,7 @@
|
||||
"origin": [
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 76],
|
||||
["src/views/board/components/CardContextMoveListModal.tsx", 42],
|
||||
["src/views/board/index.tsx", 315],
|
||||
["src/views/board/index.tsx", 321],
|
||||
["src/views/card/components/Dropdown.tsx", 55],
|
||||
["src/views/card/components/Dropdown.tsx", 81],
|
||||
["src/views/card/components/Dropdown.tsx", 100],
|
||||
@@ -4786,7 +4831,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 92],
|
||||
["src/views/onboarding/select-plan/index.tsx", 96],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
|
||||
["src/views/pricing/components/PricingTiers.tsx", 70]
|
||||
],
|
||||
@@ -4892,7 +4937,7 @@
|
||||
"message": "Remove from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"translation": "Eliminar de favoritos"
|
||||
},
|
||||
"99VIgC": {
|
||||
@@ -4946,7 +4991,7 @@
|
||||
"message": "Removed from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]],
|
||||
"translation": "Eliminado de favoritos"
|
||||
},
|
||||
"YVT40D": {
|
||||
@@ -5193,6 +5238,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Select all",
|
||||
"placeholders": {},
|
||||
@@ -5309,7 +5361,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 102],
|
||||
["src/components/SideNavigation.tsx", 133]
|
||||
["src/components/SideNavigation.tsx", 134]
|
||||
],
|
||||
"translation": "Configuración"
|
||||
},
|
||||
@@ -5404,7 +5456,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 315],
|
||||
["src/views/onboarding/select-plan/index.tsx", 319],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 386]
|
||||
],
|
||||
"translation": "Cerrar sesión"
|
||||
@@ -5498,7 +5550,7 @@
|
||||
"message": "Solo",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]],
|
||||
"translation": "Individual"
|
||||
},
|
||||
"J9+zIR": {
|
||||
@@ -5545,9 +5597,9 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 225],
|
||||
["src/components/SideNavigation.tsx", 226],
|
||||
["src/components/SideNavigation.tsx", 236]
|
||||
["src/components/SideNavigation.tsx", 228],
|
||||
["src/components/SideNavigation.tsx", 229],
|
||||
["src/components/SideNavigation.tsx", 239]
|
||||
],
|
||||
"translation": "Iniciar prueba gratuita"
|
||||
},
|
||||
@@ -5565,6 +5617,13 @@
|
||||
"origin": [["src/views/settings/components/WebhookList.tsx", 232]],
|
||||
"translation": "Estado"
|
||||
},
|
||||
"hQRttt": {
|
||||
"message": "Submit",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
|
||||
"translation": "Enviar"
|
||||
},
|
||||
"WYDptz": {
|
||||
"message": "Subscription Required",
|
||||
"placeholders": {},
|
||||
@@ -5628,7 +5687,7 @@
|
||||
"message": "Team",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]],
|
||||
"translation": "Equipo"
|
||||
},
|
||||
"bff61F": {
|
||||
@@ -5658,8 +5717,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 566]
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/board/index.tsx", 579]
|
||||
],
|
||||
"translation": "Plantilla"
|
||||
},
|
||||
@@ -5696,7 +5755,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 109],
|
||||
["src/components/SideNavigation.tsx", 110],
|
||||
["src/views/home/components/Features.tsx", 115]
|
||||
],
|
||||
"translation": "Plantillas"
|
||||
@@ -5770,14 +5829,23 @@
|
||||
"message": "The board has been archived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"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": {
|
||||
"message": "The board has been unarchived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]],
|
||||
"translation": "El tablero ha sido desarchivado."
|
||||
},
|
||||
"nKBUeF": {
|
||||
@@ -6088,7 +6156,7 @@
|
||||
"message": "Unable to add comment",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]],
|
||||
"translation": "No se pudo agregar el comentario"
|
||||
},
|
||||
"2Q871c": {
|
||||
@@ -6117,7 +6185,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 313],
|
||||
["src/views/board/index.tsx", 319],
|
||||
["src/views/card/components/Dropdown.tsx", 79],
|
||||
["src/views/public/board/CardModal.tsx", 43],
|
||||
["src/views/public/board/index.tsx", 84]
|
||||
@@ -6228,6 +6296,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Unable to move card",
|
||||
"placeholders": {},
|
||||
@@ -6288,7 +6363,7 @@
|
||||
"message": "Unable to update board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]],
|
||||
"translation": "No se pudo actualizar el tablero"
|
||||
},
|
||||
"XpcjLO": {
|
||||
@@ -6310,7 +6385,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 273],
|
||||
["src/views/board/index.tsx", 279],
|
||||
["src/views/card/index.tsx", 235]
|
||||
],
|
||||
"translation": "No se pudo actualizar la tarjeta"
|
||||
@@ -6355,7 +6430,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 217],
|
||||
["src/views/board/index.tsx", 223],
|
||||
["src/views/card/components/ListSelector.tsx", 54]
|
||||
],
|
||||
"translation": "No se pudo actualizar la lista"
|
||||
@@ -6395,7 +6470,7 @@
|
||||
"message": "Unarchive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Desarchivar tablero"
|
||||
},
|
||||
"E8zYtd": {
|
||||
@@ -6508,7 +6583,7 @@
|
||||
"message": "Unlimited members and a custom workspace username for teams ready to scale.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]],
|
||||
"translation": "Miembros ilimitados y un nombre de usuario personalizado para el espacio de trabajo para equipos listos para escalar."
|
||||
},
|
||||
"i5yNAO": {
|
||||
@@ -6533,7 +6608,8 @@
|
||||
["src/pages/unsubscribe/index.tsx", 68],
|
||||
["src/pages/unsubscribe/index.tsx", 93]
|
||||
],
|
||||
"translation": "Cancelar suscripción"
|
||||
"translation": "Cancelar suscripción",
|
||||
"obsolete": true
|
||||
},
|
||||
"EkH9pt": {
|
||||
"message": "Update",
|
||||
@@ -6598,7 +6674,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/index.tsx", 295],
|
||||
["src/views/onboarding/select-plan/index.tsx", 241]
|
||||
["src/views/onboarding/select-plan/index.tsx", 245]
|
||||
],
|
||||
"translation": "Actualizar"
|
||||
},
|
||||
@@ -6778,7 +6854,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 63]],
|
||||
"translation": "No pudimos actualizar tus preferencias. Por favor, inténtalo de nuevo."
|
||||
"translation": "No pudimos actualizar tus preferencias. Por favor, inténtalo de nuevo.",
|
||||
"obsolete": true
|
||||
},
|
||||
"7sdSkl": {
|
||||
"message": "We sent a link to {magicLinkRecipient}",
|
||||
@@ -6931,8 +7008,8 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 47],
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/members/index.tsx", 278],
|
||||
["src/views/public/board/index.tsx", 125],
|
||||
["src/views/public/boards/index.tsx", 75]
|
||||
@@ -7146,6 +7223,13 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 127]],
|
||||
"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": {
|
||||
"message": "You don't have permission",
|
||||
"placeholders": {},
|
||||
@@ -7154,11 +7238,11 @@
|
||||
["src/views/board/components/List.tsx", 117],
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
|
||||
["src/views/board/components/VisibilityButton.tsx", 72],
|
||||
["src/views/board/index.tsx", 604],
|
||||
["src/views/board/index.tsx", 662],
|
||||
["src/views/board/index.tsx", 617],
|
||||
["src/views/board/index.tsx", 675],
|
||||
["src/views/boards/components/BoardsList.tsx", 71],
|
||||
["src/views/boards/index.tsx", 59],
|
||||
["src/views/boards/index.tsx", 80]
|
||||
["src/views/boards/index.tsx", 68],
|
||||
["src/views/boards/index.tsx", 89]
|
||||
],
|
||||
"translation": "No tienes permiso"
|
||||
},
|
||||
@@ -7181,7 +7265,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 98]],
|
||||
"translation": "¡Te has dado de baja!"
|
||||
"translation": "¡Te has dado de baja!",
|
||||
"obsolete": true
|
||||
},
|
||||
"R275Pz": {
|
||||
"message": "You have unlimited seats with your Pro Plan. There is no additional charge for new members!",
|
||||
@@ -7250,7 +7335,7 @@
|
||||
"message": "Your avatar",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]],
|
||||
"translation": "Tu avatar"
|
||||
},
|
||||
"evg7+A": {
|
||||
@@ -7360,7 +7445,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 33]],
|
||||
"translation": "Tu enlace de cancelación de suscripción no tiene un token. Por favor, abre el último correo electrónico e inténtalo de nuevo."
|
||||
"translation": "Tu enlace de cancelación de suscripción no tiene un token. Por favor, abre el último correo electrónico e inténtalo de nuevo.",
|
||||
"obsolete": true
|
||||
},
|
||||
"GRAGsB": {
|
||||
"message": "Your workspace",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -19,7 +19,7 @@
|
||||
"0": ["isTemplate ? \"Templates\" : \"Boards\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 53]],
|
||||
"origin": [["src/views/boards/index.tsx", 62]],
|
||||
"translation": "{0}"
|
||||
},
|
||||
"JArWcF": {
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/card/index.tsx", 321]
|
||||
],
|
||||
"translation": "{0} | {1}"
|
||||
@@ -44,7 +44,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"translation": "{0} a été ajouté à vos favoris."
|
||||
},
|
||||
"bDI6VI": {
|
||||
@@ -53,7 +53,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]],
|
||||
"translation": "{0} a été retiré de vos favoris."
|
||||
},
|
||||
"CJukzS": {
|
||||
@@ -71,7 +71,7 @@
|
||||
"0": ["isTemplate ? \"Template\" : \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 557]],
|
||||
"origin": [["src/views/board/index.tsx", 570]],
|
||||
"translation": "{0} introuvable"
|
||||
},
|
||||
"0xWkkH": {
|
||||
@@ -220,7 +220,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 26],
|
||||
["src/views/boards/index.tsx", 30],
|
||||
["src/views/settings/components/NewWebhookModal.tsx", 321],
|
||||
["src/views/settings/components/WebhookList.tsx", 106]
|
||||
],
|
||||
@@ -286,7 +286,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/card/components/Comment.tsx", 185],
|
||||
["src/views/card/components/NewCommentForm.tsx", 68]
|
||||
["src/views/card/components/NewCommentForm.tsx", 85]
|
||||
],
|
||||
"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)",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/Editor.tsx", 493]],
|
||||
"origin": [["src/components/Editor.tsx", 499]],
|
||||
"translation": "Ajouter une description... (tapez « / » pour ouvrir les commandes ou « @ » pour mentionner)"
|
||||
},
|
||||
"abUZlY": {
|
||||
@@ -328,7 +328,7 @@
|
||||
"message": "Add to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]],
|
||||
"translation": "Ajouter aux favoris"
|
||||
},
|
||||
"cWXW+7": {
|
||||
@@ -423,7 +423,7 @@
|
||||
"message": "Added to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"translation": "Ajouté aux favoris"
|
||||
},
|
||||
"14Xi3Z": {
|
||||
@@ -577,7 +577,7 @@
|
||||
"message": "Annual",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]],
|
||||
"translation": "Annuel"
|
||||
},
|
||||
"3bqt9U": {
|
||||
@@ -657,14 +657,14 @@
|
||||
"message": "Archive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Archiver le tableau"
|
||||
},
|
||||
"TdfEV7": {
|
||||
"message": "Archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 27]],
|
||||
"origin": [["src/views/boards/index.tsx", 31]],
|
||||
"translation": "Archivé"
|
||||
},
|
||||
"lo8xBK": {
|
||||
@@ -833,7 +833,7 @@
|
||||
"message": "Best for small teams who want to collaborate and move faster together.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]],
|
||||
"translation": "Idéal pour les petites équipes qui souhaitent collaborer et avancer plus rapidement ensemble."
|
||||
},
|
||||
"qaS+1/": {
|
||||
@@ -887,7 +887,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/card/index.tsx", 321],
|
||||
["src/views/public/board/index.tsx", 125]
|
||||
],
|
||||
@@ -906,9 +906,16 @@
|
||||
"message": "Board archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Tableau archivé"
|
||||
},
|
||||
"wE3hGS": {
|
||||
"message": "Board moved",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
|
||||
"translation": "Tableau déplacé"
|
||||
},
|
||||
"wewm3j": {
|
||||
"message": "Board name cannot exceed 100 characters",
|
||||
"placeholders": {},
|
||||
@@ -943,7 +950,7 @@
|
||||
"message": "Board unarchived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Tableau désarchivé"
|
||||
},
|
||||
"Xid3K6": {
|
||||
@@ -999,7 +1006,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 97],
|
||||
["src/components/SideNavigation.tsx", 98],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 73]
|
||||
],
|
||||
"translation": "Tableaux"
|
||||
@@ -1281,12 +1288,13 @@
|
||||
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 267],
|
||||
["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/DeleteCardConfirmation.tsx", 86],
|
||||
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
|
||||
["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
|
||||
["src/views/onboarding/select-plan/index.tsx", 236],
|
||||
["src/views/onboarding/select-plan/index.tsx", 240],
|
||||
["src/views/settings/components/Avatar.tsx", 287],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
|
||||
[
|
||||
@@ -1324,6 +1332,13 @@
|
||||
"origin": [["src/views/card/components/Dropdown.tsx", 48]],
|
||||
"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": {
|
||||
"message": "Card not found",
|
||||
"placeholders": {},
|
||||
@@ -1346,7 +1361,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 308],
|
||||
["src/views/board/index.tsx", 314],
|
||||
["src/views/card/components/Dropdown.tsx", 74],
|
||||
["src/views/public/board/CardModal.tsx", 38]
|
||||
],
|
||||
@@ -1429,7 +1444,7 @@
|
||||
"message": "Choose a plan",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]],
|
||||
"translation": "Choisir un forfait"
|
||||
},
|
||||
"5EMoSo": {
|
||||
@@ -1611,7 +1626,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 81]],
|
||||
"translation": "Confirmez vos préférences d'e-mail :"
|
||||
"translation": "Confirmez vos préférences d'e-mail :",
|
||||
"obsolete": true
|
||||
},
|
||||
"479pdJ": {
|
||||
"message": "Confirm your new password",
|
||||
@@ -1704,7 +1720,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 242],
|
||||
["src/views/onboarding/select-plan/index.tsx", 246],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 315]
|
||||
],
|
||||
"translation": "Continuer"
|
||||
@@ -1873,7 +1889,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/components/BoardsList.tsx", 80],
|
||||
["src/views/boards/index.tsx", 41]
|
||||
["src/views/boards/index.tsx", 45]
|
||||
],
|
||||
"translation": "Créer un nouveau {0}"
|
||||
},
|
||||
@@ -1899,8 +1915,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 92],
|
||||
["src/views/board/index.tsx", 671]
|
||||
["src/views/board/index.tsx", 99],
|
||||
["src/views/board/index.tsx", 684]
|
||||
],
|
||||
"translation": "Créer une nouvelle liste"
|
||||
},
|
||||
@@ -1924,7 +1940,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/NewWorkspaceForm.tsx", 227],
|
||||
["src/components/WorkspaceMenu.tsx", 171]
|
||||
["src/components/WorkspaceMenu.tsx", 176]
|
||||
],
|
||||
"translation": "Créer un espace de travail"
|
||||
},
|
||||
@@ -2118,7 +2134,7 @@
|
||||
"message": "Delete board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Supprimer le tableau"
|
||||
},
|
||||
"nabda1": {
|
||||
@@ -2149,7 +2165,7 @@
|
||||
"message": "Delete template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Supprimer le modèle"
|
||||
},
|
||||
"snMaH4": {
|
||||
@@ -2211,6 +2227,13 @@
|
||||
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
|
||||
"translation": "Design"
|
||||
},
|
||||
"Uf+1DF": {
|
||||
"message": "Destination workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
|
||||
"translation": "Espace de travail de destination"
|
||||
},
|
||||
"Odv3J6": {
|
||||
"message": "Disconnect GitHub",
|
||||
"placeholders": {},
|
||||
@@ -2272,7 +2295,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 78]],
|
||||
"translation": "Voulez-vous vous désabonner ?"
|
||||
"translation": "Voulez-vous vous désabonner ?",
|
||||
"obsolete": true
|
||||
},
|
||||
"JyXBgS": {
|
||||
"message": "docs",
|
||||
@@ -2416,7 +2440,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/BoardDropdown.tsx", 105],
|
||||
["src/views/board/components/BoardDropdown.tsx", 106],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
|
||||
],
|
||||
"translation": "Modifier l'URL du tableau"
|
||||
@@ -2994,8 +3018,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 78],
|
||||
["src/views/onboarding/select-plan/index.tsx", 79],
|
||||
["src/views/onboarding/select-plan/index.tsx", 82],
|
||||
["src/views/onboarding/select-plan/index.tsx", 83],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
@@ -3103,7 +3127,7 @@
|
||||
"message": "Get started by creating a new list",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 656]],
|
||||
"origin": [["src/views/board/index.tsx", 669]],
|
||||
"translation": "Commencez en créant une nouvelle liste"
|
||||
},
|
||||
"oW13KZ": {
|
||||
@@ -3180,7 +3204,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 105],
|
||||
["src/components/SideNavigation.tsx", 106],
|
||||
["src/pages/404.tsx", 44]
|
||||
],
|
||||
"translation": "Aller aux tableaux"
|
||||
@@ -3196,28 +3220,28 @@
|
||||
"message": "Go to members",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 129]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 130]],
|
||||
"translation": "Aller aux membres"
|
||||
},
|
||||
"1WuwiM": {
|
||||
"message": "Go to settings",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 141]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 142]],
|
||||
"translation": "Aller aux paramètres"
|
||||
},
|
||||
"csFbe+": {
|
||||
"message": "Go to templates",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 117]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 118]],
|
||||
"translation": "Aller aux modèles"
|
||||
},
|
||||
"SUvm1Y": {
|
||||
"message": "Good for individuals starting out who just need the essentials.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"translation": "Idéal pour les particuliers qui débutent et qui ont simplement besoin de l'essentiel."
|
||||
},
|
||||
"cdyS7J": {
|
||||
@@ -3360,7 +3384,7 @@
|
||||
"message": "Import",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 73]],
|
||||
"origin": [["src/views/boards/index.tsx", 82]],
|
||||
"translation": "Importer"
|
||||
},
|
||||
"2MPcep": {
|
||||
@@ -3743,7 +3767,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
|
||||
["src/views/board/index.tsx", 306],
|
||||
["src/views/board/index.tsx", 312],
|
||||
["src/views/card/components/Dropdown.tsx", 72],
|
||||
["src/views/public/board/CardModal.tsx", 36],
|
||||
["src/views/public/board/index.tsx", 77]
|
||||
@@ -3843,7 +3867,7 @@
|
||||
"message": "Make template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]],
|
||||
"translation": "Créer un modèle"
|
||||
},
|
||||
"hB02vO": {
|
||||
@@ -3923,7 +3947,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 121],
|
||||
["src/components/SideNavigation.tsx", 122],
|
||||
["src/views/board/components/Filters.tsx", 147],
|
||||
["src/views/board/components/NewCardForm.tsx", 386],
|
||||
["src/views/card/index.tsx", 143],
|
||||
@@ -3964,7 +3988,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 63],
|
||||
["src/views/onboarding/select-plan/index.tsx", 67],
|
||||
["src/views/pricing/components/Pricing.tsx", 14],
|
||||
["src/views/pricing/index.tsx", 20]
|
||||
],
|
||||
@@ -3977,6 +4001,20 @@
|
||||
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
|
||||
"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": {
|
||||
"message": "Move to another list",
|
||||
"placeholders": {},
|
||||
@@ -3991,6 +4029,13 @@
|
||||
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
|
||||
"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": {
|
||||
"message": "moved the card from <0>{0}</0> to<1>{1}</1>",
|
||||
"placeholders": {
|
||||
@@ -4047,7 +4092,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 95],
|
||||
["src/views/boards/index.tsx", 104],
|
||||
["src/views/home/components/Features.tsx", 73]
|
||||
],
|
||||
"translation": "Nouveau"
|
||||
@@ -4102,7 +4147,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/NewListForm.tsx", 113],
|
||||
["src/views/board/index.tsx", 620]
|
||||
["src/views/board/index.tsx", 633]
|
||||
],
|
||||
"translation": "Nouvelle liste"
|
||||
},
|
||||
@@ -4235,14 +4280,14 @@
|
||||
"message": "No lists",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 652]],
|
||||
"origin": [["src/views/board/index.tsx", 665]],
|
||||
"translation": "Aucune liste"
|
||||
},
|
||||
"fvLNDy": {
|
||||
"message": "No lists have been created yet",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 657]],
|
||||
"origin": [["src/views/board/index.tsx", 670]],
|
||||
"translation": "Aucune liste n'a encore été créée"
|
||||
},
|
||||
"i30J2U": {
|
||||
@@ -4559,7 +4604,7 @@
|
||||
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]],
|
||||
"translation": "Choisissez un forfait pour commencer. Tous les forfaits payants incluent un essai gratuit de 14 jours."
|
||||
},
|
||||
"GdgCoi": {
|
||||
@@ -4657,15 +4702,15 @@
|
||||
["src/components/DeleteLabelConfirmation.tsx", 26],
|
||||
["src/components/FeedbackModal.tsx", 41],
|
||||
["src/components/NewWorkspaceForm.tsx", 110],
|
||||
["src/views/board/components/BoardDropdown.tsx", 68],
|
||||
["src/views/board/components/BoardDropdown.tsx", 69],
|
||||
["src/views/board/components/NewCardForm.tsx", 193],
|
||||
["src/views/board/components/NewListForm.tsx", 79],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 61],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 77],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
|
||||
["src/views/board/components/VisibilityButton.tsx", 57],
|
||||
["src/views/board/index.tsx", 218],
|
||||
["src/views/board/index.tsx", 274],
|
||||
["src/views/board/index.tsx", 224],
|
||||
["src/views/board/index.tsx", 280],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
@@ -4683,7 +4728,7 @@
|
||||
["src/views/card/components/MemberSelector.tsx", 82],
|
||||
["src/views/card/components/NewChecklistForm.tsx", 71],
|
||||
["src/views/card/components/NewChecklistItemForm.tsx", 90],
|
||||
["src/views/card/components/NewCommentForm.tsx", 37],
|
||||
["src/views/card/components/NewCommentForm.tsx", 38],
|
||||
["src/views/card/index.tsx", 236],
|
||||
["src/views/card/index.tsx", 249],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
|
||||
@@ -4723,7 +4768,7 @@
|
||||
"origin": [
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 76],
|
||||
["src/views/board/components/CardContextMoveListModal.tsx", 42],
|
||||
["src/views/board/index.tsx", 315],
|
||||
["src/views/board/index.tsx", 321],
|
||||
["src/views/card/components/Dropdown.tsx", 55],
|
||||
["src/views/card/components/Dropdown.tsx", 81],
|
||||
["src/views/card/components/Dropdown.tsx", 100],
|
||||
@@ -4786,7 +4831,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 92],
|
||||
["src/views/onboarding/select-plan/index.tsx", 96],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
|
||||
["src/views/pricing/components/PricingTiers.tsx", 70]
|
||||
],
|
||||
@@ -4892,7 +4937,7 @@
|
||||
"message": "Remove from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"translation": "Retirer des favoris"
|
||||
},
|
||||
"99VIgC": {
|
||||
@@ -4946,7 +4991,7 @@
|
||||
"message": "Removed from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]],
|
||||
"translation": "Retiré des favoris"
|
||||
},
|
||||
"YVT40D": {
|
||||
@@ -5193,6 +5238,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Select all",
|
||||
"placeholders": {},
|
||||
@@ -5309,7 +5361,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 102],
|
||||
["src/components/SideNavigation.tsx", 133]
|
||||
["src/components/SideNavigation.tsx", 134]
|
||||
],
|
||||
"translation": "Paramètres"
|
||||
},
|
||||
@@ -5404,7 +5456,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 315],
|
||||
["src/views/onboarding/select-plan/index.tsx", 319],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 386]
|
||||
],
|
||||
"translation": "Se déconnecter"
|
||||
@@ -5498,7 +5550,7 @@
|
||||
"message": "Solo",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]],
|
||||
"translation": "Solo"
|
||||
},
|
||||
"J9+zIR": {
|
||||
@@ -5545,9 +5597,9 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 225],
|
||||
["src/components/SideNavigation.tsx", 226],
|
||||
["src/components/SideNavigation.tsx", 236]
|
||||
["src/components/SideNavigation.tsx", 228],
|
||||
["src/components/SideNavigation.tsx", 229],
|
||||
["src/components/SideNavigation.tsx", 239]
|
||||
],
|
||||
"translation": "Commencer l'essai gratuit"
|
||||
},
|
||||
@@ -5565,6 +5617,13 @@
|
||||
"origin": [["src/views/settings/components/WebhookList.tsx", 232]],
|
||||
"translation": "Statut"
|
||||
},
|
||||
"hQRttt": {
|
||||
"message": "Submit",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
|
||||
"translation": "Soumettre"
|
||||
},
|
||||
"WYDptz": {
|
||||
"message": "Subscription Required",
|
||||
"placeholders": {},
|
||||
@@ -5628,7 +5687,7 @@
|
||||
"message": "Team",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]],
|
||||
"translation": "Équipe"
|
||||
},
|
||||
"bff61F": {
|
||||
@@ -5658,8 +5717,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 566]
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/board/index.tsx", 579]
|
||||
],
|
||||
"translation": "Modèle"
|
||||
},
|
||||
@@ -5696,7 +5755,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 109],
|
||||
["src/components/SideNavigation.tsx", 110],
|
||||
["src/views/home/components/Features.tsx", 115]
|
||||
],
|
||||
"translation": "Modèles"
|
||||
@@ -5770,14 +5829,23 @@
|
||||
"message": "The board has been archived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"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": {
|
||||
"message": "The board has been unarchived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]],
|
||||
"translation": "Le tableau a été désarchivé."
|
||||
},
|
||||
"nKBUeF": {
|
||||
@@ -6088,7 +6156,7 @@
|
||||
"message": "Unable to add comment",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]],
|
||||
"translation": "Impossible d'ajouter le commentaire"
|
||||
},
|
||||
"2Q871c": {
|
||||
@@ -6117,7 +6185,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 313],
|
||||
["src/views/board/index.tsx", 319],
|
||||
["src/views/card/components/Dropdown.tsx", 79],
|
||||
["src/views/public/board/CardModal.tsx", 43],
|
||||
["src/views/public/board/index.tsx", 84]
|
||||
@@ -6228,6 +6296,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Unable to move card",
|
||||
"placeholders": {},
|
||||
@@ -6288,7 +6363,7 @@
|
||||
"message": "Unable to update board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]],
|
||||
"translation": "Impossible de mettre à jour le tableau"
|
||||
},
|
||||
"XpcjLO": {
|
||||
@@ -6310,7 +6385,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 273],
|
||||
["src/views/board/index.tsx", 279],
|
||||
["src/views/card/index.tsx", 235]
|
||||
],
|
||||
"translation": "Impossible de mettre à jour la carte"
|
||||
@@ -6355,7 +6430,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 217],
|
||||
["src/views/board/index.tsx", 223],
|
||||
["src/views/card/components/ListSelector.tsx", 54]
|
||||
],
|
||||
"translation": "Impossible de mettre à jour la liste"
|
||||
@@ -6395,7 +6470,7 @@
|
||||
"message": "Unarchive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Désarchiver le tableau"
|
||||
},
|
||||
"E8zYtd": {
|
||||
@@ -6508,7 +6583,7 @@
|
||||
"message": "Unlimited members and a custom workspace username for teams ready to scale.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]],
|
||||
"translation": "Membres illimités et un nom d'utilisateur d'espace de travail personnalisé pour les équipes prêtes à évoluer."
|
||||
},
|
||||
"i5yNAO": {
|
||||
@@ -6533,7 +6608,8 @@
|
||||
["src/pages/unsubscribe/index.tsx", 68],
|
||||
["src/pages/unsubscribe/index.tsx", 93]
|
||||
],
|
||||
"translation": "Se désabonner"
|
||||
"translation": "Se désabonner",
|
||||
"obsolete": true
|
||||
},
|
||||
"EkH9pt": {
|
||||
"message": "Update",
|
||||
@@ -6598,7 +6674,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/index.tsx", 295],
|
||||
["src/views/onboarding/select-plan/index.tsx", 241]
|
||||
["src/views/onboarding/select-plan/index.tsx", 245]
|
||||
],
|
||||
"translation": "Mettre à niveau"
|
||||
},
|
||||
@@ -6778,7 +6854,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 63]],
|
||||
"translation": "Nous n'avons pas pu mettre à jour vos préférences. Veuillez réessayer."
|
||||
"translation": "Nous n'avons pas pu mettre à jour vos préférences. Veuillez réessayer.",
|
||||
"obsolete": true
|
||||
},
|
||||
"7sdSkl": {
|
||||
"message": "We sent a link to {magicLinkRecipient}",
|
||||
@@ -6931,8 +7008,8 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 47],
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/members/index.tsx", 278],
|
||||
["src/views/public/board/index.tsx", 125],
|
||||
["src/views/public/boards/index.tsx", 75]
|
||||
@@ -7146,6 +7223,13 @@
|
||||
"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>."
|
||||
},
|
||||
"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": {
|
||||
"message": "You don't have permission",
|
||||
"placeholders": {},
|
||||
@@ -7154,11 +7238,11 @@
|
||||
["src/views/board/components/List.tsx", 117],
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
|
||||
["src/views/board/components/VisibilityButton.tsx", 72],
|
||||
["src/views/board/index.tsx", 604],
|
||||
["src/views/board/index.tsx", 662],
|
||||
["src/views/board/index.tsx", 617],
|
||||
["src/views/board/index.tsx", 675],
|
||||
["src/views/boards/components/BoardsList.tsx", 71],
|
||||
["src/views/boards/index.tsx", 59],
|
||||
["src/views/boards/index.tsx", 80]
|
||||
["src/views/boards/index.tsx", 68],
|
||||
["src/views/boards/index.tsx", 89]
|
||||
],
|
||||
"translation": "Vous n'avez pas la permission"
|
||||
},
|
||||
@@ -7181,7 +7265,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 98]],
|
||||
"translation": "Vous avez été désabonné !"
|
||||
"translation": "Vous avez été désabonné !",
|
||||
"obsolete": true
|
||||
},
|
||||
"R275Pz": {
|
||||
"message": "You have unlimited seats with your Pro Plan. There is no additional charge for new members!",
|
||||
@@ -7250,7 +7335,7 @@
|
||||
"message": "Your avatar",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]],
|
||||
"translation": "Votre avatar"
|
||||
},
|
||||
"evg7+A": {
|
||||
@@ -7360,7 +7445,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 33]],
|
||||
"translation": "Votre lien de désinscription ne contient pas de jeton. Veuillez ouvrir le dernier e-mail et réessayer."
|
||||
"translation": "Votre lien de désinscription ne contient pas de jeton. Veuillez ouvrir le dernier e-mail et réessayer.",
|
||||
"obsolete": true
|
||||
},
|
||||
"GRAGsB": {
|
||||
"message": "Your workspace",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -7,12 +7,14 @@ export const locales = [
|
||||
"nl",
|
||||
"ru",
|
||||
"pl",
|
||||
"ptbr"
|
||||
"ptbr",
|
||||
"zh-CN",
|
||||
] as const;
|
||||
|
||||
export type Locale = (typeof locales)[number];
|
||||
|
||||
export const defaultLocale: Locale = "en";
|
||||
// 自托管实例默认使用简体中文,用户仍可在设置中切换其他语言。
|
||||
export const defaultLocale: Locale = "zh-CN";
|
||||
|
||||
export const localeNames: Record<Locale, string> = {
|
||||
en: "English",
|
||||
@@ -24,4 +26,5 @@ export const localeNames: Record<Locale, string> = {
|
||||
ru: "Русский",
|
||||
pl: "Polski",
|
||||
ptbr: "Português",
|
||||
"zh-CN": "简体中文",
|
||||
};
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"0": ["isTemplate ? \"Templates\" : \"Boards\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 53]],
|
||||
"origin": [["src/views/boards/index.tsx", 62]],
|
||||
"translation": "{0}"
|
||||
},
|
||||
"JArWcF": {
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/card/index.tsx", 321]
|
||||
],
|
||||
"translation": "{0} | {1}"
|
||||
@@ -44,7 +44,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"translation": "{0} è stato aggiunto ai tuoi preferiti."
|
||||
},
|
||||
"bDI6VI": {
|
||||
@@ -53,7 +53,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]],
|
||||
"translation": "{0} è stato rimosso dai tuoi preferiti."
|
||||
},
|
||||
"CJukzS": {
|
||||
@@ -71,7 +71,7 @@
|
||||
"0": ["isTemplate ? \"Template\" : \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 557]],
|
||||
"origin": [["src/views/board/index.tsx", 570]],
|
||||
"translation": "{0} non trovato"
|
||||
},
|
||||
"0xWkkH": {
|
||||
@@ -220,7 +220,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 26],
|
||||
["src/views/boards/index.tsx", 30],
|
||||
["src/views/settings/components/NewWebhookModal.tsx", 321],
|
||||
["src/views/settings/components/WebhookList.tsx", 106]
|
||||
],
|
||||
@@ -286,7 +286,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/card/components/Comment.tsx", 185],
|
||||
["src/views/card/components/NewCommentForm.tsx", 68]
|
||||
["src/views/card/components/NewCommentForm.tsx", 85]
|
||||
],
|
||||
"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)",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/Editor.tsx", 493]],
|
||||
"origin": [["src/components/Editor.tsx", 499]],
|
||||
"translation": "Aggiungi descrizione... (digita '/' per aprire i comandi o '@' per menzionare)"
|
||||
},
|
||||
"abUZlY": {
|
||||
@@ -328,7 +328,7 @@
|
||||
"message": "Add to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]],
|
||||
"translation": "Aggiungi ai preferiti"
|
||||
},
|
||||
"cWXW+7": {
|
||||
@@ -423,7 +423,7 @@
|
||||
"message": "Added to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"translation": "Aggiunto ai preferiti"
|
||||
},
|
||||
"14Xi3Z": {
|
||||
@@ -577,7 +577,7 @@
|
||||
"message": "Annual",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]],
|
||||
"translation": "Annuale"
|
||||
},
|
||||
"3bqt9U": {
|
||||
@@ -657,14 +657,14 @@
|
||||
"message": "Archive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Archivia bacheca"
|
||||
},
|
||||
"TdfEV7": {
|
||||
"message": "Archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 27]],
|
||||
"origin": [["src/views/boards/index.tsx", 31]],
|
||||
"translation": "Archiviato"
|
||||
},
|
||||
"lo8xBK": {
|
||||
@@ -833,7 +833,7 @@
|
||||
"message": "Best for small teams who want to collaborate and move faster together.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]],
|
||||
"translation": "Ideale per piccoli team che vogliono collaborare e muoversi più velocemente insieme."
|
||||
},
|
||||
"qaS+1/": {
|
||||
@@ -887,7 +887,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/card/index.tsx", 321],
|
||||
["src/views/public/board/index.tsx", 125]
|
||||
],
|
||||
@@ -906,9 +906,16 @@
|
||||
"message": "Board archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Bacheca archiviata"
|
||||
},
|
||||
"wE3hGS": {
|
||||
"message": "Board moved",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
|
||||
"translation": "Bacheca spostata"
|
||||
},
|
||||
"wewm3j": {
|
||||
"message": "Board name cannot exceed 100 characters",
|
||||
"placeholders": {},
|
||||
@@ -943,7 +950,7 @@
|
||||
"message": "Board unarchived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Bacheca ripristinata"
|
||||
},
|
||||
"Xid3K6": {
|
||||
@@ -999,7 +1006,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 97],
|
||||
["src/components/SideNavigation.tsx", 98],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 73]
|
||||
],
|
||||
"translation": "Board"
|
||||
@@ -1281,12 +1288,13 @@
|
||||
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 267],
|
||||
["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/DeleteCardConfirmation.tsx", 86],
|
||||
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
|
||||
["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
|
||||
["src/views/onboarding/select-plan/index.tsx", 236],
|
||||
["src/views/onboarding/select-plan/index.tsx", 240],
|
||||
["src/views/settings/components/Avatar.tsx", 287],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
|
||||
[
|
||||
@@ -1324,6 +1332,13 @@
|
||||
"origin": [["src/views/card/components/Dropdown.tsx", 48]],
|
||||
"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": {
|
||||
"message": "Card not found",
|
||||
"placeholders": {},
|
||||
@@ -1346,7 +1361,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 308],
|
||||
["src/views/board/index.tsx", 314],
|
||||
["src/views/card/components/Dropdown.tsx", 74],
|
||||
["src/views/public/board/CardModal.tsx", 38]
|
||||
],
|
||||
@@ -1429,7 +1444,7 @@
|
||||
"message": "Choose a plan",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]],
|
||||
"translation": "Scegli un piano"
|
||||
},
|
||||
"5EMoSo": {
|
||||
@@ -1611,7 +1626,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 81]],
|
||||
"translation": "Conferma le tue preferenze email:"
|
||||
"translation": "Conferma le tue preferenze email:",
|
||||
"obsolete": true
|
||||
},
|
||||
"479pdJ": {
|
||||
"message": "Confirm your new password",
|
||||
@@ -1704,7 +1720,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 242],
|
||||
["src/views/onboarding/select-plan/index.tsx", 246],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 315]
|
||||
],
|
||||
"translation": "Continua"
|
||||
@@ -1873,7 +1889,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/components/BoardsList.tsx", 80],
|
||||
["src/views/boards/index.tsx", 41]
|
||||
["src/views/boards/index.tsx", 45]
|
||||
],
|
||||
"translation": "Crea nuovo {0}"
|
||||
},
|
||||
@@ -1899,8 +1915,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 92],
|
||||
["src/views/board/index.tsx", 671]
|
||||
["src/views/board/index.tsx", 99],
|
||||
["src/views/board/index.tsx", 684]
|
||||
],
|
||||
"translation": "Crea nuova lista"
|
||||
},
|
||||
@@ -1924,7 +1940,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/NewWorkspaceForm.tsx", 227],
|
||||
["src/components/WorkspaceMenu.tsx", 171]
|
||||
["src/components/WorkspaceMenu.tsx", 176]
|
||||
],
|
||||
"translation": "Crea workspace"
|
||||
},
|
||||
@@ -2118,7 +2134,7 @@
|
||||
"message": "Delete board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Elimina board"
|
||||
},
|
||||
"nabda1": {
|
||||
@@ -2149,7 +2165,7 @@
|
||||
"message": "Delete template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Elimina template"
|
||||
},
|
||||
"snMaH4": {
|
||||
@@ -2211,6 +2227,13 @@
|
||||
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
|
||||
"translation": "Design"
|
||||
},
|
||||
"Uf+1DF": {
|
||||
"message": "Destination workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
|
||||
"translation": "Area di lavoro di destinazione"
|
||||
},
|
||||
"Odv3J6": {
|
||||
"message": "Disconnect GitHub",
|
||||
"placeholders": {},
|
||||
@@ -2272,7 +2295,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 78]],
|
||||
"translation": "Vuoi annullare l'iscrizione?"
|
||||
"translation": "Vuoi annullare l'iscrizione?",
|
||||
"obsolete": true
|
||||
},
|
||||
"JyXBgS": {
|
||||
"message": "docs",
|
||||
@@ -2416,7 +2440,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/BoardDropdown.tsx", 105],
|
||||
["src/views/board/components/BoardDropdown.tsx", 106],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
|
||||
],
|
||||
"translation": "Modifica URL bacheca"
|
||||
@@ -2994,8 +3018,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 78],
|
||||
["src/views/onboarding/select-plan/index.tsx", 79],
|
||||
["src/views/onboarding/select-plan/index.tsx", 82],
|
||||
["src/views/onboarding/select-plan/index.tsx", 83],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
@@ -3103,7 +3127,7 @@
|
||||
"message": "Get started by creating a new list",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 656]],
|
||||
"origin": [["src/views/board/index.tsx", 669]],
|
||||
"translation": "Inizia creando una nuova lista"
|
||||
},
|
||||
"oW13KZ": {
|
||||
@@ -3180,7 +3204,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 105],
|
||||
["src/components/SideNavigation.tsx", 106],
|
||||
["src/pages/404.tsx", 44]
|
||||
],
|
||||
"translation": "Vai alle bacheche"
|
||||
@@ -3196,28 +3220,28 @@
|
||||
"message": "Go to members",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 129]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 130]],
|
||||
"translation": "Vai ai membri"
|
||||
},
|
||||
"1WuwiM": {
|
||||
"message": "Go to settings",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 141]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 142]],
|
||||
"translation": "Vai alle impostazioni"
|
||||
},
|
||||
"csFbe+": {
|
||||
"message": "Go to templates",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 117]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 118]],
|
||||
"translation": "Vai ai modelli"
|
||||
},
|
||||
"SUvm1Y": {
|
||||
"message": "Good for individuals starting out who just need the essentials.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"translation": "Perfetto per chi inizia e ha bisogno solo delle funzionalità essenziali."
|
||||
},
|
||||
"cdyS7J": {
|
||||
@@ -3360,7 +3384,7 @@
|
||||
"message": "Import",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 73]],
|
||||
"origin": [["src/views/boards/index.tsx", 82]],
|
||||
"translation": "Importa"
|
||||
},
|
||||
"2MPcep": {
|
||||
@@ -3743,7 +3767,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
|
||||
["src/views/board/index.tsx", 306],
|
||||
["src/views/board/index.tsx", 312],
|
||||
["src/views/card/components/Dropdown.tsx", 72],
|
||||
["src/views/public/board/CardModal.tsx", 36],
|
||||
["src/views/public/board/index.tsx", 77]
|
||||
@@ -3843,7 +3867,7 @@
|
||||
"message": "Make template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]],
|
||||
"translation": "Crea template"
|
||||
},
|
||||
"hB02vO": {
|
||||
@@ -3923,7 +3947,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 121],
|
||||
["src/components/SideNavigation.tsx", 122],
|
||||
["src/views/board/components/Filters.tsx", 147],
|
||||
["src/views/board/components/NewCardForm.tsx", 386],
|
||||
["src/views/card/index.tsx", 143],
|
||||
@@ -3964,7 +3988,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 63],
|
||||
["src/views/onboarding/select-plan/index.tsx", 67],
|
||||
["src/views/pricing/components/Pricing.tsx", 14],
|
||||
["src/views/pricing/index.tsx", 20]
|
||||
],
|
||||
@@ -3977,6 +4001,20 @@
|
||||
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
|
||||
"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": {
|
||||
"message": "Move to another list",
|
||||
"placeholders": {},
|
||||
@@ -3991,6 +4029,13 @@
|
||||
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
|
||||
"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": {
|
||||
"message": "moved the card from <0>{0}</0> to<1>{1}</1>",
|
||||
"placeholders": {
|
||||
@@ -4047,7 +4092,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 95],
|
||||
["src/views/boards/index.tsx", 104],
|
||||
["src/views/home/components/Features.tsx", 73]
|
||||
],
|
||||
"translation": "Nuovo"
|
||||
@@ -4102,7 +4147,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/NewListForm.tsx", 113],
|
||||
["src/views/board/index.tsx", 620]
|
||||
["src/views/board/index.tsx", 633]
|
||||
],
|
||||
"translation": "Nuova lista"
|
||||
},
|
||||
@@ -4235,14 +4280,14 @@
|
||||
"message": "No lists",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 652]],
|
||||
"origin": [["src/views/board/index.tsx", 665]],
|
||||
"translation": "Nessuna lista"
|
||||
},
|
||||
"fvLNDy": {
|
||||
"message": "No lists have been created yet",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 657]],
|
||||
"origin": [["src/views/board/index.tsx", 670]],
|
||||
"translation": "Nessuna lista è stata ancora creata"
|
||||
},
|
||||
"i30J2U": {
|
||||
@@ -4559,7 +4604,7 @@
|
||||
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]],
|
||||
"translation": "Scegli un piano per iniziare. Tutti i piani a pagamento includono una prova gratuita di 14 giorni."
|
||||
},
|
||||
"GdgCoi": {
|
||||
@@ -4657,15 +4702,15 @@
|
||||
["src/components/DeleteLabelConfirmation.tsx", 26],
|
||||
["src/components/FeedbackModal.tsx", 41],
|
||||
["src/components/NewWorkspaceForm.tsx", 110],
|
||||
["src/views/board/components/BoardDropdown.tsx", 68],
|
||||
["src/views/board/components/BoardDropdown.tsx", 69],
|
||||
["src/views/board/components/NewCardForm.tsx", 193],
|
||||
["src/views/board/components/NewListForm.tsx", 79],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 61],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 77],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
|
||||
["src/views/board/components/VisibilityButton.tsx", 57],
|
||||
["src/views/board/index.tsx", 218],
|
||||
["src/views/board/index.tsx", 274],
|
||||
["src/views/board/index.tsx", 224],
|
||||
["src/views/board/index.tsx", 280],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
@@ -4683,7 +4728,7 @@
|
||||
["src/views/card/components/MemberSelector.tsx", 82],
|
||||
["src/views/card/components/NewChecklistForm.tsx", 71],
|
||||
["src/views/card/components/NewChecklistItemForm.tsx", 90],
|
||||
["src/views/card/components/NewCommentForm.tsx", 37],
|
||||
["src/views/card/components/NewCommentForm.tsx", 38],
|
||||
["src/views/card/index.tsx", 236],
|
||||
["src/views/card/index.tsx", 249],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
|
||||
@@ -4723,7 +4768,7 @@
|
||||
"origin": [
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 76],
|
||||
["src/views/board/components/CardContextMoveListModal.tsx", 42],
|
||||
["src/views/board/index.tsx", 315],
|
||||
["src/views/board/index.tsx", 321],
|
||||
["src/views/card/components/Dropdown.tsx", 55],
|
||||
["src/views/card/components/Dropdown.tsx", 81],
|
||||
["src/views/card/components/Dropdown.tsx", 100],
|
||||
@@ -4786,7 +4831,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 92],
|
||||
["src/views/onboarding/select-plan/index.tsx", 96],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
|
||||
["src/views/pricing/components/PricingTiers.tsx", 70]
|
||||
],
|
||||
@@ -4892,7 +4937,7 @@
|
||||
"message": "Remove from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"translation": "Rimuovi dai preferiti"
|
||||
},
|
||||
"99VIgC": {
|
||||
@@ -4946,7 +4991,7 @@
|
||||
"message": "Removed from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]],
|
||||
"translation": "Rimosso dai preferiti"
|
||||
},
|
||||
"YVT40D": {
|
||||
@@ -5193,6 +5238,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Select all",
|
||||
"placeholders": {},
|
||||
@@ -5309,7 +5361,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 102],
|
||||
["src/components/SideNavigation.tsx", 133]
|
||||
["src/components/SideNavigation.tsx", 134]
|
||||
],
|
||||
"translation": "Impostazioni"
|
||||
},
|
||||
@@ -5404,7 +5456,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 315],
|
||||
["src/views/onboarding/select-plan/index.tsx", 319],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 386]
|
||||
],
|
||||
"translation": "Esci"
|
||||
@@ -5498,7 +5550,7 @@
|
||||
"message": "Solo",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]],
|
||||
"translation": "Solo"
|
||||
},
|
||||
"J9+zIR": {
|
||||
@@ -5545,9 +5597,9 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 225],
|
||||
["src/components/SideNavigation.tsx", 226],
|
||||
["src/components/SideNavigation.tsx", 236]
|
||||
["src/components/SideNavigation.tsx", 228],
|
||||
["src/components/SideNavigation.tsx", 229],
|
||||
["src/components/SideNavigation.tsx", 239]
|
||||
],
|
||||
"translation": "Inizia prova gratuita"
|
||||
},
|
||||
@@ -5565,6 +5617,13 @@
|
||||
"origin": [["src/views/settings/components/WebhookList.tsx", 232]],
|
||||
"translation": "Stato"
|
||||
},
|
||||
"hQRttt": {
|
||||
"message": "Submit",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
|
||||
"translation": "Invia"
|
||||
},
|
||||
"WYDptz": {
|
||||
"message": "Subscription Required",
|
||||
"placeholders": {},
|
||||
@@ -5628,7 +5687,7 @@
|
||||
"message": "Team",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]],
|
||||
"translation": "Team"
|
||||
},
|
||||
"bff61F": {
|
||||
@@ -5658,8 +5717,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 566]
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/board/index.tsx", 579]
|
||||
],
|
||||
"translation": "Template"
|
||||
},
|
||||
@@ -5696,7 +5755,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 109],
|
||||
["src/components/SideNavigation.tsx", 110],
|
||||
["src/views/home/components/Features.tsx", 115]
|
||||
],
|
||||
"translation": "Template"
|
||||
@@ -5770,14 +5829,23 @@
|
||||
"message": "The board has been archived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"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": {
|
||||
"message": "The board has been unarchived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]],
|
||||
"translation": "La bacheca è stata ripristinata."
|
||||
},
|
||||
"nKBUeF": {
|
||||
@@ -6088,7 +6156,7 @@
|
||||
"message": "Unable to add comment",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]],
|
||||
"translation": "Impossibile aggiungere il commento"
|
||||
},
|
||||
"2Q871c": {
|
||||
@@ -6117,7 +6185,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 313],
|
||||
["src/views/board/index.tsx", 319],
|
||||
["src/views/card/components/Dropdown.tsx", 79],
|
||||
["src/views/public/board/CardModal.tsx", 43],
|
||||
["src/views/public/board/index.tsx", 84]
|
||||
@@ -6228,6 +6296,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Unable to move card",
|
||||
"placeholders": {},
|
||||
@@ -6288,7 +6363,7 @@
|
||||
"message": "Unable to update board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]],
|
||||
"translation": "Impossibile aggiornare la board"
|
||||
},
|
||||
"XpcjLO": {
|
||||
@@ -6310,7 +6385,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 273],
|
||||
["src/views/board/index.tsx", 279],
|
||||
["src/views/card/index.tsx", 235]
|
||||
],
|
||||
"translation": "Impossibile aggiornare la card"
|
||||
@@ -6355,7 +6430,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 217],
|
||||
["src/views/board/index.tsx", 223],
|
||||
["src/views/card/components/ListSelector.tsx", 54]
|
||||
],
|
||||
"translation": "Impossibile aggiornare la lista"
|
||||
@@ -6395,7 +6470,7 @@
|
||||
"message": "Unarchive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Ripristina bacheca"
|
||||
},
|
||||
"E8zYtd": {
|
||||
@@ -6508,7 +6583,7 @@
|
||||
"message": "Unlimited members and a custom workspace username for teams ready to scale.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]],
|
||||
"translation": "Membri illimitati e un nome utente workspace personalizzato per i team pronti a crescere."
|
||||
},
|
||||
"i5yNAO": {
|
||||
@@ -6533,7 +6608,8 @@
|
||||
["src/pages/unsubscribe/index.tsx", 68],
|
||||
["src/pages/unsubscribe/index.tsx", 93]
|
||||
],
|
||||
"translation": "Annulla iscrizione"
|
||||
"translation": "Annulla iscrizione",
|
||||
"obsolete": true
|
||||
},
|
||||
"EkH9pt": {
|
||||
"message": "Update",
|
||||
@@ -6598,7 +6674,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/index.tsx", 295],
|
||||
["src/views/onboarding/select-plan/index.tsx", 241]
|
||||
["src/views/onboarding/select-plan/index.tsx", 245]
|
||||
],
|
||||
"translation": "Aggiorna"
|
||||
},
|
||||
@@ -6778,7 +6854,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 63]],
|
||||
"translation": "Non è stato possibile aggiornare le tue preferenze. Riprova."
|
||||
"translation": "Non è stato possibile aggiornare le tue preferenze. Riprova.",
|
||||
"obsolete": true
|
||||
},
|
||||
"7sdSkl": {
|
||||
"message": "We sent a link to {magicLinkRecipient}",
|
||||
@@ -6931,8 +7008,8 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 47],
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/members/index.tsx", 278],
|
||||
["src/views/public/board/index.tsx", 125],
|
||||
["src/views/public/boards/index.tsx", 75]
|
||||
@@ -7146,6 +7223,13 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 127]],
|
||||
"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": {
|
||||
"message": "You don't have permission",
|
||||
"placeholders": {},
|
||||
@@ -7154,11 +7238,11 @@
|
||||
["src/views/board/components/List.tsx", 117],
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
|
||||
["src/views/board/components/VisibilityButton.tsx", 72],
|
||||
["src/views/board/index.tsx", 604],
|
||||
["src/views/board/index.tsx", 662],
|
||||
["src/views/board/index.tsx", 617],
|
||||
["src/views/board/index.tsx", 675],
|
||||
["src/views/boards/components/BoardsList.tsx", 71],
|
||||
["src/views/boards/index.tsx", 59],
|
||||
["src/views/boards/index.tsx", 80]
|
||||
["src/views/boards/index.tsx", 68],
|
||||
["src/views/boards/index.tsx", 89]
|
||||
],
|
||||
"translation": "Non hai i permessi necessari"
|
||||
},
|
||||
@@ -7181,7 +7265,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 98]],
|
||||
"translation": "Hai annullato l'iscrizione!"
|
||||
"translation": "Hai annullato l'iscrizione!",
|
||||
"obsolete": true
|
||||
},
|
||||
"R275Pz": {
|
||||
"message": "You have unlimited seats with your Pro Plan. There is no additional charge for new members!",
|
||||
@@ -7250,7 +7335,7 @@
|
||||
"message": "Your avatar",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]],
|
||||
"translation": "Il tuo avatar"
|
||||
},
|
||||
"evg7+A": {
|
||||
@@ -7360,7 +7445,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 33]],
|
||||
"translation": "Il tuo link di disiscrizione non contiene un token. Apri l'ultima email e riprova."
|
||||
"translation": "Il tuo link di disiscrizione non contiene un token. Apri l'ultima email e riprova.",
|
||||
"obsolete": true
|
||||
},
|
||||
"GRAGsB": {
|
||||
"message": "Your workspace",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -19,7 +19,7 @@
|
||||
"0": ["isTemplate ? \"Templates\" : \"Boards\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 53]],
|
||||
"origin": [["src/views/boards/index.tsx", 62]],
|
||||
"translation": "{0}"
|
||||
},
|
||||
"JArWcF": {
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/card/index.tsx", 321]
|
||||
],
|
||||
"translation": "{0} | {1}"
|
||||
@@ -44,7 +44,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"translation": "{0} is toegevoegd aan je favorieten."
|
||||
},
|
||||
"bDI6VI": {
|
||||
@@ -53,7 +53,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]],
|
||||
"translation": "{0} is verwijderd uit je favorieten."
|
||||
},
|
||||
"CJukzS": {
|
||||
@@ -71,7 +71,7 @@
|
||||
"0": ["isTemplate ? \"Template\" : \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 557]],
|
||||
"origin": [["src/views/board/index.tsx", 570]],
|
||||
"translation": "{0} niet gevonden"
|
||||
},
|
||||
"0xWkkH": {
|
||||
@@ -220,7 +220,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 26],
|
||||
["src/views/boards/index.tsx", 30],
|
||||
["src/views/settings/components/NewWebhookModal.tsx", 321],
|
||||
["src/views/settings/components/WebhookList.tsx", 106]
|
||||
],
|
||||
@@ -286,7 +286,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/card/components/Comment.tsx", 185],
|
||||
["src/views/card/components/NewCommentForm.tsx", 68]
|
||||
["src/views/card/components/NewCommentForm.tsx", 85]
|
||||
],
|
||||
"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)",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/Editor.tsx", 493]],
|
||||
"origin": [["src/components/Editor.tsx", 499]],
|
||||
"translation": "Voeg beschrijving toe... (typ '/' om commando's te openen of '@' om te vermelden)"
|
||||
},
|
||||
"abUZlY": {
|
||||
@@ -328,7 +328,7 @@
|
||||
"message": "Add to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]],
|
||||
"translation": "Toevoegen aan favorieten"
|
||||
},
|
||||
"cWXW+7": {
|
||||
@@ -423,7 +423,7 @@
|
||||
"message": "Added to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"translation": "Toegevoegd aan favorieten"
|
||||
},
|
||||
"14Xi3Z": {
|
||||
@@ -577,7 +577,7 @@
|
||||
"message": "Annual",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]],
|
||||
"translation": "Jaarlijks"
|
||||
},
|
||||
"3bqt9U": {
|
||||
@@ -657,14 +657,14 @@
|
||||
"message": "Archive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Board archiveren"
|
||||
},
|
||||
"TdfEV7": {
|
||||
"message": "Archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 27]],
|
||||
"origin": [["src/views/boards/index.tsx", 31]],
|
||||
"translation": "Gearchiveerd"
|
||||
},
|
||||
"lo8xBK": {
|
||||
@@ -833,7 +833,7 @@
|
||||
"message": "Best for small teams who want to collaborate and move faster together.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]],
|
||||
"translation": "Het beste voor kleine teams die willen samenwerken en sneller vooruit willen komen."
|
||||
},
|
||||
"qaS+1/": {
|
||||
@@ -887,7 +887,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/card/index.tsx", 321],
|
||||
["src/views/public/board/index.tsx", 125]
|
||||
],
|
||||
@@ -906,9 +906,16 @@
|
||||
"message": "Board archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Board gearchiveerd"
|
||||
},
|
||||
"wE3hGS": {
|
||||
"message": "Board moved",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
|
||||
"translation": "Bord verplaatst"
|
||||
},
|
||||
"wewm3j": {
|
||||
"message": "Board name cannot exceed 100 characters",
|
||||
"placeholders": {},
|
||||
@@ -943,7 +950,7 @@
|
||||
"message": "Board unarchived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Board gedearchiveerd"
|
||||
},
|
||||
"Xid3K6": {
|
||||
@@ -999,7 +1006,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 97],
|
||||
["src/components/SideNavigation.tsx", 98],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 73]
|
||||
],
|
||||
"translation": "Boards"
|
||||
@@ -1281,12 +1288,13 @@
|
||||
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 267],
|
||||
["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/DeleteCardConfirmation.tsx", 86],
|
||||
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
|
||||
["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
|
||||
["src/views/onboarding/select-plan/index.tsx", 236],
|
||||
["src/views/onboarding/select-plan/index.tsx", 240],
|
||||
["src/views/settings/components/Avatar.tsx", 287],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
|
||||
[
|
||||
@@ -1324,6 +1332,13 @@
|
||||
"origin": [["src/views/card/components/Dropdown.tsx", 48]],
|
||||
"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": {
|
||||
"message": "Card not found",
|
||||
"placeholders": {},
|
||||
@@ -1346,7 +1361,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 308],
|
||||
["src/views/board/index.tsx", 314],
|
||||
["src/views/card/components/Dropdown.tsx", 74],
|
||||
["src/views/public/board/CardModal.tsx", 38]
|
||||
],
|
||||
@@ -1429,7 +1444,7 @@
|
||||
"message": "Choose a plan",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]],
|
||||
"translation": "Kies een abonnement"
|
||||
},
|
||||
"5EMoSo": {
|
||||
@@ -1611,7 +1626,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 81]],
|
||||
"translation": "Bevestig je e-mailvoorkeuren:"
|
||||
"translation": "Bevestig je e-mailvoorkeuren:",
|
||||
"obsolete": true
|
||||
},
|
||||
"479pdJ": {
|
||||
"message": "Confirm your new password",
|
||||
@@ -1704,7 +1720,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 242],
|
||||
["src/views/onboarding/select-plan/index.tsx", 246],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 315]
|
||||
],
|
||||
"translation": "Doorgaan"
|
||||
@@ -1873,7 +1889,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/components/BoardsList.tsx", 80],
|
||||
["src/views/boards/index.tsx", 41]
|
||||
["src/views/boards/index.tsx", 45]
|
||||
],
|
||||
"translation": "Maak nieuwe {0}"
|
||||
},
|
||||
@@ -1899,8 +1915,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 92],
|
||||
["src/views/board/index.tsx", 671]
|
||||
["src/views/board/index.tsx", 99],
|
||||
["src/views/board/index.tsx", 684]
|
||||
],
|
||||
"translation": "Maak nieuwe lijst"
|
||||
},
|
||||
@@ -1924,7 +1940,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/NewWorkspaceForm.tsx", 227],
|
||||
["src/components/WorkspaceMenu.tsx", 171]
|
||||
["src/components/WorkspaceMenu.tsx", 176]
|
||||
],
|
||||
"translation": "Maak werkruimte"
|
||||
},
|
||||
@@ -2118,7 +2134,7 @@
|
||||
"message": "Delete board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Bord verwijderen"
|
||||
},
|
||||
"nabda1": {
|
||||
@@ -2149,7 +2165,7 @@
|
||||
"message": "Delete template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Sjabloon verwijderen"
|
||||
},
|
||||
"snMaH4": {
|
||||
@@ -2211,6 +2227,13 @@
|
||||
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
|
||||
"translation": "Ontwerp"
|
||||
},
|
||||
"Uf+1DF": {
|
||||
"message": "Destination workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
|
||||
"translation": "Bestemmingswerkruimte"
|
||||
},
|
||||
"Odv3J6": {
|
||||
"message": "Disconnect GitHub",
|
||||
"placeholders": {},
|
||||
@@ -2272,7 +2295,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 78]],
|
||||
"translation": "Wil je je uitschrijven?"
|
||||
"translation": "Wil je je uitschrijven?",
|
||||
"obsolete": true
|
||||
},
|
||||
"JyXBgS": {
|
||||
"message": "docs",
|
||||
@@ -2416,7 +2440,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/BoardDropdown.tsx", 105],
|
||||
["src/views/board/components/BoardDropdown.tsx", 106],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
|
||||
],
|
||||
"translation": "Bord-URL bewerken"
|
||||
@@ -2994,8 +3018,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 78],
|
||||
["src/views/onboarding/select-plan/index.tsx", 79],
|
||||
["src/views/onboarding/select-plan/index.tsx", 82],
|
||||
["src/views/onboarding/select-plan/index.tsx", 83],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
@@ -3103,7 +3127,7 @@
|
||||
"message": "Get started by creating a new list",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 656]],
|
||||
"origin": [["src/views/board/index.tsx", 669]],
|
||||
"translation": "Ga aan de slag door een nieuwe lijst te maken"
|
||||
},
|
||||
"oW13KZ": {
|
||||
@@ -3180,7 +3204,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 105],
|
||||
["src/components/SideNavigation.tsx", 106],
|
||||
["src/pages/404.tsx", 44]
|
||||
],
|
||||
"translation": "Ga naar borden"
|
||||
@@ -3196,28 +3220,28 @@
|
||||
"message": "Go to members",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 129]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 130]],
|
||||
"translation": "Ga naar leden"
|
||||
},
|
||||
"1WuwiM": {
|
||||
"message": "Go to settings",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 141]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 142]],
|
||||
"translation": "Ga naar instellingen"
|
||||
},
|
||||
"csFbe+": {
|
||||
"message": "Go to templates",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 117]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 118]],
|
||||
"translation": "Ga naar sjablonen"
|
||||
},
|
||||
"SUvm1Y": {
|
||||
"message": "Good for individuals starting out who just need the essentials.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"translation": "Geschikt voor individuen die net beginnen en alleen de basisbehoeften hebben."
|
||||
},
|
||||
"cdyS7J": {
|
||||
@@ -3360,7 +3384,7 @@
|
||||
"message": "Import",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 73]],
|
||||
"origin": [["src/views/boards/index.tsx", 82]],
|
||||
"translation": "Importeren"
|
||||
},
|
||||
"2MPcep": {
|
||||
@@ -3743,7 +3767,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
|
||||
["src/views/board/index.tsx", 306],
|
||||
["src/views/board/index.tsx", 312],
|
||||
["src/views/card/components/Dropdown.tsx", 72],
|
||||
["src/views/public/board/CardModal.tsx", 36],
|
||||
["src/views/public/board/index.tsx", 77]
|
||||
@@ -3843,7 +3867,7 @@
|
||||
"message": "Make template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]],
|
||||
"translation": "Sjabloon maken"
|
||||
},
|
||||
"hB02vO": {
|
||||
@@ -3923,7 +3947,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 121],
|
||||
["src/components/SideNavigation.tsx", 122],
|
||||
["src/views/board/components/Filters.tsx", 147],
|
||||
["src/views/board/components/NewCardForm.tsx", 386],
|
||||
["src/views/card/index.tsx", 143],
|
||||
@@ -3964,7 +3988,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 63],
|
||||
["src/views/onboarding/select-plan/index.tsx", 67],
|
||||
["src/views/pricing/components/Pricing.tsx", 14],
|
||||
["src/views/pricing/index.tsx", 20]
|
||||
],
|
||||
@@ -3977,6 +4001,20 @@
|
||||
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
|
||||
"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": {
|
||||
"message": "Move to another list",
|
||||
"placeholders": {},
|
||||
@@ -3991,6 +4029,13 @@
|
||||
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
|
||||
"translation": "Verplaats naar lijst"
|
||||
},
|
||||
"S3wq2O": {
|
||||
"message": "Move to workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
|
||||
"translation": "Verplaatsen naar werkruimte"
|
||||
},
|
||||
"BOqTi5": {
|
||||
"message": "moved the card from <0>{0}</0> to<1>{1}</1>",
|
||||
"placeholders": {
|
||||
@@ -4047,7 +4092,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 95],
|
||||
["src/views/boards/index.tsx", 104],
|
||||
["src/views/home/components/Features.tsx", 73]
|
||||
],
|
||||
"translation": "Nieuw"
|
||||
@@ -4102,7 +4147,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/NewListForm.tsx", 113],
|
||||
["src/views/board/index.tsx", 620]
|
||||
["src/views/board/index.tsx", 633]
|
||||
],
|
||||
"translation": "Nieuwe lijst"
|
||||
},
|
||||
@@ -4235,14 +4280,14 @@
|
||||
"message": "No lists",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 652]],
|
||||
"origin": [["src/views/board/index.tsx", 665]],
|
||||
"translation": "Geen lijsten"
|
||||
},
|
||||
"fvLNDy": {
|
||||
"message": "No lists have been created yet",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 657]],
|
||||
"origin": [["src/views/board/index.tsx", 670]],
|
||||
"translation": "Er zijn nog geen lijsten aangemaakt"
|
||||
},
|
||||
"i30J2U": {
|
||||
@@ -4559,7 +4604,7 @@
|
||||
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]],
|
||||
"translation": "Kies een abonnement om te beginnen. Alle betaalde abonnementen hebben een gratis proefperiode van 14 dagen."
|
||||
},
|
||||
"GdgCoi": {
|
||||
@@ -4657,15 +4702,15 @@
|
||||
["src/components/DeleteLabelConfirmation.tsx", 26],
|
||||
["src/components/FeedbackModal.tsx", 41],
|
||||
["src/components/NewWorkspaceForm.tsx", 110],
|
||||
["src/views/board/components/BoardDropdown.tsx", 68],
|
||||
["src/views/board/components/BoardDropdown.tsx", 69],
|
||||
["src/views/board/components/NewCardForm.tsx", 193],
|
||||
["src/views/board/components/NewListForm.tsx", 79],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 61],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 77],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
|
||||
["src/views/board/components/VisibilityButton.tsx", 57],
|
||||
["src/views/board/index.tsx", 218],
|
||||
["src/views/board/index.tsx", 274],
|
||||
["src/views/board/index.tsx", 224],
|
||||
["src/views/board/index.tsx", 280],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
@@ -4683,7 +4728,7 @@
|
||||
["src/views/card/components/MemberSelector.tsx", 82],
|
||||
["src/views/card/components/NewChecklistForm.tsx", 71],
|
||||
["src/views/card/components/NewChecklistItemForm.tsx", 90],
|
||||
["src/views/card/components/NewCommentForm.tsx", 37],
|
||||
["src/views/card/components/NewCommentForm.tsx", 38],
|
||||
["src/views/card/index.tsx", 236],
|
||||
["src/views/card/index.tsx", 249],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
|
||||
@@ -4723,7 +4768,7 @@
|
||||
"origin": [
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 76],
|
||||
["src/views/board/components/CardContextMoveListModal.tsx", 42],
|
||||
["src/views/board/index.tsx", 315],
|
||||
["src/views/board/index.tsx", 321],
|
||||
["src/views/card/components/Dropdown.tsx", 55],
|
||||
["src/views/card/components/Dropdown.tsx", 81],
|
||||
["src/views/card/components/Dropdown.tsx", 100],
|
||||
@@ -4786,7 +4831,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 92],
|
||||
["src/views/onboarding/select-plan/index.tsx", 96],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
|
||||
["src/views/pricing/components/PricingTiers.tsx", 70]
|
||||
],
|
||||
@@ -4892,7 +4937,7 @@
|
||||
"message": "Remove from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"translation": "Verwijderen uit favorieten"
|
||||
},
|
||||
"99VIgC": {
|
||||
@@ -4946,7 +4991,7 @@
|
||||
"message": "Removed from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]],
|
||||
"translation": "Verwijderd uit favorieten"
|
||||
},
|
||||
"YVT40D": {
|
||||
@@ -5193,6 +5238,13 @@
|
||||
],
|
||||
"translation": "Selecteer een lijst"
|
||||
},
|
||||
"NM2hyD": {
|
||||
"message": "Select a workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
|
||||
"translation": "Selecteer een werkruimte"
|
||||
},
|
||||
"wgNoIs": {
|
||||
"message": "Select all",
|
||||
"placeholders": {},
|
||||
@@ -5309,7 +5361,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 102],
|
||||
["src/components/SideNavigation.tsx", 133]
|
||||
["src/components/SideNavigation.tsx", 134]
|
||||
],
|
||||
"translation": "Instellingen"
|
||||
},
|
||||
@@ -5404,7 +5456,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 315],
|
||||
["src/views/onboarding/select-plan/index.tsx", 319],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 386]
|
||||
],
|
||||
"translation": "Uitloggen"
|
||||
@@ -5498,7 +5550,7 @@
|
||||
"message": "Solo",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]],
|
||||
"translation": "Solo"
|
||||
},
|
||||
"J9+zIR": {
|
||||
@@ -5545,9 +5597,9 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 225],
|
||||
["src/components/SideNavigation.tsx", 226],
|
||||
["src/components/SideNavigation.tsx", 236]
|
||||
["src/components/SideNavigation.tsx", 228],
|
||||
["src/components/SideNavigation.tsx", 229],
|
||||
["src/components/SideNavigation.tsx", 239]
|
||||
],
|
||||
"translation": "Start gratis proefperiode"
|
||||
},
|
||||
@@ -5565,6 +5617,13 @@
|
||||
"origin": [["src/views/settings/components/WebhookList.tsx", 232]],
|
||||
"translation": "Status"
|
||||
},
|
||||
"hQRttt": {
|
||||
"message": "Submit",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
|
||||
"translation": "Verzenden"
|
||||
},
|
||||
"WYDptz": {
|
||||
"message": "Subscription Required",
|
||||
"placeholders": {},
|
||||
@@ -5628,7 +5687,7 @@
|
||||
"message": "Team",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]],
|
||||
"translation": "Team"
|
||||
},
|
||||
"bff61F": {
|
||||
@@ -5658,8 +5717,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 566]
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/board/index.tsx", 579]
|
||||
],
|
||||
"translation": "Sjabloon"
|
||||
},
|
||||
@@ -5696,7 +5755,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 109],
|
||||
["src/components/SideNavigation.tsx", 110],
|
||||
["src/views/home/components/Features.tsx", 115]
|
||||
],
|
||||
"translation": "Sjablonen"
|
||||
@@ -5770,14 +5829,23 @@
|
||||
"message": "The board has been archived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"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": {
|
||||
"message": "The board has been unarchived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]],
|
||||
"translation": "Het board is gedearchiveerd."
|
||||
},
|
||||
"nKBUeF": {
|
||||
@@ -6088,7 +6156,7 @@
|
||||
"message": "Unable to add comment",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]],
|
||||
"translation": "Kan opmerking niet toevoegen"
|
||||
},
|
||||
"2Q871c": {
|
||||
@@ -6117,7 +6185,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 313],
|
||||
["src/views/board/index.tsx", 319],
|
||||
["src/views/card/components/Dropdown.tsx", 79],
|
||||
["src/views/public/board/CardModal.tsx", 43],
|
||||
["src/views/public/board/index.tsx", 84]
|
||||
@@ -6228,6 +6296,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Unable to move card",
|
||||
"placeholders": {},
|
||||
@@ -6288,7 +6363,7 @@
|
||||
"message": "Unable to update board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]],
|
||||
"translation": "Kan bord niet bijwerken"
|
||||
},
|
||||
"XpcjLO": {
|
||||
@@ -6310,7 +6385,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 273],
|
||||
["src/views/board/index.tsx", 279],
|
||||
["src/views/card/index.tsx", 235]
|
||||
],
|
||||
"translation": "Kan kaart niet bijwerken"
|
||||
@@ -6355,7 +6430,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 217],
|
||||
["src/views/board/index.tsx", 223],
|
||||
["src/views/card/components/ListSelector.tsx", 54]
|
||||
],
|
||||
"translation": "Kan lijst niet bijwerken"
|
||||
@@ -6395,7 +6470,7 @@
|
||||
"message": "Unarchive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Board dearchiveren"
|
||||
},
|
||||
"E8zYtd": {
|
||||
@@ -6508,7 +6583,7 @@
|
||||
"message": "Unlimited members and a custom workspace username for teams ready to scale.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]],
|
||||
"translation": "Onbeperkt aantal leden en een aangepaste werkruimte-URL voor teams die klaar zijn om te groeien."
|
||||
},
|
||||
"i5yNAO": {
|
||||
@@ -6533,7 +6608,8 @@
|
||||
["src/pages/unsubscribe/index.tsx", 68],
|
||||
["src/pages/unsubscribe/index.tsx", 93]
|
||||
],
|
||||
"translation": "Uitschrijven"
|
||||
"translation": "Uitschrijven",
|
||||
"obsolete": true
|
||||
},
|
||||
"EkH9pt": {
|
||||
"message": "Update",
|
||||
@@ -6598,7 +6674,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/index.tsx", 295],
|
||||
["src/views/onboarding/select-plan/index.tsx", 241]
|
||||
["src/views/onboarding/select-plan/index.tsx", 245]
|
||||
],
|
||||
"translation": "Upgraden"
|
||||
},
|
||||
@@ -6778,7 +6854,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 63]],
|
||||
"translation": "We konden je voorkeuren niet bijwerken. Probeer het opnieuw."
|
||||
"translation": "We konden je voorkeuren niet bijwerken. Probeer het opnieuw.",
|
||||
"obsolete": true
|
||||
},
|
||||
"7sdSkl": {
|
||||
"message": "We sent a link to {magicLinkRecipient}",
|
||||
@@ -6931,8 +7008,8 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 47],
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/members/index.tsx", 278],
|
||||
["src/views/public/board/index.tsx", 125],
|
||||
["src/views/public/boards/index.tsx", 75]
|
||||
@@ -7146,6 +7223,13 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 127]],
|
||||
"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": {
|
||||
"message": "You don't have permission",
|
||||
"placeholders": {},
|
||||
@@ -7154,11 +7238,11 @@
|
||||
["src/views/board/components/List.tsx", 117],
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
|
||||
["src/views/board/components/VisibilityButton.tsx", 72],
|
||||
["src/views/board/index.tsx", 604],
|
||||
["src/views/board/index.tsx", 662],
|
||||
["src/views/board/index.tsx", 617],
|
||||
["src/views/board/index.tsx", 675],
|
||||
["src/views/boards/components/BoardsList.tsx", 71],
|
||||
["src/views/boards/index.tsx", 59],
|
||||
["src/views/boards/index.tsx", 80]
|
||||
["src/views/boards/index.tsx", 68],
|
||||
["src/views/boards/index.tsx", 89]
|
||||
],
|
||||
"translation": "Je hebt geen toestemming"
|
||||
},
|
||||
@@ -7181,7 +7265,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 98]],
|
||||
"translation": "Je bent uitgeschreven!"
|
||||
"translation": "Je bent uitgeschreven!",
|
||||
"obsolete": true
|
||||
},
|
||||
"R275Pz": {
|
||||
"message": "You have unlimited seats with your Pro Plan. There is no additional charge for new members!",
|
||||
@@ -7250,7 +7335,7 @@
|
||||
"message": "Your avatar",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]],
|
||||
"translation": "Jouw avatar"
|
||||
},
|
||||
"evg7+A": {
|
||||
@@ -7360,7 +7445,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 33]],
|
||||
"translation": "Je afmeldlink mist een token. Open de nieuwste e-mail en probeer het opnieuw."
|
||||
"translation": "Je afmeldlink mist een token. Open de nieuwste e-mail en probeer het opnieuw.",
|
||||
"obsolete": true
|
||||
},
|
||||
"GRAGsB": {
|
||||
"message": "Your workspace",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -19,7 +19,7 @@
|
||||
"0": ["isTemplate ? \"Templates\" : \"Boards\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 53]],
|
||||
"origin": [["src/views/boards/index.tsx", 62]],
|
||||
"translation": "{0}"
|
||||
},
|
||||
"JArWcF": {
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/card/index.tsx", 321]
|
||||
],
|
||||
"translation": "{0} | {1}"
|
||||
@@ -44,7 +44,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"translation": "{0} został dodany do ulubionych."
|
||||
},
|
||||
"bDI6VI": {
|
||||
@@ -53,7 +53,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]],
|
||||
"translation": "{0} został usunięty z ulubionych."
|
||||
},
|
||||
"CJukzS": {
|
||||
@@ -71,7 +71,7 @@
|
||||
"0": ["isTemplate ? \"Template\" : \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 557]],
|
||||
"origin": [["src/views/board/index.tsx", 570]],
|
||||
"translation": "{0} nie znaleziono"
|
||||
},
|
||||
"0xWkkH": {
|
||||
@@ -220,7 +220,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 26],
|
||||
["src/views/boards/index.tsx", 30],
|
||||
["src/views/settings/components/NewWebhookModal.tsx", 321],
|
||||
["src/views/settings/components/WebhookList.tsx", 106]
|
||||
],
|
||||
@@ -286,7 +286,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/card/components/Comment.tsx", 185],
|
||||
["src/views/card/components/NewCommentForm.tsx", 68]
|
||||
["src/views/card/components/NewCommentForm.tsx", 85]
|
||||
],
|
||||
"translation": "Dodaj komentarz... (wpisz '/' aby otworzyć polecenia lub '@', aby wspomnieć)"
|
||||
},
|
||||
@@ -294,7 +294,7 @@
|
||||
"message": "Add description... (type '/' to open commands or '@' to mention)",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/Editor.tsx", 493]],
|
||||
"origin": [["src/components/Editor.tsx", 499]],
|
||||
"translation": "Dodaj opis... (wpisz '/' aby otworzyć polecenia lub '@', aby wspomnieć)"
|
||||
},
|
||||
"abUZlY": {
|
||||
@@ -328,7 +328,7 @@
|
||||
"message": "Add to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]],
|
||||
"translation": "Dodaj do ulubionych"
|
||||
},
|
||||
"cWXW+7": {
|
||||
@@ -423,7 +423,7 @@
|
||||
"message": "Added to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"translation": "Dodano do ulubionych"
|
||||
},
|
||||
"14Xi3Z": {
|
||||
@@ -577,7 +577,7 @@
|
||||
"message": "Annual",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]],
|
||||
"translation": "Rocznie"
|
||||
},
|
||||
"3bqt9U": {
|
||||
@@ -657,14 +657,14 @@
|
||||
"message": "Archive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Zarchiwizuj tablicę"
|
||||
},
|
||||
"TdfEV7": {
|
||||
"message": "Archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 27]],
|
||||
"origin": [["src/views/boards/index.tsx", 31]],
|
||||
"translation": "Zarchiwizowana"
|
||||
},
|
||||
"lo8xBK": {
|
||||
@@ -833,7 +833,7 @@
|
||||
"message": "Best for small teams who want to collaborate and move faster together.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]],
|
||||
"translation": "Najlepszy dla małych zespołów, które chcą współpracować i działać szybciej razem."
|
||||
},
|
||||
"qaS+1/": {
|
||||
@@ -887,7 +887,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/card/index.tsx", 321],
|
||||
["src/views/public/board/index.tsx", 125]
|
||||
],
|
||||
@@ -906,9 +906,16 @@
|
||||
"message": "Board archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Tablica zarchiwizowana"
|
||||
},
|
||||
"wE3hGS": {
|
||||
"message": "Board moved",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
|
||||
"translation": "Tablica przeniesiona"
|
||||
},
|
||||
"wewm3j": {
|
||||
"message": "Board name cannot exceed 100 characters",
|
||||
"placeholders": {},
|
||||
@@ -943,7 +950,7 @@
|
||||
"message": "Board unarchived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Tablica przywrócona z archiwum"
|
||||
},
|
||||
"Xid3K6": {
|
||||
@@ -999,7 +1006,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 97],
|
||||
["src/components/SideNavigation.tsx", 98],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 73]
|
||||
],
|
||||
"translation": "Tablice"
|
||||
@@ -1281,12 +1288,13 @@
|
||||
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 267],
|
||||
["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/DeleteCardConfirmation.tsx", 86],
|
||||
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
|
||||
["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
|
||||
["src/views/onboarding/select-plan/index.tsx", 236],
|
||||
["src/views/onboarding/select-plan/index.tsx", 240],
|
||||
["src/views/settings/components/Avatar.tsx", 287],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
|
||||
[
|
||||
@@ -1324,6 +1332,13 @@
|
||||
"origin": [["src/views/card/components/Dropdown.tsx", 48]],
|
||||
"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": {
|
||||
"message": "Card not found",
|
||||
"placeholders": {},
|
||||
@@ -1346,7 +1361,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 308],
|
||||
["src/views/board/index.tsx", 314],
|
||||
["src/views/card/components/Dropdown.tsx", 74],
|
||||
["src/views/public/board/CardModal.tsx", 38]
|
||||
],
|
||||
@@ -1429,7 +1444,7 @@
|
||||
"message": "Choose a plan",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]],
|
||||
"translation": "Wybierz plan"
|
||||
},
|
||||
"5EMoSo": {
|
||||
@@ -1611,7 +1626,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 81]],
|
||||
"translation": "Potwierdź swoje preferencje dotyczące e-maili:"
|
||||
"translation": "Potwierdź swoje preferencje dotyczące e-maili:",
|
||||
"obsolete": true
|
||||
},
|
||||
"479pdJ": {
|
||||
"message": "Confirm your new password",
|
||||
@@ -1704,7 +1720,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 242],
|
||||
["src/views/onboarding/select-plan/index.tsx", 246],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 315]
|
||||
],
|
||||
"translation": "Kontynuuj"
|
||||
@@ -1873,7 +1889,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/components/BoardsList.tsx", 80],
|
||||
["src/views/boards/index.tsx", 41]
|
||||
["src/views/boards/index.tsx", 45]
|
||||
],
|
||||
"translation": "Utwórz nową {0}"
|
||||
},
|
||||
@@ -1899,8 +1915,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 92],
|
||||
["src/views/board/index.tsx", 671]
|
||||
["src/views/board/index.tsx", 99],
|
||||
["src/views/board/index.tsx", 684]
|
||||
],
|
||||
"translation": "Utwórz nową listę"
|
||||
},
|
||||
@@ -1924,7 +1940,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/NewWorkspaceForm.tsx", 227],
|
||||
["src/components/WorkspaceMenu.tsx", 171]
|
||||
["src/components/WorkspaceMenu.tsx", 176]
|
||||
],
|
||||
"translation": "Utwórz workspace"
|
||||
},
|
||||
@@ -2118,7 +2134,7 @@
|
||||
"message": "Delete board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Usuń tablicę"
|
||||
},
|
||||
"nabda1": {
|
||||
@@ -2149,7 +2165,7 @@
|
||||
"message": "Delete template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Usuń szablon"
|
||||
},
|
||||
"snMaH4": {
|
||||
@@ -2211,6 +2227,13 @@
|
||||
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
|
||||
"translation": "Design"
|
||||
},
|
||||
"Uf+1DF": {
|
||||
"message": "Destination workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
|
||||
"translation": "Docelowy obszar roboczy"
|
||||
},
|
||||
"Odv3J6": {
|
||||
"message": "Disconnect GitHub",
|
||||
"placeholders": {},
|
||||
@@ -2272,7 +2295,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 78]],
|
||||
"translation": "Czy chcesz zrezygnować z subskrypcji?"
|
||||
"translation": "Czy chcesz zrezygnować z subskrypcji?",
|
||||
"obsolete": true
|
||||
},
|
||||
"JyXBgS": {
|
||||
"message": "docs",
|
||||
@@ -2416,7 +2440,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/BoardDropdown.tsx", 105],
|
||||
["src/views/board/components/BoardDropdown.tsx", 106],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
|
||||
],
|
||||
"translation": "Edytuj URL tablicy"
|
||||
@@ -2994,8 +3018,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 78],
|
||||
["src/views/onboarding/select-plan/index.tsx", 79],
|
||||
["src/views/onboarding/select-plan/index.tsx", 82],
|
||||
["src/views/onboarding/select-plan/index.tsx", 83],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
@@ -3103,7 +3127,7 @@
|
||||
"message": "Get started by creating a new list",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 656]],
|
||||
"origin": [["src/views/board/index.tsx", 669]],
|
||||
"translation": "Rozpocznij, tworząc nową listę"
|
||||
},
|
||||
"oW13KZ": {
|
||||
@@ -3180,7 +3204,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 105],
|
||||
["src/components/SideNavigation.tsx", 106],
|
||||
["src/pages/404.tsx", 44]
|
||||
],
|
||||
"translation": "Przejdź do tablic"
|
||||
@@ -3196,28 +3220,28 @@
|
||||
"message": "Go to members",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 129]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 130]],
|
||||
"translation": "Przejdź do członków"
|
||||
},
|
||||
"1WuwiM": {
|
||||
"message": "Go to settings",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 141]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 142]],
|
||||
"translation": "Przejdź do ustawień"
|
||||
},
|
||||
"csFbe+": {
|
||||
"message": "Go to templates",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 117]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 118]],
|
||||
"translation": "Przejdź do szablonów"
|
||||
},
|
||||
"SUvm1Y": {
|
||||
"message": "Good for individuals starting out who just need the essentials.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"translation": "Dobry dla osób zaczynających, które potrzebują tylko podstaw."
|
||||
},
|
||||
"cdyS7J": {
|
||||
@@ -3360,7 +3384,7 @@
|
||||
"message": "Import",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 73]],
|
||||
"origin": [["src/views/boards/index.tsx", 82]],
|
||||
"translation": "Importuj"
|
||||
},
|
||||
"2MPcep": {
|
||||
@@ -3743,7 +3767,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
|
||||
["src/views/board/index.tsx", 306],
|
||||
["src/views/board/index.tsx", 312],
|
||||
["src/views/card/components/Dropdown.tsx", 72],
|
||||
["src/views/public/board/CardModal.tsx", 36],
|
||||
["src/views/public/board/index.tsx", 77]
|
||||
@@ -3843,7 +3867,7 @@
|
||||
"message": "Make template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]],
|
||||
"translation": "Utwórz szablon"
|
||||
},
|
||||
"hB02vO": {
|
||||
@@ -3923,7 +3947,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 121],
|
||||
["src/components/SideNavigation.tsx", 122],
|
||||
["src/views/board/components/Filters.tsx", 147],
|
||||
["src/views/board/components/NewCardForm.tsx", 386],
|
||||
["src/views/card/index.tsx", 143],
|
||||
@@ -3964,7 +3988,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 63],
|
||||
["src/views/onboarding/select-plan/index.tsx", 67],
|
||||
["src/views/pricing/components/Pricing.tsx", 14],
|
||||
["src/views/pricing/index.tsx", 20]
|
||||
],
|
||||
@@ -3977,6 +4001,20 @@
|
||||
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
|
||||
"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": {
|
||||
"message": "Move to another list",
|
||||
"placeholders": {},
|
||||
@@ -3991,6 +4029,13 @@
|
||||
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
|
||||
"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": {
|
||||
"message": "moved the card from <0>{0}</0> to<1>{1}</1>",
|
||||
"placeholders": {
|
||||
@@ -4047,7 +4092,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 95],
|
||||
["src/views/boards/index.tsx", 104],
|
||||
["src/views/home/components/Features.tsx", 73]
|
||||
],
|
||||
"translation": "Nowy"
|
||||
@@ -4102,7 +4147,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/NewListForm.tsx", 113],
|
||||
["src/views/board/index.tsx", 620]
|
||||
["src/views/board/index.tsx", 633]
|
||||
],
|
||||
"translation": "Nowa lista"
|
||||
},
|
||||
@@ -4235,14 +4280,14 @@
|
||||
"message": "No lists",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 652]],
|
||||
"origin": [["src/views/board/index.tsx", 665]],
|
||||
"translation": "Brak list"
|
||||
},
|
||||
"fvLNDy": {
|
||||
"message": "No lists have been created yet",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 657]],
|
||||
"origin": [["src/views/board/index.tsx", 670]],
|
||||
"translation": "Nie utworzono jeszcze żadnych list"
|
||||
},
|
||||
"i30J2U": {
|
||||
@@ -4559,7 +4604,7 @@
|
||||
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]],
|
||||
"translation": "Wybierz plan, aby rozpocząć. Wszystkie płatne plany zawierają 14-dniowy bezpłatny okres próbny."
|
||||
},
|
||||
"GdgCoi": {
|
||||
@@ -4657,15 +4702,15 @@
|
||||
["src/components/DeleteLabelConfirmation.tsx", 26],
|
||||
["src/components/FeedbackModal.tsx", 41],
|
||||
["src/components/NewWorkspaceForm.tsx", 110],
|
||||
["src/views/board/components/BoardDropdown.tsx", 68],
|
||||
["src/views/board/components/BoardDropdown.tsx", 69],
|
||||
["src/views/board/components/NewCardForm.tsx", 193],
|
||||
["src/views/board/components/NewListForm.tsx", 79],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 61],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 77],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
|
||||
["src/views/board/components/VisibilityButton.tsx", 57],
|
||||
["src/views/board/index.tsx", 218],
|
||||
["src/views/board/index.tsx", 274],
|
||||
["src/views/board/index.tsx", 224],
|
||||
["src/views/board/index.tsx", 280],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
@@ -4683,7 +4728,7 @@
|
||||
["src/views/card/components/MemberSelector.tsx", 82],
|
||||
["src/views/card/components/NewChecklistForm.tsx", 71],
|
||||
["src/views/card/components/NewChecklistItemForm.tsx", 90],
|
||||
["src/views/card/components/NewCommentForm.tsx", 37],
|
||||
["src/views/card/components/NewCommentForm.tsx", 38],
|
||||
["src/views/card/index.tsx", 236],
|
||||
["src/views/card/index.tsx", 249],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
|
||||
@@ -4723,7 +4768,7 @@
|
||||
"origin": [
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 76],
|
||||
["src/views/board/components/CardContextMoveListModal.tsx", 42],
|
||||
["src/views/board/index.tsx", 315],
|
||||
["src/views/board/index.tsx", 321],
|
||||
["src/views/card/components/Dropdown.tsx", 55],
|
||||
["src/views/card/components/Dropdown.tsx", 81],
|
||||
["src/views/card/components/Dropdown.tsx", 100],
|
||||
@@ -4786,7 +4831,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 92],
|
||||
["src/views/onboarding/select-plan/index.tsx", 96],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
|
||||
["src/views/pricing/components/PricingTiers.tsx", 70]
|
||||
],
|
||||
@@ -4892,7 +4937,7 @@
|
||||
"message": "Remove from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"translation": "Usuń z ulubionych"
|
||||
},
|
||||
"99VIgC": {
|
||||
@@ -4946,7 +4991,7 @@
|
||||
"message": "Removed from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]],
|
||||
"translation": "Usunięto z ulubionych"
|
||||
},
|
||||
"YVT40D": {
|
||||
@@ -5193,6 +5238,13 @@
|
||||
],
|
||||
"translation": "Wybierz listę"
|
||||
},
|
||||
"NM2hyD": {
|
||||
"message": "Select a workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
|
||||
"translation": "Wybierz obszar roboczy"
|
||||
},
|
||||
"wgNoIs": {
|
||||
"message": "Select all",
|
||||
"placeholders": {},
|
||||
@@ -5309,7 +5361,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 102],
|
||||
["src/components/SideNavigation.tsx", 133]
|
||||
["src/components/SideNavigation.tsx", 134]
|
||||
],
|
||||
"translation": "Ustawienia"
|
||||
},
|
||||
@@ -5404,7 +5456,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 315],
|
||||
["src/views/onboarding/select-plan/index.tsx", 319],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 386]
|
||||
],
|
||||
"translation": "Wyloguj się"
|
||||
@@ -5498,7 +5550,7 @@
|
||||
"message": "Solo",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]],
|
||||
"translation": "Solo"
|
||||
},
|
||||
"J9+zIR": {
|
||||
@@ -5545,9 +5597,9 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 225],
|
||||
["src/components/SideNavigation.tsx", 226],
|
||||
["src/components/SideNavigation.tsx", 236]
|
||||
["src/components/SideNavigation.tsx", 228],
|
||||
["src/components/SideNavigation.tsx", 229],
|
||||
["src/components/SideNavigation.tsx", 239]
|
||||
],
|
||||
"translation": "Rozpocznij bezpłatny okres próbny"
|
||||
},
|
||||
@@ -5565,6 +5617,13 @@
|
||||
"origin": [["src/views/settings/components/WebhookList.tsx", 232]],
|
||||
"translation": "Status"
|
||||
},
|
||||
"hQRttt": {
|
||||
"message": "Submit",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
|
||||
"translation": "Prześlij"
|
||||
},
|
||||
"WYDptz": {
|
||||
"message": "Subscription Required",
|
||||
"placeholders": {},
|
||||
@@ -5628,7 +5687,7 @@
|
||||
"message": "Team",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]],
|
||||
"translation": "Zespół"
|
||||
},
|
||||
"bff61F": {
|
||||
@@ -5658,8 +5717,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 566]
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/board/index.tsx", 579]
|
||||
],
|
||||
"translation": "Szablon"
|
||||
},
|
||||
@@ -5696,7 +5755,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 109],
|
||||
["src/components/SideNavigation.tsx", 110],
|
||||
["src/views/home/components/Features.tsx", 115]
|
||||
],
|
||||
"translation": "Szablony"
|
||||
@@ -5770,14 +5829,23 @@
|
||||
"message": "The board has been archived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"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": {
|
||||
"message": "The board has been unarchived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]],
|
||||
"translation": "Tablica została przywrócona z archiwum."
|
||||
},
|
||||
"nKBUeF": {
|
||||
@@ -6088,7 +6156,7 @@
|
||||
"message": "Unable to add comment",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]],
|
||||
"translation": "Nie można dodać komentarza"
|
||||
},
|
||||
"2Q871c": {
|
||||
@@ -6117,7 +6185,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 313],
|
||||
["src/views/board/index.tsx", 319],
|
||||
["src/views/card/components/Dropdown.tsx", 79],
|
||||
["src/views/public/board/CardModal.tsx", 43],
|
||||
["src/views/public/board/index.tsx", 84]
|
||||
@@ -6228,6 +6296,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Unable to move card",
|
||||
"placeholders": {},
|
||||
@@ -6288,7 +6363,7 @@
|
||||
"message": "Unable to update board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]],
|
||||
"translation": "Nie można zaktualizować tablicy"
|
||||
},
|
||||
"XpcjLO": {
|
||||
@@ -6310,7 +6385,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 273],
|
||||
["src/views/board/index.tsx", 279],
|
||||
["src/views/card/index.tsx", 235]
|
||||
],
|
||||
"translation": "Nie można zaktualizować karty"
|
||||
@@ -6355,7 +6430,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 217],
|
||||
["src/views/board/index.tsx", 223],
|
||||
["src/views/card/components/ListSelector.tsx", 54]
|
||||
],
|
||||
"translation": "Nie można zaktualizować listy"
|
||||
@@ -6395,7 +6470,7 @@
|
||||
"message": "Unarchive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Przywróć tablicę z archiwum"
|
||||
},
|
||||
"E8zYtd": {
|
||||
@@ -6508,7 +6583,7 @@
|
||||
"message": "Unlimited members and a custom workspace username for teams ready to scale.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]],
|
||||
"translation": "Nieograniczona liczba członków i niestandardowa nazwa użytkownika przestrzeni roboczej dla zespołów gotowych do rozwoju."
|
||||
},
|
||||
"i5yNAO": {
|
||||
@@ -6533,7 +6608,8 @@
|
||||
["src/pages/unsubscribe/index.tsx", 68],
|
||||
["src/pages/unsubscribe/index.tsx", 93]
|
||||
],
|
||||
"translation": "Anuluj subskrypcję"
|
||||
"translation": "Anuluj subskrypcję",
|
||||
"obsolete": true
|
||||
},
|
||||
"EkH9pt": {
|
||||
"message": "Update",
|
||||
@@ -6598,7 +6674,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/index.tsx", 295],
|
||||
["src/views/onboarding/select-plan/index.tsx", 241]
|
||||
["src/views/onboarding/select-plan/index.tsx", 245]
|
||||
],
|
||||
"translation": "Uaktualnij"
|
||||
},
|
||||
@@ -6778,7 +6854,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 63]],
|
||||
"translation": "Nie udało się zaktualizować Twoich preferencji. Spróbuj ponownie."
|
||||
"translation": "Nie udało się zaktualizować Twoich preferencji. Spróbuj ponownie.",
|
||||
"obsolete": true
|
||||
},
|
||||
"7sdSkl": {
|
||||
"message": "We sent a link to {magicLinkRecipient}",
|
||||
@@ -6931,8 +7008,8 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 47],
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/members/index.tsx", 278],
|
||||
["src/views/public/board/index.tsx", 125],
|
||||
["src/views/public/boards/index.tsx", 75]
|
||||
@@ -7146,6 +7223,13 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 127]],
|
||||
"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": {
|
||||
"message": "You don't have permission",
|
||||
"placeholders": {},
|
||||
@@ -7154,11 +7238,11 @@
|
||||
["src/views/board/components/List.tsx", 117],
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
|
||||
["src/views/board/components/VisibilityButton.tsx", 72],
|
||||
["src/views/board/index.tsx", 604],
|
||||
["src/views/board/index.tsx", 662],
|
||||
["src/views/board/index.tsx", 617],
|
||||
["src/views/board/index.tsx", 675],
|
||||
["src/views/boards/components/BoardsList.tsx", 71],
|
||||
["src/views/boards/index.tsx", 59],
|
||||
["src/views/boards/index.tsx", 80]
|
||||
["src/views/boards/index.tsx", 68],
|
||||
["src/views/boards/index.tsx", 89]
|
||||
],
|
||||
"translation": "Nie masz uprawnień"
|
||||
},
|
||||
@@ -7181,7 +7265,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 98]],
|
||||
"translation": "Zostałeś wypisany z subskrypcji!"
|
||||
"translation": "Zostałeś wypisany z subskrypcji!",
|
||||
"obsolete": true
|
||||
},
|
||||
"R275Pz": {
|
||||
"message": "You have unlimited seats with your Pro Plan. There is no additional charge for new members!",
|
||||
@@ -7250,7 +7335,7 @@
|
||||
"message": "Your avatar",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]],
|
||||
"translation": "Twój awatar"
|
||||
},
|
||||
"evg7+A": {
|
||||
@@ -7360,7 +7445,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 33]],
|
||||
"translation": "Twój link do wypisania się nie zawiera tokena. Otwórz najnowszy e-mail i spróbuj ponownie."
|
||||
"translation": "Twój link do wypisania się nie zawiera tokena. Otwórz najnowszy e-mail i spróbuj ponownie.",
|
||||
"obsolete": true
|
||||
},
|
||||
"GRAGsB": {
|
||||
"message": "Your workspace",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -19,7 +19,7 @@
|
||||
"0": ["isTemplate ? \"Templates\" : \"Boards\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 53]],
|
||||
"origin": [["src/views/boards/index.tsx", 62]],
|
||||
"translation": "{0}"
|
||||
},
|
||||
"JArWcF": {
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/card/index.tsx", 321]
|
||||
],
|
||||
"translation": "{0} | {1}"
|
||||
@@ -44,7 +44,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"translation": "{0} foi adicionado aos seus favoritos."
|
||||
},
|
||||
"bDI6VI": {
|
||||
@@ -53,7 +53,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]],
|
||||
"translation": "{0} foi removido dos seus favoritos."
|
||||
},
|
||||
"CJukzS": {
|
||||
@@ -71,7 +71,7 @@
|
||||
"0": ["isTemplate ? \"Template\" : \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 557]],
|
||||
"origin": [["src/views/board/index.tsx", 570]],
|
||||
"translation": "{0} não encontrado"
|
||||
},
|
||||
"0xWkkH": {
|
||||
@@ -220,7 +220,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 26],
|
||||
["src/views/boards/index.tsx", 30],
|
||||
["src/views/settings/components/NewWebhookModal.tsx", 321],
|
||||
["src/views/settings/components/WebhookList.tsx", 106]
|
||||
],
|
||||
@@ -286,7 +286,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/card/components/Comment.tsx", 185],
|
||||
["src/views/card/components/NewCommentForm.tsx", 68]
|
||||
["src/views/card/components/NewCommentForm.tsx", 85]
|
||||
],
|
||||
"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)",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/Editor.tsx", 493]],
|
||||
"origin": [["src/components/Editor.tsx", 499]],
|
||||
"translation": "Adicionar descrição... (digite '/' para abrir comandos ou '@' para mencionar)"
|
||||
},
|
||||
"abUZlY": {
|
||||
@@ -328,7 +328,7 @@
|
||||
"message": "Add to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]],
|
||||
"translation": "Adicionar aos favoritos"
|
||||
},
|
||||
"cWXW+7": {
|
||||
@@ -423,7 +423,7 @@
|
||||
"message": "Added to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"translation": "Adicionado aos favoritos"
|
||||
},
|
||||
"14Xi3Z": {
|
||||
@@ -577,7 +577,7 @@
|
||||
"message": "Annual",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]],
|
||||
"translation": "Anual"
|
||||
},
|
||||
"3bqt9U": {
|
||||
@@ -657,14 +657,14 @@
|
||||
"message": "Archive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Arquivar quadro"
|
||||
},
|
||||
"TdfEV7": {
|
||||
"message": "Archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 27]],
|
||||
"origin": [["src/views/boards/index.tsx", 31]],
|
||||
"translation": "Arquivado"
|
||||
},
|
||||
"lo8xBK": {
|
||||
@@ -833,7 +833,7 @@
|
||||
"message": "Best for small teams who want to collaborate and move faster together.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]],
|
||||
"translation": "Ideal para pequenas equipes que desejam colaborar e avançar mais rápido juntas."
|
||||
},
|
||||
"qaS+1/": {
|
||||
@@ -887,7 +887,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/card/index.tsx", 321],
|
||||
["src/views/public/board/index.tsx", 125]
|
||||
],
|
||||
@@ -906,9 +906,16 @@
|
||||
"message": "Board archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Quadro arquivado"
|
||||
},
|
||||
"wE3hGS": {
|
||||
"message": "Board moved",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
|
||||
"translation": "Quadro movido"
|
||||
},
|
||||
"wewm3j": {
|
||||
"message": "Board name cannot exceed 100 characters",
|
||||
"placeholders": {},
|
||||
@@ -943,7 +950,7 @@
|
||||
"message": "Board unarchived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Quadro desarquivado"
|
||||
},
|
||||
"Xid3K6": {
|
||||
@@ -999,7 +1006,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 97],
|
||||
["src/components/SideNavigation.tsx", 98],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 73]
|
||||
],
|
||||
"translation": "Quadros"
|
||||
@@ -1281,12 +1288,13 @@
|
||||
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 267],
|
||||
["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/DeleteCardConfirmation.tsx", 86],
|
||||
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
|
||||
["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
|
||||
["src/views/onboarding/select-plan/index.tsx", 236],
|
||||
["src/views/onboarding/select-plan/index.tsx", 240],
|
||||
["src/views/settings/components/Avatar.tsx", 287],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
|
||||
[
|
||||
@@ -1324,6 +1332,13 @@
|
||||
"origin": [["src/views/card/components/Dropdown.tsx", 48]],
|
||||
"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": {
|
||||
"message": "Card not found",
|
||||
"placeholders": {},
|
||||
@@ -1346,7 +1361,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 308],
|
||||
["src/views/board/index.tsx", 314],
|
||||
["src/views/card/components/Dropdown.tsx", 74],
|
||||
["src/views/public/board/CardModal.tsx", 38]
|
||||
],
|
||||
@@ -1429,7 +1444,7 @@
|
||||
"message": "Choose a plan",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]],
|
||||
"translation": "Escolha um plano"
|
||||
},
|
||||
"5EMoSo": {
|
||||
@@ -1611,7 +1626,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 81]],
|
||||
"translation": "Confirme suas preferências de e-mail:"
|
||||
"translation": "Confirme suas preferências de e-mail:",
|
||||
"obsolete": true
|
||||
},
|
||||
"479pdJ": {
|
||||
"message": "Confirm your new password",
|
||||
@@ -1704,7 +1720,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 242],
|
||||
["src/views/onboarding/select-plan/index.tsx", 246],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 315]
|
||||
],
|
||||
"translation": "Continuar"
|
||||
@@ -1873,7 +1889,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/components/BoardsList.tsx", 80],
|
||||
["src/views/boards/index.tsx", 41]
|
||||
["src/views/boards/index.tsx", 45]
|
||||
],
|
||||
"translation": "Criar novo {0}"
|
||||
},
|
||||
@@ -1899,8 +1915,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 92],
|
||||
["src/views/board/index.tsx", 671]
|
||||
["src/views/board/index.tsx", 99],
|
||||
["src/views/board/index.tsx", 684]
|
||||
],
|
||||
"translation": "Criar nova lista"
|
||||
},
|
||||
@@ -1924,7 +1940,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/NewWorkspaceForm.tsx", 227],
|
||||
["src/components/WorkspaceMenu.tsx", 171]
|
||||
["src/components/WorkspaceMenu.tsx", 176]
|
||||
],
|
||||
"translation": "Criar workspace"
|
||||
},
|
||||
@@ -2118,7 +2134,7 @@
|
||||
"message": "Delete board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Excluir quadro"
|
||||
},
|
||||
"nabda1": {
|
||||
@@ -2149,7 +2165,7 @@
|
||||
"message": "Delete template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Excluir modelo"
|
||||
},
|
||||
"snMaH4": {
|
||||
@@ -2211,6 +2227,13 @@
|
||||
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
|
||||
"translation": "Design"
|
||||
},
|
||||
"Uf+1DF": {
|
||||
"message": "Destination workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
|
||||
"translation": "Workspace de destino"
|
||||
},
|
||||
"Odv3J6": {
|
||||
"message": "Disconnect GitHub",
|
||||
"placeholders": {},
|
||||
@@ -2272,7 +2295,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 78]],
|
||||
"translation": "Você deseja cancelar a assinatura?"
|
||||
"translation": "Você deseja cancelar a assinatura?",
|
||||
"obsolete": true
|
||||
},
|
||||
"JyXBgS": {
|
||||
"message": "docs",
|
||||
@@ -2416,7 +2440,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/BoardDropdown.tsx", 105],
|
||||
["src/views/board/components/BoardDropdown.tsx", 106],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
|
||||
],
|
||||
"translation": "Editar URL do quadro"
|
||||
@@ -2994,8 +3018,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 78],
|
||||
["src/views/onboarding/select-plan/index.tsx", 79],
|
||||
["src/views/onboarding/select-plan/index.tsx", 82],
|
||||
["src/views/onboarding/select-plan/index.tsx", 83],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
@@ -3103,7 +3127,7 @@
|
||||
"message": "Get started by creating a new list",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 656]],
|
||||
"origin": [["src/views/board/index.tsx", 669]],
|
||||
"translation": "Comece criando uma nova lista"
|
||||
},
|
||||
"oW13KZ": {
|
||||
@@ -3180,7 +3204,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 105],
|
||||
["src/components/SideNavigation.tsx", 106],
|
||||
["src/pages/404.tsx", 44]
|
||||
],
|
||||
"translation": "Ir para quadros"
|
||||
@@ -3196,28 +3220,28 @@
|
||||
"message": "Go to members",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 129]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 130]],
|
||||
"translation": "Ir para membros"
|
||||
},
|
||||
"1WuwiM": {
|
||||
"message": "Go to settings",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 141]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 142]],
|
||||
"translation": "Ir para configurações"
|
||||
},
|
||||
"csFbe+": {
|
||||
"message": "Go to templates",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 117]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 118]],
|
||||
"translation": "Ir para modelos"
|
||||
},
|
||||
"SUvm1Y": {
|
||||
"message": "Good for individuals starting out who just need the essentials.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"translation": "Bom para indivíduos começando que precisam apenas do essencial."
|
||||
},
|
||||
"cdyS7J": {
|
||||
@@ -3360,7 +3384,7 @@
|
||||
"message": "Import",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 73]],
|
||||
"origin": [["src/views/boards/index.tsx", 82]],
|
||||
"translation": "Importar"
|
||||
},
|
||||
"2MPcep": {
|
||||
@@ -3743,7 +3767,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
|
||||
["src/views/board/index.tsx", 306],
|
||||
["src/views/board/index.tsx", 312],
|
||||
["src/views/card/components/Dropdown.tsx", 72],
|
||||
["src/views/public/board/CardModal.tsx", 36],
|
||||
["src/views/public/board/index.tsx", 77]
|
||||
@@ -3843,7 +3867,7 @@
|
||||
"message": "Make template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]],
|
||||
"translation": "Criar modelo"
|
||||
},
|
||||
"hB02vO": {
|
||||
@@ -3923,7 +3947,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 121],
|
||||
["src/components/SideNavigation.tsx", 122],
|
||||
["src/views/board/components/Filters.tsx", 147],
|
||||
["src/views/board/components/NewCardForm.tsx", 386],
|
||||
["src/views/card/index.tsx", 143],
|
||||
@@ -3964,7 +3988,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 63],
|
||||
["src/views/onboarding/select-plan/index.tsx", 67],
|
||||
["src/views/pricing/components/Pricing.tsx", 14],
|
||||
["src/views/pricing/index.tsx", 20]
|
||||
],
|
||||
@@ -3977,6 +4001,20 @@
|
||||
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
|
||||
"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": {
|
||||
"message": "Move to another list",
|
||||
"placeholders": {},
|
||||
@@ -3991,6 +4029,13 @@
|
||||
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
|
||||
"translation": "Mover para lista"
|
||||
},
|
||||
"S3wq2O": {
|
||||
"message": "Move to workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
|
||||
"translation": "Mover para workspace"
|
||||
},
|
||||
"BOqTi5": {
|
||||
"message": "moved the card from <0>{0}</0> to<1>{1}</1>",
|
||||
"placeholders": {
|
||||
@@ -4047,7 +4092,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 95],
|
||||
["src/views/boards/index.tsx", 104],
|
||||
["src/views/home/components/Features.tsx", 73]
|
||||
],
|
||||
"translation": "Novo"
|
||||
@@ -4102,7 +4147,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/NewListForm.tsx", 113],
|
||||
["src/views/board/index.tsx", 620]
|
||||
["src/views/board/index.tsx", 633]
|
||||
],
|
||||
"translation": "Nova lista"
|
||||
},
|
||||
@@ -4235,14 +4280,14 @@
|
||||
"message": "No lists",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 652]],
|
||||
"origin": [["src/views/board/index.tsx", 665]],
|
||||
"translation": "Nenhuma lista"
|
||||
},
|
||||
"fvLNDy": {
|
||||
"message": "No lists have been created yet",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 657]],
|
||||
"origin": [["src/views/board/index.tsx", 670]],
|
||||
"translation": "Nenhuma lista foi criada ainda"
|
||||
},
|
||||
"i30J2U": {
|
||||
@@ -4559,7 +4604,7 @@
|
||||
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]],
|
||||
"translation": "Escolha um plano para começar. Todos os planos pagos incluem 14 dias de teste grátis."
|
||||
},
|
||||
"GdgCoi": {
|
||||
@@ -4657,15 +4702,15 @@
|
||||
["src/components/DeleteLabelConfirmation.tsx", 26],
|
||||
["src/components/FeedbackModal.tsx", 41],
|
||||
["src/components/NewWorkspaceForm.tsx", 110],
|
||||
["src/views/board/components/BoardDropdown.tsx", 68],
|
||||
["src/views/board/components/BoardDropdown.tsx", 69],
|
||||
["src/views/board/components/NewCardForm.tsx", 193],
|
||||
["src/views/board/components/NewListForm.tsx", 79],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 61],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 77],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
|
||||
["src/views/board/components/VisibilityButton.tsx", 57],
|
||||
["src/views/board/index.tsx", 218],
|
||||
["src/views/board/index.tsx", 274],
|
||||
["src/views/board/index.tsx", 224],
|
||||
["src/views/board/index.tsx", 280],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
@@ -4683,7 +4728,7 @@
|
||||
["src/views/card/components/MemberSelector.tsx", 82],
|
||||
["src/views/card/components/NewChecklistForm.tsx", 71],
|
||||
["src/views/card/components/NewChecklistItemForm.tsx", 90],
|
||||
["src/views/card/components/NewCommentForm.tsx", 37],
|
||||
["src/views/card/components/NewCommentForm.tsx", 38],
|
||||
["src/views/card/index.tsx", 236],
|
||||
["src/views/card/index.tsx", 249],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
|
||||
@@ -4723,7 +4768,7 @@
|
||||
"origin": [
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 76],
|
||||
["src/views/board/components/CardContextMoveListModal.tsx", 42],
|
||||
["src/views/board/index.tsx", 315],
|
||||
["src/views/board/index.tsx", 321],
|
||||
["src/views/card/components/Dropdown.tsx", 55],
|
||||
["src/views/card/components/Dropdown.tsx", 81],
|
||||
["src/views/card/components/Dropdown.tsx", 100],
|
||||
@@ -4786,7 +4831,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 92],
|
||||
["src/views/onboarding/select-plan/index.tsx", 96],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
|
||||
["src/views/pricing/components/PricingTiers.tsx", 70]
|
||||
],
|
||||
@@ -4892,7 +4937,7 @@
|
||||
"message": "Remove from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"translation": "Remover dos favoritos"
|
||||
},
|
||||
"99VIgC": {
|
||||
@@ -4946,7 +4991,7 @@
|
||||
"message": "Removed from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]],
|
||||
"translation": "Removido dos favoritos"
|
||||
},
|
||||
"YVT40D": {
|
||||
@@ -5193,6 +5238,13 @@
|
||||
],
|
||||
"translation": "Selecione uma lista"
|
||||
},
|
||||
"NM2hyD": {
|
||||
"message": "Select a workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
|
||||
"translation": "Selecione um workspace"
|
||||
},
|
||||
"wgNoIs": {
|
||||
"message": "Select all",
|
||||
"placeholders": {},
|
||||
@@ -5309,7 +5361,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 102],
|
||||
["src/components/SideNavigation.tsx", 133]
|
||||
["src/components/SideNavigation.tsx", 134]
|
||||
],
|
||||
"translation": "Configurações"
|
||||
},
|
||||
@@ -5404,7 +5456,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 315],
|
||||
["src/views/onboarding/select-plan/index.tsx", 319],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 386]
|
||||
],
|
||||
"translation": "Sair"
|
||||
@@ -5498,7 +5550,7 @@
|
||||
"message": "Solo",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]],
|
||||
"translation": "Solo"
|
||||
},
|
||||
"J9+zIR": {
|
||||
@@ -5545,9 +5597,9 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 225],
|
||||
["src/components/SideNavigation.tsx", 226],
|
||||
["src/components/SideNavigation.tsx", 236]
|
||||
["src/components/SideNavigation.tsx", 228],
|
||||
["src/components/SideNavigation.tsx", 229],
|
||||
["src/components/SideNavigation.tsx", 239]
|
||||
],
|
||||
"translation": "Iniciar teste gratuito"
|
||||
},
|
||||
@@ -5565,6 +5617,13 @@
|
||||
"origin": [["src/views/settings/components/WebhookList.tsx", 232]],
|
||||
"translation": "Status"
|
||||
},
|
||||
"hQRttt": {
|
||||
"message": "Submit",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
|
||||
"translation": "Enviar"
|
||||
},
|
||||
"WYDptz": {
|
||||
"message": "Subscription Required",
|
||||
"placeholders": {},
|
||||
@@ -5628,7 +5687,7 @@
|
||||
"message": "Team",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]],
|
||||
"translation": "Equipe"
|
||||
},
|
||||
"bff61F": {
|
||||
@@ -5658,8 +5717,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 566]
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/board/index.tsx", 579]
|
||||
],
|
||||
"translation": "Modelo"
|
||||
},
|
||||
@@ -5696,7 +5755,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 109],
|
||||
["src/components/SideNavigation.tsx", 110],
|
||||
["src/views/home/components/Features.tsx", 115]
|
||||
],
|
||||
"translation": "Templates"
|
||||
@@ -5770,14 +5829,23 @@
|
||||
"message": "The board has been archived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"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": {
|
||||
"message": "The board has been unarchived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]],
|
||||
"translation": "O quadro foi desarquivado."
|
||||
},
|
||||
"nKBUeF": {
|
||||
@@ -6088,7 +6156,7 @@
|
||||
"message": "Unable to add comment",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]],
|
||||
"translation": "Não foi possível adicionar comentário"
|
||||
},
|
||||
"2Q871c": {
|
||||
@@ -6117,7 +6185,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 313],
|
||||
["src/views/board/index.tsx", 319],
|
||||
["src/views/card/components/Dropdown.tsx", 79],
|
||||
["src/views/public/board/CardModal.tsx", 43],
|
||||
["src/views/public/board/index.tsx", 84]
|
||||
@@ -6228,6 +6296,13 @@
|
||||
],
|
||||
"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": {
|
||||
"message": "Unable to move card",
|
||||
"placeholders": {},
|
||||
@@ -6288,7 +6363,7 @@
|
||||
"message": "Unable to update board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]],
|
||||
"translation": "Não foi possível atualizar o quadro"
|
||||
},
|
||||
"XpcjLO": {
|
||||
@@ -6310,7 +6385,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 273],
|
||||
["src/views/board/index.tsx", 279],
|
||||
["src/views/card/index.tsx", 235]
|
||||
],
|
||||
"translation": "Não foi possível atualizar o cartão"
|
||||
@@ -6355,7 +6430,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 217],
|
||||
["src/views/board/index.tsx", 223],
|
||||
["src/views/card/components/ListSelector.tsx", 54]
|
||||
],
|
||||
"translation": "Não foi possível atualizar a lista"
|
||||
@@ -6395,7 +6470,7 @@
|
||||
"message": "Unarchive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Desarquivar quadro"
|
||||
},
|
||||
"E8zYtd": {
|
||||
@@ -6508,7 +6583,7 @@
|
||||
"message": "Unlimited members and a custom workspace username for teams ready to scale.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]],
|
||||
"translation": "Membros ilimitados e um nome de usuário personalizado para equipes prontas para crescer."
|
||||
},
|
||||
"i5yNAO": {
|
||||
@@ -6533,7 +6608,8 @@
|
||||
["src/pages/unsubscribe/index.tsx", 68],
|
||||
["src/pages/unsubscribe/index.tsx", 93]
|
||||
],
|
||||
"translation": "Cancelar inscrição"
|
||||
"translation": "Cancelar inscrição",
|
||||
"obsolete": true
|
||||
},
|
||||
"EkH9pt": {
|
||||
"message": "Update",
|
||||
@@ -6598,7 +6674,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/index.tsx", 295],
|
||||
["src/views/onboarding/select-plan/index.tsx", 241]
|
||||
["src/views/onboarding/select-plan/index.tsx", 245]
|
||||
],
|
||||
"translation": "Atualizar"
|
||||
},
|
||||
@@ -6778,7 +6854,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 63]],
|
||||
"translation": "Não foi possível atualizar suas preferências. Tente novamente."
|
||||
"translation": "Não foi possível atualizar suas preferências. Tente novamente.",
|
||||
"obsolete": true
|
||||
},
|
||||
"7sdSkl": {
|
||||
"message": "We sent a link to {magicLinkRecipient}",
|
||||
@@ -6931,8 +7008,8 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 47],
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/members/index.tsx", 278],
|
||||
["src/views/public/board/index.tsx", 125],
|
||||
["src/views/public/boards/index.tsx", 75]
|
||||
@@ -7146,6 +7223,13 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 127]],
|
||||
"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": {
|
||||
"message": "You don't have permission",
|
||||
"placeholders": {},
|
||||
@@ -7154,11 +7238,11 @@
|
||||
["src/views/board/components/List.tsx", 117],
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
|
||||
["src/views/board/components/VisibilityButton.tsx", 72],
|
||||
["src/views/board/index.tsx", 604],
|
||||
["src/views/board/index.tsx", 662],
|
||||
["src/views/board/index.tsx", 617],
|
||||
["src/views/board/index.tsx", 675],
|
||||
["src/views/boards/components/BoardsList.tsx", 71],
|
||||
["src/views/boards/index.tsx", 59],
|
||||
["src/views/boards/index.tsx", 80]
|
||||
["src/views/boards/index.tsx", 68],
|
||||
["src/views/boards/index.tsx", 89]
|
||||
],
|
||||
"translation": "Você não tem permissão"
|
||||
},
|
||||
@@ -7181,7 +7265,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 98]],
|
||||
"translation": "Você cancelou a inscrição!"
|
||||
"translation": "Você cancelou a inscrição!",
|
||||
"obsolete": true
|
||||
},
|
||||
"R275Pz": {
|
||||
"message": "You have unlimited seats with your Pro Plan. There is no additional charge for new members!",
|
||||
@@ -7250,7 +7335,7 @@
|
||||
"message": "Your avatar",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]],
|
||||
"translation": "Seu avatar"
|
||||
},
|
||||
"evg7+A": {
|
||||
@@ -7360,7 +7445,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 33]],
|
||||
"translation": "Seu link de cancelamento de inscrição está sem um token. Por favor, abra o e-mail mais recente e tente novamente."
|
||||
"translation": "Seu link de cancelamento de inscrição está sem um token. Por favor, abra o e-mail mais recente e tente novamente.",
|
||||
"obsolete": true
|
||||
},
|
||||
"GRAGsB": {
|
||||
"message": "Your workspace",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -19,7 +19,7 @@
|
||||
"0": ["isTemplate ? \"Templates\" : \"Boards\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 53]],
|
||||
"origin": [["src/views/boards/index.tsx", 62]],
|
||||
"translation": "{0}"
|
||||
},
|
||||
"JArWcF": {
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/card/index.tsx", 321]
|
||||
],
|
||||
"translation": "{0} | {1}"
|
||||
@@ -44,7 +44,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 59]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"translation": "{0} добавлен в избранное."
|
||||
},
|
||||
"bDI6VI": {
|
||||
@@ -53,7 +53,7 @@
|
||||
"0": ["boardName ?? \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 60]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 61]],
|
||||
"translation": "{0} удалён из избранного."
|
||||
},
|
||||
"CJukzS": {
|
||||
@@ -71,7 +71,7 @@
|
||||
"0": ["isTemplate ? \"Template\" : \"Board\""]
|
||||
},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 557]],
|
||||
"origin": [["src/views/board/index.tsx", 570]],
|
||||
"translation": "{0} не найдено"
|
||||
},
|
||||
"0xWkkH": {
|
||||
@@ -220,7 +220,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 26],
|
||||
["src/views/boards/index.tsx", 30],
|
||||
["src/views/settings/components/NewWebhookModal.tsx", 321],
|
||||
["src/views/settings/components/WebhookList.tsx", 106]
|
||||
],
|
||||
@@ -286,7 +286,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/card/components/Comment.tsx", 185],
|
||||
["src/views/card/components/NewCommentForm.tsx", 68]
|
||||
["src/views/card/components/NewCommentForm.tsx", 85]
|
||||
],
|
||||
"translation": "Добавить комментарий... (введите '/' для открытия команд или '@' для упоминания)"
|
||||
},
|
||||
@@ -294,7 +294,7 @@
|
||||
"message": "Add description... (type '/' to open commands or '@' to mention)",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/Editor.tsx", 493]],
|
||||
"origin": [["src/components/Editor.tsx", 499]],
|
||||
"translation": "Добавить описание... (введите '/' для открытия команд или '@' для упоминания)"
|
||||
},
|
||||
"abUZlY": {
|
||||
@@ -328,7 +328,7 @@
|
||||
"message": "Add to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 125]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 137]],
|
||||
"translation": "Добавить в избранное"
|
||||
},
|
||||
"cWXW+7": {
|
||||
@@ -423,7 +423,7 @@
|
||||
"message": "Added to favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 56]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"translation": "Добавлено в избранное"
|
||||
},
|
||||
"14Xi3Z": {
|
||||
@@ -577,7 +577,7 @@
|
||||
"message": "Annual",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 64]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 68]],
|
||||
"translation": "Ежегодно"
|
||||
},
|
||||
"3bqt9U": {
|
||||
@@ -657,14 +657,14 @@
|
||||
"message": "Archive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Архивировать доску"
|
||||
},
|
||||
"TdfEV7": {
|
||||
"message": "Archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 27]],
|
||||
"origin": [["src/views/boards/index.tsx", 31]],
|
||||
"translation": "В архиве"
|
||||
},
|
||||
"lo8xBK": {
|
||||
@@ -833,7 +833,7 @@
|
||||
"message": "Best for small teams who want to collaborate and move faster together.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 87]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 91]],
|
||||
"translation": "Идеально для небольших команд, которые хотят сотрудничать и работать быстрее вместе."
|
||||
},
|
||||
"qaS+1/": {
|
||||
@@ -887,7 +887,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/card/index.tsx", 321],
|
||||
["src/views/public/board/index.tsx", 125]
|
||||
],
|
||||
@@ -906,9 +906,16 @@
|
||||
"message": "Board archived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Доска архивирована"
|
||||
},
|
||||
"wE3hGS": {
|
||||
"message": "Board moved",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 33]],
|
||||
"translation": "Доска перемещена"
|
||||
},
|
||||
"wewm3j": {
|
||||
"message": "Board name cannot exceed 100 characters",
|
||||
"placeholders": {},
|
||||
@@ -943,7 +950,7 @@
|
||||
"message": "Board unarchived",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 46]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 47]],
|
||||
"translation": "Доска восстановлена из архива"
|
||||
},
|
||||
"Xid3K6": {
|
||||
@@ -999,7 +1006,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 97],
|
||||
["src/components/SideNavigation.tsx", 98],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 73]
|
||||
],
|
||||
"translation": "Доски"
|
||||
@@ -1281,12 +1288,13 @@
|
||||
["src/components/YouTubeEmbed/EditYouTubeModal.tsx", 176],
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 267],
|
||||
["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/DeleteCardConfirmation.tsx", 86],
|
||||
["src/views/card/components/DeleteChecklistConfirmation.tsx", 64],
|
||||
["src/views/card/components/DeleteCommentConfirmation.tsx", 77],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 55],
|
||||
["src/views/onboarding/select-plan/index.tsx", 236],
|
||||
["src/views/onboarding/select-plan/index.tsx", 240],
|
||||
["src/views/settings/components/Avatar.tsx", 287],
|
||||
["src/views/settings/components/ChangePasswordConfirmation.tsx", 206],
|
||||
[
|
||||
@@ -1324,6 +1332,13 @@
|
||||
"origin": [["src/views/card/components/Dropdown.tsx", 48]],
|
||||
"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": {
|
||||
"message": "Card not found",
|
||||
"placeholders": {},
|
||||
@@ -1346,7 +1361,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 308],
|
||||
["src/views/board/index.tsx", 314],
|
||||
["src/views/card/components/Dropdown.tsx", 74],
|
||||
["src/views/public/board/CardModal.tsx", 38]
|
||||
],
|
||||
@@ -1429,7 +1444,7 @@
|
||||
"message": "Choose a plan",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 149]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 153]],
|
||||
"translation": "Выберите тариф"
|
||||
},
|
||||
"5EMoSo": {
|
||||
@@ -1611,7 +1626,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 81]],
|
||||
"translation": "Подтвердите ваши настройки электронной почты:"
|
||||
"translation": "Подтвердите ваши настройки электронной почты:",
|
||||
"obsolete": true
|
||||
},
|
||||
"479pdJ": {
|
||||
"message": "Confirm your new password",
|
||||
@@ -1704,7 +1720,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 242],
|
||||
["src/views/onboarding/select-plan/index.tsx", 246],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 315]
|
||||
],
|
||||
"translation": "Продолжить"
|
||||
@@ -1873,7 +1889,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/components/BoardsList.tsx", 80],
|
||||
["src/views/boards/index.tsx", 41]
|
||||
["src/views/boards/index.tsx", 45]
|
||||
],
|
||||
"translation": "Создать новый {0}"
|
||||
},
|
||||
@@ -1899,8 +1915,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 92],
|
||||
["src/views/board/index.tsx", 671]
|
||||
["src/views/board/index.tsx", 99],
|
||||
["src/views/board/index.tsx", 684]
|
||||
],
|
||||
"translation": "Создать новый список"
|
||||
},
|
||||
@@ -1924,7 +1940,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/NewWorkspaceForm.tsx", 227],
|
||||
["src/components/WorkspaceMenu.tsx", 171]
|
||||
["src/components/WorkspaceMenu.tsx", 176]
|
||||
],
|
||||
"translation": "Создать рабочее пространство"
|
||||
},
|
||||
@@ -2118,7 +2134,7 @@
|
||||
"message": "Delete board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Удалить доску"
|
||||
},
|
||||
"nabda1": {
|
||||
@@ -2149,7 +2165,7 @@
|
||||
"message": "Delete template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 148]],
|
||||
"translation": "Удалить шаблон"
|
||||
},
|
||||
"snMaH4": {
|
||||
@@ -2211,6 +2227,13 @@
|
||||
"origin": [["src/views/boards/components/TemplateBoards.tsx", 45]],
|
||||
"translation": "Дизайн"
|
||||
},
|
||||
"Uf+1DF": {
|
||||
"message": "Destination workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 76]],
|
||||
"translation": "Рабочее пространство назначения"
|
||||
},
|
||||
"Odv3J6": {
|
||||
"message": "Disconnect GitHub",
|
||||
"placeholders": {},
|
||||
@@ -2272,7 +2295,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 78]],
|
||||
"translation": "Вы хотите отписаться?"
|
||||
"translation": "Вы хотите отписаться?",
|
||||
"obsolete": true
|
||||
},
|
||||
"JyXBgS": {
|
||||
"message": "docs",
|
||||
@@ -2416,7 +2440,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/BoardDropdown.tsx", 105],
|
||||
["src/views/board/components/BoardDropdown.tsx", 106],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 116]
|
||||
],
|
||||
"translation": "Изменить URL доски"
|
||||
@@ -2994,8 +3018,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 78],
|
||||
["src/views/onboarding/select-plan/index.tsx", 79],
|
||||
["src/views/onboarding/select-plan/index.tsx", 82],
|
||||
["src/views/onboarding/select-plan/index.tsx", 83],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 331],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
["src/views/pricing/components/Pricing.tsx", 32],
|
||||
@@ -3103,7 +3127,7 @@
|
||||
"message": "Get started by creating a new list",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 656]],
|
||||
"origin": [["src/views/board/index.tsx", 669]],
|
||||
"translation": "Начните с создания нового списка"
|
||||
},
|
||||
"oW13KZ": {
|
||||
@@ -3180,7 +3204,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 105],
|
||||
["src/components/SideNavigation.tsx", 106],
|
||||
["src/pages/404.tsx", 44]
|
||||
],
|
||||
"translation": "Перейти к доскам"
|
||||
@@ -3196,28 +3220,28 @@
|
||||
"message": "Go to members",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 129]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 130]],
|
||||
"translation": "Перейти к участникам"
|
||||
},
|
||||
"1WuwiM": {
|
||||
"message": "Go to settings",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 141]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 142]],
|
||||
"translation": "Перейти к настройкам"
|
||||
},
|
||||
"csFbe+": {
|
||||
"message": "Go to templates",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/components/SideNavigation.tsx", 117]],
|
||||
"origin": [["src/components/SideNavigation.tsx", 118]],
|
||||
"translation": "Перейти к шаблонам"
|
||||
},
|
||||
"SUvm1Y": {
|
||||
"message": "Good for individuals starting out who just need the essentials.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 80]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"translation": "Подходит для начинающих пользователей, которым нужны только базовые функции."
|
||||
},
|
||||
"cdyS7J": {
|
||||
@@ -3360,7 +3384,7 @@
|
||||
"message": "Import",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/boards/index.tsx", 73]],
|
||||
"origin": [["src/views/boards/index.tsx", 82]],
|
||||
"translation": "Импорт"
|
||||
},
|
||||
"2MPcep": {
|
||||
@@ -3743,7 +3767,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 80],
|
||||
["src/views/board/index.tsx", 306],
|
||||
["src/views/board/index.tsx", 312],
|
||||
["src/views/card/components/Dropdown.tsx", 72],
|
||||
["src/views/public/board/CardModal.tsx", 36],
|
||||
["src/views/public/board/index.tsx", 77]
|
||||
@@ -3843,7 +3867,7 @@
|
||||
"message": "Make template",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 94]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 95]],
|
||||
"translation": "Создать шаблон"
|
||||
},
|
||||
"hB02vO": {
|
||||
@@ -3923,7 +3947,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 121],
|
||||
["src/components/SideNavigation.tsx", 122],
|
||||
["src/views/board/components/Filters.tsx", 147],
|
||||
["src/views/board/components/NewCardForm.tsx", 386],
|
||||
["src/views/card/index.tsx", 143],
|
||||
@@ -3964,7 +3988,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 63],
|
||||
["src/views/onboarding/select-plan/index.tsx", 67],
|
||||
["src/views/pricing/components/Pricing.tsx", 14],
|
||||
["src/views/pricing/index.tsx", 20]
|
||||
],
|
||||
@@ -3977,6 +4001,20 @@
|
||||
"origin": [["src/views/members/components/InviteMemberForm.tsx", 170]],
|
||||
"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": {
|
||||
"message": "Move to another list",
|
||||
"placeholders": {},
|
||||
@@ -3991,6 +4029,13 @@
|
||||
"origin": [["src/views/board/components/CardContextMoveListModal.tsx", 70]],
|
||||
"translation": "Переместить в список"
|
||||
},
|
||||
"S3wq2O": {
|
||||
"message": "Move to workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 126]],
|
||||
"translation": "Переместить в рабочее пространство"
|
||||
},
|
||||
"BOqTi5": {
|
||||
"message": "moved the card from <0>{0}</0> to<1>{1}</1>",
|
||||
"placeholders": {
|
||||
@@ -4047,7 +4092,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/boards/index.tsx", 95],
|
||||
["src/views/boards/index.tsx", 104],
|
||||
["src/views/home/components/Features.tsx", 73]
|
||||
],
|
||||
"translation": "Новый"
|
||||
@@ -4102,7 +4147,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/components/NewListForm.tsx", 113],
|
||||
["src/views/board/index.tsx", 620]
|
||||
["src/views/board/index.tsx", 633]
|
||||
],
|
||||
"translation": "Новый список"
|
||||
},
|
||||
@@ -4235,14 +4280,14 @@
|
||||
"message": "No lists",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 652]],
|
||||
"origin": [["src/views/board/index.tsx", 665]],
|
||||
"translation": "Нет списков"
|
||||
},
|
||||
"fvLNDy": {
|
||||
"message": "No lists have been created yet",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/index.tsx", 657]],
|
||||
"origin": [["src/views/board/index.tsx", 670]],
|
||||
"translation": "Списки ещё не созданы"
|
||||
},
|
||||
"i30J2U": {
|
||||
@@ -4559,7 +4604,7 @@
|
||||
"message": "Pick a plan to get started. All paid plans include a 14-day free trial.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 152]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 156]],
|
||||
"translation": "Выберите тариф, чтобы начать. Все платные тарифы включают 14-дневный бесплатный пробный период."
|
||||
},
|
||||
"GdgCoi": {
|
||||
@@ -4657,15 +4702,15 @@
|
||||
["src/components/DeleteLabelConfirmation.tsx", 26],
|
||||
["src/components/FeedbackModal.tsx", 41],
|
||||
["src/components/NewWorkspaceForm.tsx", 110],
|
||||
["src/views/board/components/BoardDropdown.tsx", 68],
|
||||
["src/views/board/components/BoardDropdown.tsx", 69],
|
||||
["src/views/board/components/NewCardForm.tsx", 193],
|
||||
["src/views/board/components/NewListForm.tsx", 79],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 61],
|
||||
["src/views/board/components/NewTemplateForm.tsx", 77],
|
||||
["src/views/board/components/UpdateBoardSlugForm.tsx", 73],
|
||||
["src/views/board/components/VisibilityButton.tsx", 57],
|
||||
["src/views/board/index.tsx", 218],
|
||||
["src/views/board/index.tsx", 274],
|
||||
["src/views/board/index.tsx", 224],
|
||||
["src/views/board/index.tsx", 280],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 243],
|
||||
["src/views/boards/components/ImportBoardsForm.tsx", 395],
|
||||
["src/views/card/components/AttachmentThumbnails.tsx", 74],
|
||||
@@ -4683,7 +4728,7 @@
|
||||
["src/views/card/components/MemberSelector.tsx", 82],
|
||||
["src/views/card/components/NewChecklistForm.tsx", 71],
|
||||
["src/views/card/components/NewChecklistItemForm.tsx", 90],
|
||||
["src/views/card/components/NewCommentForm.tsx", 37],
|
||||
["src/views/card/components/NewCommentForm.tsx", 38],
|
||||
["src/views/card/index.tsx", 236],
|
||||
["src/views/card/index.tsx", 249],
|
||||
["src/views/members/components/DeleteMemberConfirmation.tsx", 28],
|
||||
@@ -4723,7 +4768,7 @@
|
||||
"origin": [
|
||||
["src/views/board/components/CardContextDuplicateModal.tsx", 76],
|
||||
["src/views/board/components/CardContextMoveListModal.tsx", 42],
|
||||
["src/views/board/index.tsx", 315],
|
||||
["src/views/board/index.tsx", 321],
|
||||
["src/views/card/components/Dropdown.tsx", 55],
|
||||
["src/views/card/components/Dropdown.tsx", 81],
|
||||
["src/views/card/components/Dropdown.tsx", 100],
|
||||
@@ -4786,7 +4831,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 92],
|
||||
["src/views/onboarding/select-plan/index.tsx", 96],
|
||||
["src/views/pricing/components/FeatureComparisonTable.tsx", 333],
|
||||
["src/views/pricing/components/PricingTiers.tsx", 70]
|
||||
],
|
||||
@@ -4892,7 +4937,7 @@
|
||||
"message": "Remove from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 124]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 136]],
|
||||
"translation": "Удалить из избранного"
|
||||
},
|
||||
"99VIgC": {
|
||||
@@ -4946,7 +4991,7 @@
|
||||
"message": "Removed from favorites",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 57]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 58]],
|
||||
"translation": "Удалено из избранного"
|
||||
},
|
||||
"YVT40D": {
|
||||
@@ -5193,6 +5238,13 @@
|
||||
],
|
||||
"translation": "Выберите список"
|
||||
},
|
||||
"NM2hyD": {
|
||||
"message": "Select a workspace",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 84]],
|
||||
"translation": "Выберите рабочее пространство"
|
||||
},
|
||||
"wgNoIs": {
|
||||
"message": "Select all",
|
||||
"placeholders": {},
|
||||
@@ -5309,7 +5361,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 102],
|
||||
["src/components/SideNavigation.tsx", 133]
|
||||
["src/components/SideNavigation.tsx", 134]
|
||||
],
|
||||
"translation": "Настройки"
|
||||
},
|
||||
@@ -5404,7 +5456,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/onboarding/select-plan/index.tsx", 315],
|
||||
["src/views/onboarding/select-plan/index.tsx", 319],
|
||||
["src/views/onboarding/workspace-details/index.tsx", 386]
|
||||
],
|
||||
"translation": "Выйти"
|
||||
@@ -5498,7 +5550,7 @@
|
||||
"message": "Solo",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 77]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 81]],
|
||||
"translation": "Индивидуальный"
|
||||
},
|
||||
"J9+zIR": {
|
||||
@@ -5545,9 +5597,9 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 225],
|
||||
["src/components/SideNavigation.tsx", 226],
|
||||
["src/components/SideNavigation.tsx", 236]
|
||||
["src/components/SideNavigation.tsx", 228],
|
||||
["src/components/SideNavigation.tsx", 229],
|
||||
["src/components/SideNavigation.tsx", 239]
|
||||
],
|
||||
"translation": "Начать бесплатный пробный период"
|
||||
},
|
||||
@@ -5565,6 +5617,13 @@
|
||||
"origin": [["src/views/settings/components/WebhookList.tsx", 232]],
|
||||
"translation": "Статус"
|
||||
},
|
||||
"hQRttt": {
|
||||
"message": "Submit",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 60]],
|
||||
"translation": "Отправить"
|
||||
},
|
||||
"WYDptz": {
|
||||
"message": "Subscription Required",
|
||||
"placeholders": {},
|
||||
@@ -5628,7 +5687,7 @@
|
||||
"message": "Team",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 84]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 88]],
|
||||
"translation": "Команда"
|
||||
},
|
||||
"bff61F": {
|
||||
@@ -5658,8 +5717,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/board/index.tsx", 566]
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/board/index.tsx", 579]
|
||||
],
|
||||
"translation": "Шаблон"
|
||||
},
|
||||
@@ -5696,7 +5755,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SideNavigation.tsx", 109],
|
||||
["src/components/SideNavigation.tsx", 110],
|
||||
["src/views/home/components/Features.tsx", 115]
|
||||
],
|
||||
"translation": "Шаблоны"
|
||||
@@ -5770,14 +5829,23 @@
|
||||
"message": "The board has been archived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 48]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"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": {
|
||||
"message": "The board has been unarchived.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 49]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 50]],
|
||||
"translation": "Доска была восстановлена из архива."
|
||||
},
|
||||
"nKBUeF": {
|
||||
@@ -6088,7 +6156,7 @@
|
||||
"message": "Unable to add comment",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 36]],
|
||||
"origin": [["src/views/card/components/NewCommentForm.tsx", 37]],
|
||||
"translation": "Не удалось добавить комментарий"
|
||||
},
|
||||
"2Q871c": {
|
||||
@@ -6117,7 +6185,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 313],
|
||||
["src/views/board/index.tsx", 319],
|
||||
["src/views/card/components/Dropdown.tsx", 79],
|
||||
["src/views/public/board/CardModal.tsx", 43],
|
||||
["src/views/public/board/index.tsx", 84]
|
||||
@@ -6228,6 +6296,13 @@
|
||||
],
|
||||
"translation": "Невозможно дублировать карточку"
|
||||
},
|
||||
"d196/6": {
|
||||
"message": "Unable to move board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/MoveBoardForm.tsx", 45]],
|
||||
"translation": "Не удалось переместить доску"
|
||||
},
|
||||
"K7k9u3": {
|
||||
"message": "Unable to move card",
|
||||
"placeholders": {},
|
||||
@@ -6288,7 +6363,7 @@
|
||||
"message": "Unable to update board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 67]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 68]],
|
||||
"translation": "Не удалось обновить доску"
|
||||
},
|
||||
"XpcjLO": {
|
||||
@@ -6310,7 +6385,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 273],
|
||||
["src/views/board/index.tsx", 279],
|
||||
["src/views/card/index.tsx", 235]
|
||||
],
|
||||
"translation": "Не удалось обновить карточку"
|
||||
@@ -6355,7 +6430,7 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/board/index.tsx", 217],
|
||||
["src/views/board/index.tsx", 223],
|
||||
["src/views/card/components/ListSelector.tsx", 54]
|
||||
],
|
||||
"translation": "Не удалось обновить список"
|
||||
@@ -6395,7 +6470,7 @@
|
||||
"message": "Unarchive board",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 114]],
|
||||
"origin": [["src/views/board/components/BoardDropdown.tsx", 115]],
|
||||
"translation": "Восстановить доску из архива"
|
||||
},
|
||||
"E8zYtd": {
|
||||
@@ -6508,7 +6583,7 @@
|
||||
"message": "Unlimited members and a custom workspace username for teams ready to scale.",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 95]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 99]],
|
||||
"translation": "Неограниченное количество участников и персональное имя рабочего пространства для команд, готовых к масштабированию."
|
||||
},
|
||||
"i5yNAO": {
|
||||
@@ -6533,7 +6608,8 @@
|
||||
["src/pages/unsubscribe/index.tsx", 68],
|
||||
["src/pages/unsubscribe/index.tsx", 93]
|
||||
],
|
||||
"translation": "Отписаться"
|
||||
"translation": "Отписаться",
|
||||
"obsolete": true
|
||||
},
|
||||
"EkH9pt": {
|
||||
"message": "Update",
|
||||
@@ -6598,7 +6674,7 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/views/members/index.tsx", 295],
|
||||
["src/views/onboarding/select-plan/index.tsx", 241]
|
||||
["src/views/onboarding/select-plan/index.tsx", 245]
|
||||
],
|
||||
"translation": "Обновить"
|
||||
},
|
||||
@@ -6778,7 +6854,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 63]],
|
||||
"translation": "Не удалось обновить ваши настройки. Пожалуйста, попробуйте ещё раз."
|
||||
"translation": "Не удалось обновить ваши настройки. Пожалуйста, попробуйте ещё раз.",
|
||||
"obsolete": true
|
||||
},
|
||||
"7sdSkl": {
|
||||
"message": "We sent a link to {magicLinkRecipient}",
|
||||
@@ -6931,8 +7008,8 @@
|
||||
"comments": [],
|
||||
"origin": [
|
||||
["src/components/SettingsLayout.tsx", 47],
|
||||
["src/views/board/index.tsx", 530],
|
||||
["src/views/boards/index.tsx", 48],
|
||||
["src/views/board/index.tsx", 543],
|
||||
["src/views/boards/index.tsx", 57],
|
||||
["src/views/members/index.tsx", 278],
|
||||
["src/views/public/board/index.tsx", 125],
|
||||
["src/views/public/boards/index.tsx", 75]
|
||||
@@ -7146,6 +7223,13 @@
|
||||
"origin": [["src/views/home/components/Faqs.tsx", 127]],
|
||||
"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": {
|
||||
"message": "You don't have permission",
|
||||
"placeholders": {},
|
||||
@@ -7154,11 +7238,11 @@
|
||||
["src/views/board/components/List.tsx", 117],
|
||||
["src/views/board/components/UpdateBoardSlugButton.tsx", 58],
|
||||
["src/views/board/components/VisibilityButton.tsx", 72],
|
||||
["src/views/board/index.tsx", 604],
|
||||
["src/views/board/index.tsx", 662],
|
||||
["src/views/board/index.tsx", 617],
|
||||
["src/views/board/index.tsx", 675],
|
||||
["src/views/boards/components/BoardsList.tsx", 71],
|
||||
["src/views/boards/index.tsx", 59],
|
||||
["src/views/boards/index.tsx", 80]
|
||||
["src/views/boards/index.tsx", 68],
|
||||
["src/views/boards/index.tsx", 89]
|
||||
],
|
||||
"translation": "У вас нет прав доступа"
|
||||
},
|
||||
@@ -7181,7 +7265,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 98]],
|
||||
"translation": "Вы отписались!"
|
||||
"translation": "Вы отписались!",
|
||||
"obsolete": true
|
||||
},
|
||||
"R275Pz": {
|
||||
"message": "You have unlimited seats with your Pro Plan. There is no additional charge for new members!",
|
||||
@@ -7250,7 +7335,7 @@
|
||||
"message": "Your avatar",
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 260]],
|
||||
"origin": [["src/views/onboarding/select-plan/index.tsx", 264]],
|
||||
"translation": "Ваш аватар"
|
||||
},
|
||||
"evg7+A": {
|
||||
@@ -7360,7 +7445,8 @@
|
||||
"placeholders": {},
|
||||
"comments": [],
|
||||
"origin": [["src/pages/unsubscribe/index.tsx", 33]],
|
||||
"translation": "В вашей ссылке для отписки отсутствует токен. Пожалуйста, откройте последнее письмо и попробуйте снова."
|
||||
"translation": "В вашей ссылке для отписки отсутствует токен. Пожалуйста, откройте последнее письмо и попробуйте снова.",
|
||||
"obsolete": true
|
||||
},
|
||||
"GRAGsB": {
|
||||
"message": "Your workspace",
|
||||
|
||||
File diff suppressed because one or more lines are too long
13005
apps/web/src/locales/zh-CN/messages.json
Normal file
13005
apps/web/src/locales/zh-CN/messages.json
Normal file
File diff suppressed because it is too large
Load Diff
1
apps/web/src/locales/zh-CN/messages.ts
Normal file
1
apps/web/src/locales/zh-CN/messages.ts
Normal file
File diff suppressed because one or more lines are too long
@@ -82,8 +82,8 @@ const MyApp: AppType = ({ Component, pageProps }: AppPropsWithLayout) => {
|
||||
)}
|
||||
<script src="/__ENV.js" />
|
||||
<main className="font-sans">
|
||||
<KeyboardShortcutProvider>
|
||||
<LinguiProviderWrapper>
|
||||
<LinguiProviderWrapper>
|
||||
<KeyboardShortcutProvider>
|
||||
<FontSizeProvider>
|
||||
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
||||
<ModalProvider>
|
||||
@@ -99,8 +99,8 @@ const MyApp: AppType = ({ Component, pageProps }: AppPropsWithLayout) => {
|
||||
</ModalProvider>
|
||||
</ThemeProvider>
|
||||
</FontSizeProvider>
|
||||
</LinguiProviderWrapper>
|
||||
</KeyboardShortcutProvider>
|
||||
</KeyboardShortcutProvider>
|
||||
</LinguiProviderWrapper>
|
||||
</main>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
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 });
|
||||
},
|
||||
),
|
||||
);
|
||||
@@ -1,110 +0,0 @@
|
||||
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>
|
||||
</>
|
||||
);
|
||||
}
|
||||
@@ -20,6 +20,7 @@ import { HiXMark } from "react-icons/hi2";
|
||||
|
||||
import { env } from "~/env";
|
||||
import { useEventListener } from "~/hooks/useEventListener";
|
||||
import { useLinguiContext } from "~/providers/lingui";
|
||||
|
||||
const ModifierKey = {
|
||||
CONTROL: "CONTROL",
|
||||
@@ -160,6 +161,7 @@ export function KeyboardShortcutProvider({
|
||||
const sequenceTimeoutRef = useRef<NodeJS.Timeout | null>(null);
|
||||
|
||||
const [isLegendOpen, setIsLegendOpen] = useState(false);
|
||||
const { locale } = useLinguiContext();
|
||||
|
||||
const openLegendShortcut: KeyboardShortcut = useMemo(
|
||||
() => ({
|
||||
@@ -172,7 +174,7 @@ export function KeyboardShortcutProvider({
|
||||
description: t`Open keyboard shortcuts`,
|
||||
group: ShortcutGroup.GENERAL,
|
||||
}),
|
||||
[setIsLegendOpen],
|
||||
[locale],
|
||||
);
|
||||
|
||||
const handleKeyDown = useCallback((event: KeyboardEvent) => {
|
||||
|
||||
@@ -35,10 +35,31 @@ function detectBrowserLocale(availableLocales: readonly string[]): Locale {
|
||||
const browserLanguages = navigator.languages || [navigator.language];
|
||||
|
||||
for (const browserLang of browserLanguages) {
|
||||
const langCode = browserLang.split("-")[0];
|
||||
const normalizedLocale = browserLang.toLowerCase();
|
||||
const exactLocale = availableLocales.find(
|
||||
(availableLocale) => availableLocale.toLowerCase() === normalizedLocale,
|
||||
);
|
||||
|
||||
if (langCode && availableLocales.includes(langCode.toLowerCase())) {
|
||||
return langCode.toLowerCase() as Locale;
|
||||
if (exactLocale) {
|
||||
return exactLocale as Locale;
|
||||
}
|
||||
|
||||
const languageCode = normalizedLocale.split("-")[0];
|
||||
|
||||
if (languageCode === "zh" && availableLocales.includes("zh-CN")) {
|
||||
return "zh-CN";
|
||||
}
|
||||
|
||||
if (languageCode === "pt" && availableLocales.includes("ptbr")) {
|
||||
return "ptbr";
|
||||
}
|
||||
|
||||
const baseLocale = availableLocales.find(
|
||||
(availableLocale) => availableLocale.toLowerCase() === languageCode,
|
||||
);
|
||||
|
||||
if (baseLocale) {
|
||||
return baseLocale as Locale;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +70,7 @@ export function LinguiProviderWrapper({
|
||||
children,
|
||||
initialLocale = defaultLocale,
|
||||
}: LinguiProviderProps) {
|
||||
const [locale, setLocale] = useState<Locale>(defaultLocale);
|
||||
const [locale, setLocale] = useState<Locale>(initialLocale);
|
||||
const [isHydrated, setIsHydrated] = useState(false);
|
||||
|
||||
initializeI18n();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { createContext, useContext, useState } from "react";
|
||||
import { createContext, useCallback, useContext, useState } from "react";
|
||||
|
||||
interface PopupContextType {
|
||||
isOpen: boolean;
|
||||
@@ -25,24 +25,27 @@ export const PopupProvider: React.FC<Props> = ({ children }) => {
|
||||
const [popupMessage, setPopupMessage] = useState("");
|
||||
const [popupIcon, setPopupIcon] = useState("");
|
||||
|
||||
const showPopup = ({
|
||||
header,
|
||||
message,
|
||||
icon,
|
||||
}: {
|
||||
header: string;
|
||||
message: string;
|
||||
icon: string;
|
||||
}) => {
|
||||
setIsOpen(true);
|
||||
setPopupHeader(header);
|
||||
setPopupMessage(message);
|
||||
setPopupIcon(icon);
|
||||
};
|
||||
const showPopup = useCallback(
|
||||
({
|
||||
header,
|
||||
message,
|
||||
icon,
|
||||
}: {
|
||||
header: string;
|
||||
message: string;
|
||||
icon: string;
|
||||
}) => {
|
||||
setIsOpen(true);
|
||||
setPopupHeader(header);
|
||||
setPopupMessage(message);
|
||||
setPopupIcon(icon);
|
||||
},
|
||||
[],
|
||||
);
|
||||
|
||||
const hidePopup = () => {
|
||||
const hidePopup = useCallback(() => {
|
||||
setIsOpen(false);
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<PopupContext.Provider
|
||||
|
||||
@@ -3,6 +3,7 @@ import { i18n } from "@lingui/core";
|
||||
import type { Locale } from "~/locales";
|
||||
import { defaultLocale } from "~/locales";
|
||||
import { messages as enMessages } from "~/locales/en/messages";
|
||||
import { messages as zhCNMessages } from "~/locales/zh-CN/messages";
|
||||
|
||||
const loadMessages = async (locale: Locale) => {
|
||||
switch (locale) {
|
||||
@@ -24,6 +25,8 @@ const loadMessages = async (locale: Locale) => {
|
||||
return (await import("~/locales/pl/messages")).messages;
|
||||
case "ptbr":
|
||||
return (await import("~/locales/ptbr/messages")).messages;
|
||||
case "zh-CN":
|
||||
return (await import("~/locales/zh-CN/messages")).messages;
|
||||
default:
|
||||
return enMessages;
|
||||
}
|
||||
@@ -32,11 +35,15 @@ const loadMessages = async (locale: Locale) => {
|
||||
let isInitialized = false;
|
||||
const loadedLocales = new Set<string>();
|
||||
|
||||
export function initializeI18n(locale: Locale = defaultLocale) {
|
||||
export function initializeI18n() {
|
||||
if (!isInitialized) {
|
||||
i18n.load(defaultLocale, enMessages);
|
||||
// 首屏同步加载中英文,避免默认语言激活前出现中英混排。
|
||||
i18n.load("en", enMessages);
|
||||
i18n.load("zh-CN", zhCNMessages);
|
||||
i18n.activate(defaultLocale);
|
||||
loadedLocales.add(defaultLocale);
|
||||
loadedLocales.add("en");
|
||||
loadedLocales.add("zh-CN");
|
||||
isInitialized = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { useRouter } from "next/router";
|
||||
import { t } from "@lingui/core/macro";
|
||||
import {
|
||||
HiArrowRightOnRectangle,
|
||||
HiEllipsisHorizontal,
|
||||
HiLink,
|
||||
HiOutlineDocumentDuplicate,
|
||||
@@ -88,7 +89,7 @@ export default function BoardDropdown({
|
||||
const isArchiveActionPending = updateBoard.isPending;
|
||||
|
||||
const items = [
|
||||
...(isTemplate && canCreateBoard
|
||||
...(!isTemplate && canCreateBoard
|
||||
? [
|
||||
{
|
||||
label: t`Make template`,
|
||||
@@ -119,6 +120,17 @@ 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
|
||||
? t`Remove from favorites`
|
||||
|
||||
@@ -14,6 +14,7 @@ export function DeleteBoardConfirmation({
|
||||
}) {
|
||||
const router = useRouter();
|
||||
const { closeModal } = useModal();
|
||||
const boardTypeLabel = isTemplate ? t`template` : t`board`;
|
||||
|
||||
const deleteBoard = api.board.delete.useMutation({
|
||||
onSuccess: () => {
|
||||
@@ -33,7 +34,7 @@ export function DeleteBoardConfirmation({
|
||||
<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`Are you sure you want to delete this ${isTemplate ? "template" : "board"}?`}
|
||||
{t`Are you sure you want to delete this ${boardTypeLabel}?`}
|
||||
</h2>
|
||||
<p className="text-sm font-medium text-light-900 dark:text-dark-900">
|
||||
{t`This action can't be undone.`}
|
||||
|
||||
113
apps/web/src/views/board/components/MoveBoardForm.tsx
Normal file
113
apps/web/src/views/board/components/MoveBoardForm.tsx
Normal file
@@ -0,0 +1,113 @@
|
||||
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 ?? t`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>
|
||||
);
|
||||
}
|
||||
@@ -42,12 +42,13 @@ const VisibilityButton = ({
|
||||
}, [visibility]);
|
||||
|
||||
const isPublic = stateVisibility === "public";
|
||||
const visibilityLabel = isPublic ? t`public` : t`private`;
|
||||
|
||||
const updateBoardVisibility = api.board.update.useMutation({
|
||||
onSuccess: () => {
|
||||
showPopup({
|
||||
header: t`Board visibility updated`,
|
||||
message: t`The visibility of your board has been set to ${isPublic ? "public" : "private"}.`,
|
||||
message: t`The visibility of your board has been set to ${visibilityLabel}.`,
|
||||
icon: "success",
|
||||
});
|
||||
},
|
||||
|
||||
@@ -5,7 +5,7 @@ import { useRouter } from "next/router";
|
||||
import { t } from "@lingui/core/macro";
|
||||
import { keepPreviousData } from "@tanstack/react-query";
|
||||
import { env } from "next-runtime-env";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import { DragDropContext, Draggable } from "react-beautiful-dnd";
|
||||
import { useForm } from "react-hook-form";
|
||||
import {
|
||||
@@ -49,6 +49,7 @@ import { DeleteBoardConfirmation } from "./components/DeleteBoardConfirmation";
|
||||
import { DeleteListConfirmation } from "./components/DeleteListConfirmation";
|
||||
import Filters from "./components/Filters";
|
||||
import List from "./components/List";
|
||||
import { MoveBoardForm } from "./components/MoveBoardForm";
|
||||
import { NewCardForm } from "./components/NewCardForm";
|
||||
import { NewListForm } from "./components/NewListForm";
|
||||
import { NewTemplateForm } from "./components/NewTemplateForm";
|
||||
@@ -84,21 +85,26 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||
const { canCreateList, canEditList, canEditCard, canEditBoard } =
|
||||
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
|
||||
? Array.isArray(params.boardId)
|
||||
? params.boardId[0]
|
||||
: params.boardId
|
||||
: 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 { register, handleSubmit, setValue } = useForm<UpdateBoardInput>({
|
||||
@@ -460,6 +466,13 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||
/>
|
||||
</Modal>
|
||||
|
||||
<Modal
|
||||
modalSize="sm"
|
||||
isVisible={isOpen && modalContentType === "MOVE_BOARD"}
|
||||
>
|
||||
<MoveBoardForm boardPublicId={boardId ?? ""} />
|
||||
</Modal>
|
||||
|
||||
<Modal
|
||||
modalSize="sm"
|
||||
isVisible={isOpen && modalContentType === "CREATE_TEMPLATE"}
|
||||
@@ -527,7 +540,7 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||
return (
|
||||
<>
|
||||
<PageHead
|
||||
title={`${boardData?.name ?? (isTemplate ? t`Board` : t`Template`)} | ${workspace.name ?? t`Workspace`}`}
|
||||
title={`${boardData?.name ?? (isTemplate ? t`Template` : t`Board`)} | ${workspace.name ?? t`Workspace`}`}
|
||||
/>
|
||||
<div className="relative flex h-full flex-col">
|
||||
<PatternedBackground />
|
||||
@@ -554,7 +567,7 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||
)}
|
||||
{!boardData && !isLoading && (
|
||||
<p className="order-2 block p-0 py-0 font-bold leading-[2.3rem] tracking-tight text-neutral-900 dark:text-dark-1000 sm:text-[1.2rem] md:order-1">
|
||||
{t`${isTemplate ? "Template" : "Board"} not found`}
|
||||
{isTemplate ? t`Template not found` : t`Board not found`}
|
||||
</p>
|
||||
)}
|
||||
<div className="order-1 mb-4 flex items-center justify-end space-x-2 md:order-2 md:mb-0">
|
||||
|
||||
@@ -14,6 +14,8 @@ export function BoardsList({ isTemplate, archived = false }: { isTemplate?: bool
|
||||
const { workspace } = useWorkspace();
|
||||
const { openModal } = useModal();
|
||||
const { canCreateBoard } = usePermissions();
|
||||
const boardTypeLabel = isTemplate ? t`template` : t`board`;
|
||||
const boardLabel = isTemplate ? t`templates` : t`boards`;
|
||||
|
||||
const utils = api.useUtils();
|
||||
const updateBoard = api.board.update.useMutation({
|
||||
@@ -60,10 +62,10 @@ export function BoardsList({ isTemplate, archived = false }: { isTemplate?: bool
|
||||
<div className="flex flex-col items-center">
|
||||
<HiOutlineRectangleStack className="h-10 w-10 text-light-800 dark:text-dark-800" />
|
||||
<p className="mb-2 mt-4 text-[14px] font-bold text-light-1000 dark:text-dark-950">
|
||||
{archived ? t`No archived boards` : t`No ${isTemplate ? "templates" : "boards"}`}
|
||||
{archived ? t`No archived boards` : t`No ${boardLabel}`}
|
||||
</p>
|
||||
<p className="text-[14px] text-light-900 dark:text-dark-900">
|
||||
{archived ? t`Boards you archive will appear here.` : t`Get started by creating a new ${isTemplate ? "template" : "board"}`}
|
||||
{archived ? t`Boards you archive will appear here.` : t`Get started by creating a new ${boardTypeLabel}`}
|
||||
</p>
|
||||
</div>
|
||||
<Tooltip
|
||||
@@ -77,7 +79,7 @@ export function BoardsList({ isTemplate, archived = false }: { isTemplate?: bool
|
||||
}}
|
||||
disabled={!canCreateBoard}
|
||||
>
|
||||
{t`Create new ${isTemplate ? "template" : "board"}`}
|
||||
{t`Create new ${boardTypeLabel}`}
|
||||
</Button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
|
||||
@@ -32,6 +32,7 @@ interface NewBoardInputWithTemplate {
|
||||
}
|
||||
|
||||
export function NewBoardForm({ isTemplate }: { isTemplate?: boolean }) {
|
||||
const boardTypeLabel = isTemplate ? t`template` : t`board`;
|
||||
const utils = api.useUtils();
|
||||
const { closeModal } = useModal();
|
||||
const router = useRouter();
|
||||
@@ -117,7 +118,7 @@ export function NewBoardForm({ isTemplate }: { isTemplate?: boolean }) {
|
||||
<form onSubmit={handleSubmit(onSubmit)}>
|
||||
<div className="px-5 pt-5">
|
||||
<div className="text-neutral-9000 flex w-full items-center justify-between pb-4 dark:text-dark-1000">
|
||||
<h2 className="text-sm font-bold">{t`New ${isTemplate ? "template" : "board"}`}</h2>
|
||||
<h2 className="text-sm font-bold">{t`New ${boardTypeLabel}`}</h2>
|
||||
<button
|
||||
type="button"
|
||||
className="hover:bg-li ght-300 rounded p-1 focus:outline-none dark:hover:bg-dark-300"
|
||||
@@ -163,7 +164,7 @@ export function NewBoardForm({ isTemplate }: { isTemplate?: boolean }) {
|
||||
)}
|
||||
<div>
|
||||
<Button type="submit" isLoading={createBoard.isPending}>
|
||||
{t`Create ${isTemplate ? "template" : "board"}`}
|
||||
{t`Create ${boardTypeLabel}`}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,8 +5,12 @@ import {
|
||||
ListboxOptions,
|
||||
} from "@headlessui/react";
|
||||
import { t } from "@lingui/core/macro";
|
||||
import { HiArrowDownTray, HiChevronDown, HiOutlinePlusSmall } from "react-icons/hi2";
|
||||
import { useState } from "react";
|
||||
import { useMemo, useState } from "react";
|
||||
import {
|
||||
HiArrowDownTray,
|
||||
HiChevronDown,
|
||||
HiOutlinePlusSmall,
|
||||
} from "react-icons/hi2";
|
||||
|
||||
import Button from "~/components/Button";
|
||||
import FeedbackModal from "~/components/FeedbackModal";
|
||||
@@ -22,35 +26,41 @@ import { BoardsList } from "./components/BoardsList";
|
||||
import { ImportBoardsForm } from "./components/ImportBoardsForm";
|
||||
import { NewBoardForm } from "./components/NewBoardForm";
|
||||
|
||||
const boardsTabs = [
|
||||
{ key: "boards" as const, label: t`Active` },
|
||||
{ key: "archived" as const, label: t`Archived` },
|
||||
];
|
||||
|
||||
export default function BoardsPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||
const { openModal, modalContentType, isOpen } = useModal();
|
||||
const { workspace } = useWorkspace();
|
||||
const [activeTab, setActiveTab] = useState<"boards" | "archived">("boards");
|
||||
const { canCreateBoard } = usePermissions();
|
||||
const boardLabel = isTemplate ? t`Templates` : t`Boards`;
|
||||
const boardTypeLabel = isTemplate ? t`template` : t`board`;
|
||||
const boardsTabs = [
|
||||
{ key: "boards" as const, label: t`Active` },
|
||||
{ key: "archived" as const, label: t`Archived` },
|
||||
];
|
||||
|
||||
const { tooltipContent: createModalShortcutTooltipContent } =
|
||||
useKeyboardShortcut({
|
||||
type: "PRESS",
|
||||
const createBoardShortcut = useMemo(
|
||||
() => ({
|
||||
type: "PRESS" as const,
|
||||
stroke: { key: "C" },
|
||||
action: () => canCreateBoard && openModal("NEW_BOARD"),
|
||||
description: t`Create new ${isTemplate ? "template" : "board"}`,
|
||||
group: "ACTIONS",
|
||||
});
|
||||
description: t`Create new ${boardTypeLabel}`,
|
||||
group: "ACTIONS" as const,
|
||||
}),
|
||||
[boardTypeLabel, canCreateBoard, isTemplate, openModal],
|
||||
);
|
||||
|
||||
const { tooltipContent: createModalShortcutTooltipContent } =
|
||||
useKeyboardShortcut(createBoardShortcut);
|
||||
|
||||
return (
|
||||
<>
|
||||
<PageHead
|
||||
title={t`${isTemplate ? "Templates" : "Boards"} | ${workspace.name ?? t`Workspace`}`}
|
||||
title={t`${boardLabel} | ${workspace.name ?? t`Workspace`}`}
|
||||
/>
|
||||
<div className="m-auto h-full max-w-[1100px] p-8 px-5 md:px-28 md:py-12">
|
||||
<div className="relative z-10 mb-8 flex w-full items-center justify-between">
|
||||
<h1 className="font-bold tracking-tight text-neutral-900 dark:text-dark-1000 sm:text-[1.2rem]">
|
||||
{t`${isTemplate ? "Templates" : "Boards"}`}
|
||||
{boardLabel}
|
||||
</h1>
|
||||
<div className="flex gap-2">
|
||||
{!isTemplate && (
|
||||
@@ -137,7 +147,7 @@ export default function BoardsPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||
onChange={(tab) => setActiveTab(tab)}
|
||||
>
|
||||
<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 ??
|
||||
"Select a tab"}
|
||||
<HiChevronDown
|
||||
@@ -151,9 +161,10 @@ export default function BoardsPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||
key={tab.key}
|
||||
value={tab.key}
|
||||
className={({ selected }) =>
|
||||
`relative cursor-pointer select-none py-2 pl-3 pr-9 ${selected
|
||||
? "font-bold text-light-1000 dark:text-dark-1000"
|
||||
: "font-normal text-light-1000 dark:text-dark-1000"
|
||||
`relative cursor-pointer select-none py-2 pl-3 pr-9 ${
|
||||
selected
|
||||
? "font-bold text-light-1000 dark:text-dark-1000"
|
||||
: "font-normal text-light-1000 dark:text-dark-1000"
|
||||
}`
|
||||
}
|
||||
>
|
||||
@@ -175,10 +186,11 @@ export default function BoardsPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||
key={tab.key}
|
||||
type="button"
|
||||
onClick={() => setActiveTab(tab.key)}
|
||||
className={`whitespace-nowrap px-1 py-0 mt-2 mb-8 text-sm font-semibold transition-colors focus:outline-none ${activeTab === tab.key
|
||||
? "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"
|
||||
}`}
|
||||
className={`mb-8 mt-2 whitespace-nowrap px-1 py-0 text-sm font-semibold transition-colors focus:outline-none ${
|
||||
activeTab === tab.key
|
||||
? "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"
|
||||
}`}
|
||||
>
|
||||
{tab.label}
|
||||
</button>
|
||||
|
||||
@@ -2,9 +2,10 @@ import { t } from "@lingui/core/macro";
|
||||
import { useForm } from "react-hook-form";
|
||||
import { HiOutlineArrowUp } from "react-icons/hi2";
|
||||
|
||||
import Editor from "~/components/Editor";
|
||||
import type { WorkspaceMember } from "~/components/Editor";
|
||||
import Editor from "~/components/Editor";
|
||||
import LoadingSpinner from "~/components/LoadingSpinner";
|
||||
import { Tooltip } from "~/components/Tooltip";
|
||||
import { usePermissions } from "~/hooks/usePermissions";
|
||||
import { usePopup } from "~/providers/popup";
|
||||
import { api } from "~/utils/api";
|
||||
@@ -51,6 +52,21 @@ 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) {
|
||||
return null;
|
||||
}
|
||||
@@ -63,23 +79,26 @@ const NewCommentForm = ({
|
||||
<Editor
|
||||
content={watch("comment")}
|
||||
onChange={(value) => setValue("comment", value)}
|
||||
onSubmit={handleSubmit(onSubmit)}
|
||||
workspaceMembers={workspaceMembers}
|
||||
enableYouTubeEmbed={false}
|
||||
placeholder={t`Add comment... (type '/' to open commands or '@' to mention)`}
|
||||
disableHeadings={true}
|
||||
/>
|
||||
<div className="flex justify-end">
|
||||
<button
|
||||
type="submit"
|
||||
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"
|
||||
>
|
||||
{addCommentMutation.isPending ? (
|
||||
<LoadingSpinner size="sm" />
|
||||
) : (
|
||||
<HiOutlineArrowUp />
|
||||
)}
|
||||
</button>
|
||||
<Tooltip content={submitTooltip} placement="top">
|
||||
<button
|
||||
type="submit"
|
||||
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"
|
||||
>
|
||||
{addCommentMutation.isPending ? (
|
||||
<LoadingSpinner size="sm" />
|
||||
) : (
|
||||
<HiOutlineArrowUp />
|
||||
)}
|
||||
</button>
|
||||
</Tooltip>
|
||||
</div>
|
||||
</form>
|
||||
);
|
||||
|
||||
@@ -48,7 +48,11 @@ export default function SelectPlanView() {
|
||||
(searchParams.get("billing") as Billing | null) ?? "annual",
|
||||
);
|
||||
const returnUrl = searchParams.get("returnUrl") ?? "/boards";
|
||||
const workspacePublicId = searchParams.get("workspacePublicId");
|
||||
const workspacePublicId =
|
||||
searchParams.get("workspacePublicId") ??
|
||||
(typeof window !== "undefined"
|
||||
? localStorage.getItem("workspacePublicId")
|
||||
: null);
|
||||
const { data: workspaces } = api.workspace.all.useQuery();
|
||||
const { data: session } = authClient.useSession();
|
||||
const { data: user } = api.user.getUser.useQuery(undefined, {
|
||||
|
||||
@@ -61,9 +61,9 @@ services:
|
||||
- SMTP_REJECT_UNAUTHORIZED=${SMTP_REJECT_UNAUTHORIZED}
|
||||
|
||||
# Notifications
|
||||
- NOVU_API_KEY=${NOVU_API_KEY}
|
||||
- DISCORD_WEBHOOK_URL=${DISCORD_WEBHOOK_URL}
|
||||
- EMAIL_UNSUBSCRIBE_SECRET=${EMAIL_UNSUBSCRIBE_SECRET}
|
||||
- SUBSCRIBER_API_URL=${SUBSCRIBER_API_URL}
|
||||
- SUBSCRIBER_API_KEY=${SUBSCRIBER_API_KEY}
|
||||
- SUBSCRIBER_ENVIRONMENT_ID=${SUBSCRIBER_ENVIRONMENT_ID}
|
||||
|
||||
# S3 storage
|
||||
- S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID}
|
||||
|
||||
268
packages/api/src/routers/board-move.test.ts
Normal file
268
packages/api/src/routers/board-move.test.ts
Normal file
@@ -0,0 +1,268 @@
|
||||
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",
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -644,6 +644,119 @@ 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 };
|
||||
}),
|
||||
checkSlugAvailability: publicProcedure
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { describe, it, expect, vi, beforeEach } from "vitest";
|
||||
import { env } from "next-runtime-env";
|
||||
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", () => ({
|
||||
env: vi.fn(),
|
||||
@@ -15,11 +20,11 @@ vi.mock("@kan/db/repository/user.repo", () => ({
|
||||
}));
|
||||
|
||||
vi.mock("@kan/email", () => ({
|
||||
notificationClient: null,
|
||||
createSubscriber: vi.fn(),
|
||||
triggerSubscriberWorkflow: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("@kan/shared", () => ({
|
||||
createEmailUnsubscribeLink: vi.fn(),
|
||||
createS3Client: vi.fn(),
|
||||
}));
|
||||
|
||||
@@ -27,17 +32,10 @@ vi.mock("@aws-sdk/client-s3", () => ({
|
||||
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 mockGetByEmailAndStatus =
|
||||
memberRepo.getByEmailAndStatus as ReturnType<typeof vi.fn>;
|
||||
const mockGetByEmailAndStatus = memberRepo.getByEmailAndStatus as ReturnType<
|
||||
typeof vi.fn
|
||||
>;
|
||||
|
||||
const db = {} as Parameters<typeof createDatabaseHooks>[0];
|
||||
|
||||
|
||||
@@ -1,19 +1,18 @@
|
||||
import { PutObjectCommand } from "@aws-sdk/client-s3";
|
||||
import { ChatOrPushProviderEnum } from "@novu/api/models/components";
|
||||
import { createAuthMiddleware } from "better-auth/api";
|
||||
import { env } from "next-runtime-env";
|
||||
|
||||
import type { dbClient } from "@kan/db/client";
|
||||
import * as memberRepo from "@kan/db/repository/member.repo";
|
||||
import * as userRepo from "@kan/db/repository/user.repo";
|
||||
import { notificationClient } from "@kan/email";
|
||||
import { createSubscriber, triggerSubscriberWorkflow } from "@kan/email";
|
||||
import { createLogger } from "@kan/logger";
|
||||
import { createEmailUnsubscribeLink, createS3Client } from "@kan/shared";
|
||||
|
||||
const log = createLogger("auth");
|
||||
import { createS3Client } from "@kan/shared";
|
||||
|
||||
import { downloadImage } from "./utils";
|
||||
|
||||
const log = createLogger("auth");
|
||||
|
||||
type BetterAuthUser = {
|
||||
id: string;
|
||||
createdAt: Date;
|
||||
@@ -94,53 +93,49 @@ export function createDatabaseHooks(db: dbClient) {
|
||||
}
|
||||
}
|
||||
|
||||
if (notificationClient) {
|
||||
try {
|
||||
const [firstName, ...rest] = (user.name || "")
|
||||
.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;
|
||||
const [firstName, ...rest] = (user.name || "")
|
||||
.split(" ")
|
||||
.filter(Boolean);
|
||||
const lastName = rest.length ? rest.join(" ") : undefined;
|
||||
|
||||
const unsubscribeUrl = await createEmailUnsubscribeLink(user.id);
|
||||
try {
|
||||
const avatarUrl = avatarKey
|
||||
? `${env("NEXT_PUBLIC_STORAGE_URL")}/${env("NEXT_PUBLIC_AVATAR_BUCKET_NAME")}/${avatarKey}`
|
||||
: undefined;
|
||||
|
||||
log.info({ workflowId: "user-signup", userId: user.id, email: user.email }, "Triggering Novu workflow");
|
||||
await notificationClient.trigger({
|
||||
to: {
|
||||
subscriberId: user.id,
|
||||
firstName: firstName,
|
||||
lastName: lastName,
|
||||
email: user.email,
|
||||
avatar: avatarUrl,
|
||||
data: {
|
||||
emailVerified: user.emailVerified,
|
||||
stripeCustomerId: user.stripeCustomerId,
|
||||
createdAt: user.createdAt,
|
||||
updatedAt: user.updatedAt,
|
||||
},
|
||||
},
|
||||
payload: {
|
||||
emailUnsubscribeUrl: unsubscribeUrl,
|
||||
},
|
||||
workflowId: "user-signup",
|
||||
});
|
||||
log.info({ workflowId: "user-signup", userId: user.id }, "Novu workflow triggered");
|
||||
await createSubscriber({
|
||||
publicId: user.id,
|
||||
email: user.email,
|
||||
externalId: user.id,
|
||||
firstName,
|
||||
lastName,
|
||||
name: user.name,
|
||||
attributes: {
|
||||
avatarUrl,
|
||||
emailVerified: user.emailVerified,
|
||||
stripeCustomerId: user.stripeCustomerId,
|
||||
createdAt: user.createdAt,
|
||||
updatedAt: user.updatedAt,
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
log.error({ err: error }, "Error creating subscriber");
|
||||
}
|
||||
|
||||
await notificationClient.subscribers.credentials.update(
|
||||
{
|
||||
providerId: ChatOrPushProviderEnum.Discord,
|
||||
credentials: {
|
||||
webhookUrl: env("DISCORD_WEBHOOK_URL"),
|
||||
},
|
||||
integrationIdentifier: "discord",
|
||||
},
|
||||
user.id,
|
||||
);
|
||||
} catch (error) {
|
||||
log.error({ err: error }, "Error adding user to notification client");
|
||||
}
|
||||
try {
|
||||
log.info(
|
||||
{ workflowId: "user-signup", userId: user.id, email: user.email },
|
||||
"Triggering user-signup workflow",
|
||||
);
|
||||
await triggerSubscriberWorkflow("user-signup", {
|
||||
publicId: user.id,
|
||||
});
|
||||
log.info(
|
||||
{ workflowId: "user-signup", userId: user.id },
|
||||
"user-signup workflow triggered",
|
||||
);
|
||||
} catch (error) {
|
||||
log.error({ err: error }, "Error triggering user-signup workflow");
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -3,9 +3,8 @@ import type Stripe from "stripe";
|
||||
|
||||
import type { dbClient } from "@kan/db/client";
|
||||
import * as userRepo from "@kan/db/repository/user.repo";
|
||||
import { notificationClient } from "@kan/email";
|
||||
import { triggerSubscriberWorkflow } from "@kan/email";
|
||||
import { createLogger } from "@kan/logger";
|
||||
import { createEmailUnsubscribeLink } from "@kan/shared";
|
||||
|
||||
const log = createLogger("auth");
|
||||
|
||||
@@ -24,30 +23,22 @@ export async function triggerWorkflow(
|
||||
cancellationDetails?: Stripe.Subscription.CancellationDetails | null,
|
||||
) {
|
||||
try {
|
||||
if (!subscription.stripeCustomerId || !notificationClient) return;
|
||||
if (!subscription.stripeCustomerId) return;
|
||||
|
||||
const user = await userRepo.getByStripeCustomerId(
|
||||
db,
|
||||
subscription.stripeCustomerId,
|
||||
);
|
||||
|
||||
if (!user || !notificationClient) return;
|
||||
if (!user) return;
|
||||
|
||||
const unsubscribeUrl = await createEmailUnsubscribeLink(user.id);
|
||||
|
||||
log.info({ workflowId, userId: user.id }, "Triggering Novu workflow");
|
||||
await notificationClient.trigger({
|
||||
to: {
|
||||
subscriberId: user.id,
|
||||
},
|
||||
payload: {
|
||||
...subscription,
|
||||
cancellationDetails,
|
||||
emailUnsubscribeUrl: unsubscribeUrl,
|
||||
},
|
||||
log.info({ workflowId, userId: user.id }, "Triggering workflow");
|
||||
await triggerSubscriberWorkflow(
|
||||
workflowId,
|
||||
});
|
||||
log.info({ workflowId, userId: user.id }, "Novu workflow triggered");
|
||||
{ publicId: user.id },
|
||||
{ ...subscription, cancellationDetails },
|
||||
);
|
||||
log.info({ workflowId, userId: user.id }, "Workflow triggered");
|
||||
} catch (error) {
|
||||
log.error({ err: error, workflowId }, "Error triggering workflow");
|
||||
}
|
||||
|
||||
@@ -724,6 +724,30 @@ export const getWorkspaceAndBoardIdByBoardPublicId = async (
|
||||
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 (
|
||||
db: dbClient,
|
||||
boardSlug: string,
|
||||
@@ -969,6 +993,61 @@ 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 (
|
||||
db: dbClient,
|
||||
userId: string,
|
||||
|
||||
@@ -176,6 +176,7 @@ export const getByPublicId = (db: dbClient, workspacePublicId: string) => {
|
||||
name: true,
|
||||
plan: true,
|
||||
slug: true,
|
||||
deletedAt: true,
|
||||
createdBy: true,
|
||||
},
|
||||
where: eq(workspaces.publicId, workspacePublicId),
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@kan/logger": "workspace:^",
|
||||
"@novu/api": "^3.11.0",
|
||||
"@react-email/components": "^1.0.1",
|
||||
"nodemailer": "^7.0.3",
|
||||
"react-email": "^5.0.6"
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
export const name = "email";
|
||||
|
||||
export { sendEmail } from "./sendEmail";
|
||||
export { notificationClient } from "./notificationClient";
|
||||
export {
|
||||
createSubscriber,
|
||||
updateSubscriberPreferences,
|
||||
triggerSubscriberWorkflow,
|
||||
} from "./subscriberClient";
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
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;
|
||||
115
packages/email/src/subscriberClient.ts
Normal file
115
packages/email/src/subscriberClient.ts
Normal file
@@ -0,0 +1,115 @@
|
||||
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",
|
||||
);
|
||||
}
|
||||
@@ -119,7 +119,7 @@ export function registerCardTools(server: McpServer): void {
|
||||
content: z.string().describe("Comment text"),
|
||||
},
|
||||
async ({ cardPublicId, content }) => {
|
||||
const data = await kanRequest("POST", `/cards/${cardPublicId}/comments`, { content });
|
||||
const data = await kanRequest("POST", `/cards/${cardPublicId}/comments`, { comment: content });
|
||||
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
||||
},
|
||||
);
|
||||
@@ -136,7 +136,7 @@ export function registerCardTools(server: McpServer): void {
|
||||
const data = await kanRequest(
|
||||
"PUT",
|
||||
`/cards/${cardPublicId}/comments/${commentPublicId}`,
|
||||
{ content },
|
||||
{ comment: content },
|
||||
);
|
||||
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
||||
},
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
import { SignJWT } from "jose";
|
||||
import { env } from "next-runtime-env";
|
||||
|
||||
const encoder = new TextEncoder();
|
||||
|
||||
/**
|
||||
* Creates a long‑lived 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 long‑lived.
|
||||
.sign(encoder.encode(secret));
|
||||
|
||||
return `${baseUrl}/unsubscribe?token=${encodeURIComponent(token)}`;
|
||||
}
|
||||
@@ -2,7 +2,6 @@ export * from "./generateUID";
|
||||
export * from "./generateSlug";
|
||||
export * from "./generateWorkspacePrefix";
|
||||
export * from "./subscriptions";
|
||||
export * from "./email";
|
||||
export * from "./dueDateFilters";
|
||||
export * from "./s3";
|
||||
export * from "./mentions";
|
||||
|
||||
43
pnpm-lock.yaml
generated
43
pnpm-lock.yaml
generated
@@ -103,6 +103,9 @@ importers:
|
||||
'@kan/db':
|
||||
specifier: workspace:^
|
||||
version: link:../../packages/db
|
||||
'@kan/email':
|
||||
specifier: workspace:^
|
||||
version: link:../../packages/email
|
||||
'@kan/logger':
|
||||
specifier: workspace:^
|
||||
version: link:../../packages/logger
|
||||
@@ -121,9 +124,6 @@ importers:
|
||||
'@lingui/react':
|
||||
specifier: ^5.3.2
|
||||
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':
|
||||
specifier: ^0.11.1
|
||||
version: 0.11.1(typescript@5.9.2)(zod@3.25.76)
|
||||
@@ -467,9 +467,6 @@ importers:
|
||||
'@kan/logger':
|
||||
specifier: workspace:^
|
||||
version: link:../logger
|
||||
'@novu/api':
|
||||
specifier: ^3.11.0
|
||||
version: 3.11.0
|
||||
'@react-email/components':
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||
@@ -1541,11 +1538,11 @@ packages:
|
||||
|
||||
'@esbuild-kit/core-utils@3.3.2':
|
||||
resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==}
|
||||
deprecated: 'Merged into tsx: https://tsx.is'
|
||||
deprecated: 'Merged into tsx: https://tsx.hirok.io'
|
||||
|
||||
'@esbuild-kit/esm-loader@2.6.5':
|
||||
resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==}
|
||||
deprecated: 'Merged into tsx: https://tsx.is'
|
||||
deprecated: 'Merged into tsx: https://tsx.hirok.io'
|
||||
|
||||
'@esbuild/aix-ppc64@0.19.12':
|
||||
resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
|
||||
@@ -2998,9 +2995,6 @@ packages:
|
||||
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
'@novu/api@3.11.0':
|
||||
resolution: {integrity: sha512-8u0mB5VThL7MhdxoN0UoA4CS9eu2k3Xa6iulauMhCHENuJNxUNuirJWq5t8jDoH4bFTQTfMN0VRkC0qodKR2qA==}
|
||||
|
||||
'@octokit/auth-token@3.0.4':
|
||||
resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==}
|
||||
engines: {node: '>= 14'}
|
||||
@@ -3097,95 +3091,111 @@ packages:
|
||||
|
||||
'@react-email/body@0.2.0':
|
||||
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:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/button@0.2.0':
|
||||
resolution: {integrity: sha512-8i+v6cMxr2emz4ihCrRiYJPp2/sdYsNNsBzXStlcA+/B9Umpm5Jj3WJKYpgTPM+aeyiqlG/MMI1AucnBm4f1oQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/code-block@0.2.0':
|
||||
resolution: {integrity: sha512-eIrPW9PIFgDopQU0e/OPpwCW2QWQDtNZDSsiN4sJO8KdMnWWnXJicnRfzrit5rHwFo+Y98i+w/Y5ScnBAFr1dQ==}
|
||||
engines: {node: '>=22.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/code-inline@0.0.5':
|
||||
resolution: {integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/column@0.0.13':
|
||||
resolution: {integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/components@1.0.1':
|
||||
resolution: {integrity: sha512-HnL0Y/up61sOBQT2cQg9N/kCoW0bP727gDs2MkFWQYELg6+iIHidMDvENXFC0f1ZE6hTB+4t7sszptvTcJWsDA==}
|
||||
engines: {node: '>=22.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/container@0.0.15':
|
||||
resolution: {integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/font@0.0.9':
|
||||
resolution: {integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/head@0.0.12':
|
||||
resolution: {integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/heading@0.0.15':
|
||||
resolution: {integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/hr@0.0.11':
|
||||
resolution: {integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/html@0.0.11':
|
||||
resolution: {integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/img@0.0.11':
|
||||
resolution: {integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/link@0.0.12':
|
||||
resolution: {integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/markdown@0.0.17':
|
||||
resolution: {integrity: sha512-6op3AfsBC9BJKkhG+eoMFRFWlr0/f3FYbtQrK+VhGzJocEAY0WINIFN+W8xzXr//3IL0K/aKtnH3FtpIuescQQ==}
|
||||
engines: {node: '>=22.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/preview@0.0.13':
|
||||
resolution: {integrity: sha512-F7j9FJ0JN/A4d7yr+aw28p4uX7VLWs7hTHtLo7WRyw4G+Lit6Zucq4UWKRxJC8lpsUdzVmG7aBJnKOT+urqs/w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
@@ -3199,18 +3209,21 @@ packages:
|
||||
'@react-email/row@0.0.12':
|
||||
resolution: {integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/section@0.0.16':
|
||||
resolution: {integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
'@react-email/tailwind@2.0.1':
|
||||
resolution: {integrity: sha512-/xq0IDYVY7863xPY7cdI45Xoz7M6CnIQBJcQvbqN7MNVpopfH9f+mhjayV1JGfKaxlGWuxfLKhgi9T2shsnEFg==}
|
||||
engines: {node: '>=22.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
'@react-email/body': 0.2.0
|
||||
'@react-email/button': 0.2.0
|
||||
@@ -3249,6 +3262,7 @@ packages:
|
||||
'@react-email/text@0.1.5':
|
||||
resolution: {integrity: sha512-o5PNHFSE085VMXayxH+SJ1LSOtGsTv+RpNKnTiJDrJUwoBu77G3PlKOsZZQHCNyD28WsQpl9v2WcJLbQudqwPg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
peerDependencies:
|
||||
react: ^18.0 || ^19.0 || ^19.0.0-rc
|
||||
|
||||
@@ -4296,6 +4310,7 @@ packages:
|
||||
|
||||
'@ungap/structured-clone@1.3.0':
|
||||
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
|
||||
deprecated: Potential CWE-502 - Update to 1.3.1 or higher
|
||||
|
||||
'@vitest/expect@3.2.4':
|
||||
resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
|
||||
@@ -4618,6 +4633,7 @@ packages:
|
||||
basic-ftp@5.0.5:
|
||||
resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
deprecated: Security vulnerability fixed in 5.2.1, please upgrade
|
||||
|
||||
before-after-hook@2.2.3:
|
||||
resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==}
|
||||
@@ -8734,6 +8750,7 @@ packages:
|
||||
|
||||
uuid@9.0.1:
|
||||
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
|
||||
|
||||
uvu@0.5.6:
|
||||
@@ -11479,10 +11496,6 @@ snapshots:
|
||||
'@nodelib/fs.scandir': 2.1.5
|
||||
fastq: 1.19.1
|
||||
|
||||
'@novu/api@3.11.0':
|
||||
dependencies:
|
||||
zod: 3.25.76
|
||||
|
||||
'@octokit/auth-token@3.0.4': {}
|
||||
|
||||
'@octokit/core@4.2.4':
|
||||
|
||||
@@ -123,7 +123,6 @@
|
||||
"NEXT_PUBLIC_KAN_ENV",
|
||||
"NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY",
|
||||
"STRIPE_SECRET_KEY",
|
||||
"DISCORD_WEBHOOK_URL",
|
||||
"STRIPE_WEBHOOK_SECRET",
|
||||
"STRIPE_WEBHOOK_SECRET_LEGACY",
|
||||
"STRIPE_PRO_PLAN_MONTHLY_PRICE_ID",
|
||||
@@ -148,8 +147,6 @@
|
||||
"PORT",
|
||||
"BETTER_AUTH_SECRET",
|
||||
"BETTER_AUTH_TRUSTED_ORIGINS",
|
||||
"NOVU_API_KEY",
|
||||
"EMAIL_UNSUBSCRIBE_SECRET",
|
||||
"REDIS_URL",
|
||||
"LOG_LEVEL",
|
||||
"AXIOM_TOKEN",
|
||||
|
||||
Reference in New Issue
Block a user