feat: implement drag-and-drop reordering for checklist items (#275)
* feat: implement drag-and-drop reordering for checklist items * WIP: Changes before syncing with main * feat: update drag icon and positioning * refactor: consolidate checklist item updates into single endpoint - Remove standalone reorderItem route (now part of updateItem) - Add optional index parameter to updateItem for reordering - Change updateItem from PUT to PATCH method - Add deletedAt IS NULL filter to reorderItem SQL queries - Follows existing pattern from card.update route * feat: add optimistic updates * chore: translations --------- Co-authored-by: Henry <henry_ball@hotmail.co.uk>
This commit is contained in:
committed by
GitHub
parent
6ebab28606
commit
3cb40d0f9a
1
.gitignore
vendored
1
.gitignore
vendored
@@ -34,6 +34,7 @@ yarn-error.log*
|
|||||||
.env
|
.env
|
||||||
.env*.local
|
.env*.local
|
||||||
|
|
||||||
|
|
||||||
# vercel
|
# vercel
|
||||||
.vercel
|
.vercel
|
||||||
|
|
||||||
|
|||||||
@@ -502,6 +502,7 @@ checksums:
|
|||||||
Trusted%20by%20fast-moving%20teams%3C0%2F%3Earound%20the%20world/singular: b065575df380536df9541a91ca9b37bf
|
Trusted%20by%20fast-moving%20teams%3C0%2F%3Earound%20the%20world/singular: b065575df380536df9541a91ca9b37bf
|
||||||
Unable%20to%20add%20checklist%20item/singular: 4c4c3eaaf10b348b39ae97eb5dc455df
|
Unable%20to%20add%20checklist%20item/singular: 4c4c3eaaf10b348b39ae97eb5dc455df
|
||||||
Unable%20to%20add%20comment/singular: 49bb435880817434698f31a6069564d6
|
Unable%20to%20add%20comment/singular: 49bb435880817434698f31a6069564d6
|
||||||
|
Unable%20to%20add%20label/singular: b09fda6420ea1dc10dbea0b1dc373f29
|
||||||
Unable%20to%20create%20card/singular: 90112ea12ec6fa42097a6e022ae048a4
|
Unable%20to%20create%20card/singular: 90112ea12ec6fa42097a6e022ae048a4
|
||||||
Unable%20to%20create%20checklist/singular: 94eed122e42e0951cd08b9ec62f5eeb6
|
Unable%20to%20create%20checklist/singular: 94eed122e42e0951cd08b9ec62f5eeb6
|
||||||
Unable%20to%20create%20list/singular: 7fbbf8314f8d08a4123c7daef09fed05
|
Unable%20to%20create%20list/singular: 7fbbf8314f8d08a4123c7daef09fed05
|
||||||
@@ -513,6 +514,7 @@ checksums:
|
|||||||
Unable%20to%20delete%20checklist%20item/singular: a74144593b625e4d8d7ecf734462c60d
|
Unable%20to%20delete%20checklist%20item/singular: a74144593b625e4d8d7ecf734462c60d
|
||||||
Unable%20to%20delete%20comment/singular: 550198b2c87f06726a843c79c1026ed9
|
Unable%20to%20delete%20comment/singular: 550198b2c87f06726a843c79c1026ed9
|
||||||
Unable%20to%20remove%20member/singular: 39025a0c53818438829603d213baef06
|
Unable%20to%20remove%20member/singular: 39025a0c53818438829603d213baef06
|
||||||
|
Unable%20to%20reorder%20checklist%20item/singular: dcc238c72b85daf74ebd46adcd914473
|
||||||
Unable%20to%20send%20feedback/singular: 656c93265d7e2bef1245b17d85f85ae5
|
Unable%20to%20send%20feedback/singular: 656c93265d7e2bef1245b17d85f85ae5
|
||||||
Unable%20to%20update%20board%20URL/singular: 080746884059142358b58d9a44ff7d93
|
Unable%20to%20update%20board%20URL/singular: 080746884059142358b58d9a44ff7d93
|
||||||
Unable%20to%20update%20board%20visibility/singular: a76a21d561b8943e9276e027a1e3f70d
|
Unable%20to%20update%20board%20visibility/singular: a76a21d561b8943e9276e027a1e3f70d
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ msgid "{0} labels"
|
|||||||
msgstr "{0} Labels"
|
msgstr "{0} Labels"
|
||||||
|
|
||||||
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
||||||
#: src/views/board/index.tsx:412
|
#: src/views/board/index.tsx:408
|
||||||
msgid "{0} not found"
|
msgid "{0} not found"
|
||||||
msgstr "{0} nicht gefunden"
|
msgstr "{0} nicht gefunden"
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ msgstr "Checkliste hinzufügen"
|
|||||||
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Beschreibung hinzufügen... (tippe '/' um Befehle zu öffnen oder '@' um jemanden zu erwähnen)"
|
msgstr "Beschreibung hinzufügen... (tippe '/' um Befehle zu öffnen oder '@' um jemanden zu erwähnen)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:194
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
msgstr "Details hinzufügen..."
|
msgstr "Details hinzufügen..."
|
||||||
|
|
||||||
@@ -312,9 +312,9 @@ msgstr "Abrechnungsportal"
|
|||||||
msgid "Blog Post"
|
msgid "Blog Post"
|
||||||
msgstr "Blogbeitrag"
|
msgstr "Blogbeitrag"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/card/index.tsx:272
|
#: src/views/card/index.tsx:272
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Board"
|
msgstr "Board"
|
||||||
|
|
||||||
@@ -331,7 +331,7 @@ msgstr "Der Name des Boards darf 100 Zeichen nicht überschreiten"
|
|||||||
msgid "Board name is required"
|
msgid "Board name is required"
|
||||||
msgstr "Boardname ist erforderlich"
|
msgstr "Boardname ist erforderlich"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:165
|
#: src/views/public/board/index.tsx:166
|
||||||
msgid "Board not found"
|
msgid "Board not found"
|
||||||
msgstr "Board nicht gefunden"
|
msgstr "Board nicht gefunden"
|
||||||
|
|
||||||
@@ -347,7 +347,7 @@ msgstr "Board-URL darf nur Buchstaben, Zahlen und Bindestriche enthalten"
|
|||||||
msgid "Board URL cannot exceed 60 characters"
|
msgid "Board URL cannot exceed 60 characters"
|
||||||
msgstr "Board-URL darf 60 Zeichen nicht überschreiten"
|
msgstr "Board-URL darf 60 Zeichen nicht überschreiten"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:79
|
#: src/views/public/board/index.tsx:80
|
||||||
msgid "Board URL copied to clipboard"
|
msgid "Board URL copied to clipboard"
|
||||||
msgstr "Board-URL in die Zwischenablage kopiert"
|
msgstr "Board-URL in die Zwischenablage kopiert"
|
||||||
|
|
||||||
@@ -604,8 +604,8 @@ msgstr "Neuen Schlüssel erstellen"
|
|||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Neues Label erstellen"
|
msgstr "Neues Label erstellen"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:65
|
#: src/views/board/index.tsx:64
|
||||||
#: src/views/board/index.tsx:503
|
#: src/views/board/index.tsx:499
|
||||||
msgid "Create new list"
|
msgid "Create new list"
|
||||||
msgstr "Neue Liste erstellen"
|
msgstr "Neue Liste erstellen"
|
||||||
|
|
||||||
@@ -1042,8 +1042,6 @@ msgid "For long-term sustainability, we recognise all good open source projects
|
|||||||
msgstr "Für langfristige Nachhaltigkeit erkennen wir an, dass alle guten Open-Source-Projekte eine Einnahmequelle benötigen. Unsere stammt aus dem kostenpflichtigen Cloud-Angebot für Workspaces mit mehreren Benutzern und für benutzerdefinierte Workspace-Slugs. Es besteht keine Verpflichtung, es zu nutzen, und Sie können die Software kostenlos auf Ihrer eigenen Infrastruktur selbst hosten."
|
msgstr "Für langfristige Nachhaltigkeit erkennen wir an, dass alle guten Open-Source-Projekte eine Einnahmequelle benötigen. Unsere stammt aus dem kostenpflichtigen Cloud-Angebot für Workspaces mit mehreren Benutzern und für benutzerdefinierte Workspace-Slugs. Es besteht keine Verpflichtung, es zu nutzen, und Sie können die Software kostenlos auf Ihrer eigenen Infrastruktur selbst hosten."
|
||||||
|
|
||||||
#: 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/PricingTiers.tsx:30
|
|
||||||
#: src/views/pricing/components/PricingTiers.tsx:30
|
#: src/views/pricing/components/PricingTiers.tsx:30
|
||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Kostenlos"
|
msgstr "Kostenlos"
|
||||||
@@ -1089,7 +1087,7 @@ msgstr "Loslegen"
|
|||||||
msgid "Get started by creating a new {0}"
|
msgid "Get started by creating a new {0}"
|
||||||
msgstr "Beginnen Sie, indem Sie eine(n) neue(n) {0} erstellen"
|
msgstr "Beginnen Sie, indem Sie eine(n) neue(n) {0} erstellen"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:495
|
#: src/views/board/index.tsx:491
|
||||||
msgid "Get started by creating a new list"
|
msgid "Get started by creating a new list"
|
||||||
msgstr "Beginne mit dem Erstellen einer neuen Liste"
|
msgstr "Beginne mit dem Erstellen einer neuen Liste"
|
||||||
|
|
||||||
@@ -1375,7 +1373,7 @@ msgstr "Lizenz"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Hell"
|
msgstr "Hell"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:77
|
#: src/views/public/board/index.tsx:78
|
||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Link kopiert"
|
msgstr "Link kopiert"
|
||||||
|
|
||||||
@@ -1509,7 +1507,7 @@ msgid "New label"
|
|||||||
msgstr "Neues Label"
|
msgstr "Neues Label"
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:113
|
#: src/views/board/components/NewListForm.tsx:113
|
||||||
#: src/views/board/index.tsx:466
|
#: src/views/board/index.tsx:462
|
||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Neue Liste"
|
msgstr "Neue Liste"
|
||||||
|
|
||||||
@@ -1570,7 +1568,7 @@ msgstr "Für diesen Anhang ist keine Download-URL verfügbar."
|
|||||||
msgid "No keyboard shortcuts registered."
|
msgid "No keyboard shortcuts registered."
|
||||||
msgstr "Keine Tastaturkürzel registriert."
|
msgstr "Keine Tastaturkürzel registriert."
|
||||||
|
|
||||||
#: src/views/board/index.tsx:492
|
#: src/views/board/index.tsx:488
|
||||||
msgid "No lists"
|
msgid "No lists"
|
||||||
msgstr "Keine Listen"
|
msgstr "Keine Listen"
|
||||||
|
|
||||||
@@ -1721,13 +1719,14 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
|
|||||||
#: 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:54
|
#: src/views/board/components/VisibilityButton.tsx:54
|
||||||
#: src/views/board/index.tsx:174
|
#: src/views/board/index.tsx:170
|
||||||
#: src/views/board/index.tsx:230
|
#: src/views/board/index.tsx:226
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
||||||
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:60
|
#: src/views/card/components/ChecklistItemRow.tsx:66
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:88
|
#: src/views/card/components/ChecklistItemRow.tsx:94
|
||||||
#: src/views/card/components/ChecklistNameInput.tsx:46
|
#: src/views/card/components/ChecklistNameInput.tsx:46
|
||||||
|
#: src/views/card/components/Checklists.tsx:81
|
||||||
#: src/views/card/components/Comment.tsx:64
|
#: src/views/card/components/Comment.tsx:64
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
||||||
@@ -2090,8 +2089,8 @@ msgstr "Team-Plan"
|
|||||||
msgid "Teams"
|
msgid "Teams"
|
||||||
msgstr "Teams"
|
msgstr "Teams"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/board/index.tsx:421
|
#: src/views/board/index.tsx:417
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr "Vorlage"
|
msgstr "Vorlage"
|
||||||
|
|
||||||
@@ -2165,7 +2164,7 @@ msgstr "Diese Aktion kann nicht rückgängig gemacht werden."
|
|||||||
msgid "This API key will only be shown once. Please save it in a secure location."
|
msgid "This API key will only be shown once. Please save it in a secure location."
|
||||||
msgstr "Dieser API-Schlüssel wird nur einmal angezeigt. Bitte speichern Sie ihn an einem sicheren Ort."
|
msgstr "Dieser API-Schlüssel wird nur einmal angezeigt. Bitte speichern Sie ihn an einem sicheren Ort."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:168
|
#: src/views/public/board/index.tsx:169
|
||||||
msgid "This board is private or does not exist"
|
msgid "This board is private or does not exist"
|
||||||
msgstr "Dieses Board ist privat oder existiert nicht"
|
msgstr "Dieses Board ist privat oder existiert nicht"
|
||||||
|
|
||||||
@@ -2227,7 +2226,7 @@ msgstr "Trello-importe"
|
|||||||
msgid "Triaging"
|
msgid "Triaging"
|
||||||
msgstr "Priorisierung"
|
msgstr "Priorisierung"
|
||||||
|
|
||||||
#: src/views/home/components/Logos.tsx:73
|
#: src/views/home/components/Logos.tsx:67
|
||||||
msgid "Trusted by fast-moving teams<0/>around the world"
|
msgid "Trusted by fast-moving teams<0/>around the world"
|
||||||
msgstr "Von schnell agierenden Teams<0/>weltweit vertraut"
|
msgstr "Von schnell agierenden Teams<0/>weltweit vertraut"
|
||||||
|
|
||||||
@@ -2241,7 +2240,7 @@ msgstr "Kommentar konnte nicht hinzugefügt werden"
|
|||||||
|
|
||||||
#: src/views/card/index.tsx:199
|
#: src/views/card/index.tsx:199
|
||||||
msgid "Unable to add label"
|
msgid "Unable to add label"
|
||||||
msgstr ""
|
msgstr "Label konnte nicht hinzugefügt werden"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:181
|
#: src/views/board/components/NewCardForm.tsx:181
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
@@ -2276,7 +2275,7 @@ msgstr "Karte konnte nicht gelöscht werden"
|
|||||||
msgid "Unable to delete checklist"
|
msgid "Unable to delete checklist"
|
||||||
msgstr "Checkliste kann nicht gelöscht werden"
|
msgstr "Checkliste kann nicht gelöscht werden"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:87
|
#: src/views/card/components/ChecklistItemRow.tsx:93
|
||||||
msgid "Unable to delete checklist item"
|
msgid "Unable to delete checklist item"
|
||||||
msgstr "Checklistenelement kann nicht gelöscht werden"
|
msgstr "Checklistenelement kann nicht gelöscht werden"
|
||||||
|
|
||||||
@@ -2288,6 +2287,10 @@ msgstr "Kommentar konnte nicht gelöscht werden"
|
|||||||
msgid "Unable to remove member"
|
msgid "Unable to remove member"
|
||||||
msgstr "Mitglied konnte nicht entfernt werden"
|
msgstr "Mitglied konnte nicht entfernt werden"
|
||||||
|
|
||||||
|
#: src/views/card/components/Checklists.tsx:80
|
||||||
|
msgid "Unable to reorder checklist item"
|
||||||
|
msgstr "Checklisten-Element konnte nicht neu angeordnet werden"
|
||||||
|
|
||||||
#: src/components/FeedbackModal.tsx:40
|
#: src/components/FeedbackModal.tsx:40
|
||||||
msgid "Unable to send feedback"
|
msgid "Unable to send feedback"
|
||||||
msgstr "Feedback konnte nicht gesendet werden"
|
msgstr "Feedback konnte nicht gesendet werden"
|
||||||
@@ -2300,7 +2303,7 @@ msgstr "Board-URL kann nicht aktualisiert werden"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Board-Sichtbarkeit konnte nicht aktualisiert werden"
|
msgstr "Board-Sichtbarkeit konnte nicht aktualisiert werden"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:229
|
#: src/views/board/index.tsx:225
|
||||||
#: src/views/card/index.tsx:186
|
#: src/views/card/index.tsx:186
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Karte konnte nicht aktualisiert werden"
|
msgstr "Karte konnte nicht aktualisiert werden"
|
||||||
@@ -2309,7 +2312,7 @@ msgstr "Karte konnte nicht aktualisiert werden"
|
|||||||
msgid "Unable to update checklist"
|
msgid "Unable to update checklist"
|
||||||
msgstr "Checkliste kann nicht aktualisiert werden"
|
msgstr "Checkliste kann nicht aktualisiert werden"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:59
|
#: src/views/card/components/ChecklistItemRow.tsx:65
|
||||||
msgid "Unable to update checklist item"
|
msgid "Unable to update checklist item"
|
||||||
msgstr "Checklistenelement kann nicht aktualisiert werden"
|
msgstr "Checklistenelement kann nicht aktualisiert werden"
|
||||||
|
|
||||||
@@ -2325,7 +2328,7 @@ msgstr "Fälligkeitsdatum konnte nicht aktualisiert werden"
|
|||||||
msgid "Unable to update labels"
|
msgid "Unable to update labels"
|
||||||
msgstr "Labels konnten nicht aktualisiert werden"
|
msgstr "Labels konnten nicht aktualisiert werden"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:173
|
#: src/views/board/index.tsx:169
|
||||||
#: src/views/card/components/ListSelector.tsx:51
|
#: src/views/card/components/ListSelector.tsx:51
|
||||||
msgid "Unable to update list"
|
msgid "Unable to update list"
|
||||||
msgstr "Liste konnte nicht aktualisiert werden"
|
msgstr "Liste konnte nicht aktualisiert werden"
|
||||||
@@ -2483,7 +2486,7 @@ msgstr "Verwalte deine Abrechnung und dein Abonnement."
|
|||||||
msgid "View docs"
|
msgid "View docs"
|
||||||
msgstr "Dokumentation ansehen"
|
msgstr "Dokumentation ansehen"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:141
|
#: src/views/public/board/index.tsx:142
|
||||||
msgid "View only"
|
msgid "View only"
|
||||||
msgstr "Nur ansehen"
|
msgstr "Nur ansehen"
|
||||||
|
|
||||||
@@ -2491,7 +2494,7 @@ msgstr "Nur ansehen"
|
|||||||
msgid "View our roadmap."
|
msgid "View our roadmap."
|
||||||
msgstr "Sieh dir unsere roadmap an."
|
msgstr "Sieh dir unsere roadmap an."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:171
|
#: src/views/public/board/index.tsx:172
|
||||||
msgid "View workspace"
|
msgid "View workspace"
|
||||||
msgstr "Workspace anzeigen"
|
msgstr "Workspace anzeigen"
|
||||||
|
|
||||||
@@ -2536,10 +2539,10 @@ msgid "Why make an open source Trello?"
|
|||||||
msgstr "Warum ein open source Trello entwickeln?"
|
msgstr "Warum ein open source Trello entwickeln?"
|
||||||
|
|
||||||
#: src/components/SettingsLayout.tsx:39
|
#: src/components/SettingsLayout.tsx:39
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/boards/index.tsx:33
|
#: src/views/boards/index.tsx:33
|
||||||
#: src/views/members/index.tsx:173
|
#: src/views/members/index.tsx:173
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
#: src/views/public/boards/index.tsx:66
|
#: src/views/public/boards/index.tsx:66
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "Arbeitsbereich"
|
msgstr "Arbeitsbereich"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -41,7 +41,7 @@ msgid "{0} labels"
|
|||||||
msgstr "{0} labels"
|
msgstr "{0} labels"
|
||||||
|
|
||||||
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
||||||
#: src/views/board/index.tsx:412
|
#: src/views/board/index.tsx:408
|
||||||
msgid "{0} not found"
|
msgid "{0} not found"
|
||||||
msgstr "{0} not found"
|
msgstr "{0} not found"
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ msgstr "Add description... (type '/' to open commands or '@' to mention)"
|
|||||||
#~ msgid "Add description... (type '/' to open commands)"
|
#~ msgid "Add description... (type '/' to open commands)"
|
||||||
#~ msgstr "Add description... (type '/' to open commands)"
|
#~ msgstr "Add description... (type '/' to open commands)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:194
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
msgstr "Add details..."
|
msgstr "Add details..."
|
||||||
|
|
||||||
@@ -352,9 +352,9 @@ msgstr "Billing portal"
|
|||||||
msgid "Blog Post"
|
msgid "Blog Post"
|
||||||
msgstr "Blog Post"
|
msgstr "Blog Post"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/card/index.tsx:272
|
#: src/views/card/index.tsx:272
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Board"
|
msgstr "Board"
|
||||||
|
|
||||||
@@ -380,7 +380,7 @@ msgstr "Board name cannot exceed 100 characters"
|
|||||||
msgid "Board name is required"
|
msgid "Board name is required"
|
||||||
msgstr "Board name is required"
|
msgstr "Board name is required"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:165
|
#: src/views/public/board/index.tsx:166
|
||||||
msgid "Board not found"
|
msgid "Board not found"
|
||||||
msgstr "Board not found"
|
msgstr "Board not found"
|
||||||
|
|
||||||
@@ -396,7 +396,7 @@ msgstr "Board URL can only contain letters, numbers, and hyphens"
|
|||||||
msgid "Board URL cannot exceed 60 characters"
|
msgid "Board URL cannot exceed 60 characters"
|
||||||
msgstr "Board URL cannot exceed 60 characters"
|
msgstr "Board URL cannot exceed 60 characters"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:79
|
#: src/views/public/board/index.tsx:80
|
||||||
msgid "Board URL copied to clipboard"
|
msgid "Board URL copied to clipboard"
|
||||||
msgstr "Board URL copied to clipboard"
|
msgstr "Board URL copied to clipboard"
|
||||||
|
|
||||||
@@ -681,8 +681,8 @@ msgstr "Create new key"
|
|||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Create new label"
|
msgstr "Create new label"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:65
|
#: src/views/board/index.tsx:64
|
||||||
#: src/views/board/index.tsx:503
|
#: src/views/board/index.tsx:499
|
||||||
msgid "Create new list"
|
msgid "Create new list"
|
||||||
msgstr "Create new list"
|
msgstr "Create new list"
|
||||||
|
|
||||||
@@ -1190,7 +1190,7 @@ msgstr "Get started by creating a new {0}"
|
|||||||
#~ msgid "Get started by creating a new board"
|
#~ msgid "Get started by creating a new board"
|
||||||
#~ msgstr "Get started by creating a new board"
|
#~ msgstr "Get started by creating a new board"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:495
|
#: src/views/board/index.tsx:491
|
||||||
msgid "Get started by creating a new list"
|
msgid "Get started by creating a new list"
|
||||||
msgstr "Get started by creating a new list"
|
msgstr "Get started by creating a new list"
|
||||||
|
|
||||||
@@ -1484,7 +1484,7 @@ msgstr "License"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Light"
|
msgstr "Light"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:77
|
#: src/views/public/board/index.tsx:78
|
||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Link copied"
|
msgstr "Link copied"
|
||||||
|
|
||||||
@@ -1630,7 +1630,7 @@ msgid "New label"
|
|||||||
msgstr "New label"
|
msgstr "New label"
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:113
|
#: src/views/board/components/NewListForm.tsx:113
|
||||||
#: src/views/board/index.tsx:466
|
#: src/views/board/index.tsx:462
|
||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "New list"
|
msgstr "New list"
|
||||||
|
|
||||||
@@ -1699,7 +1699,7 @@ msgstr "No download URL available for this attachment."
|
|||||||
msgid "No keyboard shortcuts registered."
|
msgid "No keyboard shortcuts registered."
|
||||||
msgstr "No keyboard shortcuts registered."
|
msgstr "No keyboard shortcuts registered."
|
||||||
|
|
||||||
#: src/views/board/index.tsx:492
|
#: src/views/board/index.tsx:488
|
||||||
msgid "No lists"
|
msgid "No lists"
|
||||||
msgstr "No lists"
|
msgstr "No lists"
|
||||||
|
|
||||||
@@ -1850,13 +1850,14 @@ msgstr "Please select a file to upload."
|
|||||||
#: 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:54
|
#: src/views/board/components/VisibilityButton.tsx:54
|
||||||
#: src/views/board/index.tsx:174
|
#: src/views/board/index.tsx:170
|
||||||
#: src/views/board/index.tsx:230
|
#: src/views/board/index.tsx:226
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
||||||
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:60
|
#: src/views/card/components/ChecklistItemRow.tsx:66
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:88
|
#: src/views/card/components/ChecklistItemRow.tsx:94
|
||||||
#: src/views/card/components/ChecklistNameInput.tsx:46
|
#: src/views/card/components/ChecklistNameInput.tsx:46
|
||||||
|
#: src/views/card/components/Checklists.tsx:81
|
||||||
#: src/views/card/components/Comment.tsx:64
|
#: src/views/card/components/Comment.tsx:64
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
||||||
@@ -2239,8 +2240,8 @@ msgstr "Team Plan"
|
|||||||
msgid "Teams"
|
msgid "Teams"
|
||||||
msgstr "Teams"
|
msgstr "Teams"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/board/index.tsx:421
|
#: src/views/board/index.tsx:417
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr "Template"
|
msgstr "Template"
|
||||||
|
|
||||||
@@ -2314,7 +2315,7 @@ msgstr "This action can't be undone."
|
|||||||
msgid "This API key will only be shown once. Please save it in a secure location."
|
msgid "This API key will only be shown once. Please save it in a secure location."
|
||||||
msgstr "This API key will only be shown once. Please save it in a secure location."
|
msgstr "This API key will only be shown once. Please save it in a secure location."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:168
|
#: src/views/public/board/index.tsx:169
|
||||||
msgid "This board is private or does not exist"
|
msgid "This board is private or does not exist"
|
||||||
msgstr "This board is private or does not exist"
|
msgstr "This board is private or does not exist"
|
||||||
|
|
||||||
@@ -2384,7 +2385,7 @@ msgstr "Triaging"
|
|||||||
#~ msgid "Trusted by fast-moving teams"
|
#~ msgid "Trusted by fast-moving teams"
|
||||||
#~ msgstr "Trusted by fast-moving teams"
|
#~ msgstr "Trusted by fast-moving teams"
|
||||||
|
|
||||||
#: src/views/home/components/Logos.tsx:73
|
#: src/views/home/components/Logos.tsx:67
|
||||||
msgid "Trusted by fast-moving teams<0/>around the world"
|
msgid "Trusted by fast-moving teams<0/>around the world"
|
||||||
msgstr "Trusted by fast-moving teams<0/>around the world"
|
msgstr "Trusted by fast-moving teams<0/>around the world"
|
||||||
|
|
||||||
@@ -2433,7 +2434,7 @@ msgstr "Unable to delete card"
|
|||||||
msgid "Unable to delete checklist"
|
msgid "Unable to delete checklist"
|
||||||
msgstr "Unable to delete checklist"
|
msgstr "Unable to delete checklist"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:87
|
#: src/views/card/components/ChecklistItemRow.tsx:93
|
||||||
msgid "Unable to delete checklist item"
|
msgid "Unable to delete checklist item"
|
||||||
msgstr "Unable to delete checklist item"
|
msgstr "Unable to delete checklist item"
|
||||||
|
|
||||||
@@ -2445,6 +2446,10 @@ msgstr "Unable to delete comment"
|
|||||||
msgid "Unable to remove member"
|
msgid "Unable to remove member"
|
||||||
msgstr "Unable to remove member"
|
msgstr "Unable to remove member"
|
||||||
|
|
||||||
|
#: src/views/card/components/Checklists.tsx:80
|
||||||
|
msgid "Unable to reorder checklist item"
|
||||||
|
msgstr "Unable to reorder checklist item"
|
||||||
|
|
||||||
#: src/components/FeedbackModal.tsx:40
|
#: src/components/FeedbackModal.tsx:40
|
||||||
msgid "Unable to send feedback"
|
msgid "Unable to send feedback"
|
||||||
msgstr "Unable to send feedback"
|
msgstr "Unable to send feedback"
|
||||||
@@ -2457,7 +2462,7 @@ msgstr "Unable to update board URL"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Unable to update board visibility"
|
msgstr "Unable to update board visibility"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:229
|
#: src/views/board/index.tsx:225
|
||||||
#: src/views/card/index.tsx:186
|
#: src/views/card/index.tsx:186
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Unable to update card"
|
msgstr "Unable to update card"
|
||||||
@@ -2466,7 +2471,7 @@ msgstr "Unable to update card"
|
|||||||
msgid "Unable to update checklist"
|
msgid "Unable to update checklist"
|
||||||
msgstr "Unable to update checklist"
|
msgstr "Unable to update checklist"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:59
|
#: src/views/card/components/ChecklistItemRow.tsx:65
|
||||||
msgid "Unable to update checklist item"
|
msgid "Unable to update checklist item"
|
||||||
msgstr "Unable to update checklist item"
|
msgstr "Unable to update checklist item"
|
||||||
|
|
||||||
@@ -2482,7 +2487,7 @@ msgstr "Unable to update due date"
|
|||||||
msgid "Unable to update labels"
|
msgid "Unable to update labels"
|
||||||
msgstr "Unable to update labels"
|
msgstr "Unable to update labels"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:173
|
#: src/views/board/index.tsx:169
|
||||||
#: src/views/card/components/ListSelector.tsx:51
|
#: src/views/card/components/ListSelector.tsx:51
|
||||||
msgid "Unable to update list"
|
msgid "Unable to update list"
|
||||||
msgstr "Unable to update list"
|
msgstr "Unable to update list"
|
||||||
@@ -2656,7 +2661,7 @@ msgstr "View and manage your billing and subscription."
|
|||||||
msgid "View docs"
|
msgid "View docs"
|
||||||
msgstr "View docs"
|
msgstr "View docs"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:141
|
#: src/views/public/board/index.tsx:142
|
||||||
msgid "View only"
|
msgid "View only"
|
||||||
msgstr "View only"
|
msgstr "View only"
|
||||||
|
|
||||||
@@ -2664,7 +2669,7 @@ msgstr "View only"
|
|||||||
msgid "View our roadmap."
|
msgid "View our roadmap."
|
||||||
msgstr "View our roadmap."
|
msgstr "View our roadmap."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:171
|
#: src/views/public/board/index.tsx:172
|
||||||
msgid "View workspace"
|
msgid "View workspace"
|
||||||
msgstr "View workspace"
|
msgstr "View workspace"
|
||||||
|
|
||||||
@@ -2717,10 +2722,10 @@ msgid "Why make an open source Trello?"
|
|||||||
msgstr "Why make an open source Trello?"
|
msgstr "Why make an open source Trello?"
|
||||||
|
|
||||||
#: src/components/SettingsLayout.tsx:39
|
#: src/components/SettingsLayout.tsx:39
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/boards/index.tsx:33
|
#: src/views/boards/index.tsx:33
|
||||||
#: src/views/members/index.tsx:173
|
#: src/views/members/index.tsx:173
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
#: src/views/public/boards/index.tsx:66
|
#: src/views/public/boards/index.tsx:66
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "Workspace"
|
msgstr "Workspace"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -41,7 +41,7 @@ msgid "{0} labels"
|
|||||||
msgstr "{0} etiquetas"
|
msgstr "{0} etiquetas"
|
||||||
|
|
||||||
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
||||||
#: src/views/board/index.tsx:412
|
#: src/views/board/index.tsx:408
|
||||||
msgid "{0} not found"
|
msgid "{0} not found"
|
||||||
msgstr "{0} no encontrado"
|
msgstr "{0} no encontrado"
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ msgstr "Añadir lista de verificación"
|
|||||||
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Añadir descripción... (escribe '/' para abrir comandos o '@' para mencionar)"
|
msgstr "Añadir descripción... (escribe '/' para abrir comandos o '@' para mencionar)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:194
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
msgstr "Añadir detalles..."
|
msgstr "Añadir detalles..."
|
||||||
|
|
||||||
@@ -312,9 +312,9 @@ msgstr "Portal de facturación"
|
|||||||
msgid "Blog Post"
|
msgid "Blog Post"
|
||||||
msgstr "Entrada de blog"
|
msgstr "Entrada de blog"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/card/index.tsx:272
|
#: src/views/card/index.tsx:272
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Tablero"
|
msgstr "Tablero"
|
||||||
|
|
||||||
@@ -331,7 +331,7 @@ msgstr "El nombre del tablero no puede exceder los 100 caracteres"
|
|||||||
msgid "Board name is required"
|
msgid "Board name is required"
|
||||||
msgstr "El nombre del tablero es obligatorio"
|
msgstr "El nombre del tablero es obligatorio"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:165
|
#: src/views/public/board/index.tsx:166
|
||||||
msgid "Board not found"
|
msgid "Board not found"
|
||||||
msgstr "Tablero no encontrado"
|
msgstr "Tablero no encontrado"
|
||||||
|
|
||||||
@@ -347,7 +347,7 @@ msgstr "La URL del tablero solo puede contener letras, números y guiones"
|
|||||||
msgid "Board URL cannot exceed 60 characters"
|
msgid "Board URL cannot exceed 60 characters"
|
||||||
msgstr "La URL del tablero no puede exceder los 60 caracteres"
|
msgstr "La URL del tablero no puede exceder los 60 caracteres"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:79
|
#: src/views/public/board/index.tsx:80
|
||||||
msgid "Board URL copied to clipboard"
|
msgid "Board URL copied to clipboard"
|
||||||
msgstr "URL del tablero copiada al portapapeles"
|
msgstr "URL del tablero copiada al portapapeles"
|
||||||
|
|
||||||
@@ -604,8 +604,8 @@ msgstr "Crear nueva clave"
|
|||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Crear nueva etiqueta"
|
msgstr "Crear nueva etiqueta"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:65
|
#: src/views/board/index.tsx:64
|
||||||
#: src/views/board/index.tsx:503
|
#: src/views/board/index.tsx:499
|
||||||
msgid "Create new list"
|
msgid "Create new list"
|
||||||
msgstr "Crear nueva lista"
|
msgstr "Crear nueva lista"
|
||||||
|
|
||||||
@@ -1042,8 +1042,6 @@ msgid "For long-term sustainability, we recognise all good open source projects
|
|||||||
msgstr "Para la sostenibilidad a largo plazo, reconocemos que todos los buenos proyectos de código abierto necesitan una fuente de ingresos. La nuestra proviene de la oferta de nube de pago para espacios de trabajo con múltiples usuarios y para slugs de espacio de trabajo personalizados. No hay obligación de usarla, y puedes alojar el software en tu propia infraestructura sin costo alguno."
|
msgstr "Para la sostenibilidad a largo plazo, reconocemos que todos los buenos proyectos de código abierto necesitan una fuente de ingresos. La nuestra proviene de la oferta de nube de pago para espacios de trabajo con múltiples usuarios y para slugs de espacio de trabajo personalizados. No hay obligación de usarla, y puedes alojar el software en tu propia infraestructura sin costo alguno."
|
||||||
|
|
||||||
#: 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/PricingTiers.tsx:30
|
|
||||||
#: src/views/pricing/components/PricingTiers.tsx:30
|
#: src/views/pricing/components/PricingTiers.tsx:30
|
||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Gratis"
|
msgstr "Gratis"
|
||||||
@@ -1089,7 +1087,7 @@ msgstr "Comenzar"
|
|||||||
msgid "Get started by creating a new {0}"
|
msgid "Get started by creating a new {0}"
|
||||||
msgstr "Comienza creando un nuevo {0}"
|
msgstr "Comienza creando un nuevo {0}"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:495
|
#: src/views/board/index.tsx:491
|
||||||
msgid "Get started by creating a new list"
|
msgid "Get started by creating a new list"
|
||||||
msgstr "Comienza creando una nueva lista"
|
msgstr "Comienza creando una nueva lista"
|
||||||
|
|
||||||
@@ -1375,7 +1373,7 @@ msgstr "Licencia"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Claro"
|
msgstr "Claro"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:77
|
#: src/views/public/board/index.tsx:78
|
||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Enlace copiado"
|
msgstr "Enlace copiado"
|
||||||
|
|
||||||
@@ -1509,7 +1507,7 @@ msgid "New label"
|
|||||||
msgstr "Nueva etiqueta"
|
msgstr "Nueva etiqueta"
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:113
|
#: src/views/board/components/NewListForm.tsx:113
|
||||||
#: src/views/board/index.tsx:466
|
#: src/views/board/index.tsx:462
|
||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Nueva lista"
|
msgstr "Nueva lista"
|
||||||
|
|
||||||
@@ -1570,7 +1568,7 @@ msgstr "No hay URL de descarga disponible para este archivo adjunto."
|
|||||||
msgid "No keyboard shortcuts registered."
|
msgid "No keyboard shortcuts registered."
|
||||||
msgstr "No hay atajos de teclado registrados."
|
msgstr "No hay atajos de teclado registrados."
|
||||||
|
|
||||||
#: src/views/board/index.tsx:492
|
#: src/views/board/index.tsx:488
|
||||||
msgid "No lists"
|
msgid "No lists"
|
||||||
msgstr "Sin listas"
|
msgstr "Sin listas"
|
||||||
|
|
||||||
@@ -1721,13 +1719,14 @@ msgstr "Por favor selecciona un archivo para subir."
|
|||||||
#: 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:54
|
#: src/views/board/components/VisibilityButton.tsx:54
|
||||||
#: src/views/board/index.tsx:174
|
#: src/views/board/index.tsx:170
|
||||||
#: src/views/board/index.tsx:230
|
#: src/views/board/index.tsx:226
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
||||||
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:60
|
#: src/views/card/components/ChecklistItemRow.tsx:66
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:88
|
#: src/views/card/components/ChecklistItemRow.tsx:94
|
||||||
#: src/views/card/components/ChecklistNameInput.tsx:46
|
#: src/views/card/components/ChecklistNameInput.tsx:46
|
||||||
|
#: src/views/card/components/Checklists.tsx:81
|
||||||
#: src/views/card/components/Comment.tsx:64
|
#: src/views/card/components/Comment.tsx:64
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
||||||
@@ -2090,8 +2089,8 @@ msgstr "Plan de Equipo"
|
|||||||
msgid "Teams"
|
msgid "Teams"
|
||||||
msgstr "Equipos"
|
msgstr "Equipos"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/board/index.tsx:421
|
#: src/views/board/index.tsx:417
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr "Plantilla"
|
msgstr "Plantilla"
|
||||||
|
|
||||||
@@ -2165,7 +2164,7 @@ msgstr "Esta acción no se puede deshacer."
|
|||||||
msgid "This API key will only be shown once. Please save it in a secure location."
|
msgid "This API key will only be shown once. Please save it in a secure location."
|
||||||
msgstr "Esta clave API solo se mostrará una vez. Por favor, guárdala en un lugar seguro."
|
msgstr "Esta clave API solo se mostrará una vez. Por favor, guárdala en un lugar seguro."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:168
|
#: src/views/public/board/index.tsx:169
|
||||||
msgid "This board is private or does not exist"
|
msgid "This board is private or does not exist"
|
||||||
msgstr "Este tablero es privado o no existe"
|
msgstr "Este tablero es privado o no existe"
|
||||||
|
|
||||||
@@ -2227,7 +2226,7 @@ msgstr "Importaciones de Trello"
|
|||||||
msgid "Triaging"
|
msgid "Triaging"
|
||||||
msgstr "Clasificación"
|
msgstr "Clasificación"
|
||||||
|
|
||||||
#: src/views/home/components/Logos.tsx:73
|
#: src/views/home/components/Logos.tsx:67
|
||||||
msgid "Trusted by fast-moving teams<0/>around the world"
|
msgid "Trusted by fast-moving teams<0/>around the world"
|
||||||
msgstr "Equipos ágiles de todo el mundo<0/>confían en nosotros"
|
msgstr "Equipos ágiles de todo el mundo<0/>confían en nosotros"
|
||||||
|
|
||||||
@@ -2241,7 +2240,7 @@ msgstr "No se puede añadir el comentario"
|
|||||||
|
|
||||||
#: src/views/card/index.tsx:199
|
#: src/views/card/index.tsx:199
|
||||||
msgid "Unable to add label"
|
msgid "Unable to add label"
|
||||||
msgstr ""
|
msgstr "No se puede añadir etiqueta"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:181
|
#: src/views/board/components/NewCardForm.tsx:181
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
@@ -2276,7 +2275,7 @@ msgstr "No se puede eliminar la tarjeta"
|
|||||||
msgid "Unable to delete checklist"
|
msgid "Unable to delete checklist"
|
||||||
msgstr "No se puede eliminar la lista de verificación"
|
msgstr "No se puede eliminar la lista de verificación"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:87
|
#: src/views/card/components/ChecklistItemRow.tsx:93
|
||||||
msgid "Unable to delete checklist item"
|
msgid "Unable to delete checklist item"
|
||||||
msgstr "No se puede eliminar el elemento de la lista de verificación"
|
msgstr "No se puede eliminar el elemento de la lista de verificación"
|
||||||
|
|
||||||
@@ -2288,6 +2287,10 @@ msgstr "No se puede eliminar el comentario"
|
|||||||
msgid "Unable to remove member"
|
msgid "Unable to remove member"
|
||||||
msgstr "No se puede eliminar al miembro"
|
msgstr "No se puede eliminar al miembro"
|
||||||
|
|
||||||
|
#: src/views/card/components/Checklists.tsx:80
|
||||||
|
msgid "Unable to reorder checklist item"
|
||||||
|
msgstr "No se puede reordenar el elemento de la lista de verificación"
|
||||||
|
|
||||||
#: src/components/FeedbackModal.tsx:40
|
#: src/components/FeedbackModal.tsx:40
|
||||||
msgid "Unable to send feedback"
|
msgid "Unable to send feedback"
|
||||||
msgstr "No se pudieron enviar los comentarios"
|
msgstr "No se pudieron enviar los comentarios"
|
||||||
@@ -2300,7 +2303,7 @@ msgstr "No se puede actualizar la URL del tablero"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "No se puede actualizar la visibilidad del tablero"
|
msgstr "No se puede actualizar la visibilidad del tablero"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:229
|
#: src/views/board/index.tsx:225
|
||||||
#: src/views/card/index.tsx:186
|
#: src/views/card/index.tsx:186
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "No se puede actualizar la tarjeta"
|
msgstr "No se puede actualizar la tarjeta"
|
||||||
@@ -2309,7 +2312,7 @@ msgstr "No se puede actualizar la tarjeta"
|
|||||||
msgid "Unable to update checklist"
|
msgid "Unable to update checklist"
|
||||||
msgstr "No se puede actualizar la lista de verificación"
|
msgstr "No se puede actualizar la lista de verificación"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:59
|
#: src/views/card/components/ChecklistItemRow.tsx:65
|
||||||
msgid "Unable to update checklist item"
|
msgid "Unable to update checklist item"
|
||||||
msgstr "No se puede actualizar el elemento de la lista de verificación"
|
msgstr "No se puede actualizar el elemento de la lista de verificación"
|
||||||
|
|
||||||
@@ -2325,7 +2328,7 @@ msgstr "No se puede actualizar la fecha de vencimiento"
|
|||||||
msgid "Unable to update labels"
|
msgid "Unable to update labels"
|
||||||
msgstr "No se pueden actualizar las etiquetas"
|
msgstr "No se pueden actualizar las etiquetas"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:173
|
#: src/views/board/index.tsx:169
|
||||||
#: src/views/card/components/ListSelector.tsx:51
|
#: src/views/card/components/ListSelector.tsx:51
|
||||||
msgid "Unable to update list"
|
msgid "Unable to update list"
|
||||||
msgstr "No se puede actualizar la lista"
|
msgstr "No se puede actualizar la lista"
|
||||||
@@ -2483,7 +2486,7 @@ msgstr "Ver y gestionar tu facturación y suscripción."
|
|||||||
msgid "View docs"
|
msgid "View docs"
|
||||||
msgstr "Ver documentación"
|
msgstr "Ver documentación"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:141
|
#: src/views/public/board/index.tsx:142
|
||||||
msgid "View only"
|
msgid "View only"
|
||||||
msgstr "Solo visualización"
|
msgstr "Solo visualización"
|
||||||
|
|
||||||
@@ -2491,7 +2494,7 @@ msgstr "Solo visualización"
|
|||||||
msgid "View our roadmap."
|
msgid "View our roadmap."
|
||||||
msgstr "Ver nuestra hoja de ruta."
|
msgstr "Ver nuestra hoja de ruta."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:171
|
#: src/views/public/board/index.tsx:172
|
||||||
msgid "View workspace"
|
msgid "View workspace"
|
||||||
msgstr "Ver espacio de trabajo"
|
msgstr "Ver espacio de trabajo"
|
||||||
|
|
||||||
@@ -2536,10 +2539,10 @@ msgid "Why make an open source Trello?"
|
|||||||
msgstr "¿Por qué crear un Trello de código abierto?"
|
msgstr "¿Por qué crear un Trello de código abierto?"
|
||||||
|
|
||||||
#: src/components/SettingsLayout.tsx:39
|
#: src/components/SettingsLayout.tsx:39
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/boards/index.tsx:33
|
#: src/views/boards/index.tsx:33
|
||||||
#: src/views/members/index.tsx:173
|
#: src/views/members/index.tsx:173
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
#: src/views/public/boards/index.tsx:66
|
#: src/views/public/boards/index.tsx:66
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "Espacio de trabajo"
|
msgstr "Espacio de trabajo"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -41,7 +41,7 @@ msgid "{0} labels"
|
|||||||
msgstr "{0} étiquettes"
|
msgstr "{0} étiquettes"
|
||||||
|
|
||||||
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
||||||
#: src/views/board/index.tsx:412
|
#: src/views/board/index.tsx:408
|
||||||
msgid "{0} not found"
|
msgid "{0} not found"
|
||||||
msgstr "{0} introuvable"
|
msgstr "{0} introuvable"
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ msgstr "Ajouter une checklist"
|
|||||||
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Ajouter une description... (tapez '/' pour ouvrir les commandes ou '@' pour mentionner)"
|
msgstr "Ajouter une description... (tapez '/' pour ouvrir les commandes ou '@' pour mentionner)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:194
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
msgstr "Ajouter des détails..."
|
msgstr "Ajouter des détails..."
|
||||||
|
|
||||||
@@ -312,9 +312,9 @@ msgstr "Portail de facturation"
|
|||||||
msgid "Blog Post"
|
msgid "Blog Post"
|
||||||
msgstr "Article de blog"
|
msgstr "Article de blog"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/card/index.tsx:272
|
#: src/views/card/index.tsx:272
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Tableau"
|
msgstr "Tableau"
|
||||||
|
|
||||||
@@ -331,7 +331,7 @@ msgstr "Le nom du tableau ne peut pas dépasser 100 caractères"
|
|||||||
msgid "Board name is required"
|
msgid "Board name is required"
|
||||||
msgstr "Le nom du tableau est requis"
|
msgstr "Le nom du tableau est requis"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:165
|
#: src/views/public/board/index.tsx:166
|
||||||
msgid "Board not found"
|
msgid "Board not found"
|
||||||
msgstr "Tableau introuvable"
|
msgstr "Tableau introuvable"
|
||||||
|
|
||||||
@@ -347,7 +347,7 @@ msgstr "L'URL du tableau ne peut contenir que des lettres, des chiffres et des t
|
|||||||
msgid "Board URL cannot exceed 60 characters"
|
msgid "Board URL cannot exceed 60 characters"
|
||||||
msgstr "L'URL du tableau ne peut pas dépasser 60 caractères"
|
msgstr "L'URL du tableau ne peut pas dépasser 60 caractères"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:79
|
#: src/views/public/board/index.tsx:80
|
||||||
msgid "Board URL copied to clipboard"
|
msgid "Board URL copied to clipboard"
|
||||||
msgstr "URL du tableau copiée dans le presse-papiers"
|
msgstr "URL du tableau copiée dans le presse-papiers"
|
||||||
|
|
||||||
@@ -604,8 +604,8 @@ msgstr "Créer une nouvelle clé"
|
|||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Créer une nouvelle étiquette"
|
msgstr "Créer une nouvelle étiquette"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:65
|
#: src/views/board/index.tsx:64
|
||||||
#: src/views/board/index.tsx:503
|
#: src/views/board/index.tsx:499
|
||||||
msgid "Create new list"
|
msgid "Create new list"
|
||||||
msgstr "Créer une nouvelle liste"
|
msgstr "Créer une nouvelle liste"
|
||||||
|
|
||||||
@@ -1042,8 +1042,6 @@ msgid "For long-term sustainability, we recognise all good open source projects
|
|||||||
msgstr "Pour une durabilité à long terme, nous reconnaissons que tous les bons projets open source ont besoin d'une source de revenus. La nôtre provient de l'offre cloud payante pour les espaces de travail avec plusieurs utilisateurs et pour les slugs d'espace de travail personnalisés. Il n'y a aucune obligation de l'utiliser, et vous pouvez auto-héberger le logiciel sur votre propre infrastructure gratuitement."
|
msgstr "Pour une durabilité à long terme, nous reconnaissons que tous les bons projets open source ont besoin d'une source de revenus. La nôtre provient de l'offre cloud payante pour les espaces de travail avec plusieurs utilisateurs et pour les slugs d'espace de travail personnalisés. Il n'y a aucune obligation de l'utiliser, et vous pouvez auto-héberger le logiciel sur votre propre infrastructure gratuitement."
|
||||||
|
|
||||||
#: 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/PricingTiers.tsx:30
|
|
||||||
#: src/views/pricing/components/PricingTiers.tsx:30
|
#: src/views/pricing/components/PricingTiers.tsx:30
|
||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Gratuit"
|
msgstr "Gratuit"
|
||||||
@@ -1089,7 +1087,7 @@ msgstr "Commencer"
|
|||||||
msgid "Get started by creating a new {0}"
|
msgid "Get started by creating a new {0}"
|
||||||
msgstr "Commencez par créer un nouveau {0}"
|
msgstr "Commencez par créer un nouveau {0}"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:495
|
#: src/views/board/index.tsx:491
|
||||||
msgid "Get started by creating a new list"
|
msgid "Get started by creating a new list"
|
||||||
msgstr "Commencez par créer une nouvelle liste"
|
msgstr "Commencez par créer une nouvelle liste"
|
||||||
|
|
||||||
@@ -1375,7 +1373,7 @@ msgstr "Licence"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Clair"
|
msgstr "Clair"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:77
|
#: src/views/public/board/index.tsx:78
|
||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Lien copié"
|
msgstr "Lien copié"
|
||||||
|
|
||||||
@@ -1509,7 +1507,7 @@ msgid "New label"
|
|||||||
msgstr "Nouvelle étiquette"
|
msgstr "Nouvelle étiquette"
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:113
|
#: src/views/board/components/NewListForm.tsx:113
|
||||||
#: src/views/board/index.tsx:466
|
#: src/views/board/index.tsx:462
|
||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Nouvelle liste"
|
msgstr "Nouvelle liste"
|
||||||
|
|
||||||
@@ -1570,7 +1568,7 @@ msgstr "Aucune URL de téléchargement disponible pour cette pièce jointe."
|
|||||||
msgid "No keyboard shortcuts registered."
|
msgid "No keyboard shortcuts registered."
|
||||||
msgstr "Aucun raccourci clavier enregistré."
|
msgstr "Aucun raccourci clavier enregistré."
|
||||||
|
|
||||||
#: src/views/board/index.tsx:492
|
#: src/views/board/index.tsx:488
|
||||||
msgid "No lists"
|
msgid "No lists"
|
||||||
msgstr "Aucune liste"
|
msgstr "Aucune liste"
|
||||||
|
|
||||||
@@ -1721,13 +1719,14 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
|
|||||||
#: 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:54
|
#: src/views/board/components/VisibilityButton.tsx:54
|
||||||
#: src/views/board/index.tsx:174
|
#: src/views/board/index.tsx:170
|
||||||
#: src/views/board/index.tsx:230
|
#: src/views/board/index.tsx:226
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
||||||
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:60
|
#: src/views/card/components/ChecklistItemRow.tsx:66
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:88
|
#: src/views/card/components/ChecklistItemRow.tsx:94
|
||||||
#: src/views/card/components/ChecklistNameInput.tsx:46
|
#: src/views/card/components/ChecklistNameInput.tsx:46
|
||||||
|
#: src/views/card/components/Checklists.tsx:81
|
||||||
#: src/views/card/components/Comment.tsx:64
|
#: src/views/card/components/Comment.tsx:64
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
||||||
@@ -2090,8 +2089,8 @@ msgstr "Forfait d'équipe"
|
|||||||
msgid "Teams"
|
msgid "Teams"
|
||||||
msgstr "Équipes"
|
msgstr "Équipes"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/board/index.tsx:421
|
#: src/views/board/index.tsx:417
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr "Modèle"
|
msgstr "Modèle"
|
||||||
|
|
||||||
@@ -2165,7 +2164,7 @@ msgstr "Cette action ne peut pas être annulée."
|
|||||||
msgid "This API key will only be shown once. Please save it in a secure location."
|
msgid "This API key will only be shown once. Please save it in a secure location."
|
||||||
msgstr "Cette clé API ne sera affichée qu'une seule fois. Veuillez la sauvegarder dans un emplacement sécurisé."
|
msgstr "Cette clé API ne sera affichée qu'une seule fois. Veuillez la sauvegarder dans un emplacement sécurisé."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:168
|
#: src/views/public/board/index.tsx:169
|
||||||
msgid "This board is private or does not exist"
|
msgid "This board is private or does not exist"
|
||||||
msgstr "Ce tableau est privé ou n'existe pas"
|
msgstr "Ce tableau est privé ou n'existe pas"
|
||||||
|
|
||||||
@@ -2227,7 +2226,7 @@ msgstr "Importations Trello"
|
|||||||
msgid "Triaging"
|
msgid "Triaging"
|
||||||
msgstr "Triage"
|
msgstr "Triage"
|
||||||
|
|
||||||
#: src/views/home/components/Logos.tsx:73
|
#: src/views/home/components/Logos.tsx:67
|
||||||
msgid "Trusted by fast-moving teams<0/>around the world"
|
msgid "Trusted by fast-moving teams<0/>around the world"
|
||||||
msgstr "Approuvé par des équipes dynamiques<0/>du monde entier"
|
msgstr "Approuvé par des équipes dynamiques<0/>du monde entier"
|
||||||
|
|
||||||
@@ -2241,7 +2240,7 @@ msgstr "Impossible d'ajouter un commentaire"
|
|||||||
|
|
||||||
#: src/views/card/index.tsx:199
|
#: src/views/card/index.tsx:199
|
||||||
msgid "Unable to add label"
|
msgid "Unable to add label"
|
||||||
msgstr ""
|
msgstr "Impossible d'ajouter l'étiquette"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:181
|
#: src/views/board/components/NewCardForm.tsx:181
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
@@ -2276,7 +2275,7 @@ msgstr "Impossible de supprimer la carte"
|
|||||||
msgid "Unable to delete checklist"
|
msgid "Unable to delete checklist"
|
||||||
msgstr "Impossible de supprimer la liste de contrôle"
|
msgstr "Impossible de supprimer la liste de contrôle"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:87
|
#: src/views/card/components/ChecklistItemRow.tsx:93
|
||||||
msgid "Unable to delete checklist item"
|
msgid "Unable to delete checklist item"
|
||||||
msgstr "Impossible de supprimer l'élément de la liste de contrôle"
|
msgstr "Impossible de supprimer l'élément de la liste de contrôle"
|
||||||
|
|
||||||
@@ -2288,6 +2287,10 @@ msgstr "Impossible de supprimer le commentaire"
|
|||||||
msgid "Unable to remove member"
|
msgid "Unable to remove member"
|
||||||
msgstr "Impossible de supprimer le membre"
|
msgstr "Impossible de supprimer le membre"
|
||||||
|
|
||||||
|
#: src/views/card/components/Checklists.tsx:80
|
||||||
|
msgid "Unable to reorder checklist item"
|
||||||
|
msgstr "Impossible de réorganiser l'élément de la liste de contrôle"
|
||||||
|
|
||||||
#: src/components/FeedbackModal.tsx:40
|
#: src/components/FeedbackModal.tsx:40
|
||||||
msgid "Unable to send feedback"
|
msgid "Unable to send feedback"
|
||||||
msgstr "Impossible d'envoyer les commentaires"
|
msgstr "Impossible d'envoyer les commentaires"
|
||||||
@@ -2300,7 +2303,7 @@ msgstr "Impossible de mettre à jour l'URL du tableau"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Impossible de mettre à jour la visibilité du tableau"
|
msgstr "Impossible de mettre à jour la visibilité du tableau"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:229
|
#: src/views/board/index.tsx:225
|
||||||
#: src/views/card/index.tsx:186
|
#: src/views/card/index.tsx:186
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Impossible de mettre à jour la carte"
|
msgstr "Impossible de mettre à jour la carte"
|
||||||
@@ -2309,7 +2312,7 @@ msgstr "Impossible de mettre à jour la carte"
|
|||||||
msgid "Unable to update checklist"
|
msgid "Unable to update checklist"
|
||||||
msgstr "Impossible de mettre à jour la liste de contrôle"
|
msgstr "Impossible de mettre à jour la liste de contrôle"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:59
|
#: src/views/card/components/ChecklistItemRow.tsx:65
|
||||||
msgid "Unable to update checklist item"
|
msgid "Unable to update checklist item"
|
||||||
msgstr "Impossible de mettre à jour l'élément de la liste de contrôle"
|
msgstr "Impossible de mettre à jour l'élément de la liste de contrôle"
|
||||||
|
|
||||||
@@ -2325,7 +2328,7 @@ msgstr "Impossible de mettre à jour la date d'échéance"
|
|||||||
msgid "Unable to update labels"
|
msgid "Unable to update labels"
|
||||||
msgstr "Impossible de mettre à jour les étiquettes"
|
msgstr "Impossible de mettre à jour les étiquettes"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:173
|
#: src/views/board/index.tsx:169
|
||||||
#: src/views/card/components/ListSelector.tsx:51
|
#: src/views/card/components/ListSelector.tsx:51
|
||||||
msgid "Unable to update list"
|
msgid "Unable to update list"
|
||||||
msgstr "Impossible de mettre à jour la liste"
|
msgstr "Impossible de mettre à jour la liste"
|
||||||
@@ -2483,7 +2486,7 @@ msgstr "Consultez et gérez votre facturation et votre abonnement."
|
|||||||
msgid "View docs"
|
msgid "View docs"
|
||||||
msgstr "Voir la documentation"
|
msgstr "Voir la documentation"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:141
|
#: src/views/public/board/index.tsx:142
|
||||||
msgid "View only"
|
msgid "View only"
|
||||||
msgstr "Affichage uniquement"
|
msgstr "Affichage uniquement"
|
||||||
|
|
||||||
@@ -2491,7 +2494,7 @@ msgstr "Affichage uniquement"
|
|||||||
msgid "View our roadmap."
|
msgid "View our roadmap."
|
||||||
msgstr "Consultez notre feuille de route."
|
msgstr "Consultez notre feuille de route."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:171
|
#: src/views/public/board/index.tsx:172
|
||||||
msgid "View workspace"
|
msgid "View workspace"
|
||||||
msgstr "Voir l'espace de travail"
|
msgstr "Voir l'espace de travail"
|
||||||
|
|
||||||
@@ -2536,10 +2539,10 @@ msgid "Why make an open source Trello?"
|
|||||||
msgstr "Pourquoi créer un Trello open source ?"
|
msgstr "Pourquoi créer un Trello open source ?"
|
||||||
|
|
||||||
#: src/components/SettingsLayout.tsx:39
|
#: src/components/SettingsLayout.tsx:39
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/boards/index.tsx:33
|
#: src/views/boards/index.tsx:33
|
||||||
#: src/views/members/index.tsx:173
|
#: src/views/members/index.tsx:173
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
#: src/views/public/boards/index.tsx:66
|
#: src/views/public/boards/index.tsx:66
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "Espace de travail"
|
msgstr "Espace de travail"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -41,7 +41,7 @@ msgid "{0} labels"
|
|||||||
msgstr "{0} etichette"
|
msgstr "{0} etichette"
|
||||||
|
|
||||||
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
||||||
#: src/views/board/index.tsx:412
|
#: src/views/board/index.tsx:408
|
||||||
msgid "{0} not found"
|
msgid "{0} not found"
|
||||||
msgstr "{0} non trovato"
|
msgstr "{0} non trovato"
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ msgstr "Aggiungi checklist"
|
|||||||
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Aggiungi descrizione... (digita '/' per aprire i comandi o '@' per menzionare)"
|
msgstr "Aggiungi descrizione... (digita '/' per aprire i comandi o '@' per menzionare)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:194
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
msgstr "Aggiungi dettagli..."
|
msgstr "Aggiungi dettagli..."
|
||||||
|
|
||||||
@@ -312,9 +312,9 @@ msgstr "Portale di fatturazione"
|
|||||||
msgid "Blog Post"
|
msgid "Blog Post"
|
||||||
msgstr "Post del blog"
|
msgstr "Post del blog"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/card/index.tsx:272
|
#: src/views/card/index.tsx:272
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Bacheca"
|
msgstr "Bacheca"
|
||||||
|
|
||||||
@@ -331,7 +331,7 @@ msgstr "Il nome della bacheca non può superare i 100 caratteri"
|
|||||||
msgid "Board name is required"
|
msgid "Board name is required"
|
||||||
msgstr "Il nome della bacheca è obbligatorio"
|
msgstr "Il nome della bacheca è obbligatorio"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:165
|
#: src/views/public/board/index.tsx:166
|
||||||
msgid "Board not found"
|
msgid "Board not found"
|
||||||
msgstr "Bacheca non trovata"
|
msgstr "Bacheca non trovata"
|
||||||
|
|
||||||
@@ -347,7 +347,7 @@ msgstr "L'URL della bacheca può contenere solo lettere, numeri e trattini"
|
|||||||
msgid "Board URL cannot exceed 60 characters"
|
msgid "Board URL cannot exceed 60 characters"
|
||||||
msgstr "L'URL della bacheca non può superare i 60 caratteri"
|
msgstr "L'URL della bacheca non può superare i 60 caratteri"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:79
|
#: src/views/public/board/index.tsx:80
|
||||||
msgid "Board URL copied to clipboard"
|
msgid "Board URL copied to clipboard"
|
||||||
msgstr "URL della bacheca copiato negli appunti"
|
msgstr "URL della bacheca copiato negli appunti"
|
||||||
|
|
||||||
@@ -604,8 +604,8 @@ msgstr "Crea nuova chiave"
|
|||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Crea nuova etichetta"
|
msgstr "Crea nuova etichetta"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:65
|
#: src/views/board/index.tsx:64
|
||||||
#: src/views/board/index.tsx:503
|
#: src/views/board/index.tsx:499
|
||||||
msgid "Create new list"
|
msgid "Create new list"
|
||||||
msgstr "Crea nuova lista"
|
msgstr "Crea nuova lista"
|
||||||
|
|
||||||
@@ -1042,8 +1042,6 @@ msgid "For long-term sustainability, we recognise all good open source projects
|
|||||||
msgstr "Per la sostenibilità a lungo termine, riconosciamo che tutti i buoni progetti open source necessitano di una fonte di entrate. La nostra proviene dall'offerta cloud a pagamento per gli spazi di lavoro con più utenti e per gli slug personalizzati degli spazi di lavoro. Non c'è alcun obbligo di utilizzarla, e puoi ospitare autonomamente il software sulla tua infrastruttura gratuitamente."
|
msgstr "Per la sostenibilità a lungo termine, riconosciamo che tutti i buoni progetti open source necessitano di una fonte di entrate. La nostra proviene dall'offerta cloud a pagamento per gli spazi di lavoro con più utenti e per gli slug personalizzati degli spazi di lavoro. Non c'è alcun obbligo di utilizzarla, e puoi ospitare autonomamente il software sulla tua infrastruttura gratuitamente."
|
||||||
|
|
||||||
#: 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/PricingTiers.tsx:30
|
|
||||||
#: src/views/pricing/components/PricingTiers.tsx:30
|
#: src/views/pricing/components/PricingTiers.tsx:30
|
||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Gratuito"
|
msgstr "Gratuito"
|
||||||
@@ -1089,7 +1087,7 @@ msgstr "Inizia ora"
|
|||||||
msgid "Get started by creating a new {0}"
|
msgid "Get started by creating a new {0}"
|
||||||
msgstr "Inizia creando un nuovo {0}"
|
msgstr "Inizia creando un nuovo {0}"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:495
|
#: src/views/board/index.tsx:491
|
||||||
msgid "Get started by creating a new list"
|
msgid "Get started by creating a new list"
|
||||||
msgstr "Inizia creando una nuova lista"
|
msgstr "Inizia creando una nuova lista"
|
||||||
|
|
||||||
@@ -1375,7 +1373,7 @@ msgstr "Licenza"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Chiaro"
|
msgstr "Chiaro"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:77
|
#: src/views/public/board/index.tsx:78
|
||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Link copiato"
|
msgstr "Link copiato"
|
||||||
|
|
||||||
@@ -1509,7 +1507,7 @@ msgid "New label"
|
|||||||
msgstr "Nuova etichetta"
|
msgstr "Nuova etichetta"
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:113
|
#: src/views/board/components/NewListForm.tsx:113
|
||||||
#: src/views/board/index.tsx:466
|
#: src/views/board/index.tsx:462
|
||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Nuova lista"
|
msgstr "Nuova lista"
|
||||||
|
|
||||||
@@ -1570,7 +1568,7 @@ msgstr "Nessun URL di download disponibile per questo allegato."
|
|||||||
msgid "No keyboard shortcuts registered."
|
msgid "No keyboard shortcuts registered."
|
||||||
msgstr "Nessuna scorciatoia da tastiera registrata."
|
msgstr "Nessuna scorciatoia da tastiera registrata."
|
||||||
|
|
||||||
#: src/views/board/index.tsx:492
|
#: src/views/board/index.tsx:488
|
||||||
msgid "No lists"
|
msgid "No lists"
|
||||||
msgstr "Nessuna lista"
|
msgstr "Nessuna lista"
|
||||||
|
|
||||||
@@ -1721,13 +1719,14 @@ msgstr "Seleziona un file da caricare."
|
|||||||
#: 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:54
|
#: src/views/board/components/VisibilityButton.tsx:54
|
||||||
#: src/views/board/index.tsx:174
|
#: src/views/board/index.tsx:170
|
||||||
#: src/views/board/index.tsx:230
|
#: src/views/board/index.tsx:226
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
||||||
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:60
|
#: src/views/card/components/ChecklistItemRow.tsx:66
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:88
|
#: src/views/card/components/ChecklistItemRow.tsx:94
|
||||||
#: src/views/card/components/ChecklistNameInput.tsx:46
|
#: src/views/card/components/ChecklistNameInput.tsx:46
|
||||||
|
#: src/views/card/components/Checklists.tsx:81
|
||||||
#: src/views/card/components/Comment.tsx:64
|
#: src/views/card/components/Comment.tsx:64
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
||||||
@@ -2090,8 +2089,8 @@ msgstr "Piano Team"
|
|||||||
msgid "Teams"
|
msgid "Teams"
|
||||||
msgstr "Team"
|
msgstr "Team"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/board/index.tsx:421
|
#: src/views/board/index.tsx:417
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr "Template"
|
msgstr "Template"
|
||||||
|
|
||||||
@@ -2165,7 +2164,7 @@ msgstr "Questa azione non può essere annullata."
|
|||||||
msgid "This API key will only be shown once. Please save it in a secure location."
|
msgid "This API key will only be shown once. Please save it in a secure location."
|
||||||
msgstr "Questa chiave API verrà mostrata una sola volta. Salvala in un luogo sicuro."
|
msgstr "Questa chiave API verrà mostrata una sola volta. Salvala in un luogo sicuro."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:168
|
#: src/views/public/board/index.tsx:169
|
||||||
msgid "This board is private or does not exist"
|
msgid "This board is private or does not exist"
|
||||||
msgstr "Questa bacheca è privata o non esiste"
|
msgstr "Questa bacheca è privata o non esiste"
|
||||||
|
|
||||||
@@ -2227,7 +2226,7 @@ msgstr "Importazioni da Trello"
|
|||||||
msgid "Triaging"
|
msgid "Triaging"
|
||||||
msgstr "Smistamento"
|
msgstr "Smistamento"
|
||||||
|
|
||||||
#: src/views/home/components/Logos.tsx:73
|
#: src/views/home/components/Logos.tsx:67
|
||||||
msgid "Trusted by fast-moving teams<0/>around the world"
|
msgid "Trusted by fast-moving teams<0/>around the world"
|
||||||
msgstr "Team dinamici di tutto il mondo<0/>si fidano di noi"
|
msgstr "Team dinamici di tutto il mondo<0/>si fidano di noi"
|
||||||
|
|
||||||
@@ -2241,7 +2240,7 @@ msgstr "Impossibile aggiungere il commento"
|
|||||||
|
|
||||||
#: src/views/card/index.tsx:199
|
#: src/views/card/index.tsx:199
|
||||||
msgid "Unable to add label"
|
msgid "Unable to add label"
|
||||||
msgstr ""
|
msgstr "Impossibile aggiungere etichetta"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:181
|
#: src/views/board/components/NewCardForm.tsx:181
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
@@ -2276,7 +2275,7 @@ msgstr "Impossibile eliminare la scheda"
|
|||||||
msgid "Unable to delete checklist"
|
msgid "Unable to delete checklist"
|
||||||
msgstr "Impossibile eliminare la checklist"
|
msgstr "Impossibile eliminare la checklist"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:87
|
#: src/views/card/components/ChecklistItemRow.tsx:93
|
||||||
msgid "Unable to delete checklist item"
|
msgid "Unable to delete checklist item"
|
||||||
msgstr "Impossibile eliminare l'elemento della checklist"
|
msgstr "Impossibile eliminare l'elemento della checklist"
|
||||||
|
|
||||||
@@ -2288,6 +2287,10 @@ msgstr "Impossibile eliminare il commento"
|
|||||||
msgid "Unable to remove member"
|
msgid "Unable to remove member"
|
||||||
msgstr "Impossibile rimuovere il membro"
|
msgstr "Impossibile rimuovere il membro"
|
||||||
|
|
||||||
|
#: src/views/card/components/Checklists.tsx:80
|
||||||
|
msgid "Unable to reorder checklist item"
|
||||||
|
msgstr "Impossibile riordinare elemento della checklist"
|
||||||
|
|
||||||
#: src/components/FeedbackModal.tsx:40
|
#: src/components/FeedbackModal.tsx:40
|
||||||
msgid "Unable to send feedback"
|
msgid "Unable to send feedback"
|
||||||
msgstr "Impossibile inviare feedback"
|
msgstr "Impossibile inviare feedback"
|
||||||
@@ -2300,7 +2303,7 @@ msgstr "Impossibile aggiornare l'URL della bacheca"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Impossibile aggiornare la visibilità della bacheca"
|
msgstr "Impossibile aggiornare la visibilità della bacheca"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:229
|
#: src/views/board/index.tsx:225
|
||||||
#: src/views/card/index.tsx:186
|
#: src/views/card/index.tsx:186
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Impossibile aggiornare la scheda"
|
msgstr "Impossibile aggiornare la scheda"
|
||||||
@@ -2309,7 +2312,7 @@ msgstr "Impossibile aggiornare la scheda"
|
|||||||
msgid "Unable to update checklist"
|
msgid "Unable to update checklist"
|
||||||
msgstr "Impossibile aggiornare la checklist"
|
msgstr "Impossibile aggiornare la checklist"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:59
|
#: src/views/card/components/ChecklistItemRow.tsx:65
|
||||||
msgid "Unable to update checklist item"
|
msgid "Unable to update checklist item"
|
||||||
msgstr "Impossibile aggiornare l'elemento della checklist"
|
msgstr "Impossibile aggiornare l'elemento della checklist"
|
||||||
|
|
||||||
@@ -2325,7 +2328,7 @@ msgstr "Impossibile aggiornare la data di scadenza"
|
|||||||
msgid "Unable to update labels"
|
msgid "Unable to update labels"
|
||||||
msgstr "Impossibile aggiornare le etichette"
|
msgstr "Impossibile aggiornare le etichette"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:173
|
#: src/views/board/index.tsx:169
|
||||||
#: src/views/card/components/ListSelector.tsx:51
|
#: src/views/card/components/ListSelector.tsx:51
|
||||||
msgid "Unable to update list"
|
msgid "Unable to update list"
|
||||||
msgstr "Impossibile aggiornare la lista"
|
msgstr "Impossibile aggiornare la lista"
|
||||||
@@ -2483,7 +2486,7 @@ msgstr "Visualizza e gestisci la tua fatturazione e abbonamento."
|
|||||||
msgid "View docs"
|
msgid "View docs"
|
||||||
msgstr "Visualizza documenti"
|
msgstr "Visualizza documenti"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:141
|
#: src/views/public/board/index.tsx:142
|
||||||
msgid "View only"
|
msgid "View only"
|
||||||
msgstr "Solo visualizzazione"
|
msgstr "Solo visualizzazione"
|
||||||
|
|
||||||
@@ -2491,7 +2494,7 @@ msgstr "Solo visualizzazione"
|
|||||||
msgid "View our roadmap."
|
msgid "View our roadmap."
|
||||||
msgstr "Visualizza la nostra roadmap."
|
msgstr "Visualizza la nostra roadmap."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:171
|
#: src/views/public/board/index.tsx:172
|
||||||
msgid "View workspace"
|
msgid "View workspace"
|
||||||
msgstr "Visualizza spazio di lavoro"
|
msgstr "Visualizza spazio di lavoro"
|
||||||
|
|
||||||
@@ -2536,10 +2539,10 @@ msgid "Why make an open source Trello?"
|
|||||||
msgstr "Perché creare un Trello open source?"
|
msgstr "Perché creare un Trello open source?"
|
||||||
|
|
||||||
#: src/components/SettingsLayout.tsx:39
|
#: src/components/SettingsLayout.tsx:39
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/boards/index.tsx:33
|
#: src/views/boards/index.tsx:33
|
||||||
#: src/views/members/index.tsx:173
|
#: src/views/members/index.tsx:173
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
#: src/views/public/boards/index.tsx:66
|
#: src/views/public/boards/index.tsx:66
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "Spazio di lavoro"
|
msgstr "Spazio di lavoro"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -41,7 +41,7 @@ msgid "{0} labels"
|
|||||||
msgstr "{0} labels"
|
msgstr "{0} labels"
|
||||||
|
|
||||||
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
||||||
#: src/views/board/index.tsx:412
|
#: src/views/board/index.tsx:408
|
||||||
msgid "{0} not found"
|
msgid "{0} not found"
|
||||||
msgstr "{0} niet gevonden"
|
msgstr "{0} niet gevonden"
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ msgstr "Checklist toevoegen"
|
|||||||
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Beschrijving toevoegen... (typ '/' om commando's te openen of '@' om te vermelden)"
|
msgstr "Beschrijving toevoegen... (typ '/' om commando's te openen of '@' om te vermelden)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:194
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
msgstr "Details toevoegen..."
|
msgstr "Details toevoegen..."
|
||||||
|
|
||||||
@@ -312,9 +312,9 @@ msgstr "Factureringsportaal"
|
|||||||
msgid "Blog Post"
|
msgid "Blog Post"
|
||||||
msgstr "Blogbericht"
|
msgstr "Blogbericht"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/card/index.tsx:272
|
#: src/views/card/index.tsx:272
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Bord"
|
msgstr "Bord"
|
||||||
|
|
||||||
@@ -331,7 +331,7 @@ msgstr "Bordnaam mag niet langer zijn dan 100 tekens"
|
|||||||
msgid "Board name is required"
|
msgid "Board name is required"
|
||||||
msgstr "Bordnaam is verplicht"
|
msgstr "Bordnaam is verplicht"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:165
|
#: src/views/public/board/index.tsx:166
|
||||||
msgid "Board not found"
|
msgid "Board not found"
|
||||||
msgstr "Bord niet gevonden"
|
msgstr "Bord niet gevonden"
|
||||||
|
|
||||||
@@ -347,7 +347,7 @@ msgstr "Board URL kan alleen letters, cijfers en koppeltekens bevatten"
|
|||||||
msgid "Board URL cannot exceed 60 characters"
|
msgid "Board URL cannot exceed 60 characters"
|
||||||
msgstr "Board URL mag niet langer zijn dan 60 tekens"
|
msgstr "Board URL mag niet langer zijn dan 60 tekens"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:79
|
#: src/views/public/board/index.tsx:80
|
||||||
msgid "Board URL copied to clipboard"
|
msgid "Board URL copied to clipboard"
|
||||||
msgstr "Board URL gekopieerd naar klembord"
|
msgstr "Board URL gekopieerd naar klembord"
|
||||||
|
|
||||||
@@ -604,8 +604,8 @@ msgstr "Nieuwe sleutel aanmaken"
|
|||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Maak nieuw label"
|
msgstr "Maak nieuw label"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:65
|
#: src/views/board/index.tsx:64
|
||||||
#: src/views/board/index.tsx:503
|
#: src/views/board/index.tsx:499
|
||||||
msgid "Create new list"
|
msgid "Create new list"
|
||||||
msgstr "Maak nieuwe lijst"
|
msgstr "Maak nieuwe lijst"
|
||||||
|
|
||||||
@@ -1042,8 +1042,6 @@ msgid "For long-term sustainability, we recognise all good open source projects
|
|||||||
msgstr "Voor duurzaamheid op lange termijn erkennen we dat alle goede open source projecten een inkomstenbron nodig hebben. De onze komt van de betaalde cloudoplossing voor werkruimtes met meerdere gebruikers en voor aangepaste werkruimte-slugs. Er is geen verplichting om het te gebruiken, en je kunt de software gratis op je eigen infrastructuur hosten."
|
msgstr "Voor duurzaamheid op lange termijn erkennen we dat alle goede open source projecten een inkomstenbron nodig hebben. De onze komt van de betaalde cloudoplossing voor werkruimtes met meerdere gebruikers en voor aangepaste werkruimte-slugs. Er is geen verplichting om het te gebruiken, en je kunt de software gratis op je eigen infrastructuur hosten."
|
||||||
|
|
||||||
#: 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/PricingTiers.tsx:30
|
|
||||||
#: src/views/pricing/components/PricingTiers.tsx:30
|
#: src/views/pricing/components/PricingTiers.tsx:30
|
||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Gratis"
|
msgstr "Gratis"
|
||||||
@@ -1089,7 +1087,7 @@ msgstr "Aan de slag"
|
|||||||
msgid "Get started by creating a new {0}"
|
msgid "Get started by creating a new {0}"
|
||||||
msgstr "Begin door een nieuwe {0} te maken"
|
msgstr "Begin door een nieuwe {0} te maken"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:495
|
#: src/views/board/index.tsx:491
|
||||||
msgid "Get started by creating a new list"
|
msgid "Get started by creating a new list"
|
||||||
msgstr "Begin door een nieuwe lijst te maken"
|
msgstr "Begin door een nieuwe lijst te maken"
|
||||||
|
|
||||||
@@ -1375,7 +1373,7 @@ msgstr "Licentie"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Licht"
|
msgstr "Licht"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:77
|
#: src/views/public/board/index.tsx:78
|
||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Link gekopieerd"
|
msgstr "Link gekopieerd"
|
||||||
|
|
||||||
@@ -1509,7 +1507,7 @@ msgid "New label"
|
|||||||
msgstr "Nieuw label"
|
msgstr "Nieuw label"
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:113
|
#: src/views/board/components/NewListForm.tsx:113
|
||||||
#: src/views/board/index.tsx:466
|
#: src/views/board/index.tsx:462
|
||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Nieuwe lijst"
|
msgstr "Nieuwe lijst"
|
||||||
|
|
||||||
@@ -1570,7 +1568,7 @@ msgstr "Geen download-URL beschikbaar voor deze bijlage."
|
|||||||
msgid "No keyboard shortcuts registered."
|
msgid "No keyboard shortcuts registered."
|
||||||
msgstr "Geen sneltoetsen geregistreerd."
|
msgstr "Geen sneltoetsen geregistreerd."
|
||||||
|
|
||||||
#: src/views/board/index.tsx:492
|
#: src/views/board/index.tsx:488
|
||||||
msgid "No lists"
|
msgid "No lists"
|
||||||
msgstr "Geen lijsten"
|
msgstr "Geen lijsten"
|
||||||
|
|
||||||
@@ -1721,13 +1719,14 @@ msgstr "Selecteer een bestand om te uploaden."
|
|||||||
#: 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:54
|
#: src/views/board/components/VisibilityButton.tsx:54
|
||||||
#: src/views/board/index.tsx:174
|
#: src/views/board/index.tsx:170
|
||||||
#: src/views/board/index.tsx:230
|
#: src/views/board/index.tsx:226
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
||||||
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:60
|
#: src/views/card/components/ChecklistItemRow.tsx:66
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:88
|
#: src/views/card/components/ChecklistItemRow.tsx:94
|
||||||
#: src/views/card/components/ChecklistNameInput.tsx:46
|
#: src/views/card/components/ChecklistNameInput.tsx:46
|
||||||
|
#: src/views/card/components/Checklists.tsx:81
|
||||||
#: src/views/card/components/Comment.tsx:64
|
#: src/views/card/components/Comment.tsx:64
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
||||||
@@ -2090,8 +2089,8 @@ msgstr "Teamplan"
|
|||||||
msgid "Teams"
|
msgid "Teams"
|
||||||
msgstr "Teams"
|
msgstr "Teams"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/board/index.tsx:421
|
#: src/views/board/index.tsx:417
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr "Sjabloon"
|
msgstr "Sjabloon"
|
||||||
|
|
||||||
@@ -2165,7 +2164,7 @@ msgstr "Deze actie kan niet ongedaan worden gemaakt."
|
|||||||
msgid "This API key will only be shown once. Please save it in a secure location."
|
msgid "This API key will only be shown once. Please save it in a secure location."
|
||||||
msgstr "Deze API-sleutel wordt slechts één keer getoond. Bewaar deze op een veilige plaats."
|
msgstr "Deze API-sleutel wordt slechts één keer getoond. Bewaar deze op een veilige plaats."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:168
|
#: src/views/public/board/index.tsx:169
|
||||||
msgid "This board is private or does not exist"
|
msgid "This board is private or does not exist"
|
||||||
msgstr "Dit bord is privé of bestaat niet"
|
msgstr "Dit bord is privé of bestaat niet"
|
||||||
|
|
||||||
@@ -2227,7 +2226,7 @@ msgstr "Trello-imports"
|
|||||||
msgid "Triaging"
|
msgid "Triaging"
|
||||||
msgstr "Triage"
|
msgstr "Triage"
|
||||||
|
|
||||||
#: src/views/home/components/Logos.tsx:73
|
#: src/views/home/components/Logos.tsx:67
|
||||||
msgid "Trusted by fast-moving teams<0/>around the world"
|
msgid "Trusted by fast-moving teams<0/>around the world"
|
||||||
msgstr "Vertrouwd door snelbewegende teams<0/>over de hele wereld"
|
msgstr "Vertrouwd door snelbewegende teams<0/>over de hele wereld"
|
||||||
|
|
||||||
@@ -2241,7 +2240,7 @@ msgstr "Kan geen reactie toevoegen"
|
|||||||
|
|
||||||
#: src/views/card/index.tsx:199
|
#: src/views/card/index.tsx:199
|
||||||
msgid "Unable to add label"
|
msgid "Unable to add label"
|
||||||
msgstr ""
|
msgstr "Kan label niet toevoegen"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:181
|
#: src/views/board/components/NewCardForm.tsx:181
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
@@ -2276,7 +2275,7 @@ msgstr "Kan kaart niet verwijderen"
|
|||||||
msgid "Unable to delete checklist"
|
msgid "Unable to delete checklist"
|
||||||
msgstr "Kan checklist niet verwijderen"
|
msgstr "Kan checklist niet verwijderen"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:87
|
#: src/views/card/components/ChecklistItemRow.tsx:93
|
||||||
msgid "Unable to delete checklist item"
|
msgid "Unable to delete checklist item"
|
||||||
msgstr "Kan checklistitem niet verwijderen"
|
msgstr "Kan checklistitem niet verwijderen"
|
||||||
|
|
||||||
@@ -2288,6 +2287,10 @@ msgstr "Kan opmerking niet verwijderen"
|
|||||||
msgid "Unable to remove member"
|
msgid "Unable to remove member"
|
||||||
msgstr "Kan lid niet verwijderen"
|
msgstr "Kan lid niet verwijderen"
|
||||||
|
|
||||||
|
#: src/views/card/components/Checklists.tsx:80
|
||||||
|
msgid "Unable to reorder checklist item"
|
||||||
|
msgstr "Kan checklistitem niet opnieuw ordenen"
|
||||||
|
|
||||||
#: src/components/FeedbackModal.tsx:40
|
#: src/components/FeedbackModal.tsx:40
|
||||||
msgid "Unable to send feedback"
|
msgid "Unable to send feedback"
|
||||||
msgstr "Feedback kon niet worden verzonden"
|
msgstr "Feedback kon niet worden verzonden"
|
||||||
@@ -2300,7 +2303,7 @@ msgstr "Kan board URL niet bijwerken"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Kan bordzichtbaarheid niet bijwerken"
|
msgstr "Kan bordzichtbaarheid niet bijwerken"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:229
|
#: src/views/board/index.tsx:225
|
||||||
#: src/views/card/index.tsx:186
|
#: src/views/card/index.tsx:186
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Kan kaart niet bijwerken"
|
msgstr "Kan kaart niet bijwerken"
|
||||||
@@ -2309,7 +2312,7 @@ msgstr "Kan kaart niet bijwerken"
|
|||||||
msgid "Unable to update checklist"
|
msgid "Unable to update checklist"
|
||||||
msgstr "Kan checklist niet bijwerken"
|
msgstr "Kan checklist niet bijwerken"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:59
|
#: src/views/card/components/ChecklistItemRow.tsx:65
|
||||||
msgid "Unable to update checklist item"
|
msgid "Unable to update checklist item"
|
||||||
msgstr "Kan checklistitem niet bijwerken"
|
msgstr "Kan checklistitem niet bijwerken"
|
||||||
|
|
||||||
@@ -2325,7 +2328,7 @@ msgstr "Kan vervaldatum niet bijwerken"
|
|||||||
msgid "Unable to update labels"
|
msgid "Unable to update labels"
|
||||||
msgstr "Kan labels niet bijwerken"
|
msgstr "Kan labels niet bijwerken"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:173
|
#: src/views/board/index.tsx:169
|
||||||
#: src/views/card/components/ListSelector.tsx:51
|
#: src/views/card/components/ListSelector.tsx:51
|
||||||
msgid "Unable to update list"
|
msgid "Unable to update list"
|
||||||
msgstr "Kan lijst niet bijwerken"
|
msgstr "Kan lijst niet bijwerken"
|
||||||
@@ -2483,7 +2486,7 @@ msgstr "Bekijk en beheer je facturering en abonnement."
|
|||||||
msgid "View docs"
|
msgid "View docs"
|
||||||
msgstr "Bekijk documentatie"
|
msgstr "Bekijk documentatie"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:141
|
#: src/views/public/board/index.tsx:142
|
||||||
msgid "View only"
|
msgid "View only"
|
||||||
msgstr "Alleen bekijken"
|
msgstr "Alleen bekijken"
|
||||||
|
|
||||||
@@ -2491,7 +2494,7 @@ msgstr "Alleen bekijken"
|
|||||||
msgid "View our roadmap."
|
msgid "View our roadmap."
|
||||||
msgstr "Bekijk onze roadmap."
|
msgstr "Bekijk onze roadmap."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:171
|
#: src/views/public/board/index.tsx:172
|
||||||
msgid "View workspace"
|
msgid "View workspace"
|
||||||
msgstr "Werkruimte bekijken"
|
msgstr "Werkruimte bekijken"
|
||||||
|
|
||||||
@@ -2536,10 +2539,10 @@ msgid "Why make an open source Trello?"
|
|||||||
msgstr "Waarom een open source Trello maken?"
|
msgstr "Waarom een open source Trello maken?"
|
||||||
|
|
||||||
#: src/components/SettingsLayout.tsx:39
|
#: src/components/SettingsLayout.tsx:39
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/boards/index.tsx:33
|
#: src/views/boards/index.tsx:33
|
||||||
#: src/views/members/index.tsx:173
|
#: src/views/members/index.tsx:173
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
#: src/views/public/boards/index.tsx:66
|
#: src/views/public/boards/index.tsx:66
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "Werkruimte"
|
msgstr "Werkruimte"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -46,7 +46,7 @@ msgid "{0} labels"
|
|||||||
msgstr "{0} etykiety"
|
msgstr "{0} etykiety"
|
||||||
|
|
||||||
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
||||||
#: src/views/board/index.tsx:412
|
#: src/views/board/index.tsx:408
|
||||||
msgid "{0} not found"
|
msgid "{0} not found"
|
||||||
msgstr "{0} nie znaleziono"
|
msgstr "{0} nie znaleziono"
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ msgstr "Dodaj listę kontrolną"
|
|||||||
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Dodaj opis... (wpisz '/' aby otworzyć polecenia lub '@' aby wspomnieć)"
|
msgstr "Dodaj opis... (wpisz '/' aby otworzyć polecenia lub '@' aby wspomnieć)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:194
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
msgstr "Dodaj szczegóły..."
|
msgstr "Dodaj szczegóły..."
|
||||||
|
|
||||||
@@ -317,9 +317,9 @@ msgstr "Portal rozliczeniowy"
|
|||||||
msgid "Blog Post"
|
msgid "Blog Post"
|
||||||
msgstr "Post na blogu"
|
msgstr "Post na blogu"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/card/index.tsx:272
|
#: src/views/card/index.tsx:272
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Tablica"
|
msgstr "Tablica"
|
||||||
|
|
||||||
@@ -336,7 +336,7 @@ msgstr "Nazwa tablicy nie może przekraczać 100 znaków"
|
|||||||
msgid "Board name is required"
|
msgid "Board name is required"
|
||||||
msgstr "Nazwa tablicy jest wymagana"
|
msgstr "Nazwa tablicy jest wymagana"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:165
|
#: src/views/public/board/index.tsx:166
|
||||||
msgid "Board not found"
|
msgid "Board not found"
|
||||||
msgstr "Tablica nie została znaleziona"
|
msgstr "Tablica nie została znaleziona"
|
||||||
|
|
||||||
@@ -352,7 +352,7 @@ msgstr "Adres URL tablicy może zawierać tylko litery, cyfry i myślniki"
|
|||||||
msgid "Board URL cannot exceed 60 characters"
|
msgid "Board URL cannot exceed 60 characters"
|
||||||
msgstr "Adres URL tablicy nie może przekraczać 60 znaków"
|
msgstr "Adres URL tablicy nie może przekraczać 60 znaków"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:79
|
#: src/views/public/board/index.tsx:80
|
||||||
msgid "Board URL copied to clipboard"
|
msgid "Board URL copied to clipboard"
|
||||||
msgstr "Adres URL tablicy został skopiowany do schowka"
|
msgstr "Adres URL tablicy został skopiowany do schowka"
|
||||||
|
|
||||||
@@ -609,8 +609,8 @@ msgstr "Utwórz nowy klucz"
|
|||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Utwórz nową etykietę"
|
msgstr "Utwórz nową etykietę"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:65
|
#: src/views/board/index.tsx:64
|
||||||
#: src/views/board/index.tsx:503
|
#: src/views/board/index.tsx:499
|
||||||
msgid "Create new list"
|
msgid "Create new list"
|
||||||
msgstr "Utwórz nową listę"
|
msgstr "Utwórz nową listę"
|
||||||
|
|
||||||
@@ -1047,8 +1047,6 @@ msgid "For long-term sustainability, we recognise all good open source projects
|
|||||||
msgstr "Dla długoterminowej trwałości uznajemy, że wszystkie dobre projekty open source potrzebują źródła dochodu. Nasze pochodzi z płatnej oferty w chmurze dla przestrzeni roboczych z wieloma użytkownikami oraz dla niestandardowych nazw przestrzeni roboczych. Nie ma obowiązku korzystania z niej, a oprogramowanie można hostować samodzielnie na własnej infrastrukturze bezpłatnie."
|
msgstr "Dla długoterminowej trwałości uznajemy, że wszystkie dobre projekty open source potrzebują źródła dochodu. Nasze pochodzi z płatnej oferty w chmurze dla przestrzeni roboczych z wieloma użytkownikami oraz dla niestandardowych nazw przestrzeni roboczych. Nie ma obowiązku korzystania z niej, a oprogramowanie można hostować samodzielnie na własnej infrastrukturze bezpłatnie."
|
||||||
|
|
||||||
#: 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/PricingTiers.tsx:30
|
|
||||||
#: src/views/pricing/components/PricingTiers.tsx:30
|
#: src/views/pricing/components/PricingTiers.tsx:30
|
||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Darmowy"
|
msgstr "Darmowy"
|
||||||
@@ -1094,7 +1092,7 @@ msgstr "Rozpocznij"
|
|||||||
msgid "Get started by creating a new {0}"
|
msgid "Get started by creating a new {0}"
|
||||||
msgstr "Rozpocznij, tworząc nowy {0}"
|
msgstr "Rozpocznij, tworząc nowy {0}"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:495
|
#: src/views/board/index.tsx:491
|
||||||
msgid "Get started by creating a new list"
|
msgid "Get started by creating a new list"
|
||||||
msgstr "Rozpocznij, tworząc nową listę"
|
msgstr "Rozpocznij, tworząc nową listę"
|
||||||
|
|
||||||
@@ -1380,7 +1378,7 @@ msgstr "Licencja"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Jasny"
|
msgstr "Jasny"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:77
|
#: src/views/public/board/index.tsx:78
|
||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Link skopiowany"
|
msgstr "Link skopiowany"
|
||||||
|
|
||||||
@@ -1514,7 +1512,7 @@ msgid "New label"
|
|||||||
msgstr "Nowa etykieta"
|
msgstr "Nowa etykieta"
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:113
|
#: src/views/board/components/NewListForm.tsx:113
|
||||||
#: src/views/board/index.tsx:466
|
#: src/views/board/index.tsx:462
|
||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Nowa lista"
|
msgstr "Nowa lista"
|
||||||
|
|
||||||
@@ -1575,7 +1573,7 @@ msgstr "Brak dostępnego URL do pobrania tego załącznika."
|
|||||||
msgid "No keyboard shortcuts registered."
|
msgid "No keyboard shortcuts registered."
|
||||||
msgstr "Brak zarejestrowanych skrótów klawiaturowych."
|
msgstr "Brak zarejestrowanych skrótów klawiaturowych."
|
||||||
|
|
||||||
#: src/views/board/index.tsx:492
|
#: src/views/board/index.tsx:488
|
||||||
msgid "No lists"
|
msgid "No lists"
|
||||||
msgstr "Brak list"
|
msgstr "Brak list"
|
||||||
|
|
||||||
@@ -1726,13 +1724,14 @@ msgstr "Proszę wybrać plik do przesłania."
|
|||||||
#: 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:54
|
#: src/views/board/components/VisibilityButton.tsx:54
|
||||||
#: src/views/board/index.tsx:174
|
#: src/views/board/index.tsx:170
|
||||||
#: src/views/board/index.tsx:230
|
#: src/views/board/index.tsx:226
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
||||||
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:60
|
#: src/views/card/components/ChecklistItemRow.tsx:66
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:88
|
#: src/views/card/components/ChecklistItemRow.tsx:94
|
||||||
#: src/views/card/components/ChecklistNameInput.tsx:46
|
#: src/views/card/components/ChecklistNameInput.tsx:46
|
||||||
|
#: src/views/card/components/Checklists.tsx:81
|
||||||
#: src/views/card/components/Comment.tsx:64
|
#: src/views/card/components/Comment.tsx:64
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
||||||
@@ -2095,8 +2094,8 @@ msgstr "Plan zespołowy"
|
|||||||
msgid "Teams"
|
msgid "Teams"
|
||||||
msgstr "Zespoły"
|
msgstr "Zespoły"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/board/index.tsx:421
|
#: src/views/board/index.tsx:417
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr "Szablon"
|
msgstr "Szablon"
|
||||||
|
|
||||||
@@ -2170,7 +2169,7 @@ msgstr "Tej akcji nie można cofnąć."
|
|||||||
msgid "This API key will only be shown once. Please save it in a secure location."
|
msgid "This API key will only be shown once. Please save it in a secure location."
|
||||||
msgstr "Ten klucz API zostanie wyświetlony tylko raz. Proszę zapisać go w bezpiecznym miejscu."
|
msgstr "Ten klucz API zostanie wyświetlony tylko raz. Proszę zapisać go w bezpiecznym miejscu."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:168
|
#: src/views/public/board/index.tsx:169
|
||||||
msgid "This board is private or does not exist"
|
msgid "This board is private or does not exist"
|
||||||
msgstr "Ta tablica jest prywatna lub nie istnieje"
|
msgstr "Ta tablica jest prywatna lub nie istnieje"
|
||||||
|
|
||||||
@@ -2232,7 +2231,7 @@ msgstr "Importy Trello"
|
|||||||
msgid "Triaging"
|
msgid "Triaging"
|
||||||
msgstr "Sortowanie"
|
msgstr "Sortowanie"
|
||||||
|
|
||||||
#: src/views/home/components/Logos.tsx:73
|
#: src/views/home/components/Logos.tsx:67
|
||||||
msgid "Trusted by fast-moving teams<0/>around the world"
|
msgid "Trusted by fast-moving teams<0/>around the world"
|
||||||
msgstr "Zaufany przez dynamiczne zespoły<0/>na całym świecie"
|
msgstr "Zaufany przez dynamiczne zespoły<0/>na całym świecie"
|
||||||
|
|
||||||
@@ -2246,7 +2245,7 @@ msgstr "Nie można dodać komentarza"
|
|||||||
|
|
||||||
#: src/views/card/index.tsx:199
|
#: src/views/card/index.tsx:199
|
||||||
msgid "Unable to add label"
|
msgid "Unable to add label"
|
||||||
msgstr ""
|
msgstr "Nie można dodać etykiety"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:181
|
#: src/views/board/components/NewCardForm.tsx:181
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
@@ -2281,7 +2280,7 @@ msgstr "Nie można usunąć karty"
|
|||||||
msgid "Unable to delete checklist"
|
msgid "Unable to delete checklist"
|
||||||
msgstr "Nie można usunąć listy kontrolnej"
|
msgstr "Nie można usunąć listy kontrolnej"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:87
|
#: src/views/card/components/ChecklistItemRow.tsx:93
|
||||||
msgid "Unable to delete checklist item"
|
msgid "Unable to delete checklist item"
|
||||||
msgstr "Nie można usunąć elementu listy kontrolnej"
|
msgstr "Nie można usunąć elementu listy kontrolnej"
|
||||||
|
|
||||||
@@ -2293,6 +2292,10 @@ msgstr "Nie można usunąć komentarza"
|
|||||||
msgid "Unable to remove member"
|
msgid "Unable to remove member"
|
||||||
msgstr "Nie można usunąć członka"
|
msgstr "Nie można usunąć członka"
|
||||||
|
|
||||||
|
#: src/views/card/components/Checklists.tsx:80
|
||||||
|
msgid "Unable to reorder checklist item"
|
||||||
|
msgstr "Nie można zmienić kolejności elementu listy kontrolnej"
|
||||||
|
|
||||||
#: src/components/FeedbackModal.tsx:40
|
#: src/components/FeedbackModal.tsx:40
|
||||||
msgid "Unable to send feedback"
|
msgid "Unable to send feedback"
|
||||||
msgstr "Nie można wysłać opinii"
|
msgstr "Nie można wysłać opinii"
|
||||||
@@ -2305,7 +2308,7 @@ msgstr "Nie można zaktualizować adresu URL tablicy"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Nie można zaktualizować widoczności tablicy"
|
msgstr "Nie można zaktualizować widoczności tablicy"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:229
|
#: src/views/board/index.tsx:225
|
||||||
#: src/views/card/index.tsx:186
|
#: src/views/card/index.tsx:186
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Nie można zaktualizować karty"
|
msgstr "Nie można zaktualizować karty"
|
||||||
@@ -2314,7 +2317,7 @@ msgstr "Nie można zaktualizować karty"
|
|||||||
msgid "Unable to update checklist"
|
msgid "Unable to update checklist"
|
||||||
msgstr "Nie można zaktualizować listy kontrolnej"
|
msgstr "Nie można zaktualizować listy kontrolnej"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:59
|
#: src/views/card/components/ChecklistItemRow.tsx:65
|
||||||
msgid "Unable to update checklist item"
|
msgid "Unable to update checklist item"
|
||||||
msgstr "Nie można zaktualizować elementu listy kontrolnej"
|
msgstr "Nie można zaktualizować elementu listy kontrolnej"
|
||||||
|
|
||||||
@@ -2330,7 +2333,7 @@ msgstr "Nie można zaktualizować terminu"
|
|||||||
msgid "Unable to update labels"
|
msgid "Unable to update labels"
|
||||||
msgstr "Nie można zaktualizować etykiet"
|
msgstr "Nie można zaktualizować etykiet"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:173
|
#: src/views/board/index.tsx:169
|
||||||
#: src/views/card/components/ListSelector.tsx:51
|
#: src/views/card/components/ListSelector.tsx:51
|
||||||
msgid "Unable to update list"
|
msgid "Unable to update list"
|
||||||
msgstr "Nie można zaktualizować listy"
|
msgstr "Nie można zaktualizować listy"
|
||||||
@@ -2488,7 +2491,7 @@ msgstr "Zobacz i zarządzaj swoimi płatnościami i subskrypcją."
|
|||||||
msgid "View docs"
|
msgid "View docs"
|
||||||
msgstr "Zobacz dokumentację"
|
msgstr "Zobacz dokumentację"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:141
|
#: src/views/public/board/index.tsx:142
|
||||||
msgid "View only"
|
msgid "View only"
|
||||||
msgstr "Tylko podgląd"
|
msgstr "Tylko podgląd"
|
||||||
|
|
||||||
@@ -2496,7 +2499,7 @@ msgstr "Tylko podgląd"
|
|||||||
msgid "View our roadmap."
|
msgid "View our roadmap."
|
||||||
msgstr "Zobacz nasz plan ulepszeń."
|
msgstr "Zobacz nasz plan ulepszeń."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:171
|
#: src/views/public/board/index.tsx:172
|
||||||
msgid "View workspace"
|
msgid "View workspace"
|
||||||
msgstr "Zobacz obszar roboczy"
|
msgstr "Zobacz obszar roboczy"
|
||||||
|
|
||||||
@@ -2541,10 +2544,10 @@ msgid "Why make an open source Trello?"
|
|||||||
msgstr "Dlaczego próbujecie stworzyć Trello w wersji otwartoźródłowej?"
|
msgstr "Dlaczego próbujecie stworzyć Trello w wersji otwartoźródłowej?"
|
||||||
|
|
||||||
#: src/components/SettingsLayout.tsx:39
|
#: src/components/SettingsLayout.tsx:39
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/boards/index.tsx:33
|
#: src/views/boards/index.tsx:33
|
||||||
#: src/views/members/index.tsx:173
|
#: src/views/members/index.tsx:173
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
#: src/views/public/boards/index.tsx:66
|
#: src/views/public/boards/index.tsx:66
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "Obszar roboczy"
|
msgstr "Obszar roboczy"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -41,7 +41,7 @@ msgid "{0} labels"
|
|||||||
msgstr "{0} метки"
|
msgstr "{0} метки"
|
||||||
|
|
||||||
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
#. placeholder {0}: isTemplate ? "Template" : "Board"
|
||||||
#: src/views/board/index.tsx:412
|
#: src/views/board/index.tsx:408
|
||||||
msgid "{0} not found"
|
msgid "{0} not found"
|
||||||
msgstr "{0} не найден"
|
msgstr "{0} не найден"
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ msgstr "Добавить чек-лист"
|
|||||||
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Добавить описание... (введите '/' для открытия команд или '@' для упоминания)"
|
msgstr "Добавить описание... (введите '/' для открытия команд или '@' для упоминания)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:194
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
msgstr "Добавить детали..."
|
msgstr "Добавить детали..."
|
||||||
|
|
||||||
@@ -312,9 +312,9 @@ msgstr "Портал выставления счетов"
|
|||||||
msgid "Blog Post"
|
msgid "Blog Post"
|
||||||
msgstr "Пост в блоге"
|
msgstr "Пост в блоге"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/card/index.tsx:272
|
#: src/views/card/index.tsx:272
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Доска"
|
msgstr "Доска"
|
||||||
|
|
||||||
@@ -331,7 +331,7 @@ msgstr "Название доски не может превышать 100 си
|
|||||||
msgid "Board name is required"
|
msgid "Board name is required"
|
||||||
msgstr "Название доски обязательно"
|
msgstr "Название доски обязательно"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:165
|
#: src/views/public/board/index.tsx:166
|
||||||
msgid "Board not found"
|
msgid "Board not found"
|
||||||
msgstr "Доска не найдена"
|
msgstr "Доска не найдена"
|
||||||
|
|
||||||
@@ -347,7 +347,7 @@ msgstr "URL доски может содержать только буквы, ц
|
|||||||
msgid "Board URL cannot exceed 60 characters"
|
msgid "Board URL cannot exceed 60 characters"
|
||||||
msgstr "URL доски не может превышать 60 символов"
|
msgstr "URL доски не может превышать 60 символов"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:79
|
#: src/views/public/board/index.tsx:80
|
||||||
msgid "Board URL copied to clipboard"
|
msgid "Board URL copied to clipboard"
|
||||||
msgstr "URL доски скопирован в буфер обмена"
|
msgstr "URL доски скопирован в буфер обмена"
|
||||||
|
|
||||||
@@ -604,8 +604,8 @@ msgstr "Создать новый ключ"
|
|||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Создать новую метку"
|
msgstr "Создать новую метку"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:65
|
#: src/views/board/index.tsx:64
|
||||||
#: src/views/board/index.tsx:503
|
#: src/views/board/index.tsx:499
|
||||||
msgid "Create new list"
|
msgid "Create new list"
|
||||||
msgstr "Создать новый список"
|
msgstr "Создать новый список"
|
||||||
|
|
||||||
@@ -1042,8 +1042,6 @@ msgid "For long-term sustainability, we recognise all good open source projects
|
|||||||
msgstr "Для долгосрочной устойчивости мы признаем, что всем хорошим проектам с открытым исходным кодом необходим источник дохода. Наш доход поступает от платного облачного предложения для рабочих пространств с несколькими пользователями и для пользовательских идентификаторов рабочих пространств. Нет обязательства использовать его, и вы можете самостоятельно разместить программное обеспечение на своей инфраструктуре бесплатно."
|
msgstr "Для долгосрочной устойчивости мы признаем, что всем хорошим проектам с открытым исходным кодом необходим источник дохода. Наш доход поступает от платного облачного предложения для рабочих пространств с несколькими пользователями и для пользовательских идентификаторов рабочих пространств. Нет обязательства использовать его, и вы можете самостоятельно разместить программное обеспечение на своей инфраструктуре бесплатно."
|
||||||
|
|
||||||
#: 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/PricingTiers.tsx:30
|
|
||||||
#: src/views/pricing/components/PricingTiers.tsx:30
|
#: src/views/pricing/components/PricingTiers.tsx:30
|
||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Бесплатно"
|
msgstr "Бесплатно"
|
||||||
@@ -1089,7 +1087,7 @@ msgstr "Начать"
|
|||||||
msgid "Get started by creating a new {0}"
|
msgid "Get started by creating a new {0}"
|
||||||
msgstr "Начните с создания нового {0}"
|
msgstr "Начните с создания нового {0}"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:495
|
#: src/views/board/index.tsx:491
|
||||||
msgid "Get started by creating a new list"
|
msgid "Get started by creating a new list"
|
||||||
msgstr "Начните с создания нового списка"
|
msgstr "Начните с создания нового списка"
|
||||||
|
|
||||||
@@ -1375,7 +1373,7 @@ msgstr "Лицензия"
|
|||||||
msgid "Light"
|
msgid "Light"
|
||||||
msgstr "Светлый"
|
msgstr "Светлый"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:77
|
#: src/views/public/board/index.tsx:78
|
||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Ссылка скопирована"
|
msgstr "Ссылка скопирована"
|
||||||
|
|
||||||
@@ -1509,7 +1507,7 @@ msgid "New label"
|
|||||||
msgstr "Новая метка"
|
msgstr "Новая метка"
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:113
|
#: src/views/board/components/NewListForm.tsx:113
|
||||||
#: src/views/board/index.tsx:466
|
#: src/views/board/index.tsx:462
|
||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Новый список"
|
msgstr "Новый список"
|
||||||
|
|
||||||
@@ -1570,7 +1568,7 @@ msgstr "URL для загрузки этого вложения недоступ
|
|||||||
msgid "No keyboard shortcuts registered."
|
msgid "No keyboard shortcuts registered."
|
||||||
msgstr "Горячие клавиши не зарегистрированы."
|
msgstr "Горячие клавиши не зарегистрированы."
|
||||||
|
|
||||||
#: src/views/board/index.tsx:492
|
#: src/views/board/index.tsx:488
|
||||||
msgid "No lists"
|
msgid "No lists"
|
||||||
msgstr "Нет списков"
|
msgstr "Нет списков"
|
||||||
|
|
||||||
@@ -1721,13 +1719,14 @@ msgstr "Пожалуйста, выберите файл для загрузки.
|
|||||||
#: 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:54
|
#: src/views/board/components/VisibilityButton.tsx:54
|
||||||
#: src/views/board/index.tsx:174
|
#: src/views/board/index.tsx:170
|
||||||
#: src/views/board/index.tsx:230
|
#: src/views/board/index.tsx:226
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
#: src/views/boards/components/ImportBoardsForm.tsx:205
|
||||||
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
#: src/views/card/components/AttachmentThumbnails.tsx:73
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:60
|
#: src/views/card/components/ChecklistItemRow.tsx:66
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:88
|
#: src/views/card/components/ChecklistItemRow.tsx:94
|
||||||
#: src/views/card/components/ChecklistNameInput.tsx:46
|
#: src/views/card/components/ChecklistNameInput.tsx:46
|
||||||
|
#: src/views/card/components/Checklists.tsx:81
|
||||||
#: src/views/card/components/Comment.tsx:64
|
#: src/views/card/components/Comment.tsx:64
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
#: src/views/card/components/DeleteCardConfirmation.tsx:52
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:37
|
||||||
@@ -2090,8 +2089,8 @@ msgstr "Командный план"
|
|||||||
msgid "Teams"
|
msgid "Teams"
|
||||||
msgstr "Команды"
|
msgstr "Команды"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/board/index.tsx:421
|
#: src/views/board/index.tsx:417
|
||||||
msgid "Template"
|
msgid "Template"
|
||||||
msgstr "Шаблон"
|
msgstr "Шаблон"
|
||||||
|
|
||||||
@@ -2165,7 +2164,7 @@ msgstr "Это действие нельзя будет отменить."
|
|||||||
msgid "This API key will only be shown once. Please save it in a secure location."
|
msgid "This API key will only be shown once. Please save it in a secure location."
|
||||||
msgstr "Этот API-ключ будет показан только один раз. Пожалуйста, сохраните его в безопасном месте."
|
msgstr "Этот API-ключ будет показан только один раз. Пожалуйста, сохраните его в безопасном месте."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:168
|
#: src/views/public/board/index.tsx:169
|
||||||
msgid "This board is private or does not exist"
|
msgid "This board is private or does not exist"
|
||||||
msgstr "Эта доска является приватной или не существует."
|
msgstr "Эта доска является приватной или не существует."
|
||||||
|
|
||||||
@@ -2227,7 +2226,7 @@ msgstr "Импорт Trello"
|
|||||||
msgid "Triaging"
|
msgid "Triaging"
|
||||||
msgstr "Сортировка"
|
msgstr "Сортировка"
|
||||||
|
|
||||||
#: src/views/home/components/Logos.tsx:73
|
#: src/views/home/components/Logos.tsx:67
|
||||||
msgid "Trusted by fast-moving teams<0/>around the world"
|
msgid "Trusted by fast-moving teams<0/>around the world"
|
||||||
msgstr "Доверяют динамичным командам<0/>по всему миру"
|
msgstr "Доверяют динамичным командам<0/>по всему миру"
|
||||||
|
|
||||||
@@ -2241,7 +2240,7 @@ msgstr "Не удалось добавить комментарий."
|
|||||||
|
|
||||||
#: src/views/card/index.tsx:199
|
#: src/views/card/index.tsx:199
|
||||||
msgid "Unable to add label"
|
msgid "Unable to add label"
|
||||||
msgstr ""
|
msgstr "Не удалось добавить метку"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:181
|
#: src/views/board/components/NewCardForm.tsx:181
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
@@ -2276,7 +2275,7 @@ msgstr "Не удалось удалить карточку."
|
|||||||
msgid "Unable to delete checklist"
|
msgid "Unable to delete checklist"
|
||||||
msgstr "Не удалось удалить контрольный список"
|
msgstr "Не удалось удалить контрольный список"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:87
|
#: src/views/card/components/ChecklistItemRow.tsx:93
|
||||||
msgid "Unable to delete checklist item"
|
msgid "Unable to delete checklist item"
|
||||||
msgstr "Не удалось удалить элемент контрольного списка"
|
msgstr "Не удалось удалить элемент контрольного списка"
|
||||||
|
|
||||||
@@ -2288,6 +2287,10 @@ msgstr "Не удалось удалить комментарий"
|
|||||||
msgid "Unable to remove member"
|
msgid "Unable to remove member"
|
||||||
msgstr "Не удалось удалить участника"
|
msgstr "Не удалось удалить участника"
|
||||||
|
|
||||||
|
#: src/views/card/components/Checklists.tsx:80
|
||||||
|
msgid "Unable to reorder checklist item"
|
||||||
|
msgstr "Не удалось изменить порядок элемента контрольного списка"
|
||||||
|
|
||||||
#: src/components/FeedbackModal.tsx:40
|
#: src/components/FeedbackModal.tsx:40
|
||||||
msgid "Unable to send feedback"
|
msgid "Unable to send feedback"
|
||||||
msgstr "Не удалось отправить отзыв"
|
msgstr "Не удалось отправить отзыв"
|
||||||
@@ -2300,7 +2303,7 @@ msgstr "Не удалось обновить URL доски"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Не удалось обновить видимость доски"
|
msgstr "Не удалось обновить видимость доски"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:229
|
#: src/views/board/index.tsx:225
|
||||||
#: src/views/card/index.tsx:186
|
#: src/views/card/index.tsx:186
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Не удалось обновить карточку"
|
msgstr "Не удалось обновить карточку"
|
||||||
@@ -2309,7 +2312,7 @@ msgstr "Не удалось обновить карточку"
|
|||||||
msgid "Unable to update checklist"
|
msgid "Unable to update checklist"
|
||||||
msgstr "Не удалось обновить контрольный список"
|
msgstr "Не удалось обновить контрольный список"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:59
|
#: src/views/card/components/ChecklistItemRow.tsx:65
|
||||||
msgid "Unable to update checklist item"
|
msgid "Unable to update checklist item"
|
||||||
msgstr "Не удалось обновить элемент контрольного списка"
|
msgstr "Не удалось обновить элемент контрольного списка"
|
||||||
|
|
||||||
@@ -2325,7 +2328,7 @@ msgstr "Не удалось обновить дату выполнения"
|
|||||||
msgid "Unable to update labels"
|
msgid "Unable to update labels"
|
||||||
msgstr "Не удалось обновить метки"
|
msgstr "Не удалось обновить метки"
|
||||||
|
|
||||||
#: src/views/board/index.tsx:173
|
#: src/views/board/index.tsx:169
|
||||||
#: src/views/card/components/ListSelector.tsx:51
|
#: src/views/card/components/ListSelector.tsx:51
|
||||||
msgid "Unable to update list"
|
msgid "Unable to update list"
|
||||||
msgstr "Не удалось обновить список"
|
msgstr "Не удалось обновить список"
|
||||||
@@ -2483,7 +2486,7 @@ msgstr "Просмотр и управление вашими счетами и
|
|||||||
msgid "View docs"
|
msgid "View docs"
|
||||||
msgstr "Просмотреть документацию"
|
msgstr "Просмотреть документацию"
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:141
|
#: src/views/public/board/index.tsx:142
|
||||||
msgid "View only"
|
msgid "View only"
|
||||||
msgstr "Только просмотр"
|
msgstr "Только просмотр"
|
||||||
|
|
||||||
@@ -2491,7 +2494,7 @@ msgstr "Только просмотр"
|
|||||||
msgid "View our roadmap."
|
msgid "View our roadmap."
|
||||||
msgstr "Просмотреть нашу дорожную карту."
|
msgstr "Просмотреть нашу дорожную карту."
|
||||||
|
|
||||||
#: src/views/public/board/index.tsx:171
|
#: src/views/public/board/index.tsx:172
|
||||||
msgid "View workspace"
|
msgid "View workspace"
|
||||||
msgstr "Просмотреть рабочее пространство"
|
msgstr "Просмотреть рабочее пространство"
|
||||||
|
|
||||||
@@ -2536,10 +2539,10 @@ msgid "Why make an open source Trello?"
|
|||||||
msgstr "Зачем создавать Trello с открытым исходным кодом?"
|
msgstr "Зачем создавать Trello с открытым исходным кодом?"
|
||||||
|
|
||||||
#: src/components/SettingsLayout.tsx:39
|
#: src/components/SettingsLayout.tsx:39
|
||||||
#: src/views/board/index.tsx:386
|
#: src/views/board/index.tsx:382
|
||||||
#: src/views/boards/index.tsx:33
|
#: src/views/boards/index.tsx:33
|
||||||
#: src/views/members/index.tsx:173
|
#: src/views/members/index.tsx:173
|
||||||
#: src/views/public/board/index.tsx:113
|
#: src/views/public/board/index.tsx:114
|
||||||
#: src/views/public/boards/index.tsx:66
|
#: src/views/public/boards/index.tsx:66
|
||||||
msgid "Workspace"
|
msgid "Workspace"
|
||||||
msgstr "Рабочее пространство"
|
msgstr "Рабочее пространство"
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,7 +1,9 @@
|
|||||||
|
import type { DraggableProvided } from "react-beautiful-dnd";
|
||||||
import { t } from "@lingui/core/macro";
|
import { t } from "@lingui/core/macro";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import ContentEditable from "react-contenteditable";
|
import ContentEditable from "react-contenteditable";
|
||||||
import { HiXMark } from "react-icons/hi2";
|
import { HiXMark } from "react-icons/hi2";
|
||||||
|
import { RiDraggable } from "react-icons/ri";
|
||||||
import { twMerge } from "tailwind-merge";
|
import { twMerge } from "tailwind-merge";
|
||||||
|
|
||||||
import { usePopup } from "~/providers/popup";
|
import { usePopup } from "~/providers/popup";
|
||||||
@@ -15,12 +17,16 @@ interface ChecklistItemRowProps {
|
|||||||
};
|
};
|
||||||
cardPublicId: string;
|
cardPublicId: string;
|
||||||
viewOnly?: boolean;
|
viewOnly?: boolean;
|
||||||
|
dragHandleProps?: DraggableProvided["dragHandleProps"];
|
||||||
|
isDragging?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function ChecklistItemRow({
|
export default function ChecklistItemRow({
|
||||||
item,
|
item,
|
||||||
cardPublicId,
|
cardPublicId,
|
||||||
viewOnly = false,
|
viewOnly = false,
|
||||||
|
dragHandleProps,
|
||||||
|
isDragging = false,
|
||||||
}: ChecklistItemRowProps) {
|
}: ChecklistItemRowProps) {
|
||||||
const utils = api.useUtils();
|
const utils = api.useUtils();
|
||||||
const { showPopup } = usePopup();
|
const { showPopup } = usePopup();
|
||||||
@@ -138,7 +144,23 @@ export default function ChecklistItemRow({
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="group relative flex items-start gap-3 rounded-md py-2 pl-4 hover:bg-light-100 dark:hover:bg-dark-100">
|
<div
|
||||||
|
className={twMerge(
|
||||||
|
"group relative flex items-start gap-3 rounded-md py-2 pl-4 hover:bg-light-100 dark:hover:bg-dark-100",
|
||||||
|
isDragging && "opacity-80",
|
||||||
|
)}
|
||||||
|
>
|
||||||
|
{!viewOnly && (
|
||||||
|
<div
|
||||||
|
{...dragHandleProps}
|
||||||
|
className="absolute left-0 top-1/2 flex h-[20px] w-[20px] -translate-x-full -translate-y-1/2 cursor-grab items-center justify-center pr-1 opacity-0 transition-opacity group-hover:opacity-75 hover:opacity-100 active:cursor-grabbing"
|
||||||
|
>
|
||||||
|
<RiDraggable className="h-4 w-4 text-light-700 dark:text-dark-700" />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{viewOnly && <div className="w-[20px] flex-shrink-0" />}
|
||||||
|
|
||||||
<label
|
<label
|
||||||
className={`relative mt-[2px] inline-flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center`}
|
className={`relative mt-[2px] inline-flex h-[16px] w-[16px] flex-shrink-0 items-center justify-center`}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
|
import type { DropResult } from "react-beautiful-dnd";
|
||||||
|
import { t } from "@lingui/core/macro";
|
||||||
|
import { DragDropContext, Draggable } from "react-beautiful-dnd";
|
||||||
import { HiPlus, HiXMark } from "react-icons/hi2";
|
import { HiPlus, HiXMark } from "react-icons/hi2";
|
||||||
|
|
||||||
import CircularProgress from "~/components/CircularProgress";
|
import CircularProgress from "~/components/CircularProgress";
|
||||||
|
import { StrictModeDroppable as Droppable } from "~/components/StrictModeDroppable";
|
||||||
import { useModal } from "~/providers/modal";
|
import { useModal } from "~/providers/modal";
|
||||||
|
import { usePopup } from "~/providers/popup";
|
||||||
|
import { api } from "~/utils/api";
|
||||||
import ChecklistItemRow from "./ChecklistItemRow";
|
import ChecklistItemRow from "./ChecklistItemRow";
|
||||||
import ChecklistNameInput from "./ChecklistNameInput";
|
import ChecklistNameInput from "./ChecklistNameInput";
|
||||||
import NewChecklistItemForm from "./NewChecklistItemForm";
|
import NewChecklistItemForm from "./NewChecklistItemForm";
|
||||||
@@ -34,109 +40,203 @@ export default function Checklists({
|
|||||||
viewOnly = false,
|
viewOnly = false,
|
||||||
}: ChecklistsProps) {
|
}: ChecklistsProps) {
|
||||||
const { openModal } = useModal();
|
const { openModal } = useModal();
|
||||||
|
const { showPopup } = usePopup();
|
||||||
|
|
||||||
if (!checklists || checklists.length === 0) return null;
|
const utils = api.useUtils();
|
||||||
|
|
||||||
|
const reorderItemMutation = api.checklist.updateItem.useMutation({
|
||||||
|
onMutate: async (vars) => {
|
||||||
|
await utils.card.byId.cancel({ cardPublicId });
|
||||||
|
const previous = utils.card.byId.getData({ cardPublicId });
|
||||||
|
|
||||||
|
utils.card.byId.setData({ cardPublicId }, (old) => {
|
||||||
|
if (!old) return old;
|
||||||
|
|
||||||
|
const updatedChecklists = old.checklists.map((cl) => {
|
||||||
|
const itemIndex = cl.items.findIndex(
|
||||||
|
(item) => item.publicId === vars.checklistItemPublicId,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (itemIndex === -1 || vars.index === undefined) return cl;
|
||||||
|
|
||||||
|
const newIndex = vars.index;
|
||||||
|
const items = Array.from(cl.items);
|
||||||
|
const [movedItem] = items.splice(itemIndex, 1);
|
||||||
|
if (!movedItem) return cl;
|
||||||
|
items.splice(newIndex, 0, movedItem);
|
||||||
|
|
||||||
|
return { ...cl, items };
|
||||||
|
});
|
||||||
|
|
||||||
|
return { ...old, checklists: updatedChecklists } as typeof old;
|
||||||
|
});
|
||||||
|
|
||||||
|
return { previous };
|
||||||
|
},
|
||||||
|
onError: (_err, _vars, ctx) => {
|
||||||
|
if (ctx?.previous)
|
||||||
|
utils.card.byId.setData({ cardPublicId }, ctx.previous);
|
||||||
|
showPopup({
|
||||||
|
header: t`Unable to reorder checklist item`,
|
||||||
|
message: t`Please try again later, or contact customer support.`,
|
||||||
|
icon: "error",
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onSettled: async () => {
|
||||||
|
await utils.card.byId.invalidate({ cardPublicId });
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const onDragEnd = (result: DropResult) => {
|
||||||
|
if (!result.destination) return;
|
||||||
|
|
||||||
|
const { source, destination, draggableId } = result;
|
||||||
|
|
||||||
|
if (source.droppableId !== destination.droppableId) return;
|
||||||
|
|
||||||
|
if (source.index === destination.index) return;
|
||||||
|
|
||||||
|
reorderItemMutation.mutate({
|
||||||
|
checklistItemPublicId: draggableId,
|
||||||
|
index: destination.index,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
if (checklists.length === 0) return null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="border-light-300 pb-4 dark:border-dark-300">
|
<DragDropContext onDragEnd={onDragEnd}>
|
||||||
<div>
|
<div className="border-light-300 pb-4 dark:border-dark-300">
|
||||||
{checklists.map((checklist) => {
|
<div>
|
||||||
const completedItems = checklist.items.filter(
|
{checklists.map((checklist) => {
|
||||||
(item) => item.completed,
|
const completedItems = checklist.items.filter(
|
||||||
);
|
(item) => item.completed,
|
||||||
const progress =
|
);
|
||||||
checklist.items.length > 0 && completedItems.length > 0
|
const progress =
|
||||||
? (completedItems.length / checklist.items.length) * 100
|
checklist.items.length > 0 && completedItems.length > 0
|
||||||
: 2;
|
? (completedItems.length / checklist.items.length) * 100
|
||||||
|
: 2;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div key={checklist.publicId} className="mb-4">
|
<div key={checklist.publicId} className="mb-4">
|
||||||
<div className="mb-2 flex items-center font-medium text-light-1000 dark:text-dark-1000">
|
<div className="mb-2 flex items-center font-medium text-light-1000 dark:text-dark-1000">
|
||||||
<div className="min-w-0 flex-1">
|
<div className="min-w-0 flex-1">
|
||||||
<ChecklistNameInput
|
<ChecklistNameInput
|
||||||
checklistPublicId={checklist.publicId}
|
checklistPublicId={checklist.publicId}
|
||||||
initialName={checklist.name}
|
initialName={checklist.name}
|
||||||
cardPublicId={cardPublicId}
|
cardPublicId={cardPublicId}
|
||||||
viewOnly={viewOnly}
|
viewOnly={viewOnly}
|
||||||
/>
|
/>
|
||||||
</div>
|
|
||||||
{!viewOnly && (
|
|
||||||
<div className="ml-2 flex flex-shrink-0 items-center gap-2">
|
|
||||||
<div className="flex items-center gap-1 rounded-full border-[1px] border-light-300 px-2 py-1 dark:border-dark-300">
|
|
||||||
<CircularProgress
|
|
||||||
progress={progress}
|
|
||||||
size="sm"
|
|
||||||
className="flex-shrink-0"
|
|
||||||
/>
|
|
||||||
<span className="text-[11px] text-light-900 dark:text-dark-700">
|
|
||||||
{completedItems.length}/{checklist.items.length}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
className="rounded-md p-1 text-light-900 hover:bg-light-100 dark:text-dark-700 dark:hover:bg-dark-100"
|
|
||||||
onClick={() =>
|
|
||||||
openModal("DELETE_CHECKLIST", checklist.publicId)
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<HiXMark size={16} />
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
onClick={() =>
|
|
||||||
setActiveChecklistForm?.(checklist.publicId)
|
|
||||||
}
|
|
||||||
className="rounded-md p-1 text-light-900 hover:bg-light-100 dark:text-dark-700 dark:hover:bg-dark-100"
|
|
||||||
>
|
|
||||||
<HiPlus size={16} />
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
)}
|
{!viewOnly && (
|
||||||
{viewOnly && (
|
<div className="ml-2 flex flex-shrink-0 items-center gap-2">
|
||||||
<div className="ml-2 flex flex-shrink-0 items-center gap-2">
|
<div className="flex items-center gap-1 rounded-full border-[1px] border-light-300 px-2 py-1 dark:border-dark-300">
|
||||||
<div className="flex items-center gap-1 rounded-full border-[1px] border-light-300 px-2 py-1 dark:border-dark-300">
|
<CircularProgress
|
||||||
<CircularProgress
|
progress={progress}
|
||||||
progress={progress}
|
size="sm"
|
||||||
size="sm"
|
className="flex-shrink-0"
|
||||||
className="flex-shrink-0"
|
/>
|
||||||
/>
|
<span className="text-[11px] text-light-900 dark:text-dark-700">
|
||||||
<span className="text-[11px] text-light-900 dark:text-dark-700">
|
{completedItems.length}/{checklist.items.length}
|
||||||
{completedItems.length}/{checklist.items.length}
|
</span>
|
||||||
</span>
|
</div>
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
className="rounded-md p-1 text-light-900 hover:bg-light-100 dark:text-dark-700 dark:hover:bg-dark-100"
|
||||||
|
onClick={() =>
|
||||||
|
openModal("DELETE_CHECKLIST", checklist.publicId)
|
||||||
|
}
|
||||||
|
>
|
||||||
|
<HiXMark size={16} />
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() =>
|
||||||
|
setActiveChecklistForm?.(checklist.publicId)
|
||||||
|
}
|
||||||
|
className="rounded-md p-1 text-light-900 hover:bg-light-100 dark:text-dark-700 dark:hover:bg-dark-100"
|
||||||
|
>
|
||||||
|
<HiPlus size={16} />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
)}
|
||||||
|
{viewOnly && (
|
||||||
|
<div className="ml-2 flex flex-shrink-0 items-center gap-2">
|
||||||
|
<div className="flex items-center gap-1 rounded-full border-[1px] border-light-300 px-2 py-1 dark:border-dark-300">
|
||||||
|
<CircularProgress
|
||||||
|
progress={progress}
|
||||||
|
size="sm"
|
||||||
|
className="flex-shrink-0"
|
||||||
|
/>
|
||||||
|
<span className="text-[11px] text-light-900 dark:text-dark-700">
|
||||||
|
{completedItems.length}/{checklist.items.length}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<Droppable
|
||||||
|
droppableId={checklist.publicId}
|
||||||
|
type="CHECKLIST_ITEM"
|
||||||
|
isDropDisabled={viewOnly}
|
||||||
|
>
|
||||||
|
{(provided) => (
|
||||||
|
<div
|
||||||
|
ref={provided.innerRef}
|
||||||
|
{...provided.droppableProps}
|
||||||
|
className="ml-1"
|
||||||
|
>
|
||||||
|
{checklist.items.map((item, index) => (
|
||||||
|
<Draggable
|
||||||
|
key={item.publicId}
|
||||||
|
draggableId={item.publicId}
|
||||||
|
index={index}
|
||||||
|
isDragDisabled={viewOnly}
|
||||||
|
>
|
||||||
|
{(provided, snapshot) => (
|
||||||
|
<div
|
||||||
|
ref={provided.innerRef}
|
||||||
|
{...provided.draggableProps}
|
||||||
|
style={{
|
||||||
|
...provided.draggableProps.style,
|
||||||
|
opacity: snapshot.isDragging ? 0.8 : 1,
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<ChecklistItemRow
|
||||||
|
item={{
|
||||||
|
publicId: item.publicId,
|
||||||
|
title: item.title,
|
||||||
|
completed: item.completed,
|
||||||
|
}}
|
||||||
|
cardPublicId={cardPublicId}
|
||||||
|
viewOnly={viewOnly}
|
||||||
|
dragHandleProps={provided.dragHandleProps}
|
||||||
|
isDragging={snapshot.isDragging}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</Draggable>
|
||||||
|
))}
|
||||||
|
{provided.placeholder}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</Droppable>
|
||||||
|
{activeChecklistForm === checklist.publicId && !viewOnly && (
|
||||||
|
<div className="ml-1">
|
||||||
|
<NewChecklistItemForm
|
||||||
|
checklistPublicId={checklist.publicId}
|
||||||
|
cardPublicId={cardPublicId}
|
||||||
|
onCancel={() => setActiveChecklistForm?.(null)}
|
||||||
|
readOnly={viewOnly}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
);
|
||||||
<div className="ml-1">
|
})}
|
||||||
{checklist.items.map((item) => (
|
</div>
|
||||||
<ChecklistItemRow
|
|
||||||
key={item.publicId}
|
|
||||||
item={{
|
|
||||||
publicId: item.publicId,
|
|
||||||
title: item.title,
|
|
||||||
completed: item.completed,
|
|
||||||
}}
|
|
||||||
cardPublicId={cardPublicId}
|
|
||||||
viewOnly={viewOnly}
|
|
||||||
/>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{activeChecklistForm === checklist.publicId && !viewOnly && (
|
|
||||||
<div className="ml-1">
|
|
||||||
<NewChecklistItemForm
|
|
||||||
checklistPublicId={checklist.publicId}
|
|
||||||
cardPublicId={cardPublicId}
|
|
||||||
onCancel={() => setActiveChecklistForm?.(null)}
|
|
||||||
readOnly={viewOnly}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</DragDropContext>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ export const checklistRouter = createTRPCRouter({
|
|||||||
.meta({
|
.meta({
|
||||||
openapi: {
|
openapi: {
|
||||||
summary: "Update a checklist item",
|
summary: "Update a checklist item",
|
||||||
method: "PUT",
|
method: "PATCH",
|
||||||
path: "/checklists/items/{checklistItemPublicId}",
|
path: "/checklists/items/{checklistItemPublicId}",
|
||||||
description: "Updates a checklist item (title/completed)",
|
description: "Updates a checklist item (title/completed)",
|
||||||
tags: ["Cards"],
|
tags: ["Cards"],
|
||||||
@@ -281,6 +281,7 @@ export const checklistRouter = createTRPCRouter({
|
|||||||
checklistItemPublicId: z.string().length(12),
|
checklistItemPublicId: z.string().length(12),
|
||||||
title: z.string().min(1).max(500).optional(),
|
title: z.string().min(1).max(500).optional(),
|
||||||
completed: z.boolean().optional(),
|
completed: z.boolean().optional(),
|
||||||
|
index: z.number().int().min(0).optional(),
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.output(checklistItemSchema)
|
.output(checklistItemSchema)
|
||||||
@@ -312,17 +313,30 @@ export const checklistRouter = createTRPCRouter({
|
|||||||
|
|
||||||
const previousTitle = item.title;
|
const previousTitle = item.title;
|
||||||
|
|
||||||
const updated = await checklistRepo.updateItemById(ctx.db, {
|
let updatedItem;
|
||||||
id: item.id,
|
|
||||||
title: input.title,
|
if (input.title !== undefined || input.completed !== undefined) {
|
||||||
completed: input.completed,
|
updatedItem = await checklistRepo.updateItemById(ctx.db, {
|
||||||
});
|
id: item.id,
|
||||||
|
title: input.title,
|
||||||
|
completed: input.completed,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (input.index !== undefined) {
|
||||||
|
updatedItem = await checklistRepo.reorderItem(ctx.db, {
|
||||||
|
itemId: item.id,
|
||||||
|
newIndex: input.index,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!updatedItem) {
|
||||||
|
throw new TRPCError({
|
||||||
|
message: `Failed to update checklist item`,
|
||||||
|
code: "INTERNAL_SERVER_ERROR",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (!updated)
|
|
||||||
throw new TRPCError({
|
|
||||||
message: `Failed to update checklist item`,
|
|
||||||
code: "INTERNAL_SERVER_ERROR",
|
|
||||||
});
|
|
||||||
|
|
||||||
// Log completion toggle
|
// Log completion toggle
|
||||||
if (input.completed !== undefined) {
|
if (input.completed !== undefined) {
|
||||||
@@ -331,7 +345,7 @@ export const checklistRouter = createTRPCRouter({
|
|||||||
? "card.updated.checklist.item.completed"
|
? "card.updated.checklist.item.completed"
|
||||||
: "card.updated.checklist.item.uncompleted",
|
: "card.updated.checklist.item.uncompleted",
|
||||||
cardId: item.checklist.cardId,
|
cardId: item.checklist.cardId,
|
||||||
toTitle: updated.title,
|
toTitle: updatedItem.title,
|
||||||
createdBy: userId,
|
createdBy: userId,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -342,12 +356,13 @@ export const checklistRouter = createTRPCRouter({
|
|||||||
type: "card.updated.checklist.item.updated",
|
type: "card.updated.checklist.item.updated",
|
||||||
cardId: item.checklist.cardId,
|
cardId: item.checklist.cardId,
|
||||||
fromTitle: previousTitle,
|
fromTitle: previousTitle,
|
||||||
toTitle: updated.title,
|
toTitle: updatedItem.title,
|
||||||
createdBy: userId,
|
createdBy: userId,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return updated;
|
return updatedItem;
|
||||||
|
|
||||||
}),
|
}),
|
||||||
deleteItem: protectedProcedure
|
deleteItem: protectedProcedure
|
||||||
.meta({
|
.meta({
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import { and, desc, eq, isNull } from "drizzle-orm";
|
import { and, desc, eq, isNull, sql } from "drizzle-orm";
|
||||||
|
|
||||||
import type { dbClient } from "@kan/db/client";
|
import type { dbClient } from "@kan/db/client";
|
||||||
import { checklistItems, checklists } from "@kan/db/schema";
|
import { checklistItems, checklists } from "@kan/db/schema";
|
||||||
import { generateUID } from "@kan/shared/utils";
|
import { generateUID } from "@kan/shared/utils";
|
||||||
|
|
||||||
|
|
||||||
export const create = async (
|
export const create = async (
|
||||||
db: dbClient,
|
db: dbClient,
|
||||||
checklistInput: {
|
checklistInput: {
|
||||||
@@ -341,3 +342,83 @@ const groupByKey = <T extends Record<string, unknown>>(
|
|||||||
}
|
}
|
||||||
return grouped;
|
return grouped;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const reorderItem = async (
|
||||||
|
db: dbClient,
|
||||||
|
args: {
|
||||||
|
itemId: number;
|
||||||
|
newIndex: number;
|
||||||
|
},
|
||||||
|
) => {
|
||||||
|
return db.transaction(async (tx) => {
|
||||||
|
const item = await tx.query.checklistItems.findFirst({
|
||||||
|
columns: {
|
||||||
|
id: true,
|
||||||
|
index: true,
|
||||||
|
checklistId: true,
|
||||||
|
},
|
||||||
|
where: and(eq(checklistItems.id, args.itemId), isNull(checklistItems.deletedAt)),
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!item) {
|
||||||
|
throw new Error(`Checklist item not found for ID ${args.itemId}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const currentIndex = item.index;
|
||||||
|
const newIndex = args.newIndex;
|
||||||
|
|
||||||
|
if (currentIndex === newIndex) {
|
||||||
|
const unchanged = await tx.query.checklistItems.findFirst({
|
||||||
|
columns: {
|
||||||
|
publicId: true,
|
||||||
|
title: true,
|
||||||
|
completed: true,
|
||||||
|
},
|
||||||
|
where: and(eq(checklistItems.id, args.itemId), isNull(checklistItems.deletedAt)),
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!unchanged) {
|
||||||
|
throw new Error(`Checklist item not found for ID ${args.itemId}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return unchanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentIndex < newIndex) {
|
||||||
|
await tx.execute(sql`
|
||||||
|
UPDATE card_checklist_item
|
||||||
|
SET index = index - 1
|
||||||
|
WHERE "checklistId" = ${item.checklistId}
|
||||||
|
AND index > ${currentIndex}
|
||||||
|
AND index <= ${newIndex}
|
||||||
|
AND "deletedAt" IS NULL
|
||||||
|
`);
|
||||||
|
} else {
|
||||||
|
await tx.execute(sql`
|
||||||
|
UPDATE card_checklist_item
|
||||||
|
SET index = index + 1
|
||||||
|
WHERE "checklistId" = ${item.checklistId}
|
||||||
|
AND index >= ${newIndex}
|
||||||
|
AND index < ${currentIndex}
|
||||||
|
AND "deletedAt" IS NULL
|
||||||
|
`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const [updated] = await tx
|
||||||
|
.update(checklistItems)
|
||||||
|
.set({ index: newIndex })
|
||||||
|
.where(eq(checklistItems.id, args.itemId))
|
||||||
|
.returning({
|
||||||
|
publicId: checklistItems.publicId,
|
||||||
|
title: checklistItems.title,
|
||||||
|
completed: checklistItems.completed,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!updated) {
|
||||||
|
throw new Error(`Failed to update checklist item with ID ${args.itemId}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
return updated;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user