Compare commits

...

18 Commits

Author SHA1 Message Date
Henry
a2ac3acfb6 fix: prevent maximum update depth exceeded error 2026-08-12 20:06:11 +01:00
Henry
e9ebd06eaa feat(cloud): replace novu for all notification triggers 2026-08-08 13:37:51 +01:00
Henry
b4e9dd3811 feat(cloud): sync subscriber preferences on unsubscribe 2026-08-03 11:53:29 +01:00
Henry
d6aa82e070 feat(cloud): create subscribers 2026-07-31 16:25:25 +01:00
Henry
4291d7bc8c chore: add scripts to gitignore 2026-07-29 12:58:06 +01:00
hjball
5c72968d44 chore: update translations 2026-07-29 11:50:09 +00:00
Henry
5b586f4871 fix(cloud): default to active workspace on upgrade path 2026-07-29 12:49:00 +01:00
Andrey O
fee82e5e73 fix(mcp): map card.comment content field for Kan API (#540)
The MCP add_card_comment and update_card_comment tools send `{ content }`
to Kan API, but the API expects `{ comment }`. This causes a 400 Bad Request
("comment: Required") when trying to add or update card comments.

Fixed by mapping `{ comment: content }` in both tool handlers.

Co-authored-by: Craft Agent <agents-noreply@craft.do>
2026-07-27 21:18:55 +01:00
hjball
03a043784a chore: update translations 2026-07-27 20:16:05 +00:00
Anatoly Rubinshteyn
395dbfae04 fix(editor): guard tippy instance in suggestion handlers (#543)
The popup variable stays undefined when onStart bails out early because
props.clientRect is missing, so popup[0] throws instead of no-oping.
Use optional chaining on the array itself.
2026-07-27 21:14:51 +01:00
hjball
9ec4bedd9a chore: compile translations 2026-07-08 09:55:44 +00:00
hjball
ca694595c7 chore: update translations 2026-07-08 09:55:40 +00:00
Henry
0500d5171d feat: allow submitting comments via keyboard shortcut (#533) 2026-07-08 10:54:16 +01:00
hjball
a15e193f66 chore: update translations 2026-06-30 11:00:57 +00:00
Henry
019ecbc364 fix: correct template creation condition in BoardDropdown (#529) 2026-06-30 11:59:43 +01:00
hjball
82b2b4a8e1 chore: compile translations 2026-06-30 10:21:13 +00:00
hjball
c1adb2d4dd chore: update translations 2026-06-30 10:21:09 +00:00
Nick Meinhold
25ed4e39b3 feat: move boards between workspaces (#458)
* feat: add ability to move boards between workspaces

Implements the "Move to workspace" feature (#344) allowing users to
relocate a board and all its contents (lists, cards, labels, checklists,
comments, activity) to a different workspace.

Key design decisions:
- Card member assignments are cleared on move (they reference
  workspace-scoped members that may not exist in the target workspace)
- Comments and activity history are preserved (they reference global
  user IDs, not workspace members)
- Slug conflicts in the target workspace are auto-resolved by
  appending a UID suffix
- Permission model: requires board:edit in source workspace and
  board:create in target workspace
- Templates and archived boards cannot be moved

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: consolidate board queries in move mutation

Address review feedback:
- Consolidate 3 separate board queries into a single findFirst()
  that fetches all needed fields (id, name, slug, type, isArchived,
  workspaceId, createdBy)
- Fix slug fallback to use board.name instead of publicId for
  human-readable URLs

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: filter guest workspaces from move board destination list

Guests typically lack board:create permission in the target workspace,
so showing them as destinations leads to a confusing server rejection.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor: extract getBoardForMove repo function

Moves the inline board query from the move mutation into the repo
layer, consistent with how every other board mutation fetches data.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test: add unit tests for board.move mutation

10 test cases covering auth, validation, permissions, slug conflict
resolution, and the happy path. Follows webhook.test.ts patterns.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: mark locale files as linguist-generated

GitHub will now auto-collapse compiled translation files (messages.json,
messages.ts, messages.po) in PR diffs and exclude them from language
stats. This makes PRs that touch i18n strings much easier to review.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: remove locale file changes from PR

Reverts locale file diffs and .gitattributes to match main, per review
feedback. The locale changes were unrelated translation updates that
inflated the PR diff.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: remove locale file changes from PR

Per @hjball's review: locale compilation/translations are handled
automatically on merge to main, so this PR shouldn't carry them.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: align locale files with upstream/main

Previous removal commit used local main, which had drifted from
upstream. Re-syncing to upstream/main so the PR carries no locale diff.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(board-move): tighten deletedAt handling per review

Three changes addressing @hjball's review comments, all about the
schema treating deletedAt as optional metadata while the move-board
flow needs it as a load-bearing invariant.

1. getBoardForMove now filters isNull(deletedAt). Moving a tombstoned
   board has no defensible semantics. Replaces the implicit
   "the board exists in the table" check with an explicit
   "the board is not soft-deleted" check.

2. Move-flow's clearing of cardToWorkspaceMembers now spans every
   card under every list ever associated with this board, including
   soft-deleted ones. If we leave member assignments on a deleted
   card and that card is later restored, the assignments would
   resurrect rogue references to workspace members from the OLD
   workspace. Removed the isNull filters on both lists and cards in
   that loop.

3. Move-flow now refuses to move into a soft-deleted target
   workspace. workspaceRepo.getByPublicId did not previously project
   deletedAt; extended its column selection so the call-site guard
   in board.move can check it. (A wider fix to make the repo treat
   deleted-as-not-found across all 14+ callers is left for a
   separate PR — narrow scope here.)

Plus one regression test: throws NOT_FOUND when target workspace is
soft-deleted. All 11 board-move tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-06-30 11:19:39 +01:00
53 changed files with 2455 additions and 1082 deletions

3
.gitignore vendored
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -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 });
},
),
);

View File

@@ -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>
</>
);
}

View File

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

View File

@@ -1,6 +1,7 @@
import { useRouter } from "next/router"; import { useRouter } from "next/router";
import { t } from "@lingui/core/macro"; import { t } from "@lingui/core/macro";
import { import {
HiArrowRightOnRectangle,
HiEllipsisHorizontal, HiEllipsisHorizontal,
HiLink, HiLink,
HiOutlineDocumentDuplicate, HiOutlineDocumentDuplicate,
@@ -88,7 +89,7 @@ export default function BoardDropdown({
const isArchiveActionPending = updateBoard.isPending; const isArchiveActionPending = updateBoard.isPending;
const items = [ const items = [
...(isTemplate && canCreateBoard ...(!isTemplate && canCreateBoard
? [ ? [
{ {
label: t`Make template`, label: t`Make template`,
@@ -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 label: isFavorite
? t`Remove from favorites` ? t`Remove from favorites`

View 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 ?? "the workspace"}.`,
icon: "success",
});
if (targetWorkspace) {
switchWorkspace(targetWorkspace);
} else {
router.push("/boards");
}
},
onError: (error) => {
showPopup({
header: t`Unable to move board`,
message: error.message,
icon: "error",
});
},
});
const handleMoveBoard = () => {
if (!targetWorkspacePublicId) return;
moveBoard.mutate({
boardPublicId,
targetWorkspacePublicId,
});
};
return (
<div className="p-5">
<div className="flex w-full flex-col justify-between pb-4">
<h2 className="text-md pb-4 font-medium text-neutral-900 dark:text-dark-1000">
{t`Move board to another workspace`}
</h2>
{otherWorkspaces.length === 0 ? (
<p className="text-sm font-medium text-light-900 dark:text-dark-900">
{t`You don't have any other workspaces to move this board to.`}
</p>
) : (
<>
<label
htmlFor="target-workspace"
className="mb-2 text-sm font-medium text-light-900 dark:text-dark-900"
>
{t`Destination workspace`}
</label>
<select
id="target-workspace"
value={targetWorkspacePublicId}
onChange={(e) => setTargetWorkspacePublicId(e.target.value)}
className="block w-full rounded-md border-0 bg-dark-300 bg-white/5 py-1.5 text-sm shadow-sm ring-1 ring-inset ring-light-600 placeholder:text-dark-800 focus:ring-2 focus:ring-inset focus:ring-light-700 dark:text-dark-1000 dark:ring-dark-700 dark:focus:ring-dark-700 sm:leading-6"
>
<option value="">{t`Select a workspace`}</option>
{otherWorkspaces.map((ws) => (
<option key={ws.publicId} value={ws.publicId}>
{ws.name}
</option>
))}
</select>
<p className="mt-3 text-sm text-light-800 dark:text-dark-800">
{t`Card member assignments will be cleared when moving to a different workspace.`}
</p>
</>
)}
</div>
<div className="mt-5 flex justify-end space-x-2 sm:mt-6">
<Button onClick={() => closeModal()} variant="secondary">
{t`Cancel`}
</Button>
{otherWorkspaces.length > 0 && (
<Button
onClick={handleMoveBoard}
isLoading={moveBoard.isPending}
disabled={!targetWorkspacePublicId}
>
{t`Move board`}
</Button>
)}
</div>
</div>
);
}

View File

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

View File

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

View File

@@ -2,9 +2,10 @@ import { t } from "@lingui/core/macro";
import { useForm } from "react-hook-form"; import { useForm } from "react-hook-form";
import { HiOutlineArrowUp } from "react-icons/hi2"; import { HiOutlineArrowUp } from "react-icons/hi2";
import Editor from "~/components/Editor";
import type { WorkspaceMember } from "~/components/Editor"; import type { WorkspaceMember } from "~/components/Editor";
import Editor from "~/components/Editor";
import LoadingSpinner from "~/components/LoadingSpinner"; import LoadingSpinner from "~/components/LoadingSpinner";
import { Tooltip } from "~/components/Tooltip";
import { usePermissions } from "~/hooks/usePermissions"; import { usePermissions } from "~/hooks/usePermissions";
import { usePopup } from "~/providers/popup"; import { usePopup } from "~/providers/popup";
import { api } from "~/utils/api"; import { api } from "~/utils/api";
@@ -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) { if (!canCreateComment) {
return null; return null;
} }
@@ -63,23 +79,26 @@ const NewCommentForm = ({
<Editor <Editor
content={watch("comment")} content={watch("comment")}
onChange={(value) => setValue("comment", value)} onChange={(value) => setValue("comment", value)}
onSubmit={handleSubmit(onSubmit)}
workspaceMembers={workspaceMembers} workspaceMembers={workspaceMembers}
enableYouTubeEmbed={false} enableYouTubeEmbed={false}
placeholder={t`Add comment... (type '/' to open commands or '@' to mention)`} placeholder={t`Add comment... (type '/' to open commands or '@' to mention)`}
disableHeadings={true} disableHeadings={true}
/> />
<div className="flex justify-end"> <div className="flex justify-end">
<button <Tooltip content={submitTooltip} placement="top">
type="submit" <button
disabled={addCommentMutation.isPending} type="submit"
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" 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" /> {addCommentMutation.isPending ? (
) : ( <LoadingSpinner size="sm" />
<HiOutlineArrowUp /> ) : (
)} <HiOutlineArrowUp />
</button> )}
</button>
</Tooltip>
</div> </div>
</form> </form>
); );

View File

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

View File

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

View 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",
);
});
});

View File

@@ -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 }; return { success: true };
}), }),
checkSlugAvailability: publicProcedure checkSlugAvailability: publicProcedure

View File

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

View File

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

View File

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

View File

@@ -724,6 +724,30 @@ export const getWorkspaceAndBoardIdByBoardPublicId = async (
return result; return result;
}; };
/**
* Fetches the board fields needed by the move mutation:
* identity, naming, type guards, and workspace ownership.
* Soft-deleted boards are excluded — moving a tombstoned board has
* no defensible semantics.
*/
export const getBoardForMove = async (
db: dbClient,
boardPublicId: string,
) => {
return db.query.boards.findFirst({
columns: {
id: true,
name: true,
slug: true,
type: true,
isArchived: true,
workspaceId: true,
createdBy: true,
},
where: and(eq(boards.publicId, boardPublicId), isNull(boards.deletedAt)),
});
};
export const isBoardSlugAvailable = async ( export const isBoardSlugAvailable = async (
db: dbClient, db: dbClient,
boardSlug: string, boardSlug: string,
@@ -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 ( export const addUserFavorite = async (
db: dbClient, db: dbClient,
userId: string, userId: string,

View File

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

View File

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

View File

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

View File

@@ -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;

View 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",
);
}

View File

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

View File

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

View File

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

43
pnpm-lock.yaml generated
View File

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

View File

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