Compare commits
14 Commits
feat/seats
...
feat/pro-f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d811ce9c44 | ||
|
|
7f496adf63 | ||
|
|
38803f6696 | ||
|
|
99459415d5 | ||
|
|
5a4835091f | ||
|
|
061a54dadd | ||
|
|
a532fa1ce2 | ||
|
|
2a355238a4 | ||
|
|
874353e8b8 | ||
|
|
18e60333ae | ||
|
|
d729785802 | ||
|
|
abbbb4b928 | ||
|
|
3cea9377e6 | ||
|
|
06c268bed1 |
@@ -55,6 +55,7 @@ checksums:
|
|||||||
Billing%20portal/singular: dc3afa14ffe19f5920992a0c9d49d525
|
Billing%20portal/singular: dc3afa14ffe19f5920992a0c9d49d525
|
||||||
Blog%20Post/singular: 38e027f212be445dc530e427fc642a20
|
Blog%20Post/singular: 38e027f212be445dc530e427fc642a20
|
||||||
Board/singular: 101ff39aab674c033c15ab978d0d8bac
|
Board/singular: 101ff39aab674c033c15ab978d0d8bac
|
||||||
|
Board%20analytics%20(coming%20soon)/singular: 3f648e6fe3849ee2ac5cdf410ac9ea06
|
||||||
Board%20name%20cannot%20exceed%20100%20characters/singular: 985c0177744ec56d8dac84f66ec284ca
|
Board%20name%20cannot%20exceed%20100%20characters/singular: 985c0177744ec56d8dac84f66ec284ca
|
||||||
Board%20name%20is%20required/singular: dbd0c6cc945ab19e702fc27f970a023b
|
Board%20name%20is%20required/singular: dbd0c6cc945ab19e702fc27f970a023b
|
||||||
Board%20not%20found/singular: 5af9844595fa8aed5985066620435515
|
Board%20not%20found/singular: 5af9844595fa8aed5985066620435515
|
||||||
@@ -87,7 +88,6 @@ checksums:
|
|||||||
Complete%20control%20and%20ownership%3A/singular: 0d8b682ba873272217425ccfc96aa9cd
|
Complete%20control%20and%20ownership%3A/singular: 0d8b682ba873272217425ccfc96aa9cd
|
||||||
completed%20a%20checklist%20item/singular: 757b04c6c80cc927e1c597c0ad4fda33
|
completed%20a%20checklist%20item/singular: 757b04c6c80cc927e1c597c0ad4fda33
|
||||||
completed%20checklist%20item%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: 71ec18acf051fc909a48a07ca3578673
|
completed%20checklist%20item%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: 71ec18acf051fc909a48a07ca3578673
|
||||||
Confirm%20URL%20change/singular: e14b4ce081d1ef6194b37e1814e97b39
|
|
||||||
Confirm%20your%20new%20password/singular: a0d2935d7b63f8dd19d7c0de47524416
|
Confirm%20your%20new%20password/singular: a0d2935d7b63f8dd19d7c0de47524416
|
||||||
Connect%20Trello/singular: 4440a0b9e387ef7136e3958e7a089213
|
Connect%20Trello/singular: 4440a0b9e387ef7136e3958e7a089213
|
||||||
Connect%20your%20favorite%20tools%20to%20streamline%20your%20workflow./singular: 033c5dcdb059ccb634aef7fe63f2f45d
|
Connect%20your%20favorite%20tools%20to%20streamline%20your%20workflow./singular: 033c5dcdb059ccb634aef7fe63f2f45d
|
||||||
@@ -113,7 +113,7 @@ checksums:
|
|||||||
Critical/singular: eb327cd411b50aee954f8d1d215d003a
|
Critical/singular: eb327cd411b50aee954f8d1d215d003a
|
||||||
Current%20password%20is%20required/singular: 72536bca9598680027f2be8ce80ac280
|
Current%20password%20is%20required/singular: 72536bca9598680027f2be8ce80ac280
|
||||||
Custom%20domain/singular: b09e7a9c187b7163b4a6cfc78042fe42
|
Custom%20domain/singular: b09e7a9c187b7163b4a6cfc78042fe42
|
||||||
Custom%20URLs%20are%20a%20premium%20feature.%20You'll%20be%20directed%20to%20upgrade%20your%20account./singular: b52e4f6122cf739c9551d29beb89b25e
|
Custom%20workspace%20URL/singular: 7ba841d0946eb04fa3d17d74365be37b
|
||||||
Customer%20Support/singular: 50e3c77e22e41061ca85ea2f02625a2e
|
Customer%20Support/singular: 50e3c77e22e41061ca85ea2f02625a2e
|
||||||
Dark/singular: 73e6e208ba628b26e90fcf6dce15e1b2
|
Dark/singular: 73e6e208ba628b26e90fcf6dce15e1b2
|
||||||
Delete/singular: 8bcf303dd10a645b5baacb02b47d72c9
|
Delete/singular: 8bcf303dd10a645b5baacb02b47d72c9
|
||||||
@@ -230,6 +230,7 @@ checksums:
|
|||||||
Labels/singular: 6f15627a90002323eac018274b6922d6
|
Labels/singular: 6f15627a90002323eac018274b6922d6
|
||||||
Labels%20%26%20Filters/singular: 8f0bdd6084516f8241cb613178114390
|
Labels%20%26%20Filters/singular: 8f0bdd6084516f8241cb613178114390
|
||||||
Language/singular: 277fd1a41cc237a437cd1d5e4a80463b
|
Language/singular: 277fd1a41cc237a437cd1d5e4a80463b
|
||||||
|
Launch%20offer/singular: 624592ba2ecf647a3fe60d493c1ee71a
|
||||||
Learning/singular: 90e91da3f870f065f2da9aa9adf53514
|
Learning/singular: 90e91da3f870f065f2da9aa9adf53514
|
||||||
Legal/singular: 00d3f08da61a21887009819cf93fb414
|
Legal/singular: 00d3f08da61a21887009819cf93fb414
|
||||||
License/singular: ac2bcac75151e2fcd9eb768cea275a77
|
License/singular: ac2bcac75151e2fcd9eb768cea275a77
|
||||||
@@ -296,6 +297,8 @@ checksums:
|
|||||||
Priority%20email%20support/singular: 678538c912a770b1e1416ecdb8e299b1
|
Priority%20email%20support/singular: 678538c912a770b1e1416ecdb8e299b1
|
||||||
Privacy%20policy/singular: 462c6a536b52873e4498785c66dd48c8
|
Privacy%20policy/singular: 462c6a536b52873e4498785c66dd48c8
|
||||||
Private/singular: d740d0660e68c61db1853489356030ae
|
Private/singular: d740d0660e68c61db1853489356030ae
|
||||||
|
Pro%20Plan/singular: 76a09fd843b496610f8cf1dced417b62
|
||||||
|
Pro%20Plan%20%E2%88%9E/singular: a898be9e4610706b9b8146a209e8ba16
|
||||||
Profile%20image%20updated/singular: 1ba6609b50bc217a36ab659563e78dae
|
Profile%20image%20updated/singular: 1ba6609b50bc217a36ab659563e78dae
|
||||||
Profile%20picture/singular: d9b5e595877ffe2557486a987dd28274
|
Profile%20picture/singular: d9b5e595877ffe2557486a987dd28274
|
||||||
Public/singular: c834f11dab0881632aded3f01d4f8fa9
|
Public/singular: c834f11dab0881632aded3f01d4f8fa9
|
||||||
@@ -344,6 +347,7 @@ checksums:
|
|||||||
Software%20Development/singular: 67659097ef6bcb194839858b2c4f3a3c
|
Software%20Development/singular: 67659097ef6bcb194839858b2c4f3a3c
|
||||||
Star%20on%20Github/singular: e5cb0428f1ac6485688f120d78742875
|
Star%20on%20Github/singular: e5cb0428f1ac6485688f120d78742875
|
||||||
Success/singular: c43827becada6750f7a25890905f38b9
|
Success/singular: c43827becada6750f7a25890905f38b9
|
||||||
|
Supercharge%20your%20workspace%20for%20just%20%2429%2Fmonth.%20Here's%20what%20you'll%20get%3A/singular: 21af8119141afcce5f12da489f34db6a
|
||||||
Support/singular: 55aab5fd0f31a9cb055a2edeeedfaf63
|
Support/singular: 55aab5fd0f31a9cb055a2edeeedfaf63
|
||||||
Support%20the%20development%20of%20the%20project/singular: c63bab228ab2b1be4370c668a99cd278
|
Support%20the%20development%20of%20the%20project/singular: c63bab228ab2b1be4370c668a99cd278
|
||||||
System/singular: 803281c327a02a2feba182f4a2b38311
|
System/singular: 803281c327a02a2feba182f4a2b38311
|
||||||
@@ -399,6 +403,7 @@ checksums:
|
|||||||
Unlimited%20cards/singular: f44c1050c4d6aa39c8cdf5f4a7d12577
|
Unlimited%20cards/singular: f44c1050c4d6aa39c8cdf5f4a7d12577
|
||||||
Unlimited%20comments/singular: 31dbcf487c49a9997142e96bb3ab0040
|
Unlimited%20comments/singular: 31dbcf487c49a9997142e96bb3ab0040
|
||||||
Unlimited%20lists/singular: 5c418701b27b9acbc5dd199719007362
|
Unlimited%20lists/singular: 5c418701b27b9acbc5dd199719007362
|
||||||
|
Unlimited%20members/singular: f2949ca2dc18b0063af92e60779abb65
|
||||||
Update/singular: 079fc039262fd31b10532929685c2d1b
|
Update/singular: 079fc039262fd31b10532929685c2d1b
|
||||||
Update%20label/singular: 97880b503dfe956941c5f23025a1c102
|
Update%20label/singular: 97880b503dfe956941c5f23025a1c102
|
||||||
updated%20a%20checklist%20item/singular: 198e1d1d503f4b69b752dd84d0cc0e9d
|
updated%20a%20checklist%20item/singular: 198e1d1d503f4b69b752dd84d0cc0e9d
|
||||||
@@ -406,6 +411,7 @@ checksums:
|
|||||||
updated%20the%20title/singular: 98cf8f12923ec1a58e767e3a40863b21
|
updated%20the%20title/singular: 98cf8f12923ec1a58e767e3a40863b21
|
||||||
updated%20the%20title%20to%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: aca196d729401d8adc5c8ca9d558840e
|
updated%20the%20title%20to%20%3C0%3E%7B0%7D%3C%2F0%3E/singular: aca196d729401d8adc5c8ca9d558840e
|
||||||
Upgrade/singular: 63c3b52882e0d779859307d672c178c2
|
Upgrade/singular: 63c3b52882e0d779859307d672c178c2
|
||||||
|
Upgrade%20to%20Pro/singular: 972773025e763ddf53273df6d37a729a
|
||||||
Upgrade%20to%20Team%20Plan/singular: 40e2ef151266937f8bbe63b3d361f645
|
Upgrade%20to%20Team%20Plan/singular: 40e2ef151266937f8bbe63b3d361f645
|
||||||
Urgent/singular: e79afcd4398e52e10e7e8243a7eecabe
|
Urgent/singular: e79afcd4398e52e10e7e8243a7eecabe
|
||||||
URL%20can%20only%20contain%20letters%2C%20numbers%2C%20and%20hyphens/singular: 875d37d2d920f98ef60a314eda8a5d9a
|
URL%20can%20only%20contain%20letters%2C%20numbers%2C%20and%20hyphens/singular: 875d37d2d920f98ef60a314eda8a5d9a
|
||||||
@@ -451,6 +457,7 @@ checksums:
|
|||||||
You%20can%20self-host%20by%20following%20the%20instructions%20in%20our%20%3C0%3Erepo%3C%2F0%3E./singular: a6152a41b2d8f64d5a657e5b8bc808a9
|
You%20can%20self-host%20by%20following%20the%20instructions%20in%20our%20%3C0%3Erepo%3C%2F0%3E./singular: a6152a41b2d8f64d5a657e5b8bc808a9
|
||||||
You%20have%20been%20logged%20in%20successfully./singular: ef8fad1dce13ae4112f17c5258655fea
|
You%20have%20been%20logged%20in%20successfully./singular: ef8fad1dce13ae4112f17c5258655fea
|
||||||
You%20have%20been%20signed%20up%20successfully./singular: f614a6e3b45f5ffb9a3b0fb420fef84b
|
You%20have%20been%20signed%20up%20successfully./singular: f614a6e3b45f5ffb9a3b0fb420fef84b
|
||||||
|
You%20have%20unlimited%20seats%20with%20your%20Pro%20Plan.%20There%20is%20no%20additional%20charge%20for%20new%20members!/singular: e3dc59a5ba7211cd3d8516b3a79d85ca
|
||||||
Your%20account%20has%20been%20deleted./singular: 8c8d944e07388c5877effdb2c2803dcf
|
Your%20account%20has%20been%20deleted./singular: 8c8d944e07388c5877effdb2c2803dcf
|
||||||
Your%20boards%20have%20been%20imported./singular: 403972e7a25afc2415762c1c2b1ec868
|
Your%20boards%20have%20been%20imported./singular: 403972e7a25afc2415762c1c2b1ec868
|
||||||
Your%20display%20name%20has%20been%20updated./singular: 15e5fff36c554c16ec5214427fae1bf4
|
Your%20display%20name%20has%20been%20updated./singular: 15e5fff36c554c16ec5214427fae1bf4
|
||||||
|
|||||||
@@ -36,12 +36,12 @@ msgstr "{0} Labels"
|
|||||||
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
||||||
msgstr "{boardCount, plural, one {Board importieren (1)} other {Boards importieren ({boardCount})}}"
|
msgstr "{boardCount, plural, one {Board importieren (1)} other {Boards importieren ({boardCount})}}"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:91
|
#: src/views/members/components/InviteMemberForm.tsx:92
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$10/month"
|
msgid "$10/month"
|
||||||
msgstr "$10/Monat"
|
msgstr "$10/Monat"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$8/month"
|
msgid "$8/month"
|
||||||
msgstr "$8/Monat"
|
msgstr "$8/Monat"
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ msgid "Add label"
|
|||||||
msgstr "Label hinzufügen"
|
msgstr "Label hinzufügen"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:130
|
#: src/views/card/components/MemberSelector.tsx:130
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:149
|
#: src/views/members/components/InviteMemberForm.tsx:147
|
||||||
msgid "Add member"
|
msgid "Add member"
|
||||||
msgstr "Mitglied hinzufügen"
|
msgstr "Mitglied hinzufügen"
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ msgstr "hat Checklistenelement <0>{0}</0> hinzugefügt"
|
|||||||
msgid "added label <0>{0}</0>"
|
msgid "added label <0>{0}</0>"
|
||||||
msgstr "hat Label <0>{0}</0> hinzugefügt"
|
msgstr "hat Label <0>{0}</0> hinzugefügt"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:186
|
#: src/views/members/components/InviteMemberForm.tsx:187
|
||||||
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
||||||
msgstr "Das Hinzufügen eines neuen Mitglieds kostet zusätzlich {price} ({billingType}) pro Platz."
|
msgstr "Das Hinzufügen eines neuen Mitglieds kostet zusätzlich {price} ({billingType}) pro Platz."
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ msgstr "Alle Systeme funktionieren"
|
|||||||
msgid "Already have an account? <0><1>Sign in</1></0>"
|
msgid "Already have an account? <0><1>Sign in</1></0>"
|
||||||
msgstr "Du hast bereits ein Konto? <0><1>Anmelden</1></0>"
|
msgstr "Du hast bereits ein Konto? <0><1>Anmelden</1></0>"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:102
|
#: src/views/settings/index.tsx:113
|
||||||
msgid "An error occurred while disconnecting your Trello account."
|
msgid "An error occurred while disconnecting your Trello account."
|
||||||
msgstr "Beim Trennen deines Trello-Kontos ist ein Fehler aufgetreten."
|
msgstr "Beim Trennen deines Trello-Kontos ist ein Fehler aufgetreten."
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ msgstr "Beim Trennen deines Trello-Kontos ist ein Fehler aufgetreten."
|
|||||||
msgid "An unexpected error occurred. Please try again later."
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
msgstr "Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es später erneut."
|
msgstr "Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es später erneut."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:259
|
#: src/views/settings/index.tsx:282
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "API-Schlüssel"
|
msgstr "API-Schlüssel"
|
||||||
|
|
||||||
@@ -218,20 +218,20 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Einfaches Kanban"
|
msgstr "Einfaches Kanban"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed annually"
|
msgid "billed annually"
|
||||||
msgstr "jährlich abgerechnet"
|
msgstr "jährlich abgerechnet"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed monthly"
|
msgid "billed monthly"
|
||||||
msgstr "monatlich abgerechnet"
|
msgstr "monatlich abgerechnet"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
#: src/views/settings/index.tsx:198
|
#: src/views/settings/index.tsx:221
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Abrechnung"
|
msgstr "Abrechnung"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:208
|
#: src/views/settings/index.tsx:231
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Abrechnungsportal"
|
msgstr "Abrechnungsportal"
|
||||||
|
|
||||||
@@ -243,6 +243,10 @@ msgstr "Blogbeitrag"
|
|||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Board"
|
msgstr "Board"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:80
|
||||||
|
msgid "Board analytics (coming soon)"
|
||||||
|
msgstr "Board-Analytik (demnächst verfügbar)"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:21
|
#: src/views/boards/components/NewBoardForm.tsx:21
|
||||||
msgid "Board name cannot exceed 100 characters"
|
msgid "Board name cannot exceed 100 characters"
|
||||||
msgstr "Der Name des Boards darf 100 Zeichen nicht überschreiten"
|
msgstr "Der Name des Boards darf 100 Zeichen nicht überschreiten"
|
||||||
@@ -309,9 +313,9 @@ msgstr "Fehlerbericht"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:94
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
@@ -325,12 +329,12 @@ msgstr "Kartentitel"
|
|||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:314
|
||||||
#: src/views/settings/index.tsx:301
|
#: src/views/settings/index.tsx:324
|
||||||
msgid "Change Password"
|
msgid "Change Password"
|
||||||
msgstr "Passwort ändern"
|
msgstr "Passwort ändern"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:190
|
#: src/views/settings/index.tsx:213
|
||||||
msgid "Change the language of the app."
|
msgid "Change the language of the app."
|
||||||
msgstr "Ändere die Sprache der App."
|
msgstr "Ändere die Sprache der App."
|
||||||
|
|
||||||
@@ -389,16 +393,12 @@ msgstr "hat ein Checklistenelement abgeschlossen"
|
|||||||
msgid "completed checklist item <0>{0}</0>"
|
msgid "completed checklist item <0>{0}</0>"
|
||||||
msgstr "hat Checklistenelement <0>{0}</0> abgeschlossen"
|
msgstr "hat Checklistenelement <0>{0}</0> abgeschlossen"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:42
|
|
||||||
msgid "Confirm URL change"
|
|
||||||
msgstr "URL-Änderung bestätigen"
|
|
||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
msgid "Confirm your new password"
|
msgid "Confirm your new password"
|
||||||
msgstr "Bestätigen Sie Ihr neues Passwort"
|
msgstr "Bestätigen Sie Ihr neues Passwort"
|
||||||
|
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
#: src/views/settings/index.tsx:235
|
#: src/views/settings/index.tsx:258
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Trello verbinden"
|
msgstr "Trello verbinden"
|
||||||
|
|
||||||
@@ -406,7 +406,7 @@ msgstr "Trello verbinden"
|
|||||||
msgid "Connect your favorite tools to streamline your workflow."
|
msgid "Connect your favorite tools to streamline your workflow."
|
||||||
msgstr "Verbinde deine Lieblingstools, um deinen Arbeitsablauf zu optimieren."
|
msgstr "Verbinde deine Lieblingstools, um deinen Arbeitsablauf zu optimieren."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:222
|
#: src/views/settings/index.tsx:245
|
||||||
msgid "Connect your Trello account to import boards."
|
msgid "Connect your Trello account to import boards."
|
||||||
msgstr "Verbinde dein Trello-Konto, um Boards zu importieren."
|
msgstr "Verbinde dein Trello-Konto, um Boards zu importieren."
|
||||||
|
|
||||||
@@ -499,9 +499,9 @@ msgstr "Aktuelles Passwort ist erforderlich"
|
|||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Benutzerdefinierte Domain"
|
msgstr "Benutzerdefinierte Domain"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:45
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:74
|
||||||
msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
|
msgid "Custom workspace URL"
|
||||||
msgstr "Benutzerdefinierte URLs sind eine Premium-Funktion. Du wirst zur Aktualisierung deines Kontos weitergeleitet."
|
msgstr "Benutzerdefinierte Workspace-URL"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:41
|
#: src/views/boards/components/TemplateBoards.tsx:41
|
||||||
msgid "Customer Support"
|
msgid "Customer Support"
|
||||||
@@ -520,8 +520,8 @@ msgid "Delete"
|
|||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
#: src/views/settings/index.tsx:309
|
#: src/views/settings/index.tsx:332
|
||||||
#: src/views/settings/index.tsx:319
|
#: src/views/settings/index.tsx:342
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Konto löschen"
|
msgstr "Konto löschen"
|
||||||
|
|
||||||
@@ -542,8 +542,8 @@ msgid "Delete list"
|
|||||||
msgstr "Liste löschen"
|
msgstr "Liste löschen"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
#: src/views/settings/index.tsx:272
|
#: src/views/settings/index.tsx:295
|
||||||
#: src/views/settings/index.tsx:283
|
#: src/views/settings/index.tsx:306
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Workspace löschen"
|
msgstr "Workspace löschen"
|
||||||
|
|
||||||
@@ -569,7 +569,7 @@ msgstr "hat Checklistenelement <0>{0}</0> gelöscht"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Design"
|
msgstr "Design"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:250
|
#: src/views/settings/index.tsx:273
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Trello trennen"
|
msgstr "Trello trennen"
|
||||||
|
|
||||||
@@ -577,7 +577,7 @@ msgstr "Trello trennen"
|
|||||||
msgid "Discuss and collaborate on cards."
|
msgid "Discuss and collaborate on cards."
|
||||||
msgstr "Diskutiere und arbeite gemeinsam an Karten."
|
msgstr "Diskutiere und arbeite gemeinsam an Karten."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:151
|
#: src/views/settings/index.tsx:162
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Anzeigename"
|
msgstr "Anzeigename"
|
||||||
|
|
||||||
@@ -647,7 +647,7 @@ msgstr "Bearbeitung"
|
|||||||
msgid "email"
|
msgid "email"
|
||||||
msgstr "E-Mail"
|
msgstr "E-Mail"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:163
|
#: src/views/members/components/InviteMemberForm.tsx:161
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-Mail"
|
msgstr "E-Mail"
|
||||||
|
|
||||||
@@ -695,12 +695,12 @@ msgstr "Fehler beim Löschen des Labels"
|
|||||||
msgid "Error deleting workspace"
|
msgid "Error deleting workspace"
|
||||||
msgstr "Fehler beim Löschen des Arbeitsbereichs"
|
msgstr "Fehler beim Löschen des Arbeitsbereichs"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:101
|
#: src/views/settings/index.tsx:112
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Fehler beim Trennen von Trello"
|
msgstr "Fehler beim Trennen von Trello"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:76
|
#: src/views/members/components/InviteMemberForm.tsx:71
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:82
|
#: src/views/members/components/InviteMemberForm.tsx:77
|
||||||
msgid "Error inviting member"
|
msgid "Error inviting member"
|
||||||
msgstr "Fehler beim Einladen des Mitglieds"
|
msgstr "Fehler beim Einladen des Mitglieds"
|
||||||
|
|
||||||
@@ -724,7 +724,8 @@ msgstr "Fehler beim Aktualisieren des Arbeitsbereichsnamens"
|
|||||||
msgid "Error updating workspace URL"
|
msgid "Error updating workspace URL"
|
||||||
msgstr "Fehler beim Aktualisieren der Workspace-URL"
|
msgstr "Fehler beim Aktualisieren der Workspace-URL"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:132
|
#: src/views/members/components/InviteMemberForm.tsx:130
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:41
|
||||||
msgid "Error upgrading subscription"
|
msgid "Error upgrading subscription"
|
||||||
msgstr "Fehler beim Upgrade des Abonnements"
|
msgstr "Fehler beim Upgrade des Abonnements"
|
||||||
|
|
||||||
@@ -794,8 +795,8 @@ msgstr "Für langfristige Nachhaltigkeit erkennen wir an, dass alle guten Open-S
|
|||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Kostenlos"
|
msgstr "Kostenlos"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:192
|
#: src/views/members/components/InviteMemberForm.tsx:193
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:189
|
||||||
msgid "Free Plan"
|
msgid "Free Plan"
|
||||||
msgstr "Kostenloser Plan"
|
msgstr "Kostenloser Plan"
|
||||||
|
|
||||||
@@ -950,24 +951,24 @@ msgstr "Integrationen"
|
|||||||
msgid "Interviewing"
|
msgid "Interviewing"
|
||||||
msgstr "Vorstellungsgespräch"
|
msgstr "Vorstellungsgespräch"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:45
|
#: src/views/members/components/InviteMemberForm.tsx:40
|
||||||
msgid "Invalid email address"
|
msgid "Invalid email address"
|
||||||
msgstr "Ungültige E-Mail-Adresse"
|
msgstr "Ungültige E-Mail-Adresse"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:193
|
#: src/views/members/index.tsx:201
|
||||||
msgid "Invite"
|
msgid "Invite"
|
||||||
msgstr "Einladen"
|
msgstr "Einladen"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:207
|
#: src/views/members/components/InviteMemberForm.tsx:208
|
||||||
msgid "Invite another"
|
msgid "Invite another"
|
||||||
msgstr "Weitere Person einladen"
|
msgstr "Weitere Person einladen"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:112
|
#: src/views/card/components/MemberSelector.tsx:112
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:231
|
#: src/views/members/components/InviteMemberForm.tsx:233
|
||||||
msgid "Invite member"
|
msgid "Invite member"
|
||||||
msgstr "Mitglied einladen"
|
msgstr "Mitglied einladen"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:195
|
#: src/views/members/components/InviteMemberForm.tsx:196
|
||||||
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
||||||
msgstr "Das Einladen von Mitgliedern erfordert einen Team-Plan. Sie werden weitergeleitet, um Ihren Workspace zu upgraden."
|
msgstr "Das Einladen von Mitgliedern erfordert einen Team-Plan. Sie werden weitergeleitet, um Ihren Workspace zu upgraden."
|
||||||
|
|
||||||
@@ -998,10 +999,14 @@ msgstr "Labels"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Labels & Filter"
|
msgstr "Labels & Filter"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:187
|
#: src/views/settings/index.tsx:210
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Sprache"
|
msgstr "Sprache"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:67
|
||||||
|
msgid "Launch offer"
|
||||||
|
msgstr "Einführungsangebot"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:83
|
#: src/views/boards/components/TemplateBoards.tsx:83
|
||||||
msgid "Learning"
|
msgid "Learning"
|
||||||
msgstr "Lernen"
|
msgstr "Lernen"
|
||||||
@@ -1067,12 +1072,12 @@ msgstr "Mittlere Priorität"
|
|||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/views/board/components/NewCardForm.tsx:357
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/card/index.tsx:125
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/members/index.tsx:171
|
#: src/views/members/index.tsx:172
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "Mitglieder"
|
msgstr "Mitglieder"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/members/index.tsx:167
|
#: src/views/members/index.tsx:168
|
||||||
msgid "Members | {0}"
|
msgid "Members | {0}"
|
||||||
msgstr "Mitglieder | {0}"
|
msgstr "Mitglieder | {0}"
|
||||||
|
|
||||||
@@ -1080,7 +1085,7 @@ msgstr "Mitglieder | {0}"
|
|||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Monatlich"
|
msgstr "Monatlich"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:92
|
#: src/views/members/components/InviteMemberForm.tsx:93
|
||||||
msgid "monthly billing"
|
msgid "monthly billing"
|
||||||
msgstr "monatliche Abrechnung"
|
msgstr "monatliche Abrechnung"
|
||||||
|
|
||||||
@@ -1180,11 +1185,11 @@ msgstr "Angebot"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Einarbeitung"
|
msgstr "Einarbeitung"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:312
|
#: src/views/settings/index.tsx:335
|
||||||
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
||||||
msgstr "Sobald Sie Ihr Konto löschen, gibt es kein Zurück mehr. Diese Aktion kann nicht rückgängig gemacht werden."
|
msgstr "Sobald Sie Ihr Konto löschen, gibt es kein Zurück mehr. Diese Aktion kann nicht rückgängig gemacht werden."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:275
|
#: src/views/settings/index.tsx:298
|
||||||
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
||||||
msgstr "Sobald Sie Ihren Arbeitsbereich löschen, gibt es kein Zurück mehr. Diese Aktion kann nicht rückgängig gemacht werden."
|
msgstr "Sobald Sie Ihren Arbeitsbereich löschen, gibt es kein Zurück mehr. Diese Aktion kann nicht rückgängig gemacht werden."
|
||||||
|
|
||||||
@@ -1220,7 +1225,7 @@ msgstr "Passwörter stimmen nicht überein"
|
|||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Zahlungshäufigkeit"
|
msgstr "Zahlungshäufigkeit"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:128
|
#: src/views/members/index.tsx:129
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "Ausstehend"
|
msgstr "Ausstehend"
|
||||||
|
|
||||||
@@ -1282,8 +1287,8 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
|
|||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:173
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:83
|
#: src/views/members/components/InviteMemberForm.tsx:78
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:133
|
#: src/views/members/components/InviteMemberForm.tsx:131
|
||||||
#: src/views/settings/components/Avatar.tsx:40
|
#: src/views/settings/components/Avatar.tsx:40
|
||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
||||||
@@ -1292,6 +1297,7 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
|
|||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
||||||
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
||||||
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:42
|
||||||
msgid "Please try again later, or contact customer support."
|
msgid "Please try again later, or contact customer support."
|
||||||
msgstr "Bitte versuche es später noch einmal oder kontaktiere den Kundensupport."
|
msgstr "Bitte versuche es später noch einmal oder kontaktiere den Kundensupport."
|
||||||
|
|
||||||
@@ -1302,6 +1308,7 @@ msgid "Pricing"
|
|||||||
msgstr "Preise"
|
msgstr "Preise"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:56
|
#: src/views/home/components/Pricing.tsx:56
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:86
|
||||||
msgid "Priority email support"
|
msgid "Priority email support"
|
||||||
msgstr "Prioritäts-E-Mail-Support"
|
msgstr "Prioritäts-E-Mail-Support"
|
||||||
|
|
||||||
@@ -1313,11 +1320,19 @@ msgstr "Datenschutzrichtlinie"
|
|||||||
msgid "Private"
|
msgid "Private"
|
||||||
msgstr "Privat"
|
msgstr "Privat"
|
||||||
|
|
||||||
|
#: src/views/members/index.tsx:186
|
||||||
|
msgid "Pro Plan"
|
||||||
|
msgstr "Pro-Plan"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
|
msgid "Pro Plan ∞"
|
||||||
|
msgstr "Pro-Plan ∞"
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:26
|
#: src/views/settings/components/Avatar.tsx:26
|
||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Profilbild aktualisiert"
|
msgstr "Profilbild aktualisiert"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:146
|
#: src/views/settings/index.tsx:157
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Profilbild"
|
msgstr "Profilbild"
|
||||||
|
|
||||||
@@ -1353,7 +1368,7 @@ msgstr "Remote"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Entfernen"
|
msgstr "Entfernen"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:142
|
#: src/views/members/index.tsx:143
|
||||||
msgid "Remove member"
|
msgid "Remove member"
|
||||||
msgstr "Mitglied entfernen"
|
msgstr "Mitglied entfernen"
|
||||||
|
|
||||||
@@ -1409,7 +1424,7 @@ msgstr "Widerrufen"
|
|||||||
msgid "Roadmap"
|
msgid "Roadmap"
|
||||||
msgstr "Roadmap"
|
msgstr "Roadmap"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:215
|
#: src/views/members/index.tsx:223
|
||||||
msgid "Role"
|
msgid "Role"
|
||||||
msgstr "Rolle"
|
msgstr "Rolle"
|
||||||
|
|
||||||
@@ -1458,12 +1473,12 @@ msgid "Senior"
|
|||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
#: src/views/settings/index.tsx:140
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Einstellungen"
|
msgstr "Einstellungen"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:136
|
#: src/views/settings/index.tsx:147
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Einstellungen | {0}"
|
msgstr "Einstellungen | {0}"
|
||||||
|
|
||||||
@@ -1514,6 +1529,10 @@ msgstr "Stern auf Github"
|
|||||||
msgid "Success"
|
msgid "Success"
|
||||||
msgstr "Erfolg"
|
msgstr "Erfolg"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:55
|
||||||
|
msgid "Supercharge your workspace for just $29/month. Here's what you'll get:"
|
||||||
|
msgstr "Optimiere deinen Workspace für nur $29/Monat. Das bekommst du dafür:"
|
||||||
|
|
||||||
#: src/components/UserMenu.tsx:180
|
#: src/components/UserMenu.tsx:180
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Support"
|
msgstr "Support"
|
||||||
@@ -1526,8 +1545,8 @@ msgstr "Unterstütze die Entwicklung des Projekts"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "System"
|
msgstr "System"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:183
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:188
|
||||||
msgid "Team Plan"
|
msgid "Team Plan"
|
||||||
msgstr "Team-Plan"
|
msgstr "Team-Plan"
|
||||||
|
|
||||||
@@ -1612,7 +1631,7 @@ msgstr "Menü umschalten"
|
|||||||
msgid "Track all card changes with detailed activity history."
|
msgid "Track all card changes with detailed activity history."
|
||||||
msgstr "Verfolge alle kartenänderungen mit detaillierter aktivitätshistorie."
|
msgstr "Verfolge alle kartenänderungen mit detaillierter aktivitätshistorie."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:94
|
#: src/views/settings/index.tsx:105
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello getrennt"
|
msgstr "Trello getrennt"
|
||||||
|
|
||||||
@@ -1743,6 +1762,10 @@ msgstr "Unbegrenzte kommentare"
|
|||||||
msgid "Unlimited lists"
|
msgid "Unlimited lists"
|
||||||
msgstr "Unbegrenzte listen"
|
msgstr "Unbegrenzte listen"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:64
|
||||||
|
msgid "Unlimited members"
|
||||||
|
msgstr "Unbegrenzte Mitglieder"
|
||||||
|
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
||||||
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
||||||
@@ -1772,11 +1795,16 @@ msgstr "hat den Titel aktualisiert"
|
|||||||
msgid "updated the title to <0>{0}</0>"
|
msgid "updated the title to <0>{0}</0>"
|
||||||
msgstr "hat den Titel in <0>{0}</0> geändert"
|
msgstr "hat den Titel in <0>{0}</0> geändert"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:52
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:99
|
||||||
msgid "Upgrade"
|
msgid "Upgrade"
|
||||||
msgstr "Upgrade"
|
msgstr "Upgrade"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:222
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:52
|
||||||
|
#: src/views/settings/index.tsx:202
|
||||||
|
msgid "Upgrade to Pro"
|
||||||
|
msgstr "Upgrade auf Pro"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:224
|
||||||
msgid "Upgrade to Team Plan"
|
msgid "Upgrade to Team Plan"
|
||||||
msgstr "Upgrade auf Team-Plan"
|
msgstr "Upgrade auf Team-Plan"
|
||||||
|
|
||||||
@@ -1801,11 +1829,11 @@ msgstr "URL muss mindestens 3 Zeichen lang sein"
|
|||||||
msgid "Use template"
|
msgid "Use template"
|
||||||
msgstr "Vorlage verwenden"
|
msgstr "Vorlage verwenden"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:209
|
#: src/views/members/index.tsx:217
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "Benutzer"
|
msgstr "Benutzer"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:77
|
#: src/views/members/components/InviteMemberForm.tsx:72
|
||||||
msgid "User is already a member of this workspace"
|
msgid "User is already a member of this workspace"
|
||||||
msgstr "Benutzer ist bereits Mitglied dieses Arbeitsbereichs"
|
msgstr "Benutzer ist bereits Mitglied dieses Arbeitsbereichs"
|
||||||
|
|
||||||
@@ -1813,11 +1841,11 @@ msgstr "Benutzer ist bereits Mitglied dieses Arbeitsbereichs"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Video"
|
msgstr "Video"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:262
|
#: src/views/settings/index.tsx:285
|
||||||
msgid "View and manage your API keys."
|
msgid "View and manage your API keys."
|
||||||
msgstr "API-Schlüssel anzeigen und verwalten."
|
msgstr "API-Schlüssel anzeigen und verwalten."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:201
|
#: src/views/settings/index.tsx:224
|
||||||
msgid "View and manage your billing and subscription."
|
msgid "View and manage your billing and subscription."
|
||||||
msgstr "Verwalte deine Abrechnung und dein Abonnement."
|
msgstr "Verwalte deine Abrechnung und dein Abonnement."
|
||||||
|
|
||||||
@@ -1877,7 +1905,7 @@ msgstr "Arbeitsbereich"
|
|||||||
msgid "Workspace deleted"
|
msgid "Workspace deleted"
|
||||||
msgstr "Workspace gelöscht"
|
msgstr "Workspace gelöscht"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:177
|
#: src/views/settings/index.tsx:188
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Workspace-Beschreibung"
|
msgstr "Workspace-Beschreibung"
|
||||||
|
|
||||||
@@ -1899,7 +1927,7 @@ msgid "Workspace members"
|
|||||||
msgstr "Workspace-mitglieder"
|
msgstr "Workspace-mitglieder"
|
||||||
|
|
||||||
#: src/components/NewWorkspaceForm.tsx:81
|
#: src/components/NewWorkspaceForm.tsx:81
|
||||||
#: src/views/settings/index.tsx:158
|
#: src/views/settings/index.tsx:169
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Name des Workspaces"
|
msgstr "Name des Workspaces"
|
||||||
|
|
||||||
@@ -1919,7 +1947,7 @@ msgstr "Workspace-Name aktualisiert"
|
|||||||
msgid "Workspace slug updated"
|
msgid "Workspace slug updated"
|
||||||
msgstr "Workspace-Slug aktualisiert"
|
msgstr "Workspace-Slug aktualisiert"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:167
|
#: src/views/settings/index.tsx:178
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "Workspace-URL"
|
msgstr "Workspace-URL"
|
||||||
|
|
||||||
@@ -1935,7 +1963,7 @@ msgstr "Jährlich"
|
|||||||
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
||||||
msgstr "Ja, wir bieten einen dauerhaft kostenlosen plan für die individuelle nutzung an. Keine einschränkungen, keine paywalls, keine limits."
|
msgstr "Ja, wir bieten einen dauerhaft kostenlosen plan für die individuelle nutzung an. Keine einschränkungen, keine paywalls, keine limits."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:294
|
#: src/views/settings/index.tsx:317
|
||||||
msgid "You are about to change your password."
|
msgid "You are about to change your password."
|
||||||
msgstr "Sie sind dabei, Ihr Passwort zu ändern."
|
msgstr "Sie sind dabei, Ihr Passwort zu ändern."
|
||||||
|
|
||||||
@@ -1959,6 +1987,10 @@ msgstr "Sie haben sich erfolgreich angemeldet."
|
|||||||
msgid "You have been signed up successfully."
|
msgid "You have been signed up successfully."
|
||||||
msgstr "Sie haben sich erfolgreich registriert."
|
msgstr "Sie haben sich erfolgreich registriert."
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:186
|
||||||
|
msgid "You have unlimited seats with your Pro Plan. There is no additional charge for new members!"
|
||||||
|
msgstr "Sie haben unbegrenzte Plätze mit Ihrem Pro-Plan. Für neue Mitglieder fallen keine zusätzlichen Kosten an!"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
||||||
msgid "Your account has been deleted."
|
msgid "Your account has been deleted."
|
||||||
msgstr "Dein Konto wurde gelöscht."
|
msgstr "Dein Konto wurde gelöscht."
|
||||||
@@ -1979,11 +2011,11 @@ msgstr "Ihr Passwort wurde geändert."
|
|||||||
msgid "Your profile image has been updated."
|
msgid "Your profile image has been updated."
|
||||||
msgstr "Dein Profilbild wurde aktualisiert."
|
msgstr "Dein Profilbild wurde aktualisiert."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:95
|
#: src/views/settings/index.tsx:106
|
||||||
msgid "Your Trello account has been disconnected."
|
msgid "Your Trello account has been disconnected."
|
||||||
msgstr "Dein Trello-Konto wurde getrennt."
|
msgstr "Dein Trello-Konto wurde getrennt."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:244
|
#: src/views/settings/index.tsx:267
|
||||||
msgid "Your Trello account is connected."
|
msgid "Your Trello account is connected."
|
||||||
msgstr "Dein Trello-Konto ist verbunden."
|
msgstr "Dein Trello-Konto ist verbunden."
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -40,12 +40,12 @@ msgstr "{boardCount, plural, one {Import board (1)} other {Import boards ({board
|
|||||||
#~ msgid "#1 Hacker News"
|
#~ msgid "#1 Hacker News"
|
||||||
#~ msgstr "#1 Hacker News"
|
#~ msgstr "#1 Hacker News"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:91
|
#: src/views/members/components/InviteMemberForm.tsx:92
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$10/month"
|
msgid "$10/month"
|
||||||
msgstr "$10/month"
|
msgstr "$10/month"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$8/month"
|
msgid "$8/month"
|
||||||
msgstr "$8/month"
|
msgstr "$8/month"
|
||||||
|
|
||||||
@@ -113,7 +113,7 @@ msgid "Add label"
|
|||||||
msgstr "Add label"
|
msgstr "Add label"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:130
|
#: src/views/card/components/MemberSelector.tsx:130
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:149
|
#: src/views/members/components/InviteMemberForm.tsx:147
|
||||||
msgid "Add member"
|
msgid "Add member"
|
||||||
msgstr "Add member"
|
msgstr "Add member"
|
||||||
|
|
||||||
@@ -152,7 +152,7 @@ msgstr "added label <0>{0}</0>"
|
|||||||
#~ msgid "added label <0>{label}</0>"
|
#~ msgid "added label <0>{label}</0>"
|
||||||
#~ msgstr "added label <0>{label}</0>"
|
#~ msgstr "added label <0>{label}</0>"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:186
|
#: src/views/members/components/InviteMemberForm.tsx:187
|
||||||
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
||||||
msgstr "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
msgstr "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
||||||
|
|
||||||
@@ -172,7 +172,7 @@ msgstr "All systems operational"
|
|||||||
msgid "Already have an account? <0><1>Sign in</1></0>"
|
msgid "Already have an account? <0><1>Sign in</1></0>"
|
||||||
msgstr "Already have an account? <0><1>Sign in</1></0>"
|
msgstr "Already have an account? <0><1>Sign in</1></0>"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:102
|
#: src/views/settings/index.tsx:113
|
||||||
msgid "An error occurred while disconnecting your Trello account."
|
msgid "An error occurred while disconnecting your Trello account."
|
||||||
msgstr "An error occurred while disconnecting your Trello account."
|
msgstr "An error occurred while disconnecting your Trello account."
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@ msgstr "An error occurred while disconnecting your Trello account."
|
|||||||
msgid "An unexpected error occurred. Please try again later."
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
msgstr "An unexpected error occurred. Please try again later."
|
msgstr "An unexpected error occurred. Please try again later."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:259
|
#: src/views/settings/index.tsx:282
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "API keys"
|
msgstr "API keys"
|
||||||
|
|
||||||
@@ -254,20 +254,20 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Basic Kanban"
|
msgstr "Basic Kanban"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed annually"
|
msgid "billed annually"
|
||||||
msgstr "billed annually"
|
msgstr "billed annually"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed monthly"
|
msgid "billed monthly"
|
||||||
msgstr "billed monthly"
|
msgstr "billed monthly"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
#: src/views/settings/index.tsx:198
|
#: src/views/settings/index.tsx:221
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Billing"
|
msgstr "Billing"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:208
|
#: src/views/settings/index.tsx:231
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Billing portal"
|
msgstr "Billing portal"
|
||||||
|
|
||||||
@@ -279,6 +279,10 @@ msgstr "Blog Post"
|
|||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Board"
|
msgstr "Board"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:80
|
||||||
|
msgid "Board analytics (coming soon)"
|
||||||
|
msgstr "Board analytics (coming soon)"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:21
|
#: src/views/boards/components/NewBoardForm.tsx:21
|
||||||
msgid "Board name cannot exceed 100 characters"
|
msgid "Board name cannot exceed 100 characters"
|
||||||
msgstr "Board name cannot exceed 100 characters"
|
msgstr "Board name cannot exceed 100 characters"
|
||||||
@@ -353,9 +357,9 @@ msgstr "Bug Report"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:94
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancel"
|
msgstr "Cancel"
|
||||||
|
|
||||||
@@ -369,12 +373,12 @@ msgstr "Card title"
|
|||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:314
|
||||||
#: src/views/settings/index.tsx:301
|
#: src/views/settings/index.tsx:324
|
||||||
msgid "Change Password"
|
msgid "Change Password"
|
||||||
msgstr "Change Password"
|
msgstr "Change Password"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:190
|
#: src/views/settings/index.tsx:213
|
||||||
msgid "Change the language of the app."
|
msgid "Change the language of the app."
|
||||||
msgstr "Change the language of the app."
|
msgstr "Change the language of the app."
|
||||||
|
|
||||||
@@ -433,16 +437,16 @@ msgstr "completed a checklist item"
|
|||||||
msgid "completed checklist item <0>{0}</0>"
|
msgid "completed checklist item <0>{0}</0>"
|
||||||
msgstr "completed checklist item <0>{0}</0>"
|
msgstr "completed checklist item <0>{0}</0>"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:42
|
#: src/views/settings/components/CustomURLConfirmation.tsx:47
|
||||||
msgid "Confirm URL change"
|
#~ msgid "Confirm URL change"
|
||||||
msgstr "Confirm URL change"
|
#~ msgstr "Confirm URL change"
|
||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
msgid "Confirm your new password"
|
msgid "Confirm your new password"
|
||||||
msgstr "Confirm your new password"
|
msgstr "Confirm your new password"
|
||||||
|
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
#: src/views/settings/index.tsx:235
|
#: src/views/settings/index.tsx:258
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Connect Trello"
|
msgstr "Connect Trello"
|
||||||
|
|
||||||
@@ -450,7 +454,7 @@ msgstr "Connect Trello"
|
|||||||
msgid "Connect your favorite tools to streamline your workflow."
|
msgid "Connect your favorite tools to streamline your workflow."
|
||||||
msgstr "Connect your favorite tools to streamline your workflow."
|
msgstr "Connect your favorite tools to streamline your workflow."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:222
|
#: src/views/settings/index.tsx:245
|
||||||
msgid "Connect your Trello account to import boards."
|
msgid "Connect your Trello account to import boards."
|
||||||
msgstr "Connect your Trello account to import boards."
|
msgstr "Connect your Trello account to import boards."
|
||||||
|
|
||||||
@@ -551,9 +555,13 @@ msgstr "Current password is required"
|
|||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Custom domain"
|
msgstr "Custom domain"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:45
|
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
||||||
msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
|
#~ msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
|
||||||
msgstr "Custom URLs are a premium feature. You'll be directed to upgrade your account."
|
#~ msgstr "Custom URLs are a premium feature. You'll be directed to upgrade your account."
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:74
|
||||||
|
msgid "Custom workspace URL"
|
||||||
|
msgstr "Custom workspace URL"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:41
|
#: src/views/boards/components/TemplateBoards.tsx:41
|
||||||
msgid "Customer Support"
|
msgid "Customer Support"
|
||||||
@@ -572,8 +580,8 @@ msgid "Delete"
|
|||||||
msgstr "Delete"
|
msgstr "Delete"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
#: src/views/settings/index.tsx:309
|
#: src/views/settings/index.tsx:332
|
||||||
#: src/views/settings/index.tsx:319
|
#: src/views/settings/index.tsx:342
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Delete account"
|
msgstr "Delete account"
|
||||||
|
|
||||||
@@ -594,8 +602,8 @@ msgid "Delete list"
|
|||||||
msgstr "Delete list"
|
msgstr "Delete list"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
#: src/views/settings/index.tsx:272
|
#: src/views/settings/index.tsx:295
|
||||||
#: src/views/settings/index.tsx:283
|
#: src/views/settings/index.tsx:306
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Delete workspace"
|
msgstr "Delete workspace"
|
||||||
|
|
||||||
@@ -621,7 +629,7 @@ msgstr "deleted checklist item <0>{0}</0>"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Design"
|
msgstr "Design"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:250
|
#: src/views/settings/index.tsx:273
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Disconnect Trello"
|
msgstr "Disconnect Trello"
|
||||||
|
|
||||||
@@ -629,7 +637,7 @@ msgstr "Disconnect Trello"
|
|||||||
msgid "Discuss and collaborate on cards."
|
msgid "Discuss and collaborate on cards."
|
||||||
msgstr "Discuss and collaborate on cards."
|
msgstr "Discuss and collaborate on cards."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:151
|
#: src/views/settings/index.tsx:162
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Display name"
|
msgstr "Display name"
|
||||||
|
|
||||||
@@ -699,7 +707,7 @@ msgstr "Editing"
|
|||||||
msgid "email"
|
msgid "email"
|
||||||
msgstr "email"
|
msgstr "email"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:163
|
#: src/views/members/components/InviteMemberForm.tsx:161
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
@@ -747,12 +755,12 @@ msgstr "Error deleting label"
|
|||||||
msgid "Error deleting workspace"
|
msgid "Error deleting workspace"
|
||||||
msgstr "Error deleting workspace"
|
msgstr "Error deleting workspace"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:101
|
#: src/views/settings/index.tsx:112
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Error disconnecting Trello"
|
msgstr "Error disconnecting Trello"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:76
|
#: src/views/members/components/InviteMemberForm.tsx:71
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:82
|
#: src/views/members/components/InviteMemberForm.tsx:77
|
||||||
msgid "Error inviting member"
|
msgid "Error inviting member"
|
||||||
msgstr "Error inviting member"
|
msgstr "Error inviting member"
|
||||||
|
|
||||||
@@ -776,7 +784,8 @@ msgstr "Error updating workspace name"
|
|||||||
msgid "Error updating workspace URL"
|
msgid "Error updating workspace URL"
|
||||||
msgstr "Error updating workspace URL"
|
msgstr "Error updating workspace URL"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:132
|
#: src/views/members/components/InviteMemberForm.tsx:130
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:41
|
||||||
msgid "Error upgrading subscription"
|
msgid "Error upgrading subscription"
|
||||||
msgstr "Error upgrading subscription"
|
msgstr "Error upgrading subscription"
|
||||||
|
|
||||||
@@ -847,8 +856,8 @@ msgstr "For long-term sustainability, we recognise all good open source projects
|
|||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Free"
|
msgstr "Free"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:192
|
#: src/views/members/components/InviteMemberForm.tsx:193
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:189
|
||||||
msgid "Free Plan"
|
msgid "Free Plan"
|
||||||
msgstr "Free Plan"
|
msgstr "Free Plan"
|
||||||
|
|
||||||
@@ -1007,24 +1016,24 @@ msgstr "Integrations"
|
|||||||
msgid "Interviewing"
|
msgid "Interviewing"
|
||||||
msgstr "Interviewing"
|
msgstr "Interviewing"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:45
|
#: src/views/members/components/InviteMemberForm.tsx:40
|
||||||
msgid "Invalid email address"
|
msgid "Invalid email address"
|
||||||
msgstr "Invalid email address"
|
msgstr "Invalid email address"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:193
|
#: src/views/members/index.tsx:201
|
||||||
msgid "Invite"
|
msgid "Invite"
|
||||||
msgstr "Invite"
|
msgstr "Invite"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:207
|
#: src/views/members/components/InviteMemberForm.tsx:208
|
||||||
msgid "Invite another"
|
msgid "Invite another"
|
||||||
msgstr "Invite another"
|
msgstr "Invite another"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:112
|
#: src/views/card/components/MemberSelector.tsx:112
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:231
|
#: src/views/members/components/InviteMemberForm.tsx:233
|
||||||
msgid "Invite member"
|
msgid "Invite member"
|
||||||
msgstr "Invite member"
|
msgstr "Invite member"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:195
|
#: src/views/members/components/InviteMemberForm.tsx:196
|
||||||
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
||||||
msgstr "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
msgstr "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
||||||
|
|
||||||
@@ -1055,10 +1064,14 @@ msgstr "Labels"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Labels & Filters"
|
msgstr "Labels & Filters"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:187
|
#: src/views/settings/index.tsx:210
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Language"
|
msgstr "Language"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:67
|
||||||
|
msgid "Launch offer"
|
||||||
|
msgstr "Launch offer"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:83
|
#: src/views/boards/components/TemplateBoards.tsx:83
|
||||||
msgid "Learning"
|
msgid "Learning"
|
||||||
msgstr "Learning"
|
msgstr "Learning"
|
||||||
@@ -1124,12 +1137,12 @@ msgstr "Medium Priority"
|
|||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/views/board/components/NewCardForm.tsx:357
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/card/index.tsx:125
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/members/index.tsx:171
|
#: src/views/members/index.tsx:172
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "Members"
|
msgstr "Members"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/members/index.tsx:167
|
#: src/views/members/index.tsx:168
|
||||||
msgid "Members | {0}"
|
msgid "Members | {0}"
|
||||||
msgstr "Members | {0}"
|
msgstr "Members | {0}"
|
||||||
|
|
||||||
@@ -1137,7 +1150,7 @@ msgstr "Members | {0}"
|
|||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Monthly"
|
msgstr "Monthly"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:92
|
#: src/views/members/components/InviteMemberForm.tsx:93
|
||||||
msgid "monthly billing"
|
msgid "monthly billing"
|
||||||
msgstr "monthly billing"
|
msgstr "monthly billing"
|
||||||
|
|
||||||
@@ -1245,11 +1258,11 @@ msgstr "Offer"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Onboarding"
|
msgstr "Onboarding"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:312
|
#: src/views/settings/index.tsx:335
|
||||||
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
||||||
msgstr "Once you delete your account, there is no going back. This action cannot be undone."
|
msgstr "Once you delete your account, there is no going back. This action cannot be undone."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:275
|
#: src/views/settings/index.tsx:298
|
||||||
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
||||||
msgstr "Once you delete your workspace, there is no going back. This action cannot be undone."
|
msgstr "Once you delete your workspace, there is no going back. This action cannot be undone."
|
||||||
|
|
||||||
@@ -1285,7 +1298,7 @@ msgstr "Passwords do not match"
|
|||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Payment frequency"
|
msgstr "Payment frequency"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:128
|
#: src/views/members/index.tsx:129
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "Pending"
|
msgstr "Pending"
|
||||||
|
|
||||||
@@ -1347,8 +1360,8 @@ msgstr "Please select a file to upload."
|
|||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:173
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:83
|
#: src/views/members/components/InviteMemberForm.tsx:78
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:133
|
#: src/views/members/components/InviteMemberForm.tsx:131
|
||||||
#: src/views/settings/components/Avatar.tsx:40
|
#: src/views/settings/components/Avatar.tsx:40
|
||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
||||||
@@ -1357,6 +1370,7 @@ msgstr "Please select a file to upload."
|
|||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
||||||
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
||||||
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:42
|
||||||
msgid "Please try again later, or contact customer support."
|
msgid "Please try again later, or contact customer support."
|
||||||
msgstr "Please try again later, or contact customer support."
|
msgstr "Please try again later, or contact customer support."
|
||||||
|
|
||||||
@@ -1367,6 +1381,7 @@ msgid "Pricing"
|
|||||||
msgstr "Pricing"
|
msgstr "Pricing"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:56
|
#: src/views/home/components/Pricing.tsx:56
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:86
|
||||||
msgid "Priority email support"
|
msgid "Priority email support"
|
||||||
msgstr "Priority email support"
|
msgstr "Priority email support"
|
||||||
|
|
||||||
@@ -1378,11 +1393,19 @@ msgstr "Privacy policy"
|
|||||||
msgid "Private"
|
msgid "Private"
|
||||||
msgstr "Private"
|
msgstr "Private"
|
||||||
|
|
||||||
|
#: src/views/members/index.tsx:186
|
||||||
|
msgid "Pro Plan"
|
||||||
|
msgstr "Pro Plan"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
|
msgid "Pro Plan ∞"
|
||||||
|
msgstr "Pro Plan ∞"
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:26
|
#: src/views/settings/components/Avatar.tsx:26
|
||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Profile image updated"
|
msgstr "Profile image updated"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:146
|
#: src/views/settings/index.tsx:157
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Profile picture"
|
msgstr "Profile picture"
|
||||||
|
|
||||||
@@ -1418,7 +1441,7 @@ msgstr "Remote"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Remove"
|
msgstr "Remove"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:142
|
#: src/views/members/index.tsx:143
|
||||||
msgid "Remove member"
|
msgid "Remove member"
|
||||||
msgstr "Remove member"
|
msgstr "Remove member"
|
||||||
|
|
||||||
@@ -1478,7 +1501,7 @@ msgstr "Revoke"
|
|||||||
msgid "Roadmap"
|
msgid "Roadmap"
|
||||||
msgstr "Roadmap"
|
msgstr "Roadmap"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:215
|
#: src/views/members/index.tsx:223
|
||||||
msgid "Role"
|
msgid "Role"
|
||||||
msgstr "Role"
|
msgstr "Role"
|
||||||
|
|
||||||
@@ -1531,12 +1554,12 @@ msgid "Senior"
|
|||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
#: src/views/settings/index.tsx:140
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Settings"
|
msgstr "Settings"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:136
|
#: src/views/settings/index.tsx:147
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Settings | {0}"
|
msgstr "Settings | {0}"
|
||||||
|
|
||||||
@@ -1587,6 +1610,10 @@ msgstr "Star on Github"
|
|||||||
msgid "Success"
|
msgid "Success"
|
||||||
msgstr "Success"
|
msgstr "Success"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:55
|
||||||
|
msgid "Supercharge your workspace for just $29/month. Here's what you'll get:"
|
||||||
|
msgstr "Supercharge your workspace for just $29/month. Here's what you'll get:"
|
||||||
|
|
||||||
#: src/components/UserMenu.tsx:180
|
#: src/components/UserMenu.tsx:180
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Support"
|
msgstr "Support"
|
||||||
@@ -1599,8 +1626,8 @@ msgstr "Support the development of the project"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "System"
|
msgstr "System"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:183
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:188
|
||||||
msgid "Team Plan"
|
msgid "Team Plan"
|
||||||
msgstr "Team Plan"
|
msgstr "Team Plan"
|
||||||
|
|
||||||
@@ -1689,7 +1716,7 @@ msgstr "Toggle menu"
|
|||||||
msgid "Track all card changes with detailed activity history."
|
msgid "Track all card changes with detailed activity history."
|
||||||
msgstr "Track all card changes with detailed activity history."
|
msgstr "Track all card changes with detailed activity history."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:94
|
#: src/views/settings/index.tsx:105
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello disconnected"
|
msgstr "Trello disconnected"
|
||||||
|
|
||||||
@@ -1824,6 +1851,10 @@ msgstr "Unlimited comments"
|
|||||||
msgid "Unlimited lists"
|
msgid "Unlimited lists"
|
||||||
msgstr "Unlimited lists"
|
msgstr "Unlimited lists"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:64
|
||||||
|
msgid "Unlimited members"
|
||||||
|
msgstr "Unlimited members"
|
||||||
|
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
||||||
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
||||||
@@ -1857,11 +1888,16 @@ msgstr "updated the title to <0>{0}</0>"
|
|||||||
#~ msgid "updated the title to <0>{toTitle}</0>"
|
#~ msgid "updated the title to <0>{toTitle}</0>"
|
||||||
#~ msgstr "updated the title to <0>{toTitle}</0>"
|
#~ msgstr "updated the title to <0>{toTitle}</0>"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:52
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:99
|
||||||
msgid "Upgrade"
|
msgid "Upgrade"
|
||||||
msgstr "Upgrade"
|
msgstr "Upgrade"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:222
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:52
|
||||||
|
#: src/views/settings/index.tsx:202
|
||||||
|
msgid "Upgrade to Pro"
|
||||||
|
msgstr "Upgrade to Pro"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:224
|
||||||
msgid "Upgrade to Team Plan"
|
msgid "Upgrade to Team Plan"
|
||||||
msgstr "Upgrade to Team Plan"
|
msgstr "Upgrade to Team Plan"
|
||||||
|
|
||||||
@@ -1886,11 +1922,11 @@ msgstr "URL must be at least 3 characters long"
|
|||||||
msgid "Use template"
|
msgid "Use template"
|
||||||
msgstr "Use template"
|
msgstr "Use template"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:209
|
#: src/views/members/index.tsx:217
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "User"
|
msgstr "User"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:77
|
#: src/views/members/components/InviteMemberForm.tsx:72
|
||||||
msgid "User is already a member of this workspace"
|
msgid "User is already a member of this workspace"
|
||||||
msgstr "User is already a member of this workspace"
|
msgstr "User is already a member of this workspace"
|
||||||
|
|
||||||
@@ -1898,11 +1934,11 @@ msgstr "User is already a member of this workspace"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Video"
|
msgstr "Video"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:262
|
#: src/views/settings/index.tsx:285
|
||||||
msgid "View and manage your API keys."
|
msgid "View and manage your API keys."
|
||||||
msgstr "View and manage your API keys."
|
msgstr "View and manage your API keys."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:201
|
#: src/views/settings/index.tsx:224
|
||||||
msgid "View and manage your billing and subscription."
|
msgid "View and manage your billing and subscription."
|
||||||
msgstr "View and manage your billing and subscription."
|
msgstr "View and manage your billing and subscription."
|
||||||
|
|
||||||
@@ -1966,7 +2002,7 @@ msgstr "Workspace"
|
|||||||
msgid "Workspace deleted"
|
msgid "Workspace deleted"
|
||||||
msgstr "Workspace deleted"
|
msgstr "Workspace deleted"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:177
|
#: src/views/settings/index.tsx:188
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Workspace description"
|
msgstr "Workspace description"
|
||||||
|
|
||||||
@@ -1988,7 +2024,7 @@ msgid "Workspace members"
|
|||||||
msgstr "Workspace members"
|
msgstr "Workspace members"
|
||||||
|
|
||||||
#: src/components/NewWorkspaceForm.tsx:81
|
#: src/components/NewWorkspaceForm.tsx:81
|
||||||
#: src/views/settings/index.tsx:158
|
#: src/views/settings/index.tsx:169
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Workspace name"
|
msgstr "Workspace name"
|
||||||
|
|
||||||
@@ -2008,7 +2044,7 @@ msgstr "Workspace name updated"
|
|||||||
msgid "Workspace slug updated"
|
msgid "Workspace slug updated"
|
||||||
msgstr "Workspace slug updated"
|
msgstr "Workspace slug updated"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:167
|
#: src/views/settings/index.tsx:178
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "Workspace URL"
|
msgstr "Workspace URL"
|
||||||
|
|
||||||
@@ -2024,7 +2060,7 @@ msgstr "Yearly"
|
|||||||
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
||||||
msgstr "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
msgstr "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:294
|
#: src/views/settings/index.tsx:317
|
||||||
msgid "You are about to change your password."
|
msgid "You are about to change your password."
|
||||||
msgstr "You are about to change your password."
|
msgstr "You are about to change your password."
|
||||||
|
|
||||||
@@ -2048,6 +2084,10 @@ msgstr "You have been logged in successfully."
|
|||||||
msgid "You have been signed up successfully."
|
msgid "You have been signed up successfully."
|
||||||
msgstr "You have been signed up successfully."
|
msgstr "You have been signed up successfully."
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:186
|
||||||
|
msgid "You have unlimited seats with your Pro Plan. There is no additional charge for new members!"
|
||||||
|
msgstr "You have unlimited seats with your Pro Plan. There is no additional charge for new members!"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
||||||
msgid "Your account has been deleted."
|
msgid "Your account has been deleted."
|
||||||
msgstr "Your account has been deleted."
|
msgstr "Your account has been deleted."
|
||||||
@@ -2068,11 +2108,11 @@ msgstr "Your password has been changed."
|
|||||||
msgid "Your profile image has been updated."
|
msgid "Your profile image has been updated."
|
||||||
msgstr "Your profile image has been updated."
|
msgstr "Your profile image has been updated."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:95
|
#: src/views/settings/index.tsx:106
|
||||||
msgid "Your Trello account has been disconnected."
|
msgid "Your Trello account has been disconnected."
|
||||||
msgstr "Your Trello account has been disconnected."
|
msgstr "Your Trello account has been disconnected."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:244
|
#: src/views/settings/index.tsx:267
|
||||||
msgid "Your Trello account is connected."
|
msgid "Your Trello account is connected."
|
||||||
msgstr "Your Trello account is connected."
|
msgstr "Your Trello account is connected."
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -36,12 +36,12 @@ msgstr "{0} etiquetas"
|
|||||||
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
||||||
msgstr "{boardCount, plural, one {Importar tablero (1)} other {Importar tableros ({boardCount})}}"
|
msgstr "{boardCount, plural, one {Importar tablero (1)} other {Importar tableros ({boardCount})}}"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:91
|
#: src/views/members/components/InviteMemberForm.tsx:92
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$10/month"
|
msgid "$10/month"
|
||||||
msgstr "$10/mes"
|
msgstr "$10/mes"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$8/month"
|
msgid "$8/month"
|
||||||
msgstr "$8/mes"
|
msgstr "$8/mes"
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ msgid "Add label"
|
|||||||
msgstr "Añadir etiqueta"
|
msgstr "Añadir etiqueta"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:130
|
#: src/views/card/components/MemberSelector.tsx:130
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:149
|
#: src/views/members/components/InviteMemberForm.tsx:147
|
||||||
msgid "Add member"
|
msgid "Add member"
|
||||||
msgstr "Añadir miembro"
|
msgstr "Añadir miembro"
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ msgstr "añadió el elemento <0>{0}</0> a la lista de verificación"
|
|||||||
msgid "added label <0>{0}</0>"
|
msgid "added label <0>{0}</0>"
|
||||||
msgstr "añadió la etiqueta <0>{0}</0>"
|
msgstr "añadió la etiqueta <0>{0}</0>"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:186
|
#: src/views/members/components/InviteMemberForm.tsx:187
|
||||||
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
||||||
msgstr "Añadir un nuevo miembro costará {price} adicionales ({billingType}) por asiento."
|
msgstr "Añadir un nuevo miembro costará {price} adicionales ({billingType}) por asiento."
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ msgstr "Todos los sistemas operativos"
|
|||||||
msgid "Already have an account? <0><1>Sign in</1></0>"
|
msgid "Already have an account? <0><1>Sign in</1></0>"
|
||||||
msgstr "¿Ya tienes una cuenta? <0><1>Iniciar sesión</1></0>"
|
msgstr "¿Ya tienes una cuenta? <0><1>Iniciar sesión</1></0>"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:102
|
#: src/views/settings/index.tsx:113
|
||||||
msgid "An error occurred while disconnecting your Trello account."
|
msgid "An error occurred while disconnecting your Trello account."
|
||||||
msgstr "Ocurrió un error al desconectar tu cuenta de Trello."
|
msgstr "Ocurrió un error al desconectar tu cuenta de Trello."
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ msgstr "Ocurrió un error al desconectar tu cuenta de Trello."
|
|||||||
msgid "An unexpected error occurred. Please try again later."
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
msgstr "Ha ocurrido un error inesperado. Por favor, inténtalo de nuevo más tarde."
|
msgstr "Ha ocurrido un error inesperado. Por favor, inténtalo de nuevo más tarde."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:259
|
#: src/views/settings/index.tsx:282
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "Claves API"
|
msgstr "Claves API"
|
||||||
|
|
||||||
@@ -218,20 +218,20 @@ msgstr "Pendientes"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Kanban básico"
|
msgstr "Kanban básico"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed annually"
|
msgid "billed annually"
|
||||||
msgstr "facturado anualmente"
|
msgstr "facturado anualmente"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed monthly"
|
msgid "billed monthly"
|
||||||
msgstr "facturado mensualmente"
|
msgstr "facturado mensualmente"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
#: src/views/settings/index.tsx:198
|
#: src/views/settings/index.tsx:221
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Facturación"
|
msgstr "Facturación"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:208
|
#: src/views/settings/index.tsx:231
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Portal de facturación"
|
msgstr "Portal de facturación"
|
||||||
|
|
||||||
@@ -243,6 +243,10 @@ msgstr "Entrada de blog"
|
|||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Tablero"
|
msgstr "Tablero"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:80
|
||||||
|
msgid "Board analytics (coming soon)"
|
||||||
|
msgstr "Análisis de tableros (próximamente)"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:21
|
#: src/views/boards/components/NewBoardForm.tsx:21
|
||||||
msgid "Board name cannot exceed 100 characters"
|
msgid "Board name cannot exceed 100 characters"
|
||||||
msgstr "El nombre del tablero no puede exceder los 100 caracteres"
|
msgstr "El nombre del tablero no puede exceder los 100 caracteres"
|
||||||
@@ -309,9 +313,9 @@ msgstr "Informe de error"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:94
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
@@ -325,12 +329,12 @@ msgstr "Título de la tarjeta"
|
|||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:314
|
||||||
#: src/views/settings/index.tsx:301
|
#: src/views/settings/index.tsx:324
|
||||||
msgid "Change Password"
|
msgid "Change Password"
|
||||||
msgstr "Cambiar contraseña"
|
msgstr "Cambiar contraseña"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:190
|
#: src/views/settings/index.tsx:213
|
||||||
msgid "Change the language of the app."
|
msgid "Change the language of the app."
|
||||||
msgstr "Cambiar el idioma de la aplicación."
|
msgstr "Cambiar el idioma de la aplicación."
|
||||||
|
|
||||||
@@ -389,16 +393,12 @@ msgstr "completó un elemento de la lista de verificación"
|
|||||||
msgid "completed checklist item <0>{0}</0>"
|
msgid "completed checklist item <0>{0}</0>"
|
||||||
msgstr "completó el elemento <0>{0}</0> de la lista de verificación"
|
msgstr "completó el elemento <0>{0}</0> de la lista de verificación"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:42
|
|
||||||
msgid "Confirm URL change"
|
|
||||||
msgstr "Confirmar cambio de URL"
|
|
||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
msgid "Confirm your new password"
|
msgid "Confirm your new password"
|
||||||
msgstr "Confirma tu nueva contraseña"
|
msgstr "Confirma tu nueva contraseña"
|
||||||
|
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
#: src/views/settings/index.tsx:235
|
#: src/views/settings/index.tsx:258
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Conectar Trello"
|
msgstr "Conectar Trello"
|
||||||
|
|
||||||
@@ -406,7 +406,7 @@ msgstr "Conectar Trello"
|
|||||||
msgid "Connect your favorite tools to streamline your workflow."
|
msgid "Connect your favorite tools to streamline your workflow."
|
||||||
msgstr "Conecta tus herramientas favoritas para agilizar tu flujo de trabajo."
|
msgstr "Conecta tus herramientas favoritas para agilizar tu flujo de trabajo."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:222
|
#: src/views/settings/index.tsx:245
|
||||||
msgid "Connect your Trello account to import boards."
|
msgid "Connect your Trello account to import boards."
|
||||||
msgstr "Conecta tu cuenta de Trello para importar tableros."
|
msgstr "Conecta tu cuenta de Trello para importar tableros."
|
||||||
|
|
||||||
@@ -499,9 +499,9 @@ msgstr "Se requiere la contraseña actual"
|
|||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Dominio personalizado"
|
msgstr "Dominio personalizado"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:45
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:74
|
||||||
msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
|
msgid "Custom workspace URL"
|
||||||
msgstr "Las URL personalizadas son una función premium. Serás dirigido a actualizar tu cuenta."
|
msgstr "URL personalizada del espacio de trabajo"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:41
|
#: src/views/boards/components/TemplateBoards.tsx:41
|
||||||
msgid "Customer Support"
|
msgid "Customer Support"
|
||||||
@@ -520,8 +520,8 @@ msgid "Delete"
|
|||||||
msgstr "Eliminar"
|
msgstr "Eliminar"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
#: src/views/settings/index.tsx:309
|
#: src/views/settings/index.tsx:332
|
||||||
#: src/views/settings/index.tsx:319
|
#: src/views/settings/index.tsx:342
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Eliminar cuenta"
|
msgstr "Eliminar cuenta"
|
||||||
|
|
||||||
@@ -542,8 +542,8 @@ msgid "Delete list"
|
|||||||
msgstr "Eliminar lista"
|
msgstr "Eliminar lista"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
#: src/views/settings/index.tsx:272
|
#: src/views/settings/index.tsx:295
|
||||||
#: src/views/settings/index.tsx:283
|
#: src/views/settings/index.tsx:306
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Eliminar espacio de trabajo"
|
msgstr "Eliminar espacio de trabajo"
|
||||||
|
|
||||||
@@ -569,7 +569,7 @@ msgstr "eliminó el elemento <0>{0}</0> de la lista de verificación"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Diseño"
|
msgstr "Diseño"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:250
|
#: src/views/settings/index.tsx:273
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Desconectar Trello"
|
msgstr "Desconectar Trello"
|
||||||
|
|
||||||
@@ -577,7 +577,7 @@ msgstr "Desconectar Trello"
|
|||||||
msgid "Discuss and collaborate on cards."
|
msgid "Discuss and collaborate on cards."
|
||||||
msgstr "Discute y colabora en las tarjetas."
|
msgstr "Discute y colabora en las tarjetas."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:151
|
#: src/views/settings/index.tsx:162
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Nombre visible"
|
msgstr "Nombre visible"
|
||||||
|
|
||||||
@@ -647,7 +647,7 @@ msgstr "Editando"
|
|||||||
msgid "email"
|
msgid "email"
|
||||||
msgstr "correo electrónico"
|
msgstr "correo electrónico"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:163
|
#: src/views/members/components/InviteMemberForm.tsx:161
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Correo electrónico"
|
msgstr "Correo electrónico"
|
||||||
|
|
||||||
@@ -695,12 +695,12 @@ msgstr "Error al eliminar la etiqueta"
|
|||||||
msgid "Error deleting workspace"
|
msgid "Error deleting workspace"
|
||||||
msgstr "Error al eliminar el espacio de trabajo"
|
msgstr "Error al eliminar el espacio de trabajo"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:101
|
#: src/views/settings/index.tsx:112
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Error al desconectar Trello"
|
msgstr "Error al desconectar Trello"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:76
|
#: src/views/members/components/InviteMemberForm.tsx:71
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:82
|
#: src/views/members/components/InviteMemberForm.tsx:77
|
||||||
msgid "Error inviting member"
|
msgid "Error inviting member"
|
||||||
msgstr "Error al invitar al miembro"
|
msgstr "Error al invitar al miembro"
|
||||||
|
|
||||||
@@ -724,7 +724,8 @@ msgstr "Error al actualizar el nombre del espacio de trabajo"
|
|||||||
msgid "Error updating workspace URL"
|
msgid "Error updating workspace URL"
|
||||||
msgstr "Error al actualizar la URL del espacio de trabajo"
|
msgstr "Error al actualizar la URL del espacio de trabajo"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:132
|
#: src/views/members/components/InviteMemberForm.tsx:130
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:41
|
||||||
msgid "Error upgrading subscription"
|
msgid "Error upgrading subscription"
|
||||||
msgstr "Error al actualizar la suscripción"
|
msgstr "Error al actualizar la suscripción"
|
||||||
|
|
||||||
@@ -794,8 +795,8 @@ msgstr "Para la sostenibilidad a largo plazo, reconocemos que todos los buenos p
|
|||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Gratis"
|
msgstr "Gratis"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:192
|
#: src/views/members/components/InviteMemberForm.tsx:193
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:189
|
||||||
msgid "Free Plan"
|
msgid "Free Plan"
|
||||||
msgstr "Plan gratuito"
|
msgstr "Plan gratuito"
|
||||||
|
|
||||||
@@ -950,24 +951,24 @@ msgstr "Integraciones"
|
|||||||
msgid "Interviewing"
|
msgid "Interviewing"
|
||||||
msgstr "Entrevistando"
|
msgstr "Entrevistando"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:45
|
#: src/views/members/components/InviteMemberForm.tsx:40
|
||||||
msgid "Invalid email address"
|
msgid "Invalid email address"
|
||||||
msgstr "Dirección de correo electrónico no válida"
|
msgstr "Dirección de correo electrónico no válida"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:193
|
#: src/views/members/index.tsx:201
|
||||||
msgid "Invite"
|
msgid "Invite"
|
||||||
msgstr "Invitar"
|
msgstr "Invitar"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:207
|
#: src/views/members/components/InviteMemberForm.tsx:208
|
||||||
msgid "Invite another"
|
msgid "Invite another"
|
||||||
msgstr "Invitar a otro"
|
msgstr "Invitar a otro"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:112
|
#: src/views/card/components/MemberSelector.tsx:112
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:231
|
#: src/views/members/components/InviteMemberForm.tsx:233
|
||||||
msgid "Invite member"
|
msgid "Invite member"
|
||||||
msgstr "Invitar miembro"
|
msgstr "Invitar miembro"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:195
|
#: src/views/members/components/InviteMemberForm.tsx:196
|
||||||
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
||||||
msgstr "Invitar miembros requiere un Plan de Equipo. Serás redirigido para actualizar tu espacio de trabajo."
|
msgstr "Invitar miembros requiere un Plan de Equipo. Serás redirigido para actualizar tu espacio de trabajo."
|
||||||
|
|
||||||
@@ -998,10 +999,14 @@ msgstr "Etiquetas"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Etiquetas y filtros"
|
msgstr "Etiquetas y filtros"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:187
|
#: src/views/settings/index.tsx:210
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Idioma"
|
msgstr "Idioma"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:67
|
||||||
|
msgid "Launch offer"
|
||||||
|
msgstr "Oferta de lanzamiento"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:83
|
#: src/views/boards/components/TemplateBoards.tsx:83
|
||||||
msgid "Learning"
|
msgid "Learning"
|
||||||
msgstr "Aprendizaje"
|
msgstr "Aprendizaje"
|
||||||
@@ -1067,12 +1072,12 @@ msgstr "Prioridad media"
|
|||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/views/board/components/NewCardForm.tsx:357
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/card/index.tsx:125
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/members/index.tsx:171
|
#: src/views/members/index.tsx:172
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "Miembros"
|
msgstr "Miembros"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/members/index.tsx:167
|
#: src/views/members/index.tsx:168
|
||||||
msgid "Members | {0}"
|
msgid "Members | {0}"
|
||||||
msgstr "Miembros | {0}"
|
msgstr "Miembros | {0}"
|
||||||
|
|
||||||
@@ -1080,7 +1085,7 @@ msgstr "Miembros | {0}"
|
|||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Mensual"
|
msgstr "Mensual"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:92
|
#: src/views/members/components/InviteMemberForm.tsx:93
|
||||||
msgid "monthly billing"
|
msgid "monthly billing"
|
||||||
msgstr "facturación mensual"
|
msgstr "facturación mensual"
|
||||||
|
|
||||||
@@ -1180,11 +1185,11 @@ msgstr "Oferta"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Incorporación"
|
msgstr "Incorporación"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:312
|
#: src/views/settings/index.tsx:335
|
||||||
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
||||||
msgstr "Una vez que elimines tu cuenta, no hay vuelta atrás. Esta acción no se puede deshacer."
|
msgstr "Una vez que elimines tu cuenta, no hay vuelta atrás. Esta acción no se puede deshacer."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:275
|
#: src/views/settings/index.tsx:298
|
||||||
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
||||||
msgstr "Una vez que elimines tu espacio de trabajo, no hay vuelta atrás. Esta acción no se puede deshacer."
|
msgstr "Una vez que elimines tu espacio de trabajo, no hay vuelta atrás. Esta acción no se puede deshacer."
|
||||||
|
|
||||||
@@ -1220,7 +1225,7 @@ msgstr "Las contraseñas no coinciden"
|
|||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Frecuencia de pago"
|
msgstr "Frecuencia de pago"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:128
|
#: src/views/members/index.tsx:129
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "Pendiente"
|
msgstr "Pendiente"
|
||||||
|
|
||||||
@@ -1282,8 +1287,8 @@ msgstr "Por favor selecciona un archivo para subir."
|
|||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:173
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:83
|
#: src/views/members/components/InviteMemberForm.tsx:78
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:133
|
#: src/views/members/components/InviteMemberForm.tsx:131
|
||||||
#: src/views/settings/components/Avatar.tsx:40
|
#: src/views/settings/components/Avatar.tsx:40
|
||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
||||||
@@ -1292,6 +1297,7 @@ msgstr "Por favor selecciona un archivo para subir."
|
|||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
||||||
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
||||||
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:42
|
||||||
msgid "Please try again later, or contact customer support."
|
msgid "Please try again later, or contact customer support."
|
||||||
msgstr "Por favor, inténtalo de nuevo más tarde o contacta con atención al cliente."
|
msgstr "Por favor, inténtalo de nuevo más tarde o contacta con atención al cliente."
|
||||||
|
|
||||||
@@ -1302,6 +1308,7 @@ msgid "Pricing"
|
|||||||
msgstr "Precios"
|
msgstr "Precios"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:56
|
#: src/views/home/components/Pricing.tsx:56
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:86
|
||||||
msgid "Priority email support"
|
msgid "Priority email support"
|
||||||
msgstr "Soporte prioritario por email"
|
msgstr "Soporte prioritario por email"
|
||||||
|
|
||||||
@@ -1313,11 +1320,19 @@ msgstr "Política de privacidad"
|
|||||||
msgid "Private"
|
msgid "Private"
|
||||||
msgstr "Privado"
|
msgstr "Privado"
|
||||||
|
|
||||||
|
#: src/views/members/index.tsx:186
|
||||||
|
msgid "Pro Plan"
|
||||||
|
msgstr "Plan Pro"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
|
msgid "Pro Plan ∞"
|
||||||
|
msgstr "Plan Pro ∞"
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:26
|
#: src/views/settings/components/Avatar.tsx:26
|
||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Imagen de perfil actualizada"
|
msgstr "Imagen de perfil actualizada"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:146
|
#: src/views/settings/index.tsx:157
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Foto de perfil"
|
msgstr "Foto de perfil"
|
||||||
|
|
||||||
@@ -1353,7 +1368,7 @@ msgstr "Remoto"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Eliminar"
|
msgstr "Eliminar"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:142
|
#: src/views/members/index.tsx:143
|
||||||
msgid "Remove member"
|
msgid "Remove member"
|
||||||
msgstr "Eliminar miembro"
|
msgstr "Eliminar miembro"
|
||||||
|
|
||||||
@@ -1409,7 +1424,7 @@ msgstr "Revocar"
|
|||||||
msgid "Roadmap"
|
msgid "Roadmap"
|
||||||
msgstr "Hoja de ruta"
|
msgstr "Hoja de ruta"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:215
|
#: src/views/members/index.tsx:223
|
||||||
msgid "Role"
|
msgid "Role"
|
||||||
msgstr "Rol"
|
msgstr "Rol"
|
||||||
|
|
||||||
@@ -1458,12 +1473,12 @@ msgid "Senior"
|
|||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
#: src/views/settings/index.tsx:140
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Configuración"
|
msgstr "Configuración"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:136
|
#: src/views/settings/index.tsx:147
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Configuración | {0}"
|
msgstr "Configuración | {0}"
|
||||||
|
|
||||||
@@ -1514,6 +1529,10 @@ msgstr "Estrella en Github"
|
|||||||
msgid "Success"
|
msgid "Success"
|
||||||
msgstr "Éxito"
|
msgstr "Éxito"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:55
|
||||||
|
msgid "Supercharge your workspace for just $29/month. Here's what you'll get:"
|
||||||
|
msgstr "Potencia tu espacio de trabajo por solo $29/mes. Esto es lo que obtendrás:"
|
||||||
|
|
||||||
#: src/components/UserMenu.tsx:180
|
#: src/components/UserMenu.tsx:180
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Soporte"
|
msgstr "Soporte"
|
||||||
@@ -1526,8 +1545,8 @@ msgstr "Apoya el desarrollo del proyecto"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:183
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:188
|
||||||
msgid "Team Plan"
|
msgid "Team Plan"
|
||||||
msgstr "Plan de Equipo"
|
msgstr "Plan de Equipo"
|
||||||
|
|
||||||
@@ -1612,7 +1631,7 @@ msgstr "Alternar menú"
|
|||||||
msgid "Track all card changes with detailed activity history."
|
msgid "Track all card changes with detailed activity history."
|
||||||
msgstr "Rastrea todos los cambios en las tarjetas con un historial de actividad detallado."
|
msgstr "Rastrea todos los cambios en las tarjetas con un historial de actividad detallado."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:94
|
#: src/views/settings/index.tsx:105
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello desconectado"
|
msgstr "Trello desconectado"
|
||||||
|
|
||||||
@@ -1743,6 +1762,10 @@ msgstr "Comentarios ilimitados"
|
|||||||
msgid "Unlimited lists"
|
msgid "Unlimited lists"
|
||||||
msgstr "Listas ilimitadas"
|
msgstr "Listas ilimitadas"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:64
|
||||||
|
msgid "Unlimited members"
|
||||||
|
msgstr "Miembros ilimitados"
|
||||||
|
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
||||||
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
||||||
@@ -1772,11 +1795,16 @@ msgstr "actualizó el título"
|
|||||||
msgid "updated the title to <0>{0}</0>"
|
msgid "updated the title to <0>{0}</0>"
|
||||||
msgstr "actualizó el título a <0>{0}</0>"
|
msgstr "actualizó el título a <0>{0}</0>"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:52
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:99
|
||||||
msgid "Upgrade"
|
msgid "Upgrade"
|
||||||
msgstr "Actualizar"
|
msgstr "Actualizar"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:222
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:52
|
||||||
|
#: src/views/settings/index.tsx:202
|
||||||
|
msgid "Upgrade to Pro"
|
||||||
|
msgstr "Actualizar a Pro"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:224
|
||||||
msgid "Upgrade to Team Plan"
|
msgid "Upgrade to Team Plan"
|
||||||
msgstr "Actualizar al Plan de Equipo"
|
msgstr "Actualizar al Plan de Equipo"
|
||||||
|
|
||||||
@@ -1801,11 +1829,11 @@ msgstr "La URL debe tener al menos 3 caracteres"
|
|||||||
msgid "Use template"
|
msgid "Use template"
|
||||||
msgstr "Usar plantilla"
|
msgstr "Usar plantilla"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:209
|
#: src/views/members/index.tsx:217
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "Usuario"
|
msgstr "Usuario"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:77
|
#: src/views/members/components/InviteMemberForm.tsx:72
|
||||||
msgid "User is already a member of this workspace"
|
msgid "User is already a member of this workspace"
|
||||||
msgstr "El usuario ya es miembro de este espacio de trabajo"
|
msgstr "El usuario ya es miembro de este espacio de trabajo"
|
||||||
|
|
||||||
@@ -1813,11 +1841,11 @@ msgstr "El usuario ya es miembro de este espacio de trabajo"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Video"
|
msgstr "Video"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:262
|
#: src/views/settings/index.tsx:285
|
||||||
msgid "View and manage your API keys."
|
msgid "View and manage your API keys."
|
||||||
msgstr "Ver y gestionar tus claves API."
|
msgstr "Ver y gestionar tus claves API."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:201
|
#: src/views/settings/index.tsx:224
|
||||||
msgid "View and manage your billing and subscription."
|
msgid "View and manage your billing and subscription."
|
||||||
msgstr "Ver y gestionar tu facturación y suscripción."
|
msgstr "Ver y gestionar tu facturación y suscripción."
|
||||||
|
|
||||||
@@ -1877,7 +1905,7 @@ msgstr "Espacio de trabajo"
|
|||||||
msgid "Workspace deleted"
|
msgid "Workspace deleted"
|
||||||
msgstr "Espacio de trabajo eliminado"
|
msgstr "Espacio de trabajo eliminado"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:177
|
#: src/views/settings/index.tsx:188
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Descripción del espacio de trabajo"
|
msgstr "Descripción del espacio de trabajo"
|
||||||
|
|
||||||
@@ -1899,7 +1927,7 @@ msgid "Workspace members"
|
|||||||
msgstr "Miembros del espacio de trabajo"
|
msgstr "Miembros del espacio de trabajo"
|
||||||
|
|
||||||
#: src/components/NewWorkspaceForm.tsx:81
|
#: src/components/NewWorkspaceForm.tsx:81
|
||||||
#: src/views/settings/index.tsx:158
|
#: src/views/settings/index.tsx:169
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Nombre del espacio de trabajo"
|
msgstr "Nombre del espacio de trabajo"
|
||||||
|
|
||||||
@@ -1919,7 +1947,7 @@ msgstr "Nombre del espacio de trabajo actualizado"
|
|||||||
msgid "Workspace slug updated"
|
msgid "Workspace slug updated"
|
||||||
msgstr "Slug del espacio de trabajo actualizado"
|
msgstr "Slug del espacio de trabajo actualizado"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:167
|
#: src/views/settings/index.tsx:178
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "URL del espacio de trabajo"
|
msgstr "URL del espacio de trabajo"
|
||||||
|
|
||||||
@@ -1935,7 +1963,7 @@ msgstr "Anual"
|
|||||||
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
||||||
msgstr "Sí, ofrecemos un plan gratuito para siempre para uso individual. Sin restricciones, sin muros de pago, sin límites."
|
msgstr "Sí, ofrecemos un plan gratuito para siempre para uso individual. Sin restricciones, sin muros de pago, sin límites."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:294
|
#: src/views/settings/index.tsx:317
|
||||||
msgid "You are about to change your password."
|
msgid "You are about to change your password."
|
||||||
msgstr "Estás a punto de cambiar tu contraseña."
|
msgstr "Estás a punto de cambiar tu contraseña."
|
||||||
|
|
||||||
@@ -1959,6 +1987,10 @@ msgstr "Has iniciado sesión correctamente."
|
|||||||
msgid "You have been signed up successfully."
|
msgid "You have been signed up successfully."
|
||||||
msgstr "Te has registrado correctamente."
|
msgstr "Te has registrado correctamente."
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:186
|
||||||
|
msgid "You have unlimited seats with your Pro Plan. There is no additional charge for new members!"
|
||||||
|
msgstr "Tienes plazas ilimitadas con tu Plan Pro. ¡No hay cargos adicionales por nuevos miembros!"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
||||||
msgid "Your account has been deleted."
|
msgid "Your account has been deleted."
|
||||||
msgstr "Tu cuenta ha sido eliminada."
|
msgstr "Tu cuenta ha sido eliminada."
|
||||||
@@ -1979,11 +2011,11 @@ msgstr "Tu contraseña ha sido cambiada."
|
|||||||
msgid "Your profile image has been updated."
|
msgid "Your profile image has been updated."
|
||||||
msgstr "Tu imagen de perfil ha sido actualizada."
|
msgstr "Tu imagen de perfil ha sido actualizada."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:95
|
#: src/views/settings/index.tsx:106
|
||||||
msgid "Your Trello account has been disconnected."
|
msgid "Your Trello account has been disconnected."
|
||||||
msgstr "Tu cuenta de Trello ha sido desconectada."
|
msgstr "Tu cuenta de Trello ha sido desconectada."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:244
|
#: src/views/settings/index.tsx:267
|
||||||
msgid "Your Trello account is connected."
|
msgid "Your Trello account is connected."
|
||||||
msgstr "Tu cuenta de Trello está conectada."
|
msgstr "Tu cuenta de Trello está conectada."
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -36,12 +36,12 @@ msgstr "{0} étiquettes"
|
|||||||
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
||||||
msgstr "{boardCount, plural, one {Importer le tableau (1)} other {Importer les tableaux ({boardCount})}}"
|
msgstr "{boardCount, plural, one {Importer le tableau (1)} other {Importer les tableaux ({boardCount})}}"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:91
|
#: src/views/members/components/InviteMemberForm.tsx:92
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$10/month"
|
msgid "$10/month"
|
||||||
msgstr "10 $/mois"
|
msgstr "10 $/mois"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$8/month"
|
msgid "$8/month"
|
||||||
msgstr "8 $/mois"
|
msgstr "8 $/mois"
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ msgid "Add label"
|
|||||||
msgstr "Ajouter une étiquette"
|
msgstr "Ajouter une étiquette"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:130
|
#: src/views/card/components/MemberSelector.tsx:130
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:149
|
#: src/views/members/components/InviteMemberForm.tsx:147
|
||||||
msgid "Add member"
|
msgid "Add member"
|
||||||
msgstr "Ajouter un membre"
|
msgstr "Ajouter un membre"
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ msgstr "a ajouté l'élément <0>{0}</0> à la checklist"
|
|||||||
msgid "added label <0>{0}</0>"
|
msgid "added label <0>{0}</0>"
|
||||||
msgstr "a ajouté l'étiquette <0>{0}</0>"
|
msgstr "a ajouté l'étiquette <0>{0}</0>"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:186
|
#: src/views/members/components/InviteMemberForm.tsx:187
|
||||||
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
||||||
msgstr "L'ajout d'un nouveau membre coûtera {price} supplémentaires ({billingType}) par siège."
|
msgstr "L'ajout d'un nouveau membre coûtera {price} supplémentaires ({billingType}) par siège."
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ msgstr "Tous les systèmes opérationnels"
|
|||||||
msgid "Already have an account? <0><1>Sign in</1></0>"
|
msgid "Already have an account? <0><1>Sign in</1></0>"
|
||||||
msgstr "Vous avez déjà un compte ? <0><1>Connectez-vous</1></0>"
|
msgstr "Vous avez déjà un compte ? <0><1>Connectez-vous</1></0>"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:102
|
#: src/views/settings/index.tsx:113
|
||||||
msgid "An error occurred while disconnecting your Trello account."
|
msgid "An error occurred while disconnecting your Trello account."
|
||||||
msgstr "Une erreur s'est produite lors de la déconnexion de votre compte Trello."
|
msgstr "Une erreur s'est produite lors de la déconnexion de votre compte Trello."
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ msgstr "Une erreur s'est produite lors de la déconnexion de votre compte Trello
|
|||||||
msgid "An unexpected error occurred. Please try again later."
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
msgstr "Une erreur inattendue s'est produite. Veuillez réessayer plus tard."
|
msgstr "Une erreur inattendue s'est produite. Veuillez réessayer plus tard."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:259
|
#: src/views/settings/index.tsx:282
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "Clés API"
|
msgstr "Clés API"
|
||||||
|
|
||||||
@@ -218,20 +218,20 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Kanban basique"
|
msgstr "Kanban basique"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed annually"
|
msgid "billed annually"
|
||||||
msgstr "facturation annuelle"
|
msgstr "facturation annuelle"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed monthly"
|
msgid "billed monthly"
|
||||||
msgstr "facturation mensuelle"
|
msgstr "facturation mensuelle"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
#: src/views/settings/index.tsx:198
|
#: src/views/settings/index.tsx:221
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Facturation"
|
msgstr "Facturation"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:208
|
#: src/views/settings/index.tsx:231
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Portail de facturation"
|
msgstr "Portail de facturation"
|
||||||
|
|
||||||
@@ -243,6 +243,10 @@ msgstr "Article de blog"
|
|||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Tableau"
|
msgstr "Tableau"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:80
|
||||||
|
msgid "Board analytics (coming soon)"
|
||||||
|
msgstr "Analyses de tableau (bientôt disponible)"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:21
|
#: src/views/boards/components/NewBoardForm.tsx:21
|
||||||
msgid "Board name cannot exceed 100 characters"
|
msgid "Board name cannot exceed 100 characters"
|
||||||
msgstr "Le nom du tableau ne peut pas dépasser 100 caractères"
|
msgstr "Le nom du tableau ne peut pas dépasser 100 caractères"
|
||||||
@@ -309,9 +313,9 @@ msgstr "Rapport de bug"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:94
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuler"
|
msgstr "Annuler"
|
||||||
|
|
||||||
@@ -325,12 +329,12 @@ msgstr "Titre de la carte"
|
|||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:314
|
||||||
#: src/views/settings/index.tsx:301
|
#: src/views/settings/index.tsx:324
|
||||||
msgid "Change Password"
|
msgid "Change Password"
|
||||||
msgstr "Modifier le mot de passe"
|
msgstr "Modifier le mot de passe"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:190
|
#: src/views/settings/index.tsx:213
|
||||||
msgid "Change the language of the app."
|
msgid "Change the language of the app."
|
||||||
msgstr "Changer la langue de l'application."
|
msgstr "Changer la langue de l'application."
|
||||||
|
|
||||||
@@ -389,16 +393,12 @@ msgstr "a terminé un élément de la checklist"
|
|||||||
msgid "completed checklist item <0>{0}</0>"
|
msgid "completed checklist item <0>{0}</0>"
|
||||||
msgstr "a terminé l'élément <0>{0}</0> de la checklist"
|
msgstr "a terminé l'élément <0>{0}</0> de la checklist"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:42
|
|
||||||
msgid "Confirm URL change"
|
|
||||||
msgstr "Confirmer le changement d'URL"
|
|
||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
msgid "Confirm your new password"
|
msgid "Confirm your new password"
|
||||||
msgstr "Confirmez votre nouveau mot de passe"
|
msgstr "Confirmez votre nouveau mot de passe"
|
||||||
|
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
#: src/views/settings/index.tsx:235
|
#: src/views/settings/index.tsx:258
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Connecter Trello"
|
msgstr "Connecter Trello"
|
||||||
|
|
||||||
@@ -406,7 +406,7 @@ msgstr "Connecter Trello"
|
|||||||
msgid "Connect your favorite tools to streamline your workflow."
|
msgid "Connect your favorite tools to streamline your workflow."
|
||||||
msgstr "Connectez vos outils favoris pour simplifier votre flux de travail."
|
msgstr "Connectez vos outils favoris pour simplifier votre flux de travail."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:222
|
#: src/views/settings/index.tsx:245
|
||||||
msgid "Connect your Trello account to import boards."
|
msgid "Connect your Trello account to import boards."
|
||||||
msgstr "Connectez votre compte Trello pour importer des tableaux."
|
msgstr "Connectez votre compte Trello pour importer des tableaux."
|
||||||
|
|
||||||
@@ -499,9 +499,9 @@ msgstr "Le mot de passe actuel est requis"
|
|||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Domaine personnalisé"
|
msgstr "Domaine personnalisé"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:45
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:74
|
||||||
msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
|
msgid "Custom workspace URL"
|
||||||
msgstr "Les URL personnalisées sont une fonctionnalité premium. Vous serez dirigé vers la mise à niveau de votre compte."
|
msgstr "URL d'espace de travail personnalisée"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:41
|
#: src/views/boards/components/TemplateBoards.tsx:41
|
||||||
msgid "Customer Support"
|
msgid "Customer Support"
|
||||||
@@ -520,8 +520,8 @@ msgid "Delete"
|
|||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
#: src/views/settings/index.tsx:309
|
#: src/views/settings/index.tsx:332
|
||||||
#: src/views/settings/index.tsx:319
|
#: src/views/settings/index.tsx:342
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Supprimer le compte"
|
msgstr "Supprimer le compte"
|
||||||
|
|
||||||
@@ -542,8 +542,8 @@ msgid "Delete list"
|
|||||||
msgstr "Supprimer la liste"
|
msgstr "Supprimer la liste"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
#: src/views/settings/index.tsx:272
|
#: src/views/settings/index.tsx:295
|
||||||
#: src/views/settings/index.tsx:283
|
#: src/views/settings/index.tsx:306
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Supprimer l'espace de travail"
|
msgstr "Supprimer l'espace de travail"
|
||||||
|
|
||||||
@@ -569,7 +569,7 @@ msgstr "a supprimé l'élément <0>{0}</0> de la checklist"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Design"
|
msgstr "Design"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:250
|
#: src/views/settings/index.tsx:273
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Déconnecter Trello"
|
msgstr "Déconnecter Trello"
|
||||||
|
|
||||||
@@ -577,7 +577,7 @@ msgstr "Déconnecter Trello"
|
|||||||
msgid "Discuss and collaborate on cards."
|
msgid "Discuss and collaborate on cards."
|
||||||
msgstr "Discutez et collaborez sur les cartes."
|
msgstr "Discutez et collaborez sur les cartes."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:151
|
#: src/views/settings/index.tsx:162
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Nom d'affichage"
|
msgstr "Nom d'affichage"
|
||||||
|
|
||||||
@@ -647,7 +647,7 @@ msgstr "Édition"
|
|||||||
msgid "email"
|
msgid "email"
|
||||||
msgstr "e-mail"
|
msgstr "e-mail"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:163
|
#: src/views/members/components/InviteMemberForm.tsx:161
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-mail"
|
msgstr "E-mail"
|
||||||
|
|
||||||
@@ -695,12 +695,12 @@ msgstr "Erreur lors de la suppression de l'étiquette"
|
|||||||
msgid "Error deleting workspace"
|
msgid "Error deleting workspace"
|
||||||
msgstr "Erreur lors de la suppression de l'espace de travail"
|
msgstr "Erreur lors de la suppression de l'espace de travail"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:101
|
#: src/views/settings/index.tsx:112
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Erreur lors de la déconnexion de Trello"
|
msgstr "Erreur lors de la déconnexion de Trello"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:76
|
#: src/views/members/components/InviteMemberForm.tsx:71
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:82
|
#: src/views/members/components/InviteMemberForm.tsx:77
|
||||||
msgid "Error inviting member"
|
msgid "Error inviting member"
|
||||||
msgstr "Erreur lors de l'invitation du membre"
|
msgstr "Erreur lors de l'invitation du membre"
|
||||||
|
|
||||||
@@ -724,7 +724,8 @@ msgstr "Erreur lors de la mise à jour du nom de l'espace de travail"
|
|||||||
msgid "Error updating workspace URL"
|
msgid "Error updating workspace URL"
|
||||||
msgstr "Erreur lors de la mise à jour de l'URL de l'espace de travail"
|
msgstr "Erreur lors de la mise à jour de l'URL de l'espace de travail"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:132
|
#: src/views/members/components/InviteMemberForm.tsx:130
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:41
|
||||||
msgid "Error upgrading subscription"
|
msgid "Error upgrading subscription"
|
||||||
msgstr "Erreur lors de la mise à niveau de l'abonnement"
|
msgstr "Erreur lors de la mise à niveau de l'abonnement"
|
||||||
|
|
||||||
@@ -794,8 +795,8 @@ msgstr "Pour une durabilité à long terme, nous reconnaissons que tous les bons
|
|||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Gratuit"
|
msgstr "Gratuit"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:192
|
#: src/views/members/components/InviteMemberForm.tsx:193
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:189
|
||||||
msgid "Free Plan"
|
msgid "Free Plan"
|
||||||
msgstr "Forfait gratuit"
|
msgstr "Forfait gratuit"
|
||||||
|
|
||||||
@@ -950,24 +951,24 @@ msgstr "Intégrations"
|
|||||||
msgid "Interviewing"
|
msgid "Interviewing"
|
||||||
msgstr "Entretien"
|
msgstr "Entretien"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:45
|
#: src/views/members/components/InviteMemberForm.tsx:40
|
||||||
msgid "Invalid email address"
|
msgid "Invalid email address"
|
||||||
msgstr "Adresse e-mail invalide"
|
msgstr "Adresse e-mail invalide"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:193
|
#: src/views/members/index.tsx:201
|
||||||
msgid "Invite"
|
msgid "Invite"
|
||||||
msgstr "Inviter"
|
msgstr "Inviter"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:207
|
#: src/views/members/components/InviteMemberForm.tsx:208
|
||||||
msgid "Invite another"
|
msgid "Invite another"
|
||||||
msgstr "Inviter un autre"
|
msgstr "Inviter un autre"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:112
|
#: src/views/card/components/MemberSelector.tsx:112
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:231
|
#: src/views/members/components/InviteMemberForm.tsx:233
|
||||||
msgid "Invite member"
|
msgid "Invite member"
|
||||||
msgstr "Inviter un membre"
|
msgstr "Inviter un membre"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:195
|
#: src/views/members/components/InviteMemberForm.tsx:196
|
||||||
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
||||||
msgstr "L'invitation de membres nécessite un forfait d'équipe. Vous serez redirigé pour mettre à niveau votre espace de travail."
|
msgstr "L'invitation de membres nécessite un forfait d'équipe. Vous serez redirigé pour mettre à niveau votre espace de travail."
|
||||||
|
|
||||||
@@ -998,10 +999,14 @@ msgstr "Étiquettes"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Étiquettes & filtres"
|
msgstr "Étiquettes & filtres"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:187
|
#: src/views/settings/index.tsx:210
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Langue"
|
msgstr "Langue"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:67
|
||||||
|
msgid "Launch offer"
|
||||||
|
msgstr "Offre de lancement"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:83
|
#: src/views/boards/components/TemplateBoards.tsx:83
|
||||||
msgid "Learning"
|
msgid "Learning"
|
||||||
msgstr "Apprentissage"
|
msgstr "Apprentissage"
|
||||||
@@ -1067,12 +1072,12 @@ msgstr "Priorité moyenne"
|
|||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/views/board/components/NewCardForm.tsx:357
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/card/index.tsx:125
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/members/index.tsx:171
|
#: src/views/members/index.tsx:172
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "Membres"
|
msgstr "Membres"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/members/index.tsx:167
|
#: src/views/members/index.tsx:168
|
||||||
msgid "Members | {0}"
|
msgid "Members | {0}"
|
||||||
msgstr "Membres | {0}"
|
msgstr "Membres | {0}"
|
||||||
|
|
||||||
@@ -1080,7 +1085,7 @@ msgstr "Membres | {0}"
|
|||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Mensuel"
|
msgstr "Mensuel"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:92
|
#: src/views/members/components/InviteMemberForm.tsx:93
|
||||||
msgid "monthly billing"
|
msgid "monthly billing"
|
||||||
msgstr "facturation mensuelle"
|
msgstr "facturation mensuelle"
|
||||||
|
|
||||||
@@ -1180,11 +1185,11 @@ msgstr "Offre"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Intégration"
|
msgstr "Intégration"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:312
|
#: src/views/settings/index.tsx:335
|
||||||
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
||||||
msgstr "Une fois que vous supprimez votre compte, il n'y a pas de retour possible. Cette action ne peut pas être annulée."
|
msgstr "Une fois que vous supprimez votre compte, il n'y a pas de retour possible. Cette action ne peut pas être annulée."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:275
|
#: src/views/settings/index.tsx:298
|
||||||
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
||||||
msgstr "Une fois que vous supprimez votre espace de travail, il n'y a pas de retour possible. Cette action ne peut pas être annulée."
|
msgstr "Une fois que vous supprimez votre espace de travail, il n'y a pas de retour possible. Cette action ne peut pas être annulée."
|
||||||
|
|
||||||
@@ -1220,7 +1225,7 @@ msgstr "Les mots de passe ne correspondent pas"
|
|||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Fréquence de paiement"
|
msgstr "Fréquence de paiement"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:128
|
#: src/views/members/index.tsx:129
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "En attente"
|
msgstr "En attente"
|
||||||
|
|
||||||
@@ -1282,8 +1287,8 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
|
|||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:173
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:83
|
#: src/views/members/components/InviteMemberForm.tsx:78
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:133
|
#: src/views/members/components/InviteMemberForm.tsx:131
|
||||||
#: src/views/settings/components/Avatar.tsx:40
|
#: src/views/settings/components/Avatar.tsx:40
|
||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
||||||
@@ -1292,6 +1297,7 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
|
|||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
||||||
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
||||||
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:42
|
||||||
msgid "Please try again later, or contact customer support."
|
msgid "Please try again later, or contact customer support."
|
||||||
msgstr "Veuillez réessayer plus tard ou contacter le service client."
|
msgstr "Veuillez réessayer plus tard ou contacter le service client."
|
||||||
|
|
||||||
@@ -1302,6 +1308,7 @@ msgid "Pricing"
|
|||||||
msgstr "Tarifs"
|
msgstr "Tarifs"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:56
|
#: src/views/home/components/Pricing.tsx:56
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:86
|
||||||
msgid "Priority email support"
|
msgid "Priority email support"
|
||||||
msgstr "Support par e-mail prioritaire"
|
msgstr "Support par e-mail prioritaire"
|
||||||
|
|
||||||
@@ -1313,11 +1320,19 @@ msgstr "Politique de confidentialité"
|
|||||||
msgid "Private"
|
msgid "Private"
|
||||||
msgstr "Privé"
|
msgstr "Privé"
|
||||||
|
|
||||||
|
#: src/views/members/index.tsx:186
|
||||||
|
msgid "Pro Plan"
|
||||||
|
msgstr "Plan Pro"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
|
msgid "Pro Plan ∞"
|
||||||
|
msgstr "Plan Pro ∞"
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:26
|
#: src/views/settings/components/Avatar.tsx:26
|
||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Image de profil mise à jour"
|
msgstr "Image de profil mise à jour"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:146
|
#: src/views/settings/index.tsx:157
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Photo de profil"
|
msgstr "Photo de profil"
|
||||||
|
|
||||||
@@ -1353,7 +1368,7 @@ msgstr "À distance"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:142
|
#: src/views/members/index.tsx:143
|
||||||
msgid "Remove member"
|
msgid "Remove member"
|
||||||
msgstr "Supprimer le membre"
|
msgstr "Supprimer le membre"
|
||||||
|
|
||||||
@@ -1409,7 +1424,7 @@ msgstr "Révoquer"
|
|||||||
msgid "Roadmap"
|
msgid "Roadmap"
|
||||||
msgstr "Feuille de route"
|
msgstr "Feuille de route"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:215
|
#: src/views/members/index.tsx:223
|
||||||
msgid "Role"
|
msgid "Role"
|
||||||
msgstr "Rôle"
|
msgstr "Rôle"
|
||||||
|
|
||||||
@@ -1458,12 +1473,12 @@ msgid "Senior"
|
|||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
#: src/views/settings/index.tsx:140
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Paramètres"
|
msgstr "Paramètres"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:136
|
#: src/views/settings/index.tsx:147
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Paramètres | {0}"
|
msgstr "Paramètres | {0}"
|
||||||
|
|
||||||
@@ -1514,6 +1529,10 @@ msgstr "Étoile sur Github"
|
|||||||
msgid "Success"
|
msgid "Success"
|
||||||
msgstr "Succès"
|
msgstr "Succès"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:55
|
||||||
|
msgid "Supercharge your workspace for just $29/month. Here's what you'll get:"
|
||||||
|
msgstr "Optimisez votre espace de travail pour seulement 29 $/mois. Voici ce que vous obtiendrez :"
|
||||||
|
|
||||||
#: src/components/UserMenu.tsx:180
|
#: src/components/UserMenu.tsx:180
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Assistance"
|
msgstr "Assistance"
|
||||||
@@ -1526,8 +1545,8 @@ msgstr "Soutenir le développement du projet"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Système"
|
msgstr "Système"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:183
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:188
|
||||||
msgid "Team Plan"
|
msgid "Team Plan"
|
||||||
msgstr "Forfait d'équipe"
|
msgstr "Forfait d'équipe"
|
||||||
|
|
||||||
@@ -1612,7 +1631,7 @@ msgstr "Basculer le menu"
|
|||||||
msgid "Track all card changes with detailed activity history."
|
msgid "Track all card changes with detailed activity history."
|
||||||
msgstr "Suivez tous les changements de cartes avec un historique d'activité détaillé."
|
msgstr "Suivez tous les changements de cartes avec un historique d'activité détaillé."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:94
|
#: src/views/settings/index.tsx:105
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello déconnecté"
|
msgstr "Trello déconnecté"
|
||||||
|
|
||||||
@@ -1743,6 +1762,10 @@ msgstr "Commentaires illimités"
|
|||||||
msgid "Unlimited lists"
|
msgid "Unlimited lists"
|
||||||
msgstr "Listes illimitées"
|
msgstr "Listes illimitées"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:64
|
||||||
|
msgid "Unlimited members"
|
||||||
|
msgstr "Membres illimités"
|
||||||
|
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
||||||
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
||||||
@@ -1772,11 +1795,16 @@ msgstr "a mis à jour le titre"
|
|||||||
msgid "updated the title to <0>{0}</0>"
|
msgid "updated the title to <0>{0}</0>"
|
||||||
msgstr "a mis à jour le titre en <0>{0}</0>"
|
msgstr "a mis à jour le titre en <0>{0}</0>"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:52
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:99
|
||||||
msgid "Upgrade"
|
msgid "Upgrade"
|
||||||
msgstr "Mettre à niveau"
|
msgstr "Mettre à niveau"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:222
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:52
|
||||||
|
#: src/views/settings/index.tsx:202
|
||||||
|
msgid "Upgrade to Pro"
|
||||||
|
msgstr "Passer à Pro"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:224
|
||||||
msgid "Upgrade to Team Plan"
|
msgid "Upgrade to Team Plan"
|
||||||
msgstr "Passer au forfait d'équipe"
|
msgstr "Passer au forfait d'équipe"
|
||||||
|
|
||||||
@@ -1801,11 +1829,11 @@ msgstr "L'URL doit comporter au moins 3 caractères"
|
|||||||
msgid "Use template"
|
msgid "Use template"
|
||||||
msgstr "Utiliser le modèle"
|
msgstr "Utiliser le modèle"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:209
|
#: src/views/members/index.tsx:217
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "Utilisateur"
|
msgstr "Utilisateur"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:77
|
#: src/views/members/components/InviteMemberForm.tsx:72
|
||||||
msgid "User is already a member of this workspace"
|
msgid "User is already a member of this workspace"
|
||||||
msgstr "L'utilisateur est déjà membre de cet espace de travail"
|
msgstr "L'utilisateur est déjà membre de cet espace de travail"
|
||||||
|
|
||||||
@@ -1813,11 +1841,11 @@ msgstr "L'utilisateur est déjà membre de cet espace de travail"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Vidéo"
|
msgstr "Vidéo"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:262
|
#: src/views/settings/index.tsx:285
|
||||||
msgid "View and manage your API keys."
|
msgid "View and manage your API keys."
|
||||||
msgstr "Consultez et gérez vos clés API."
|
msgstr "Consultez et gérez vos clés API."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:201
|
#: src/views/settings/index.tsx:224
|
||||||
msgid "View and manage your billing and subscription."
|
msgid "View and manage your billing and subscription."
|
||||||
msgstr "Consultez et gérez votre facturation et votre abonnement."
|
msgstr "Consultez et gérez votre facturation et votre abonnement."
|
||||||
|
|
||||||
@@ -1877,7 +1905,7 @@ msgstr "Espace de travail"
|
|||||||
msgid "Workspace deleted"
|
msgid "Workspace deleted"
|
||||||
msgstr "Espace de travail supprimé"
|
msgstr "Espace de travail supprimé"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:177
|
#: src/views/settings/index.tsx:188
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Description de l'espace de travail"
|
msgstr "Description de l'espace de travail"
|
||||||
|
|
||||||
@@ -1899,7 +1927,7 @@ msgid "Workspace members"
|
|||||||
msgstr "Membres de l'espace de travail"
|
msgstr "Membres de l'espace de travail"
|
||||||
|
|
||||||
#: src/components/NewWorkspaceForm.tsx:81
|
#: src/components/NewWorkspaceForm.tsx:81
|
||||||
#: src/views/settings/index.tsx:158
|
#: src/views/settings/index.tsx:169
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Nom de l'espace de travail"
|
msgstr "Nom de l'espace de travail"
|
||||||
|
|
||||||
@@ -1919,7 +1947,7 @@ msgstr "Nom de l'espace de travail mis à jour"
|
|||||||
msgid "Workspace slug updated"
|
msgid "Workspace slug updated"
|
||||||
msgstr "Slug de l'espace de travail mis à jour"
|
msgstr "Slug de l'espace de travail mis à jour"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:167
|
#: src/views/settings/index.tsx:178
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "URL de l'espace de travail"
|
msgstr "URL de l'espace de travail"
|
||||||
|
|
||||||
@@ -1935,7 +1963,7 @@ msgstr "Annuel"
|
|||||||
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
||||||
msgstr "Oui, nous proposons un plan gratuit à vie pour un usage individuel. Aucune restriction, aucun paywall, aucune limite."
|
msgstr "Oui, nous proposons un plan gratuit à vie pour un usage individuel. Aucune restriction, aucun paywall, aucune limite."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:294
|
#: src/views/settings/index.tsx:317
|
||||||
msgid "You are about to change your password."
|
msgid "You are about to change your password."
|
||||||
msgstr "Vous êtes sur le point de modifier votre mot de passe."
|
msgstr "Vous êtes sur le point de modifier votre mot de passe."
|
||||||
|
|
||||||
@@ -1959,6 +1987,10 @@ msgstr "Vous vous êtes connecté avec succès."
|
|||||||
msgid "You have been signed up successfully."
|
msgid "You have been signed up successfully."
|
||||||
msgstr "Vous vous êtes inscrit avec succès."
|
msgstr "Vous vous êtes inscrit avec succès."
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:186
|
||||||
|
msgid "You have unlimited seats with your Pro Plan. There is no additional charge for new members!"
|
||||||
|
msgstr "Vous disposez de places illimitées avec votre Plan Pro. Il n'y a pas de frais supplémentaires pour les nouveaux membres !"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
||||||
msgid "Your account has been deleted."
|
msgid "Your account has been deleted."
|
||||||
msgstr "Votre compte a été supprimé."
|
msgstr "Votre compte a été supprimé."
|
||||||
@@ -1979,11 +2011,11 @@ msgstr "Votre mot de passe a été modifié."
|
|||||||
msgid "Your profile image has been updated."
|
msgid "Your profile image has been updated."
|
||||||
msgstr "Votre image de profil a été mise à jour."
|
msgstr "Votre image de profil a été mise à jour."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:95
|
#: src/views/settings/index.tsx:106
|
||||||
msgid "Your Trello account has been disconnected."
|
msgid "Your Trello account has been disconnected."
|
||||||
msgstr "Votre compte Trello a été déconnecté."
|
msgstr "Votre compte Trello a été déconnecté."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:244
|
#: src/views/settings/index.tsx:267
|
||||||
msgid "Your Trello account is connected."
|
msgid "Your Trello account is connected."
|
||||||
msgstr "Votre compte Trello est connecté."
|
msgstr "Votre compte Trello est connecté."
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -36,12 +36,12 @@ msgstr "{0} etichette"
|
|||||||
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
||||||
msgstr "{boardCount, plural, one {Importa bacheca (1)} other {Importa bacheche ({boardCount})}}"
|
msgstr "{boardCount, plural, one {Importa bacheca (1)} other {Importa bacheche ({boardCount})}}"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:91
|
#: src/views/members/components/InviteMemberForm.tsx:92
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$10/month"
|
msgid "$10/month"
|
||||||
msgstr "$10/mese"
|
msgstr "$10/mese"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$8/month"
|
msgid "$8/month"
|
||||||
msgstr "$8/mese"
|
msgstr "$8/mese"
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ msgid "Add label"
|
|||||||
msgstr "Aggiungi etichetta"
|
msgstr "Aggiungi etichetta"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:130
|
#: src/views/card/components/MemberSelector.tsx:130
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:149
|
#: src/views/members/components/InviteMemberForm.tsx:147
|
||||||
msgid "Add member"
|
msgid "Add member"
|
||||||
msgstr "Aggiungi membro"
|
msgstr "Aggiungi membro"
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ msgstr "ha aggiunto l'elemento <0>{0}</0> alla checklist"
|
|||||||
msgid "added label <0>{0}</0>"
|
msgid "added label <0>{0}</0>"
|
||||||
msgstr "ha aggiunto l'etichetta <0>{0}</0>"
|
msgstr "ha aggiunto l'etichetta <0>{0}</0>"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:186
|
#: src/views/members/components/InviteMemberForm.tsx:187
|
||||||
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
||||||
msgstr "L'aggiunta di un nuovo membro costerà un supplemento di {price} ({billingType}) per posto."
|
msgstr "L'aggiunta di un nuovo membro costerà un supplemento di {price} ({billingType}) per posto."
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ msgstr "Tutti i sistemi operativi"
|
|||||||
msgid "Already have an account? <0><1>Sign in</1></0>"
|
msgid "Already have an account? <0><1>Sign in</1></0>"
|
||||||
msgstr "Hai già un account? <0><1>Accedi</1></0>"
|
msgstr "Hai già un account? <0><1>Accedi</1></0>"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:102
|
#: src/views/settings/index.tsx:113
|
||||||
msgid "An error occurred while disconnecting your Trello account."
|
msgid "An error occurred while disconnecting your Trello account."
|
||||||
msgstr "Si è verificato un errore durante la disconnessione del tuo account Trello."
|
msgstr "Si è verificato un errore durante la disconnessione del tuo account Trello."
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ msgstr "Si è verificato un errore durante la disconnessione del tuo account Tre
|
|||||||
msgid "An unexpected error occurred. Please try again later."
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
msgstr "Si è verificato un errore imprevisto. Riprova più tardi."
|
msgstr "Si è verificato un errore imprevisto. Riprova più tardi."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:259
|
#: src/views/settings/index.tsx:282
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "Chiavi API"
|
msgstr "Chiavi API"
|
||||||
|
|
||||||
@@ -218,20 +218,20 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Kanban base"
|
msgstr "Kanban base"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed annually"
|
msgid "billed annually"
|
||||||
msgstr "fatturato annualmente"
|
msgstr "fatturato annualmente"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed monthly"
|
msgid "billed monthly"
|
||||||
msgstr "fatturato mensilmente"
|
msgstr "fatturato mensilmente"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
#: src/views/settings/index.tsx:198
|
#: src/views/settings/index.tsx:221
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Fatturazione"
|
msgstr "Fatturazione"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:208
|
#: src/views/settings/index.tsx:231
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Portale di fatturazione"
|
msgstr "Portale di fatturazione"
|
||||||
|
|
||||||
@@ -243,6 +243,10 @@ msgstr "Post del blog"
|
|||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Bacheca"
|
msgstr "Bacheca"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:80
|
||||||
|
msgid "Board analytics (coming soon)"
|
||||||
|
msgstr "Analisi della bacheca (prossimamente)"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:21
|
#: src/views/boards/components/NewBoardForm.tsx:21
|
||||||
msgid "Board name cannot exceed 100 characters"
|
msgid "Board name cannot exceed 100 characters"
|
||||||
msgstr "Il nome della bacheca non può superare i 100 caratteri"
|
msgstr "Il nome della bacheca non può superare i 100 caratteri"
|
||||||
@@ -309,9 +313,9 @@ msgstr "Segnalazione bug"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:94
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annulla"
|
msgstr "Annulla"
|
||||||
|
|
||||||
@@ -325,12 +329,12 @@ msgstr "Titolo della carta"
|
|||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:314
|
||||||
#: src/views/settings/index.tsx:301
|
#: src/views/settings/index.tsx:324
|
||||||
msgid "Change Password"
|
msgid "Change Password"
|
||||||
msgstr "Cambia password"
|
msgstr "Cambia password"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:190
|
#: src/views/settings/index.tsx:213
|
||||||
msgid "Change the language of the app."
|
msgid "Change the language of the app."
|
||||||
msgstr "Cambia la lingua dell'app."
|
msgstr "Cambia la lingua dell'app."
|
||||||
|
|
||||||
@@ -389,16 +393,12 @@ msgstr "ha completato un elemento della checklist"
|
|||||||
msgid "completed checklist item <0>{0}</0>"
|
msgid "completed checklist item <0>{0}</0>"
|
||||||
msgstr "ha completato l'elemento <0>{0}</0> della checklist"
|
msgstr "ha completato l'elemento <0>{0}</0> della checklist"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:42
|
|
||||||
msgid "Confirm URL change"
|
|
||||||
msgstr "Conferma modifica URL"
|
|
||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
msgid "Confirm your new password"
|
msgid "Confirm your new password"
|
||||||
msgstr "Conferma la tua nuova password"
|
msgstr "Conferma la tua nuova password"
|
||||||
|
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
#: src/views/settings/index.tsx:235
|
#: src/views/settings/index.tsx:258
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Connetti Trello"
|
msgstr "Connetti Trello"
|
||||||
|
|
||||||
@@ -406,7 +406,7 @@ msgstr "Connetti Trello"
|
|||||||
msgid "Connect your favorite tools to streamline your workflow."
|
msgid "Connect your favorite tools to streamline your workflow."
|
||||||
msgstr "Connetti i tuoi strumenti preferiti per semplificare il tuo flusso di lavoro."
|
msgstr "Connetti i tuoi strumenti preferiti per semplificare il tuo flusso di lavoro."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:222
|
#: src/views/settings/index.tsx:245
|
||||||
msgid "Connect your Trello account to import boards."
|
msgid "Connect your Trello account to import boards."
|
||||||
msgstr "Connetti il tuo account Trello per importare le bacheche."
|
msgstr "Connetti il tuo account Trello per importare le bacheche."
|
||||||
|
|
||||||
@@ -499,9 +499,9 @@ msgstr "La password attuale è obbligatoria"
|
|||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Dominio personalizzato"
|
msgstr "Dominio personalizzato"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:45
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:74
|
||||||
msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
|
msgid "Custom workspace URL"
|
||||||
msgstr "Gli URL personalizzati sono una funzionalità premium. Sarai indirizzato all'aggiornamento del tuo account."
|
msgstr "URL personalizzato dell'area di lavoro"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:41
|
#: src/views/boards/components/TemplateBoards.tsx:41
|
||||||
msgid "Customer Support"
|
msgid "Customer Support"
|
||||||
@@ -520,8 +520,8 @@ msgid "Delete"
|
|||||||
msgstr "Elimina"
|
msgstr "Elimina"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
#: src/views/settings/index.tsx:309
|
#: src/views/settings/index.tsx:332
|
||||||
#: src/views/settings/index.tsx:319
|
#: src/views/settings/index.tsx:342
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Elimina account"
|
msgstr "Elimina account"
|
||||||
|
|
||||||
@@ -542,8 +542,8 @@ msgid "Delete list"
|
|||||||
msgstr "Elimina lista"
|
msgstr "Elimina lista"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
#: src/views/settings/index.tsx:272
|
#: src/views/settings/index.tsx:295
|
||||||
#: src/views/settings/index.tsx:283
|
#: src/views/settings/index.tsx:306
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Elimina spazio di lavoro"
|
msgstr "Elimina spazio di lavoro"
|
||||||
|
|
||||||
@@ -569,7 +569,7 @@ msgstr "ha eliminato l'elemento <0>{0}</0> della checklist"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Design"
|
msgstr "Design"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:250
|
#: src/views/settings/index.tsx:273
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Disconnetti Trello"
|
msgstr "Disconnetti Trello"
|
||||||
|
|
||||||
@@ -577,7 +577,7 @@ msgstr "Disconnetti Trello"
|
|||||||
msgid "Discuss and collaborate on cards."
|
msgid "Discuss and collaborate on cards."
|
||||||
msgstr "Discuti e collabora sulle schede."
|
msgstr "Discuti e collabora sulle schede."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:151
|
#: src/views/settings/index.tsx:162
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Nome visualizzato"
|
msgstr "Nome visualizzato"
|
||||||
|
|
||||||
@@ -647,7 +647,7 @@ msgstr "Modifica"
|
|||||||
msgid "email"
|
msgid "email"
|
||||||
msgstr "email"
|
msgstr "email"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:163
|
#: src/views/members/components/InviteMemberForm.tsx:161
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
@@ -695,12 +695,12 @@ msgstr "Errore durante l'eliminazione dell'etichetta"
|
|||||||
msgid "Error deleting workspace"
|
msgid "Error deleting workspace"
|
||||||
msgstr "Errore durante l'eliminazione dell'area di lavoro"
|
msgstr "Errore durante l'eliminazione dell'area di lavoro"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:101
|
#: src/views/settings/index.tsx:112
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Errore durante la disconnessione da Trello"
|
msgstr "Errore durante la disconnessione da Trello"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:76
|
#: src/views/members/components/InviteMemberForm.tsx:71
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:82
|
#: src/views/members/components/InviteMemberForm.tsx:77
|
||||||
msgid "Error inviting member"
|
msgid "Error inviting member"
|
||||||
msgstr "Errore durante l'invito del membro"
|
msgstr "Errore durante l'invito del membro"
|
||||||
|
|
||||||
@@ -724,7 +724,8 @@ msgstr "Errore durante l'aggiornamento del nome dell'area di lavoro"
|
|||||||
msgid "Error updating workspace URL"
|
msgid "Error updating workspace URL"
|
||||||
msgstr "Errore durante l'aggiornamento dell'URL dell'area di lavoro"
|
msgstr "Errore durante l'aggiornamento dell'URL dell'area di lavoro"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:132
|
#: src/views/members/components/InviteMemberForm.tsx:130
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:41
|
||||||
msgid "Error upgrading subscription"
|
msgid "Error upgrading subscription"
|
||||||
msgstr "Errore nell'aggiornamento dell'abbonamento"
|
msgstr "Errore nell'aggiornamento dell'abbonamento"
|
||||||
|
|
||||||
@@ -794,8 +795,8 @@ msgstr "Per la sostenibilità a lungo termine, riconosciamo che tutti i buoni pr
|
|||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Gratuito"
|
msgstr "Gratuito"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:192
|
#: src/views/members/components/InviteMemberForm.tsx:193
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:189
|
||||||
msgid "Free Plan"
|
msgid "Free Plan"
|
||||||
msgstr "Piano gratuito"
|
msgstr "Piano gratuito"
|
||||||
|
|
||||||
@@ -950,24 +951,24 @@ msgstr "Integrazioni"
|
|||||||
msgid "Interviewing"
|
msgid "Interviewing"
|
||||||
msgstr "Colloquio"
|
msgstr "Colloquio"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:45
|
#: src/views/members/components/InviteMemberForm.tsx:40
|
||||||
msgid "Invalid email address"
|
msgid "Invalid email address"
|
||||||
msgstr "Indirizzo email non valido"
|
msgstr "Indirizzo email non valido"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:193
|
#: src/views/members/index.tsx:201
|
||||||
msgid "Invite"
|
msgid "Invite"
|
||||||
msgstr "Invita"
|
msgstr "Invita"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:207
|
#: src/views/members/components/InviteMemberForm.tsx:208
|
||||||
msgid "Invite another"
|
msgid "Invite another"
|
||||||
msgstr "Invita un altro"
|
msgstr "Invita un altro"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:112
|
#: src/views/card/components/MemberSelector.tsx:112
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:231
|
#: src/views/members/components/InviteMemberForm.tsx:233
|
||||||
msgid "Invite member"
|
msgid "Invite member"
|
||||||
msgstr "Invita membro"
|
msgstr "Invita membro"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:195
|
#: src/views/members/components/InviteMemberForm.tsx:196
|
||||||
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
||||||
msgstr "L'invito di membri richiede un Piano Team. Sarai reindirizzato per aggiornare il tuo spazio di lavoro."
|
msgstr "L'invito di membri richiede un Piano Team. Sarai reindirizzato per aggiornare il tuo spazio di lavoro."
|
||||||
|
|
||||||
@@ -998,10 +999,14 @@ msgstr "Etichette"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Etichette & Filtri"
|
msgstr "Etichette & Filtri"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:187
|
#: src/views/settings/index.tsx:210
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Lingua"
|
msgstr "Lingua"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:67
|
||||||
|
msgid "Launch offer"
|
||||||
|
msgstr "Offerta di lancio"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:83
|
#: src/views/boards/components/TemplateBoards.tsx:83
|
||||||
msgid "Learning"
|
msgid "Learning"
|
||||||
msgstr "Apprendimento"
|
msgstr "Apprendimento"
|
||||||
@@ -1067,12 +1072,12 @@ msgstr "Media priorità"
|
|||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/views/board/components/NewCardForm.tsx:357
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/card/index.tsx:125
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/members/index.tsx:171
|
#: src/views/members/index.tsx:172
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "Membri"
|
msgstr "Membri"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/members/index.tsx:167
|
#: src/views/members/index.tsx:168
|
||||||
msgid "Members | {0}"
|
msgid "Members | {0}"
|
||||||
msgstr "Membri | {0}"
|
msgstr "Membri | {0}"
|
||||||
|
|
||||||
@@ -1080,7 +1085,7 @@ msgstr "Membri | {0}"
|
|||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Mensile"
|
msgstr "Mensile"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:92
|
#: src/views/members/components/InviteMemberForm.tsx:93
|
||||||
msgid "monthly billing"
|
msgid "monthly billing"
|
||||||
msgstr "fatturazione mensile"
|
msgstr "fatturazione mensile"
|
||||||
|
|
||||||
@@ -1180,11 +1185,11 @@ msgstr "Offerta"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Inserimento"
|
msgstr "Inserimento"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:312
|
#: src/views/settings/index.tsx:335
|
||||||
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
||||||
msgstr "Una volta eliminato il tuo account, non si può tornare indietro. Questa azione non può essere annullata."
|
msgstr "Una volta eliminato il tuo account, non si può tornare indietro. Questa azione non può essere annullata."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:275
|
#: src/views/settings/index.tsx:298
|
||||||
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
||||||
msgstr "Una volta eliminata l'area di lavoro, non si può tornare indietro. Questa azione non può essere annullata."
|
msgstr "Una volta eliminata l'area di lavoro, non si può tornare indietro. Questa azione non può essere annullata."
|
||||||
|
|
||||||
@@ -1220,7 +1225,7 @@ msgstr "Le password non corrispondono"
|
|||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Frequenza di pagamento"
|
msgstr "Frequenza di pagamento"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:128
|
#: src/views/members/index.tsx:129
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "In attesa"
|
msgstr "In attesa"
|
||||||
|
|
||||||
@@ -1282,8 +1287,8 @@ msgstr "Seleziona un file da caricare."
|
|||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:173
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:83
|
#: src/views/members/components/InviteMemberForm.tsx:78
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:133
|
#: src/views/members/components/InviteMemberForm.tsx:131
|
||||||
#: src/views/settings/components/Avatar.tsx:40
|
#: src/views/settings/components/Avatar.tsx:40
|
||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
||||||
@@ -1292,6 +1297,7 @@ msgstr "Seleziona un file da caricare."
|
|||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
||||||
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
||||||
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:42
|
||||||
msgid "Please try again later, or contact customer support."
|
msgid "Please try again later, or contact customer support."
|
||||||
msgstr "Riprova più tardi o contatta l'assistenza clienti."
|
msgstr "Riprova più tardi o contatta l'assistenza clienti."
|
||||||
|
|
||||||
@@ -1302,6 +1308,7 @@ msgid "Pricing"
|
|||||||
msgstr "Prezzi"
|
msgstr "Prezzi"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:56
|
#: src/views/home/components/Pricing.tsx:56
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:86
|
||||||
msgid "Priority email support"
|
msgid "Priority email support"
|
||||||
msgstr "Supporto email prioritario"
|
msgstr "Supporto email prioritario"
|
||||||
|
|
||||||
@@ -1313,11 +1320,19 @@ msgstr "Informativa sulla privacy"
|
|||||||
msgid "Private"
|
msgid "Private"
|
||||||
msgstr "Privato"
|
msgstr "Privato"
|
||||||
|
|
||||||
|
#: src/views/members/index.tsx:186
|
||||||
|
msgid "Pro Plan"
|
||||||
|
msgstr "Piano Pro"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
|
msgid "Pro Plan ∞"
|
||||||
|
msgstr "Piano Pro ∞"
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:26
|
#: src/views/settings/components/Avatar.tsx:26
|
||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Immagine del profilo aggiornata"
|
msgstr "Immagine del profilo aggiornata"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:146
|
#: src/views/settings/index.tsx:157
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Immagine del profilo"
|
msgstr "Immagine del profilo"
|
||||||
|
|
||||||
@@ -1353,7 +1368,7 @@ msgstr "Remoto"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Rimuovi"
|
msgstr "Rimuovi"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:142
|
#: src/views/members/index.tsx:143
|
||||||
msgid "Remove member"
|
msgid "Remove member"
|
||||||
msgstr "Rimuovi membro"
|
msgstr "Rimuovi membro"
|
||||||
|
|
||||||
@@ -1409,7 +1424,7 @@ msgstr "Revoca"
|
|||||||
msgid "Roadmap"
|
msgid "Roadmap"
|
||||||
msgstr "Roadmap"
|
msgstr "Roadmap"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:215
|
#: src/views/members/index.tsx:223
|
||||||
msgid "Role"
|
msgid "Role"
|
||||||
msgstr "Ruolo"
|
msgstr "Ruolo"
|
||||||
|
|
||||||
@@ -1458,12 +1473,12 @@ msgid "Senior"
|
|||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
#: src/views/settings/index.tsx:140
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Impostazioni"
|
msgstr "Impostazioni"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:136
|
#: src/views/settings/index.tsx:147
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Impostazioni | {0}"
|
msgstr "Impostazioni | {0}"
|
||||||
|
|
||||||
@@ -1514,6 +1529,10 @@ msgstr "Metti una stella su Github"
|
|||||||
msgid "Success"
|
msgid "Success"
|
||||||
msgstr "Operazione riuscita"
|
msgstr "Operazione riuscita"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:55
|
||||||
|
msgid "Supercharge your workspace for just $29/month. Here's what you'll get:"
|
||||||
|
msgstr "Potenzia la tua area di lavoro per soli $29/mese. Ecco cosa otterrai:"
|
||||||
|
|
||||||
#: src/components/UserMenu.tsx:180
|
#: src/components/UserMenu.tsx:180
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Supporto"
|
msgstr "Supporto"
|
||||||
@@ -1526,8 +1545,8 @@ msgstr "Sostieni lo sviluppo del progetto"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Sistema"
|
msgstr "Sistema"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:183
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:188
|
||||||
msgid "Team Plan"
|
msgid "Team Plan"
|
||||||
msgstr "Piano Team"
|
msgstr "Piano Team"
|
||||||
|
|
||||||
@@ -1612,7 +1631,7 @@ msgstr "Attiva/disattiva menu"
|
|||||||
msgid "Track all card changes with detailed activity history."
|
msgid "Track all card changes with detailed activity history."
|
||||||
msgstr "Tieni traccia di tutte le modifiche alle schede con una cronologia dettagliata delle attività."
|
msgstr "Tieni traccia di tutte le modifiche alle schede con una cronologia dettagliata delle attività."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:94
|
#: src/views/settings/index.tsx:105
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello disconnesso"
|
msgstr "Trello disconnesso"
|
||||||
|
|
||||||
@@ -1743,6 +1762,10 @@ msgstr "Commenti illimitati"
|
|||||||
msgid "Unlimited lists"
|
msgid "Unlimited lists"
|
||||||
msgstr "Liste illimitate"
|
msgstr "Liste illimitate"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:64
|
||||||
|
msgid "Unlimited members"
|
||||||
|
msgstr "Membri illimitati"
|
||||||
|
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
||||||
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
||||||
@@ -1772,11 +1795,16 @@ msgstr "ha aggiornato il titolo"
|
|||||||
msgid "updated the title to <0>{0}</0>"
|
msgid "updated the title to <0>{0}</0>"
|
||||||
msgstr "ha aggiornato il titolo in <0>{0}</0>"
|
msgstr "ha aggiornato il titolo in <0>{0}</0>"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:52
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:99
|
||||||
msgid "Upgrade"
|
msgid "Upgrade"
|
||||||
msgstr "Aggiorna"
|
msgstr "Aggiorna"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:222
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:52
|
||||||
|
#: src/views/settings/index.tsx:202
|
||||||
|
msgid "Upgrade to Pro"
|
||||||
|
msgstr "Passa a Pro"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:224
|
||||||
msgid "Upgrade to Team Plan"
|
msgid "Upgrade to Team Plan"
|
||||||
msgstr "Passa al Piano Team"
|
msgstr "Passa al Piano Team"
|
||||||
|
|
||||||
@@ -1801,11 +1829,11 @@ msgstr "L'URL deve contenere almeno 3 caratteri"
|
|||||||
msgid "Use template"
|
msgid "Use template"
|
||||||
msgstr "Usa template"
|
msgstr "Usa template"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:209
|
#: src/views/members/index.tsx:217
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "Utente"
|
msgstr "Utente"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:77
|
#: src/views/members/components/InviteMemberForm.tsx:72
|
||||||
msgid "User is already a member of this workspace"
|
msgid "User is already a member of this workspace"
|
||||||
msgstr "L'utente è già membro di questo spazio di lavoro"
|
msgstr "L'utente è già membro di questo spazio di lavoro"
|
||||||
|
|
||||||
@@ -1813,11 +1841,11 @@ msgstr "L'utente è già membro di questo spazio di lavoro"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Video"
|
msgstr "Video"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:262
|
#: src/views/settings/index.tsx:285
|
||||||
msgid "View and manage your API keys."
|
msgid "View and manage your API keys."
|
||||||
msgstr "Visualizza e gestisci le tue chiavi API."
|
msgstr "Visualizza e gestisci le tue chiavi API."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:201
|
#: src/views/settings/index.tsx:224
|
||||||
msgid "View and manage your billing and subscription."
|
msgid "View and manage your billing and subscription."
|
||||||
msgstr "Visualizza e gestisci la tua fatturazione e abbonamento."
|
msgstr "Visualizza e gestisci la tua fatturazione e abbonamento."
|
||||||
|
|
||||||
@@ -1877,7 +1905,7 @@ msgstr "Spazio di lavoro"
|
|||||||
msgid "Workspace deleted"
|
msgid "Workspace deleted"
|
||||||
msgstr "Spazio di lavoro eliminato"
|
msgstr "Spazio di lavoro eliminato"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:177
|
#: src/views/settings/index.tsx:188
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Descrizione dello spazio di lavoro"
|
msgstr "Descrizione dello spazio di lavoro"
|
||||||
|
|
||||||
@@ -1899,7 +1927,7 @@ msgid "Workspace members"
|
|||||||
msgstr "Membri del workspace"
|
msgstr "Membri del workspace"
|
||||||
|
|
||||||
#: src/components/NewWorkspaceForm.tsx:81
|
#: src/components/NewWorkspaceForm.tsx:81
|
||||||
#: src/views/settings/index.tsx:158
|
#: src/views/settings/index.tsx:169
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Nome dello spazio di lavoro"
|
msgstr "Nome dello spazio di lavoro"
|
||||||
|
|
||||||
@@ -1919,7 +1947,7 @@ msgstr "Nome dello spazio di lavoro aggiornato"
|
|||||||
msgid "Workspace slug updated"
|
msgid "Workspace slug updated"
|
||||||
msgstr "Slug dell'area di lavoro aggiornato"
|
msgstr "Slug dell'area di lavoro aggiornato"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:167
|
#: src/views/settings/index.tsx:178
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "URL dello spazio di lavoro"
|
msgstr "URL dello spazio di lavoro"
|
||||||
|
|
||||||
@@ -1935,7 +1963,7 @@ msgstr "Annuale"
|
|||||||
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
||||||
msgstr "Sì, offriamo un piano gratuito per sempre per uso individuale. Nessuna restrizione, nessun paywall, nessun limite."
|
msgstr "Sì, offriamo un piano gratuito per sempre per uso individuale. Nessuna restrizione, nessun paywall, nessun limite."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:294
|
#: src/views/settings/index.tsx:317
|
||||||
msgid "You are about to change your password."
|
msgid "You are about to change your password."
|
||||||
msgstr "Stai per cambiare la tua password."
|
msgstr "Stai per cambiare la tua password."
|
||||||
|
|
||||||
@@ -1959,6 +1987,10 @@ msgstr "Hai effettuato l'accesso con successo."
|
|||||||
msgid "You have been signed up successfully."
|
msgid "You have been signed up successfully."
|
||||||
msgstr "Ti sei registrato con successo."
|
msgstr "Ti sei registrato con successo."
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:186
|
||||||
|
msgid "You have unlimited seats with your Pro Plan. There is no additional charge for new members!"
|
||||||
|
msgstr "Hai posti illimitati con il tuo Piano Pro. Non ci sono costi aggiuntivi per i nuovi membri!"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
||||||
msgid "Your account has been deleted."
|
msgid "Your account has been deleted."
|
||||||
msgstr "Il tuo account è stato eliminato."
|
msgstr "Il tuo account è stato eliminato."
|
||||||
@@ -1979,11 +2011,11 @@ msgstr "La tua password è stata modificata."
|
|||||||
msgid "Your profile image has been updated."
|
msgid "Your profile image has been updated."
|
||||||
msgstr "La tua immagine del profilo è stata aggiornata."
|
msgstr "La tua immagine del profilo è stata aggiornata."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:95
|
#: src/views/settings/index.tsx:106
|
||||||
msgid "Your Trello account has been disconnected."
|
msgid "Your Trello account has been disconnected."
|
||||||
msgstr "Il tuo account Trello è stato disconnesso."
|
msgstr "Il tuo account Trello è stato disconnesso."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:244
|
#: src/views/settings/index.tsx:267
|
||||||
msgid "Your Trello account is connected."
|
msgid "Your Trello account is connected."
|
||||||
msgstr "Il tuo account Trello è connesso."
|
msgstr "Il tuo account Trello è connesso."
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -36,12 +36,12 @@ msgstr "{0} labels"
|
|||||||
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
msgid "{boardCount, plural, one {Import board (1)} other {Import boards ({boardCount})}}"
|
||||||
msgstr "{boardCount, plural, one {Bord importeren (1)} other {Borden importeren ({boardCount})}}"
|
msgstr "{boardCount, plural, one {Bord importeren (1)} other {Borden importeren ({boardCount})}}"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:91
|
#: src/views/members/components/InviteMemberForm.tsx:92
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$10/month"
|
msgid "$10/month"
|
||||||
msgstr "$10/maand"
|
msgstr "$10/maand"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:106
|
#: src/views/members/components/InviteMemberForm.tsx:104
|
||||||
msgid "$8/month"
|
msgid "$8/month"
|
||||||
msgstr "$8/maand"
|
msgstr "$8/maand"
|
||||||
|
|
||||||
@@ -97,7 +97,7 @@ msgid "Add label"
|
|||||||
msgstr "Label toevoegen"
|
msgstr "Label toevoegen"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:130
|
#: src/views/card/components/MemberSelector.tsx:130
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:149
|
#: src/views/members/components/InviteMemberForm.tsx:147
|
||||||
msgid "Add member"
|
msgid "Add member"
|
||||||
msgstr "Lid toevoegen"
|
msgstr "Lid toevoegen"
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ msgstr "heeft checklistitem <0>{0}</0> toegevoegd"
|
|||||||
msgid "added label <0>{0}</0>"
|
msgid "added label <0>{0}</0>"
|
||||||
msgstr "heeft label <0>{0}</0> toegevoegd"
|
msgstr "heeft label <0>{0}</0> toegevoegd"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:186
|
#: src/views/members/components/InviteMemberForm.tsx:187
|
||||||
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
msgid "Adding a new member will cost an additional {price} ({billingType}) per seat."
|
||||||
msgstr "Het toevoegen van een nieuw lid kost een extra {price} ({billingType}) per plaats."
|
msgstr "Het toevoegen van een nieuw lid kost een extra {price} ({billingType}) per plaats."
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ msgstr "Alle systemen operationeel"
|
|||||||
msgid "Already have an account? <0><1>Sign in</1></0>"
|
msgid "Already have an account? <0><1>Sign in</1></0>"
|
||||||
msgstr "Heb je al een account? <0><1>Log in</1></0>"
|
msgstr "Heb je al een account? <0><1>Log in</1></0>"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:102
|
#: src/views/settings/index.tsx:113
|
||||||
msgid "An error occurred while disconnecting your Trello account."
|
msgid "An error occurred while disconnecting your Trello account."
|
||||||
msgstr "Er is een fout opgetreden bij het verbreken van de verbinding met je Trello-account."
|
msgstr "Er is een fout opgetreden bij het verbreken van de verbinding met je Trello-account."
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@ msgstr "Er is een fout opgetreden bij het verbreken van de verbinding met je Tre
|
|||||||
msgid "An unexpected error occurred. Please try again later."
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
msgstr "Er is een onverwachte fout opgetreden. Probeer het later opnieuw."
|
msgstr "Er is een onverwachte fout opgetreden. Probeer het later opnieuw."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:259
|
#: src/views/settings/index.tsx:282
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "API-sleutels"
|
msgstr "API-sleutels"
|
||||||
|
|
||||||
@@ -218,20 +218,20 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Basis kanban"
|
msgstr "Basis kanban"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed annually"
|
msgid "billed annually"
|
||||||
msgstr "jaarlijks gefactureerd"
|
msgstr "jaarlijks gefactureerd"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:107
|
#: src/views/members/components/InviteMemberForm.tsx:105
|
||||||
msgid "billed monthly"
|
msgid "billed monthly"
|
||||||
msgstr "maandelijks gefactureerd"
|
msgstr "maandelijks gefactureerd"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
#: src/views/settings/index.tsx:198
|
#: src/views/settings/index.tsx:221
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Facturering"
|
msgstr "Facturering"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:208
|
#: src/views/settings/index.tsx:231
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Factureringsportaal"
|
msgstr "Factureringsportaal"
|
||||||
|
|
||||||
@@ -243,6 +243,10 @@ msgstr "Blogbericht"
|
|||||||
msgid "Board"
|
msgid "Board"
|
||||||
msgstr "Bord"
|
msgstr "Bord"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:80
|
||||||
|
msgid "Board analytics (coming soon)"
|
||||||
|
msgstr "Bordanalyses (binnenkort beschikbaar)"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:21
|
#: src/views/boards/components/NewBoardForm.tsx:21
|
||||||
msgid "Board name cannot exceed 100 characters"
|
msgid "Board name cannot exceed 100 characters"
|
||||||
msgstr "Bordnaam mag niet langer zijn dan 100 tekens"
|
msgstr "Bordnaam mag niet langer zijn dan 100 tekens"
|
||||||
@@ -309,9 +313,9 @@ msgstr "Bugrapport"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:94
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuleren"
|
msgstr "Annuleren"
|
||||||
|
|
||||||
@@ -325,12 +329,12 @@ msgstr "Kaarttitel"
|
|||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:314
|
||||||
#: src/views/settings/index.tsx:301
|
#: src/views/settings/index.tsx:324
|
||||||
msgid "Change Password"
|
msgid "Change Password"
|
||||||
msgstr "Wachtwoord wijzigen"
|
msgstr "Wachtwoord wijzigen"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:190
|
#: src/views/settings/index.tsx:213
|
||||||
msgid "Change the language of the app."
|
msgid "Change the language of the app."
|
||||||
msgstr "Wijzig de taal van de app."
|
msgstr "Wijzig de taal van de app."
|
||||||
|
|
||||||
@@ -389,16 +393,12 @@ msgstr "heeft een checklistitem voltooid"
|
|||||||
msgid "completed checklist item <0>{0}</0>"
|
msgid "completed checklist item <0>{0}</0>"
|
||||||
msgstr "heeft checklistitem <0>{0}</0> voltooid"
|
msgstr "heeft checklistitem <0>{0}</0> voltooid"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:42
|
|
||||||
msgid "Confirm URL change"
|
|
||||||
msgstr "URL-wijziging bevestigen"
|
|
||||||
|
|
||||||
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
msgid "Confirm your new password"
|
msgid "Confirm your new password"
|
||||||
msgstr "Bevestig je nieuwe wachtwoord"
|
msgstr "Bevestig je nieuwe wachtwoord"
|
||||||
|
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
#: src/views/settings/index.tsx:235
|
#: src/views/settings/index.tsx:258
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Verbind Trello"
|
msgstr "Verbind Trello"
|
||||||
|
|
||||||
@@ -406,7 +406,7 @@ msgstr "Verbind Trello"
|
|||||||
msgid "Connect your favorite tools to streamline your workflow."
|
msgid "Connect your favorite tools to streamline your workflow."
|
||||||
msgstr "Verbind je favoriete tools om je werkstroom te stroomlijnen."
|
msgstr "Verbind je favoriete tools om je werkstroom te stroomlijnen."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:222
|
#: src/views/settings/index.tsx:245
|
||||||
msgid "Connect your Trello account to import boards."
|
msgid "Connect your Trello account to import boards."
|
||||||
msgstr "Verbind je Trello-account om borden te importeren."
|
msgstr "Verbind je Trello-account om borden te importeren."
|
||||||
|
|
||||||
@@ -499,9 +499,9 @@ msgstr "Huidig wachtwoord is vereist"
|
|||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Aangepast domein"
|
msgstr "Aangepast domein"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:45
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:74
|
||||||
msgid "Custom URLs are a premium feature. You'll be directed to upgrade your account."
|
msgid "Custom workspace URL"
|
||||||
msgstr "Aangepaste URL's zijn een premium functie. Je wordt doorgestuurd om je account te upgraden."
|
msgstr "Aangepaste werkruimte-URL"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:41
|
#: src/views/boards/components/TemplateBoards.tsx:41
|
||||||
msgid "Customer Support"
|
msgid "Customer Support"
|
||||||
@@ -520,8 +520,8 @@ msgid "Delete"
|
|||||||
msgstr "Verwijderen"
|
msgstr "Verwijderen"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
#: src/views/settings/index.tsx:309
|
#: src/views/settings/index.tsx:332
|
||||||
#: src/views/settings/index.tsx:319
|
#: src/views/settings/index.tsx:342
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Account verwijderen"
|
msgstr "Account verwijderen"
|
||||||
|
|
||||||
@@ -542,8 +542,8 @@ msgid "Delete list"
|
|||||||
msgstr "Lijst verwijderen"
|
msgstr "Lijst verwijderen"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
#: src/views/settings/index.tsx:272
|
#: src/views/settings/index.tsx:295
|
||||||
#: src/views/settings/index.tsx:283
|
#: src/views/settings/index.tsx:306
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Werkruimte verwijderen"
|
msgstr "Werkruimte verwijderen"
|
||||||
|
|
||||||
@@ -569,7 +569,7 @@ msgstr "heeft checklistitem <0>{0}</0> verwijderd"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Ontwerp"
|
msgstr "Ontwerp"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:250
|
#: src/views/settings/index.tsx:273
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Trello ontkoppelen"
|
msgstr "Trello ontkoppelen"
|
||||||
|
|
||||||
@@ -577,7 +577,7 @@ msgstr "Trello ontkoppelen"
|
|||||||
msgid "Discuss and collaborate on cards."
|
msgid "Discuss and collaborate on cards."
|
||||||
msgstr "Bespreek en werk samen aan kaarten."
|
msgstr "Bespreek en werk samen aan kaarten."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:151
|
#: src/views/settings/index.tsx:162
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Weergavenaam"
|
msgstr "Weergavenaam"
|
||||||
|
|
||||||
@@ -647,7 +647,7 @@ msgstr "Bewerken"
|
|||||||
msgid "email"
|
msgid "email"
|
||||||
msgstr "e-mail"
|
msgstr "e-mail"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:163
|
#: src/views/members/components/InviteMemberForm.tsx:161
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-mail"
|
msgstr "E-mail"
|
||||||
|
|
||||||
@@ -695,12 +695,12 @@ msgstr "Fout bij het verwijderen van label"
|
|||||||
msgid "Error deleting workspace"
|
msgid "Error deleting workspace"
|
||||||
msgstr "Fout bij verwijderen werkruimte"
|
msgstr "Fout bij verwijderen werkruimte"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:101
|
#: src/views/settings/index.tsx:112
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Fout bij ontkoppelen van Trello"
|
msgstr "Fout bij ontkoppelen van Trello"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:76
|
#: src/views/members/components/InviteMemberForm.tsx:71
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:82
|
#: src/views/members/components/InviteMemberForm.tsx:77
|
||||||
msgid "Error inviting member"
|
msgid "Error inviting member"
|
||||||
msgstr "Fout bij het uitnodigen van lid"
|
msgstr "Fout bij het uitnodigen van lid"
|
||||||
|
|
||||||
@@ -724,7 +724,8 @@ msgstr "Fout bij bijwerken naam werkruimte"
|
|||||||
msgid "Error updating workspace URL"
|
msgid "Error updating workspace URL"
|
||||||
msgstr "Fout bij het bijwerken van werkruimte-URL"
|
msgstr "Fout bij het bijwerken van werkruimte-URL"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:132
|
#: src/views/members/components/InviteMemberForm.tsx:130
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:41
|
||||||
msgid "Error upgrading subscription"
|
msgid "Error upgrading subscription"
|
||||||
msgstr "Fout bij het upgraden van abonnement"
|
msgstr "Fout bij het upgraden van abonnement"
|
||||||
|
|
||||||
@@ -794,8 +795,8 @@ msgstr "Voor duurzaamheid op lange termijn erkennen we dat alle goede open sourc
|
|||||||
msgid "Free"
|
msgid "Free"
|
||||||
msgstr "Gratis"
|
msgstr "Gratis"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:192
|
#: src/views/members/components/InviteMemberForm.tsx:193
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:189
|
||||||
msgid "Free Plan"
|
msgid "Free Plan"
|
||||||
msgstr "Gratis plan"
|
msgstr "Gratis plan"
|
||||||
|
|
||||||
@@ -950,24 +951,24 @@ msgstr "Integraties"
|
|||||||
msgid "Interviewing"
|
msgid "Interviewing"
|
||||||
msgstr "Interviewen"
|
msgstr "Interviewen"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:45
|
#: src/views/members/components/InviteMemberForm.tsx:40
|
||||||
msgid "Invalid email address"
|
msgid "Invalid email address"
|
||||||
msgstr "Ongeldig e-mailadres"
|
msgstr "Ongeldig e-mailadres"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:193
|
#: src/views/members/index.tsx:201
|
||||||
msgid "Invite"
|
msgid "Invite"
|
||||||
msgstr "Uitnodigen"
|
msgstr "Uitnodigen"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:207
|
#: src/views/members/components/InviteMemberForm.tsx:208
|
||||||
msgid "Invite another"
|
msgid "Invite another"
|
||||||
msgstr "Nog iemand uitnodigen"
|
msgstr "Nog iemand uitnodigen"
|
||||||
|
|
||||||
#: src/views/card/components/MemberSelector.tsx:112
|
#: src/views/card/components/MemberSelector.tsx:112
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:231
|
#: src/views/members/components/InviteMemberForm.tsx:233
|
||||||
msgid "Invite member"
|
msgid "Invite member"
|
||||||
msgstr "Lid uitnodigen"
|
msgstr "Lid uitnodigen"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:195
|
#: src/views/members/components/InviteMemberForm.tsx:196
|
||||||
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
msgid "Inviting members requires a Team Plan. You'll be redirected to upgrade your workspace."
|
||||||
msgstr "Voor het uitnodigen van leden is een teamplan vereist. Je wordt doorgestuurd om je werkruimte te upgraden."
|
msgstr "Voor het uitnodigen van leden is een teamplan vereist. Je wordt doorgestuurd om je werkruimte te upgraden."
|
||||||
|
|
||||||
@@ -998,10 +999,14 @@ msgstr "Labels"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Labels & filters"
|
msgstr "Labels & filters"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:187
|
#: src/views/settings/index.tsx:210
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Taal"
|
msgstr "Taal"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:67
|
||||||
|
msgid "Launch offer"
|
||||||
|
msgstr "Introductieaanbieding"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:83
|
#: src/views/boards/components/TemplateBoards.tsx:83
|
||||||
msgid "Learning"
|
msgid "Learning"
|
||||||
msgstr "Leren"
|
msgstr "Leren"
|
||||||
@@ -1067,12 +1072,12 @@ msgstr "Gemiddelde prioriteit"
|
|||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/views/board/components/NewCardForm.tsx:357
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/card/index.tsx:125
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/members/index.tsx:171
|
#: src/views/members/index.tsx:172
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
msgstr "Leden"
|
msgstr "Leden"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/members/index.tsx:167
|
#: src/views/members/index.tsx:168
|
||||||
msgid "Members | {0}"
|
msgid "Members | {0}"
|
||||||
msgstr "Leden | {0}"
|
msgstr "Leden | {0}"
|
||||||
|
|
||||||
@@ -1080,7 +1085,7 @@ msgstr "Leden | {0}"
|
|||||||
msgid "Monthly"
|
msgid "Monthly"
|
||||||
msgstr "Maandelijks"
|
msgstr "Maandelijks"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:92
|
#: src/views/members/components/InviteMemberForm.tsx:93
|
||||||
msgid "monthly billing"
|
msgid "monthly billing"
|
||||||
msgstr "maandelijkse facturering"
|
msgstr "maandelijkse facturering"
|
||||||
|
|
||||||
@@ -1180,11 +1185,11 @@ msgstr "Aanbod"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Inwerktraject"
|
msgstr "Inwerktraject"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:312
|
#: src/views/settings/index.tsx:335
|
||||||
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
msgid "Once you delete your account, there is no going back. This action cannot be undone."
|
||||||
msgstr "Zodra je je account verwijdert, is er geen weg terug. Deze actie kan niet ongedaan worden gemaakt."
|
msgstr "Zodra je je account verwijdert, is er geen weg terug. Deze actie kan niet ongedaan worden gemaakt."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:275
|
#: src/views/settings/index.tsx:298
|
||||||
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
msgid "Once you delete your workspace, there is no going back. This action cannot be undone."
|
||||||
msgstr "Zodra je je werkruimte verwijdert, is er geen weg terug. Deze actie kan niet ongedaan worden gemaakt."
|
msgstr "Zodra je je werkruimte verwijdert, is er geen weg terug. Deze actie kan niet ongedaan worden gemaakt."
|
||||||
|
|
||||||
@@ -1220,7 +1225,7 @@ msgstr "Wachtwoorden komen niet overeen"
|
|||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Betalingsfrequentie"
|
msgstr "Betalingsfrequentie"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:128
|
#: src/views/members/index.tsx:129
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "In behandeling"
|
msgstr "In behandeling"
|
||||||
|
|
||||||
@@ -1282,8 +1287,8 @@ msgstr "Selecteer een bestand om te uploaden."
|
|||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:173
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:83
|
#: src/views/members/components/InviteMemberForm.tsx:78
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:133
|
#: src/views/members/components/InviteMemberForm.tsx:131
|
||||||
#: src/views/settings/components/Avatar.tsx:40
|
#: src/views/settings/components/Avatar.tsx:40
|
||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:40
|
||||||
@@ -1292,6 +1297,7 @@ msgstr "Selecteer een bestand om te uploaden."
|
|||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:62
|
||||||
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
#: src/views/settings/components/UpdateWorkspaceNameForm.tsx:57
|
||||||
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
#: src/views/settings/components/UpdateWorkspaceUrlForm.tsx:74
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:42
|
||||||
msgid "Please try again later, or contact customer support."
|
msgid "Please try again later, or contact customer support."
|
||||||
msgstr "Probeer het later opnieuw of neem contact op met de klantenservice."
|
msgstr "Probeer het later opnieuw of neem contact op met de klantenservice."
|
||||||
|
|
||||||
@@ -1302,6 +1308,7 @@ msgid "Pricing"
|
|||||||
msgstr "Prijzen"
|
msgstr "Prijzen"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:56
|
#: src/views/home/components/Pricing.tsx:56
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:86
|
||||||
msgid "Priority email support"
|
msgid "Priority email support"
|
||||||
msgstr "Prioriteit e-mailondersteuning"
|
msgstr "Prioriteit e-mailondersteuning"
|
||||||
|
|
||||||
@@ -1313,11 +1320,19 @@ msgstr "Privacybeleid"
|
|||||||
msgid "Private"
|
msgid "Private"
|
||||||
msgstr "Privé"
|
msgstr "Privé"
|
||||||
|
|
||||||
|
#: src/views/members/index.tsx:186
|
||||||
|
msgid "Pro Plan"
|
||||||
|
msgstr "Pro Plan"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
|
msgid "Pro Plan ∞"
|
||||||
|
msgstr "Pro Plan ∞"
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:26
|
#: src/views/settings/components/Avatar.tsx:26
|
||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Profielafbeelding bijgewerkt"
|
msgstr "Profielafbeelding bijgewerkt"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:146
|
#: src/views/settings/index.tsx:157
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Profielfoto"
|
msgstr "Profielfoto"
|
||||||
|
|
||||||
@@ -1353,7 +1368,7 @@ msgstr "Op afstand"
|
|||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr "Verwijderen"
|
msgstr "Verwijderen"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:142
|
#: src/views/members/index.tsx:143
|
||||||
msgid "Remove member"
|
msgid "Remove member"
|
||||||
msgstr "Lid verwijderen"
|
msgstr "Lid verwijderen"
|
||||||
|
|
||||||
@@ -1409,7 +1424,7 @@ msgstr "Intrekken"
|
|||||||
msgid "Roadmap"
|
msgid "Roadmap"
|
||||||
msgstr "Roadmap"
|
msgstr "Roadmap"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:215
|
#: src/views/members/index.tsx:223
|
||||||
msgid "Role"
|
msgid "Role"
|
||||||
msgstr "Rol"
|
msgstr "Rol"
|
||||||
|
|
||||||
@@ -1458,12 +1473,12 @@ msgid "Senior"
|
|||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
#: src/views/settings/index.tsx:140
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Instellingen"
|
msgstr "Instellingen"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:136
|
#: src/views/settings/index.tsx:147
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Instellingen | {0}"
|
msgstr "Instellingen | {0}"
|
||||||
|
|
||||||
@@ -1514,6 +1529,10 @@ msgstr "Star op Github"
|
|||||||
msgid "Success"
|
msgid "Success"
|
||||||
msgstr "Geslaagd"
|
msgstr "Geslaagd"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:55
|
||||||
|
msgid "Supercharge your workspace for just $29/month. Here's what you'll get:"
|
||||||
|
msgstr "Geef je werkruimte een boost voor slechts $29/maand. Dit krijg je:"
|
||||||
|
|
||||||
#: src/components/UserMenu.tsx:180
|
#: src/components/UserMenu.tsx:180
|
||||||
msgid "Support"
|
msgid "Support"
|
||||||
msgstr "Ondersteuning"
|
msgstr "Ondersteuning"
|
||||||
@@ -1526,8 +1545,8 @@ msgstr "Ondersteun de ontwikkeling van het project"
|
|||||||
msgid "System"
|
msgid "System"
|
||||||
msgstr "Systeem"
|
msgstr "Systeem"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:183
|
#: src/views/members/components/InviteMemberForm.tsx:182
|
||||||
#: src/views/members/index.tsx:184
|
#: src/views/members/index.tsx:188
|
||||||
msgid "Team Plan"
|
msgid "Team Plan"
|
||||||
msgstr "Teamplan"
|
msgstr "Teamplan"
|
||||||
|
|
||||||
@@ -1612,7 +1631,7 @@ msgstr "Menu in-/uitschakelen"
|
|||||||
msgid "Track all card changes with detailed activity history."
|
msgid "Track all card changes with detailed activity history."
|
||||||
msgstr "Volg alle kaartwijzigingen met gedetailleerde activiteitengeschiedenis."
|
msgstr "Volg alle kaartwijzigingen met gedetailleerde activiteitengeschiedenis."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:94
|
#: src/views/settings/index.tsx:105
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello ontkoppeld"
|
msgstr "Trello ontkoppeld"
|
||||||
|
|
||||||
@@ -1743,6 +1762,10 @@ msgstr "Onbeperkt aantal opmerkingen"
|
|||||||
msgid "Unlimited lists"
|
msgid "Unlimited lists"
|
||||||
msgstr "Onbeperkt aantal lijsten"
|
msgstr "Onbeperkt aantal lijsten"
|
||||||
|
|
||||||
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:64
|
||||||
|
msgid "Unlimited members"
|
||||||
|
msgstr "Onbeperkt aantal leden"
|
||||||
|
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:174
|
||||||
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
#: src/views/settings/components/UpdateDisplayNameForm.tsx:79
|
||||||
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
#: src/views/settings/components/UpdateWorkspaceDescriptionForm.tsx:90
|
||||||
@@ -1772,11 +1795,16 @@ msgstr "titel bijgewerkt"
|
|||||||
msgid "updated the title to <0>{0}</0>"
|
msgid "updated the title to <0>{0}</0>"
|
||||||
msgstr "titel bijgewerkt naar <0>{0}</0>"
|
msgstr "titel bijgewerkt naar <0>{0}</0>"
|
||||||
|
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:52
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:99
|
||||||
msgid "Upgrade"
|
msgid "Upgrade"
|
||||||
msgstr "Upgraden"
|
msgstr "Upgraden"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:222
|
#: src/views/settings/components/UpgradeToProConfirmation.tsx:52
|
||||||
|
#: src/views/settings/index.tsx:202
|
||||||
|
msgid "Upgrade to Pro"
|
||||||
|
msgstr "Upgraden naar Pro"
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:224
|
||||||
msgid "Upgrade to Team Plan"
|
msgid "Upgrade to Team Plan"
|
||||||
msgstr "Upgraden naar teamplan"
|
msgstr "Upgraden naar teamplan"
|
||||||
|
|
||||||
@@ -1801,11 +1829,11 @@ msgstr "URL moet minimaal 3 tekens lang zijn"
|
|||||||
msgid "Use template"
|
msgid "Use template"
|
||||||
msgstr "Sjabloon gebruiken"
|
msgstr "Sjabloon gebruiken"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:209
|
#: src/views/members/index.tsx:217
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "Gebruiker"
|
msgstr "Gebruiker"
|
||||||
|
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:77
|
#: src/views/members/components/InviteMemberForm.tsx:72
|
||||||
msgid "User is already a member of this workspace"
|
msgid "User is already a member of this workspace"
|
||||||
msgstr "Gebruiker is al lid van deze werkruimte"
|
msgstr "Gebruiker is al lid van deze werkruimte"
|
||||||
|
|
||||||
@@ -1813,11 +1841,11 @@ msgstr "Gebruiker is al lid van deze werkruimte"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Video"
|
msgstr "Video"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:262
|
#: src/views/settings/index.tsx:285
|
||||||
msgid "View and manage your API keys."
|
msgid "View and manage your API keys."
|
||||||
msgstr "Bekijk en beheer je API-sleutels."
|
msgstr "Bekijk en beheer je API-sleutels."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:201
|
#: src/views/settings/index.tsx:224
|
||||||
msgid "View and manage your billing and subscription."
|
msgid "View and manage your billing and subscription."
|
||||||
msgstr "Bekijk en beheer je facturering en abonnement."
|
msgstr "Bekijk en beheer je facturering en abonnement."
|
||||||
|
|
||||||
@@ -1877,7 +1905,7 @@ msgstr "Werkruimte"
|
|||||||
msgid "Workspace deleted"
|
msgid "Workspace deleted"
|
||||||
msgstr "Werkruimte verwijderd"
|
msgstr "Werkruimte verwijderd"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:177
|
#: src/views/settings/index.tsx:188
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Werkruimte beschrijving"
|
msgstr "Werkruimte beschrijving"
|
||||||
|
|
||||||
@@ -1899,7 +1927,7 @@ msgid "Workspace members"
|
|||||||
msgstr "Werkruimteleden"
|
msgstr "Werkruimteleden"
|
||||||
|
|
||||||
#: src/components/NewWorkspaceForm.tsx:81
|
#: src/components/NewWorkspaceForm.tsx:81
|
||||||
#: src/views/settings/index.tsx:158
|
#: src/views/settings/index.tsx:169
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Naam werkruimte"
|
msgstr "Naam werkruimte"
|
||||||
|
|
||||||
@@ -1919,7 +1947,7 @@ msgstr "Werkruimtenaam bijgewerkt"
|
|||||||
msgid "Workspace slug updated"
|
msgid "Workspace slug updated"
|
||||||
msgstr "Werkruimte-slug bijgewerkt"
|
msgstr "Werkruimte-slug bijgewerkt"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:167
|
#: src/views/settings/index.tsx:178
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "Werkruimte URL"
|
msgstr "Werkruimte URL"
|
||||||
|
|
||||||
@@ -1935,7 +1963,7 @@ msgstr "Jaarlijks"
|
|||||||
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
msgid "Yes, we offer an forever free plan for individual use. No restrictions, no paywalls, no limits."
|
||||||
msgstr "Ja, we bieden een voor altijd gratis plan voor individueel gebruik. Geen beperkingen, geen betaalmuren, geen limieten."
|
msgstr "Ja, we bieden een voor altijd gratis plan voor individueel gebruik. Geen beperkingen, geen betaalmuren, geen limieten."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:294
|
#: src/views/settings/index.tsx:317
|
||||||
msgid "You are about to change your password."
|
msgid "You are about to change your password."
|
||||||
msgstr "Je staat op het punt je wachtwoord te wijzigen."
|
msgstr "Je staat op het punt je wachtwoord te wijzigen."
|
||||||
|
|
||||||
@@ -1959,6 +1987,10 @@ msgstr "Je bent succesvol ingelogd."
|
|||||||
msgid "You have been signed up successfully."
|
msgid "You have been signed up successfully."
|
||||||
msgstr "Je bent succesvol geregistreerd."
|
msgstr "Je bent succesvol geregistreerd."
|
||||||
|
|
||||||
|
#: src/views/members/components/InviteMemberForm.tsx:186
|
||||||
|
msgid "You have unlimited seats with your Pro Plan. There is no additional charge for new members!"
|
||||||
|
msgstr "Je hebt onbeperkte plaatsen met je Pro Plan. Er zijn geen extra kosten voor nieuwe leden!"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:28
|
||||||
msgid "Your account has been deleted."
|
msgid "Your account has been deleted."
|
||||||
msgstr "Je account is verwijderd."
|
msgstr "Je account is verwijderd."
|
||||||
@@ -1979,11 +2011,11 @@ msgstr "Je wachtwoord is gewijzigd."
|
|||||||
msgid "Your profile image has been updated."
|
msgid "Your profile image has been updated."
|
||||||
msgstr "Je profielafbeelding is bijgewerkt."
|
msgstr "Je profielafbeelding is bijgewerkt."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:95
|
#: src/views/settings/index.tsx:106
|
||||||
msgid "Your Trello account has been disconnected."
|
msgid "Your Trello account has been disconnected."
|
||||||
msgstr "Je Trello-account is ontkoppeld."
|
msgstr "Je Trello-account is ontkoppeld."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:244
|
#: src/views/settings/index.tsx:267
|
||||||
msgid "Your Trello account is connected."
|
msgid "Your Trello account is connected."
|
||||||
msgstr "Je Trello-account is verbonden."
|
msgstr "Je Trello-account is verbonden."
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -3,6 +3,7 @@ import { env } from "next-runtime-env";
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import { createNextApiContext } from "@kan/api/trpc";
|
import { createNextApiContext } from "@kan/api/trpc";
|
||||||
|
import * as subscriptionRepo from "@kan/db/repository/subscription.repo";
|
||||||
import * as workspaceRepo from "@kan/db/repository/workspace.repo";
|
import * as workspaceRepo from "@kan/db/repository/workspace.repo";
|
||||||
import { createStripeClient } from "@kan/stripe";
|
import { createStripeClient } from "@kan/stripe";
|
||||||
|
|
||||||
@@ -40,17 +41,22 @@ export default async function handler(
|
|||||||
const body = req.body as CheckoutSessionRequest;
|
const body = req.body as CheckoutSessionRequest;
|
||||||
const { successUrl, cancelUrl, slug, workspacePublicId } = body;
|
const { successUrl, cancelUrl, slug, workspacePublicId } = body;
|
||||||
|
|
||||||
if (!successUrl || !cancelUrl || !slug || !workspacePublicId) {
|
if (!successUrl || !cancelUrl || !workspacePublicId) {
|
||||||
return res.status(400).json({ error: "Missing required fields" });
|
return res.status(400).json({ error: "Missing required fields" });
|
||||||
}
|
}
|
||||||
|
|
||||||
const slugResult = workspaceSlugSchema.safeParse(slug);
|
if (slug) {
|
||||||
|
const slugResult = workspaceSlugSchema.safeParse(slug);
|
||||||
|
|
||||||
if (!slugResult.success) {
|
if (!slugResult.success) {
|
||||||
return new Response(JSON.stringify({ error: "Invalid workspace slug" }), {
|
return new Response(
|
||||||
status: 400,
|
JSON.stringify({ error: "Invalid workspace slug" }),
|
||||||
headers: { "Content-Type": "application/json" },
|
{
|
||||||
});
|
status: 400,
|
||||||
|
headers: { "Content-Type": "application/json" },
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const workspace = await workspaceRepo.getAllByUserId(db, user.id);
|
const workspace = await workspaceRepo.getAllByUserId(db, user.id);
|
||||||
@@ -66,20 +72,37 @@ export default async function handler(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const subscription = await subscriptionRepo.create(db, {
|
||||||
|
plan: "pro",
|
||||||
|
referenceId: workspacePublicId,
|
||||||
|
userId: user.id,
|
||||||
|
stripeCustomerId: user.stripeCustomerId ?? "",
|
||||||
|
status: "incomplete",
|
||||||
|
});
|
||||||
|
|
||||||
|
const subscriptionId = subscription?.id;
|
||||||
|
|
||||||
|
if (!subscriptionId) {
|
||||||
|
return res.status(500).json({ error: "Error creating subscription" });
|
||||||
|
}
|
||||||
|
|
||||||
const session = await stripe.checkout.sessions.create({
|
const session = await stripe.checkout.sessions.create({
|
||||||
mode: "subscription",
|
mode: "subscription",
|
||||||
line_items: [
|
line_items: [
|
||||||
{
|
{
|
||||||
price: process.env.STRIPE_PRO_PLAN_PRICE_ID,
|
price: process.env.STRIPE_PRO_PLAN_MONTHLY_PRICE_ID,
|
||||||
quantity: 1,
|
quantity: 1,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
success_url: `${env("NEXT_PUBLIC_BASE_URL")}${successUrl}`,
|
success_url: `${env("NEXT_PUBLIC_BASE_URL")}${successUrl}`,
|
||||||
cancel_url: `${env("NEXT_PUBLIC_BASE_URL")}${cancelUrl}`,
|
cancel_url: `${env("NEXT_PUBLIC_BASE_URL")}${cancelUrl}`,
|
||||||
|
client_reference_id: workspacePublicId,
|
||||||
customer: user.stripeCustomerId ?? undefined,
|
customer: user.stripeCustomerId ?? undefined,
|
||||||
metadata: {
|
metadata: {
|
||||||
workspaceSlug: slug,
|
...(slug && { workspaceSlug: slug }),
|
||||||
workspacePublicId,
|
workspacePublicId,
|
||||||
|
userId: user.id,
|
||||||
|
subscriptionId,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ export default async function handler(
|
|||||||
const event = stripe.webhooks.constructEvent(
|
const event = stripe.webhooks.constructEvent(
|
||||||
rawBody,
|
rawBody,
|
||||||
sig,
|
sig,
|
||||||
process.env.STRIPE_WEBHOOK_SECRET!,
|
process.env.STRIPE_WEBHOOK_SECRET_LEGACY!,
|
||||||
);
|
);
|
||||||
|
|
||||||
const { db } = await createNextApiContext(req);
|
const { db } = await createNextApiContext(req);
|
||||||
|
|||||||
@@ -7,7 +7,9 @@ import { HiXMark } from "react-icons/hi2";
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import type { InviteMemberInput } from "@kan/api/types";
|
import type { InviteMemberInput } from "@kan/api/types";
|
||||||
|
import type { Subscription } from "@kan/shared/utils";
|
||||||
import { authClient } from "@kan/auth/client";
|
import { authClient } from "@kan/auth/client";
|
||||||
|
import { getSubscriptionByPlan } from "@kan/shared/utils";
|
||||||
|
|
||||||
import Button from "~/components/Button";
|
import Button from "~/components/Button";
|
||||||
import Input from "~/components/Input";
|
import Input from "~/components/Input";
|
||||||
@@ -19,20 +21,13 @@ import { api } from "~/utils/api";
|
|||||||
|
|
||||||
export function InviteMemberForm({
|
export function InviteMemberForm({
|
||||||
numberOfMembers,
|
numberOfMembers,
|
||||||
activeTeamSubscription,
|
subscriptions,
|
||||||
|
unlimitedSeats,
|
||||||
userId,
|
userId,
|
||||||
}: {
|
}: {
|
||||||
numberOfMembers: number;
|
numberOfMembers: number;
|
||||||
activeTeamSubscription:
|
subscriptions: Subscription[] | undefined;
|
||||||
| {
|
unlimitedSeats: boolean;
|
||||||
id: number | null;
|
|
||||||
plan: string;
|
|
||||||
status: string;
|
|
||||||
seats: number | null;
|
|
||||||
periodStart: Date | null;
|
|
||||||
periodEnd: Date | null;
|
|
||||||
}
|
|
||||||
| undefined;
|
|
||||||
userId: string | undefined;
|
userId: string | undefined;
|
||||||
}) {
|
}) {
|
||||||
const utils = api.useUtils();
|
const utils = api.useUtils();
|
||||||
@@ -87,16 +82,19 @@ export function InviteMemberForm({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const teamSubscription = getSubscriptionByPlan(subscriptions, "team");
|
||||||
|
const proSubscription = getSubscriptionByPlan(subscriptions, "pro");
|
||||||
|
|
||||||
|
const hasTeamSubscription = !!teamSubscription;
|
||||||
|
const hasProSubscription = !!proSubscription;
|
||||||
|
|
||||||
let isYearly = false;
|
let isYearly = false;
|
||||||
let price = t`$10/month`;
|
let price = t`$10/month`;
|
||||||
let billingType = t`monthly billing`;
|
let billingType = t`monthly billing`;
|
||||||
|
|
||||||
if (
|
if (teamSubscription?.periodStart && teamSubscription?.periodEnd) {
|
||||||
activeTeamSubscription?.periodStart &&
|
const periodStartDate = new Date(teamSubscription.periodStart);
|
||||||
activeTeamSubscription?.periodEnd
|
const periodEndDate = new Date(teamSubscription.periodEnd);
|
||||||
) {
|
|
||||||
const periodStartDate = new Date(activeTeamSubscription.periodStart);
|
|
||||||
const periodEndDate = new Date(activeTeamSubscription.periodEnd);
|
|
||||||
const diffInDays = Math.round(
|
const diffInDays = Math.round(
|
||||||
(periodEndDate.getTime() - periodStartDate.getTime()) /
|
(periodEndDate.getTime() - periodStartDate.getTime()) /
|
||||||
(1000 * 60 * 60 * 24),
|
(1000 * 60 * 60 * 24),
|
||||||
@@ -163,7 +161,8 @@ export function InviteMemberForm({
|
|||||||
placeholder={t`Email`}
|
placeholder={t`Email`}
|
||||||
disabled={
|
disabled={
|
||||||
env("NEXT_PUBLIC_KAN_ENV") === "cloud" &&
|
env("NEXT_PUBLIC_KAN_ENV") === "cloud" &&
|
||||||
!activeTeamSubscription?.id
|
!hasTeamSubscription &&
|
||||||
|
!hasProSubscription
|
||||||
}
|
}
|
||||||
{...register("email", { required: true })}
|
{...register("email", { required: true })}
|
||||||
onKeyDown={async (e) => {
|
onKeyDown={async (e) => {
|
||||||
@@ -177,13 +176,15 @@ export function InviteMemberForm({
|
|||||||
|
|
||||||
{env("NEXT_PUBLIC_KAN_ENV") === "cloud" && (
|
{env("NEXT_PUBLIC_KAN_ENV") === "cloud" && (
|
||||||
<div className="mt-3 rounded-md bg-light-100 p-3 text-xs text-light-900 dark:bg-dark-200 dark:text-dark-900">
|
<div className="mt-3 rounded-md bg-light-100 p-3 text-xs text-light-900 dark:bg-dark-200 dark:text-dark-900">
|
||||||
{activeTeamSubscription?.id ? (
|
{hasTeamSubscription || hasProSubscription ? (
|
||||||
<div>
|
<div>
|
||||||
<span className="font-medium text-emerald-500 dark:text-emerald-400">
|
<span className="font-medium text-emerald-500 dark:text-emerald-400">
|
||||||
{t`Team Plan`}
|
{hasTeamSubscription ? t`Team Plan` : t`Pro Plan ∞`}
|
||||||
</span>
|
</span>
|
||||||
<p className="mt-1">
|
<p className="mt-1">
|
||||||
{t`Adding a new member will cost an additional ${price} (${billingType}) per seat.`}
|
{unlimitedSeats
|
||||||
|
? t`You have unlimited seats with your Pro Plan. There is no additional charge for new members!`
|
||||||
|
: t`Adding a new member will cost an additional ${price} (${billingType}) per seat.`}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
@@ -201,7 +202,7 @@ export function InviteMemberForm({
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="mt-12 flex items-center justify-end border-t border-light-600 px-5 pb-5 pt-5 dark:border-dark-600">
|
<div className="mt-12 flex items-center justify-end border-t border-light-600 px-5 pb-5 pt-5 dark:border-dark-600">
|
||||||
{activeTeamSubscription?.id &&
|
{(hasTeamSubscription || hasProSubscription) &&
|
||||||
env("NEXT_PUBLIC_KAN_ENV") === "cloud" && (
|
env("NEXT_PUBLIC_KAN_ENV") === "cloud" && (
|
||||||
<Toggle
|
<Toggle
|
||||||
label={t`Invite another`}
|
label={t`Invite another`}
|
||||||
@@ -213,7 +214,8 @@ export function InviteMemberForm({
|
|||||||
)}
|
)}
|
||||||
<div>
|
<div>
|
||||||
{env("NEXT_PUBLIC_KAN_ENV") === "cloud" &&
|
{env("NEXT_PUBLIC_KAN_ENV") === "cloud" &&
|
||||||
!activeTeamSubscription?.id ? (
|
!hasTeamSubscription &&
|
||||||
|
!hasProSubscription ? (
|
||||||
<Button
|
<Button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={handleUpgrade}
|
onClick={handleUpgrade}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
import { t } from "@lingui/core/macro";
|
import { t } from "@lingui/core/macro";
|
||||||
|
import { env } from "next-runtime-env";
|
||||||
import { HiEllipsisHorizontal, HiOutlinePlusSmall } from "react-icons/hi2";
|
import { HiEllipsisHorizontal, HiOutlinePlusSmall } from "react-icons/hi2";
|
||||||
import { twMerge } from "tailwind-merge";
|
import { twMerge } from "tailwind-merge";
|
||||||
|
|
||||||
|
import type { Subscription } from "@kan/shared/utils";
|
||||||
import { authClient } from "@kan/auth/client";
|
import { authClient } from "@kan/auth/client";
|
||||||
|
import { getSubscriptionByPlan, hasUnlimitedSeats } from "@kan/shared/utils";
|
||||||
|
|
||||||
import Avatar from "~/components/Avatar";
|
import Avatar from "~/components/Avatar";
|
||||||
import Button from "~/components/Button";
|
import Button from "~/components/Button";
|
||||||
@@ -11,7 +14,6 @@ import FeedbackModal from "~/components/FeedbackModal";
|
|||||||
import Modal from "~/components/modal";
|
import Modal from "~/components/modal";
|
||||||
import { NewWorkspaceForm } from "~/components/NewWorkspaceForm";
|
import { NewWorkspaceForm } from "~/components/NewWorkspaceForm";
|
||||||
import { PageHead } from "~/components/PageHead";
|
import { PageHead } from "~/components/PageHead";
|
||||||
import { env } from "~/env";
|
|
||||||
import { useModal } from "~/providers/modal";
|
import { useModal } from "~/providers/modal";
|
||||||
import { useWorkspace } from "~/providers/workspace";
|
import { useWorkspace } from "~/providers/workspace";
|
||||||
import { api } from "~/utils/api";
|
import { api } from "~/utils/api";
|
||||||
@@ -30,13 +32,12 @@ export default function MembersPage() {
|
|||||||
|
|
||||||
const { data: session } = authClient.useSession();
|
const { data: session } = authClient.useSession();
|
||||||
|
|
||||||
const subscription = data?.subscriptions;
|
const subscriptions = data?.subscriptions as Subscription[] | undefined;
|
||||||
|
|
||||||
const activeTeamSubscription = subscription?.find(
|
const teamSubscription = getSubscriptionByPlan(subscriptions, "team");
|
||||||
(sub: any) =>
|
const proSubscription = getSubscriptionByPlan(subscriptions, "pro");
|
||||||
sub.status === "active" ||
|
|
||||||
(sub.status === "trialing" && sub.plan === "team"),
|
const unlimitedSeats = hasUnlimitedSeats(subscriptions);
|
||||||
);
|
|
||||||
|
|
||||||
const TableRow = ({
|
const TableRow = ({
|
||||||
memberPublicId,
|
memberPublicId,
|
||||||
@@ -171,17 +172,24 @@ export default function MembersPage() {
|
|||||||
{t`Members`}
|
{t`Members`}
|
||||||
</h1>
|
</h1>
|
||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3">
|
||||||
{env.NEXT_PUBLIC_KAN_ENV === "cloud" && (
|
{env("NEXT_PUBLIC_KAN_ENV") === "cloud" && (
|
||||||
<div
|
<div
|
||||||
className={twMerge(
|
className={twMerge(
|
||||||
"flex items-center rounded-full border px-3 py-1 text-center text-xs",
|
"flex items-center rounded-full border px-3 py-1 text-center text-xs",
|
||||||
activeTeamSubscription
|
teamSubscription || proSubscription
|
||||||
? "border-emerald-300 bg-emerald-50 text-emerald-400 dark:border-emerald-700 dark:bg-emerald-950 dark:text-emerald-400"
|
? "border-emerald-300 bg-emerald-50 text-emerald-400 dark:border-emerald-700 dark:bg-emerald-950 dark:text-emerald-400"
|
||||||
: "border-light-300 bg-light-50 text-light-1000 dark:border-dark-300 dark:bg-dark-50 dark:text-dark-900",
|
: "border-light-300 bg-light-50 text-light-1000 dark:border-dark-300 dark:bg-dark-50 dark:text-dark-900",
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<span className="font-medium">
|
<span className="font-medium">
|
||||||
{activeTeamSubscription ? t`Team Plan` : t`Free Plan`}
|
{proSubscription
|
||||||
|
? t`Pro Plan`
|
||||||
|
: teamSubscription
|
||||||
|
? t`Team Plan`
|
||||||
|
: t`Free Plan`}
|
||||||
|
{proSubscription && unlimitedSeats && (
|
||||||
|
<span className="ml-1 text-xs">∞</span>
|
||||||
|
)}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
@@ -268,7 +276,8 @@ export default function MembersPage() {
|
|||||||
<InviteMemberForm
|
<InviteMemberForm
|
||||||
userId={session?.user.id}
|
userId={session?.user.id}
|
||||||
numberOfMembers={data?.members.length ?? 1}
|
numberOfMembers={data?.members.length ?? 1}
|
||||||
activeTeamSubscription={activeTeamSubscription}
|
subscriptions={subscriptions}
|
||||||
|
unlimitedSeats={unlimitedSeats}
|
||||||
/>
|
/>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
import { t } from "@lingui/core/macro";
|
|
||||||
|
|
||||||
import Button from "~/components/Button";
|
|
||||||
import { useModal } from "~/providers/modal";
|
|
||||||
|
|
||||||
export function CustomURLConfirmation({
|
|
||||||
workspacePublicId,
|
|
||||||
}: {
|
|
||||||
workspacePublicId: string;
|
|
||||||
}) {
|
|
||||||
const { closeModal, entityId } = useModal();
|
|
||||||
|
|
||||||
const handleUpgrade = async () => {
|
|
||||||
try {
|
|
||||||
const response = await fetch("/api/stripe/create_checkout_session", {
|
|
||||||
method: "POST",
|
|
||||||
headers: {
|
|
||||||
"Content-Type": "application/json",
|
|
||||||
},
|
|
||||||
body: JSON.stringify({
|
|
||||||
slug: entityId,
|
|
||||||
workspacePublicId: workspacePublicId,
|
|
||||||
cancelUrl: "/settings",
|
|
||||||
successUrl: "/settings",
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
|
|
||||||
const { url } = (await response.json()) as { url: string };
|
|
||||||
|
|
||||||
if (url) {
|
|
||||||
window.location.href = url;
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Error creating checkout session:", error);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="p-5">
|
|
||||||
<div className="flex w-full flex-col justify-between pb-4">
|
|
||||||
<h2 className="text-md pb-4 font-medium text-neutral-900 dark:text-dark-1000">
|
|
||||||
{t`Confirm URL change`}
|
|
||||||
</h2>
|
|
||||||
<p className="text-sm font-medium text-light-900 dark:text-dark-900">
|
|
||||||
{t`Custom URLs are a premium feature. You'll be directed to upgrade your account.`}
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div className="mt-5 flex justify-end space-x-2 sm:mt-6">
|
|
||||||
<Button onClick={() => closeModal()} variant="secondary">
|
|
||||||
{t`Cancel`}
|
|
||||||
</Button>
|
|
||||||
<Button onClick={handleUpgrade}>{t`Upgrade`}</Button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -98,7 +98,7 @@ const UpdateWorkspaceUrlForm = ({
|
|||||||
if (!isWorkspaceSlugAvailable?.isAvailable) return;
|
if (!isWorkspaceSlugAvailable?.isAvailable) return;
|
||||||
|
|
||||||
if (workspacePlan !== "pro" && env("NEXT_PUBLIC_KAN_ENV") === "cloud")
|
if (workspacePlan !== "pro" && env("NEXT_PUBLIC_KAN_ENV") === "cloud")
|
||||||
return openModal("UPDATE_WORKSPACE_URL", data.slug);
|
return openModal("UPGRADE_TO_PRO", data.slug);
|
||||||
|
|
||||||
updateWorkspaceSlug.mutate({
|
updateWorkspaceSlug.mutate({
|
||||||
workspacePublicId,
|
workspacePublicId,
|
||||||
|
|||||||
@@ -0,0 +1,103 @@
|
|||||||
|
import { t } from "@lingui/core/macro";
|
||||||
|
import { HiBolt, HiCheckBadge } from "react-icons/hi2";
|
||||||
|
|
||||||
|
import Button from "~/components/Button";
|
||||||
|
import { useModal } from "~/providers/modal";
|
||||||
|
import { usePopup } from "~/providers/popup";
|
||||||
|
|
||||||
|
export function UpgradeToProConfirmation({
|
||||||
|
workspacePublicId,
|
||||||
|
}: {
|
||||||
|
userId: string;
|
||||||
|
workspacePublicId: string;
|
||||||
|
}) {
|
||||||
|
const { closeModal, entityId } = useModal();
|
||||||
|
const { showPopup } = usePopup();
|
||||||
|
|
||||||
|
const handleUpgrade = async () => {
|
||||||
|
try {
|
||||||
|
const response = await fetch("/api/stripe/create_checkout_session", {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
...(entityId && { workspaceSlug: entityId }),
|
||||||
|
workspacePublicId: workspacePublicId,
|
||||||
|
cancelUrl: "/settings",
|
||||||
|
successUrl: "/settings",
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
const { url } = (await response.json()) as { url: string };
|
||||||
|
|
||||||
|
if (url) {
|
||||||
|
window.location.href = url;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error creating checkout session:", error);
|
||||||
|
|
||||||
|
showPopup({
|
||||||
|
header: t`Error upgrading subscription`,
|
||||||
|
message: t`Please try again later, or contact customer support.`,
|
||||||
|
icon: "error",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="p-5">
|
||||||
|
<div className="flex w-full flex-col justify-between pb-4">
|
||||||
|
<h2 className="text-md pb-4 font-bold text-neutral-900 dark:text-dark-1000">
|
||||||
|
{t`Upgrade to Pro`}
|
||||||
|
</h2>
|
||||||
|
<p className="mb-4 text-sm font-medium text-light-900 dark:text-dark-900">
|
||||||
|
{t`Supercharge your workspace for just $29/month. Here's what you'll get:`}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div className="rounded-md bg-light-100 p-3 text-xs text-light-900 dark:bg-dark-200 dark:text-dark-900">
|
||||||
|
<div className="space-y-3">
|
||||||
|
<div className="flex items-center space-x-3">
|
||||||
|
<HiCheckBadge className="h-5 w-5 flex-shrink-0 text-light-1000 dark:text-dark-950" />
|
||||||
|
<div className="flex items-center space-x-2">
|
||||||
|
<span className="text-sm text-neutral-900 dark:text-dark-1000">
|
||||||
|
{t`Unlimited members`}
|
||||||
|
</span>
|
||||||
|
<span className="inline-flex items-center rounded-full bg-emerald-500/10 px-2 py-0.5 text-[10px] font-medium text-emerald-600 ring-1 ring-inset ring-emerald-500/20 dark:text-emerald-400 sm:text-[10px]">
|
||||||
|
{t`Launch offer`}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center space-x-3">
|
||||||
|
<HiCheckBadge className="h-5 w-5 flex-shrink-0 text-light-1000 dark:text-dark-950" />
|
||||||
|
<span className="text-sm text-neutral-900 dark:text-dark-1000">
|
||||||
|
{t`Custom workspace URL`}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center space-x-3">
|
||||||
|
<HiCheckBadge className="h-5 w-5 flex-shrink-0 text-light-1000 dark:text-dark-950" />
|
||||||
|
<span className="text-sm text-neutral-900 dark:text-dark-1000">
|
||||||
|
{t`Board analytics (coming soon)`}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center space-x-3">
|
||||||
|
<HiCheckBadge className="h-5 w-5 flex-shrink-0 text-light-1000 dark:text-dark-950" />
|
||||||
|
<span className="text-sm text-neutral-900 dark:text-dark-1000">
|
||||||
|
{t`Priority email support`}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="mt-5 flex justify-end space-x-2 sm:mt-6">
|
||||||
|
<Button onClick={() => closeModal()} variant="secondary">
|
||||||
|
{t`Cancel`}
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
onClick={handleUpgrade}
|
||||||
|
iconRight={<HiBolt />}
|
||||||
|
>{t`Upgrade`}</Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -2,7 +2,10 @@ import { useRouter } from "next/router";
|
|||||||
import { t } from "@lingui/core/macro";
|
import { t } from "@lingui/core/macro";
|
||||||
import { env } from "next-runtime-env";
|
import { env } from "next-runtime-env";
|
||||||
import { useEffect, useRef } from "react";
|
import { useEffect, useRef } from "react";
|
||||||
import { HiMiniArrowTopRightOnSquare } from "react-icons/hi2";
|
import { HiBolt, HiMiniArrowTopRightOnSquare } from "react-icons/hi2";
|
||||||
|
|
||||||
|
import type { Subscription } from "@kan/shared/utils";
|
||||||
|
import { hasActiveSubscription } from "@kan/shared/utils";
|
||||||
|
|
||||||
import Button from "~/components/Button";
|
import Button from "~/components/Button";
|
||||||
import FeedbackModal from "~/components/FeedbackModal";
|
import FeedbackModal from "~/components/FeedbackModal";
|
||||||
@@ -17,13 +20,13 @@ import { api } from "~/utils/api";
|
|||||||
import Avatar from "./components/Avatar";
|
import Avatar from "./components/Avatar";
|
||||||
import { ChangePasswordFormConfirmation } from "./components/ChangePasswordConfirmation";
|
import { ChangePasswordFormConfirmation } from "./components/ChangePasswordConfirmation";
|
||||||
import CreateAPIKeyForm from "./components/CreateAPIKeyForm";
|
import CreateAPIKeyForm from "./components/CreateAPIKeyForm";
|
||||||
import { CustomURLConfirmation } from "./components/CustomURLConfirmation";
|
|
||||||
import { DeleteAccountConfirmation } from "./components/DeleteAccountConfirmation";
|
import { DeleteAccountConfirmation } from "./components/DeleteAccountConfirmation";
|
||||||
import { DeleteWorkspaceConfirmation } from "./components/DeleteWorkspaceConfirmation";
|
import { DeleteWorkspaceConfirmation } from "./components/DeleteWorkspaceConfirmation";
|
||||||
import UpdateDisplayNameForm from "./components/UpdateDisplayNameForm";
|
import UpdateDisplayNameForm from "./components/UpdateDisplayNameForm";
|
||||||
import UpdateWorkspaceDescriptionForm from "./components/UpdateWorkspaceDescriptionForm";
|
import UpdateWorkspaceDescriptionForm from "./components/UpdateWorkspaceDescriptionForm";
|
||||||
import UpdateWorkspaceNameForm from "./components/UpdateWorkspaceNameForm";
|
import UpdateWorkspaceNameForm from "./components/UpdateWorkspaceNameForm";
|
||||||
import UpdateWorkspaceUrlForm from "./components/UpdateWorkspaceUrlForm";
|
import UpdateWorkspaceUrlForm from "./components/UpdateWorkspaceUrlForm";
|
||||||
|
import { UpgradeToProConfirmation } from "./components/UpgradeToProConfirmation";
|
||||||
|
|
||||||
export default function SettingsPage() {
|
export default function SettingsPage() {
|
||||||
const { modalContentType, openModal, isOpen } = useModal();
|
const { modalContentType, openModal, isOpen } = useModal();
|
||||||
@@ -37,6 +40,14 @@ export default function SettingsPage() {
|
|||||||
env("NEXT_PUBLIC_ALLOW_CREDENTIALS")?.toLowerCase() === "true";
|
env("NEXT_PUBLIC_ALLOW_CREDENTIALS")?.toLowerCase() === "true";
|
||||||
const { data } = api.user.getUser.useQuery();
|
const { data } = api.user.getUser.useQuery();
|
||||||
|
|
||||||
|
const { data: workspaceData } = api.workspace.byId.useQuery({
|
||||||
|
workspacePublicId: workspace.publicId,
|
||||||
|
});
|
||||||
|
|
||||||
|
const subscriptions = workspaceData?.subscriptions as
|
||||||
|
| Subscription[]
|
||||||
|
| undefined;
|
||||||
|
|
||||||
const {
|
const {
|
||||||
data: integrations,
|
data: integrations,
|
||||||
refetch: refetchIntegrations,
|
refetch: refetchIntegrations,
|
||||||
@@ -180,6 +191,18 @@ export default function SettingsPage() {
|
|||||||
workspacePublicId={workspace.publicId}
|
workspacePublicId={workspace.publicId}
|
||||||
workspaceDescription={workspace.description ?? ""}
|
workspaceDescription={workspace.description ?? ""}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
{env("NEXT_PUBLIC_KAN_ENV") === "cloud" &&
|
||||||
|
!hasActiveSubscription(subscriptions, "pro") && (
|
||||||
|
<div className="mt-8">
|
||||||
|
<Button
|
||||||
|
onClick={() => openModal("UPGRADE_TO_PRO")}
|
||||||
|
iconRight={<HiBolt />}
|
||||||
|
>
|
||||||
|
{t`Upgrade to Pro`}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="mb-8 border-t border-light-300 dark:border-dark-300">
|
<div className="mb-8 border-t border-light-300 dark:border-dark-300">
|
||||||
@@ -346,9 +369,12 @@ export default function SettingsPage() {
|
|||||||
|
|
||||||
<Modal
|
<Modal
|
||||||
modalSize="sm"
|
modalSize="sm"
|
||||||
isVisible={isOpen && modalContentType === "UPDATE_WORKSPACE_URL"}
|
isVisible={isOpen && modalContentType === "UPGRADE_TO_PRO"}
|
||||||
>
|
>
|
||||||
<CustomURLConfirmation workspacePublicId={workspace.publicId} />
|
<UpgradeToProConfirmation
|
||||||
|
userId={data?.id ?? ""}
|
||||||
|
workspacePublicId={workspace.publicId}
|
||||||
|
/>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
<Modal
|
<Modal
|
||||||
|
|||||||
@@ -22,6 +22,11 @@ services:
|
|||||||
# Stripe
|
# Stripe
|
||||||
- STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
|
- STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
|
||||||
- STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET}
|
- STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET}
|
||||||
|
- STRIPE_WEBHOOK_SECRET_LEGACY=${STRIPE_WEBHOOK_SECRET_LEGACY}
|
||||||
|
- STRIPE_TEAM_PLAN_MONTHLY_PRICE_ID=${STRIPE_TEAM_PLAN_MONTHLY_PRICE_ID}
|
||||||
|
- STRIPE_TEAM_PLAN_YEARLY_PRICE_ID=${STRIPE_TEAM_PLAN_YEARLY_PRICE_ID}
|
||||||
|
- STRIPE_PRO_PLAN_MONTHLY_PRICE_ID=${STRIPE_PRO_PLAN_MONTHLY_PRICE_ID}
|
||||||
|
- STRIPE_PRO_PLAN_YEARLY_PRICE_ID=${STRIPE_PRO_PLAN_YEARLY_PRICE_ID}
|
||||||
|
|
||||||
# Email
|
# Email
|
||||||
- SMTP_HOST=${SMTP_HOST}
|
- SMTP_HOST=${SMTP_HOST}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ import { TRPCError } from "@trpc/server";
|
|||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
import * as memberRepo from "@kan/db/repository/member.repo";
|
import * as memberRepo from "@kan/db/repository/member.repo";
|
||||||
|
import * as subscriptionRepo from "@kan/db/repository/subscription.repo";
|
||||||
import * as userRepo from "@kan/db/repository/user.repo";
|
import * as userRepo from "@kan/db/repository/user.repo";
|
||||||
import * as workspaceRepo from "@kan/db/repository/workspace.repo";
|
import * as workspaceRepo from "@kan/db/repository/workspace.repo";
|
||||||
|
import { getSubscriptionByPlan, hasUnlimitedSeats } from "@kan/shared/utils";
|
||||||
import { updateSubscriptionSeats } from "@kan/stripe";
|
import { updateSubscriptionSeats } from "@kan/stripe";
|
||||||
|
|
||||||
import { createTRPCRouter, protectedProcedure } from "../trpc";
|
import { createTRPCRouter, protectedProcedure } from "../trpc";
|
||||||
@@ -62,29 +64,34 @@ export const memberRouter = createTRPCRouter({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (process.env.NEXT_PUBLIC_KAN_ENV === "cloud") {
|
if (process.env.NEXT_PUBLIC_KAN_ENV === "cloud") {
|
||||||
const subscriptions = await ctx.auth.api.listActiveSubscriptions({
|
const subscriptions = await subscriptionRepo.getByReferenceId(
|
||||||
workspacePublicId: workspace.publicId,
|
ctx.db,
|
||||||
});
|
workspace.publicId,
|
||||||
|
|
||||||
// get the active subscription
|
|
||||||
const activeSubscription = subscriptions.find(
|
|
||||||
(sub) =>
|
|
||||||
sub.status === "active" ||
|
|
||||||
(sub.status === "trialing" && sub.plan === "team"),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!activeSubscription) {
|
// get the active subscriptions
|
||||||
|
const activeTeamSubscription = getSubscriptionByPlan(
|
||||||
|
subscriptions,
|
||||||
|
"team",
|
||||||
|
);
|
||||||
|
const activeProSubscription = getSubscriptionByPlan(
|
||||||
|
subscriptions,
|
||||||
|
"pro",
|
||||||
|
);
|
||||||
|
const unlimitedSeats = hasUnlimitedSeats(subscriptions);
|
||||||
|
|
||||||
|
if (!activeTeamSubscription && !activeProSubscription) {
|
||||||
throw new TRPCError({
|
throw new TRPCError({
|
||||||
message: `Workspace with public ID ${workspace.publicId} does not have an active subscription`,
|
message: `Workspace with public ID ${workspace.publicId} does not have an active subscription`,
|
||||||
code: "NOT_FOUND",
|
code: "NOT_FOUND",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the Stripe subscription to add a seat with immediate proration
|
// Update the Stripe subscription
|
||||||
if (activeSubscription.stripeSubscriptionId) {
|
if (activeTeamSubscription?.stripeSubscriptionId && !unlimitedSeats) {
|
||||||
try {
|
try {
|
||||||
await updateSubscriptionSeats(
|
await updateSubscriptionSeats(
|
||||||
activeSubscription.stripeSubscriptionId,
|
activeTeamSubscription.stripeSubscriptionId,
|
||||||
1,
|
1,
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -204,22 +211,23 @@ export const memberRouter = createTRPCRouter({
|
|||||||
|
|
||||||
// Handle subscription seat decrement for cloud environment
|
// Handle subscription seat decrement for cloud environment
|
||||||
if (process.env.NEXT_PUBLIC_KAN_ENV === "cloud") {
|
if (process.env.NEXT_PUBLIC_KAN_ENV === "cloud") {
|
||||||
const subscriptions = await ctx.auth.api.listActiveSubscriptions({
|
const subscriptions = await subscriptionRepo.getByReferenceId(
|
||||||
workspacePublicId: workspace.publicId,
|
ctx.db,
|
||||||
});
|
workspace.publicId,
|
||||||
|
|
||||||
// get the active subscription
|
|
||||||
const activeSubscription = subscriptions.find(
|
|
||||||
(sub) =>
|
|
||||||
sub.status === "active" ||
|
|
||||||
(sub.status === "trialing" && sub.plan === "team"),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// get the active subscriptions
|
||||||
|
const activeTeamSubscription = getSubscriptionByPlan(
|
||||||
|
subscriptions,
|
||||||
|
"team",
|
||||||
|
);
|
||||||
|
const unlimitedSeats = hasUnlimitedSeats(subscriptions);
|
||||||
|
|
||||||
// Only decrease seats if there's an active subscription and stripeSubscriptionId
|
// Only decrease seats if there's an active subscription and stripeSubscriptionId
|
||||||
if (activeSubscription?.stripeSubscriptionId) {
|
if (activeTeamSubscription?.stripeSubscriptionId && !unlimitedSeats) {
|
||||||
try {
|
try {
|
||||||
await updateSubscriptionSeats(
|
await updateSubscriptionSeats(
|
||||||
activeSubscription.stripeSubscriptionId,
|
activeTeamSubscription.stripeSubscriptionId,
|
||||||
-1,
|
-1,
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import { env } from "next-runtime-env";
|
|||||||
|
|
||||||
import type { dbClient } from "@kan/db/client";
|
import type { dbClient } from "@kan/db/client";
|
||||||
import * as memberRepo from "@kan/db/repository/member.repo";
|
import * as memberRepo from "@kan/db/repository/member.repo";
|
||||||
|
import * as subscriptionRepo from "@kan/db/repository/subscription.repo";
|
||||||
import * as userRepo from "@kan/db/repository/user.repo";
|
import * as userRepo from "@kan/db/repository/user.repo";
|
||||||
import * as workspaceRepo from "@kan/db/repository/workspace.repo";
|
import * as workspaceRepo from "@kan/db/repository/workspace.repo";
|
||||||
import * as schema from "@kan/db/schema";
|
import * as schema from "@kan/db/schema";
|
||||||
@@ -114,13 +115,13 @@ async function downloadImage(url: string): Promise<Buffer> {
|
|||||||
export const initAuth = (db: dbClient) => {
|
export const initAuth = (db: dbClient) => {
|
||||||
return betterAuth({
|
return betterAuth({
|
||||||
secret: process.env.BETTER_AUTH_SECRET!,
|
secret: process.env.BETTER_AUTH_SECRET!,
|
||||||
baseURL: process.env.NEXT_PUBLIC_BASE_URL!,
|
baseURL: env("NEXT_PUBLIC_BASE_URL"),
|
||||||
trustedOrigins: process.env.BETTER_AUTH_TRUSTED_ORIGINS
|
trustedOrigins: process.env.BETTER_AUTH_TRUSTED_ORIGINS
|
||||||
? [
|
? [
|
||||||
process.env.NEXT_PUBLIC_BASE_URL!,
|
env("NEXT_PUBLIC_BASE_URL") ?? "",
|
||||||
...process.env.BETTER_AUTH_TRUSTED_ORIGINS.split(","),
|
...process.env.BETTER_AUTH_TRUSTED_ORIGINS.split(","),
|
||||||
]
|
]
|
||||||
: [process.env.NEXT_PUBLIC_BASE_URL!],
|
: [env("NEXT_PUBLIC_BASE_URL") ?? ""],
|
||||||
database: drizzleAdapter(db, {
|
database: drizzleAdapter(db, {
|
||||||
provider: "pg",
|
provider: "pg",
|
||||||
schema: {
|
schema: {
|
||||||
@@ -196,6 +197,31 @@ export const initAuth = (db: dbClient) => {
|
|||||||
|
|
||||||
return isUserInWorkspace;
|
return isUserInWorkspace;
|
||||||
},
|
},
|
||||||
|
getCheckoutSessionParams: () => {
|
||||||
|
return {
|
||||||
|
params: {
|
||||||
|
allow_promotion_codes: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
onSubscriptionComplete: async ({
|
||||||
|
subscription,
|
||||||
|
stripeSubscription,
|
||||||
|
}) => {
|
||||||
|
// Set unlimited seats to true for pro plans
|
||||||
|
if (subscription.plan === "pro") {
|
||||||
|
await subscriptionRepo.updateByStripeSubscriptionId(
|
||||||
|
db,
|
||||||
|
stripeSubscription.id,
|
||||||
|
{
|
||||||
|
unlimitedSeats: true,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
console.log(
|
||||||
|
`Pro subscription ${stripeSubscription.id} activated with unlimited seats`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
]
|
]
|
||||||
@@ -317,37 +343,17 @@ export const initAuth = (db: dbClient) => {
|
|||||||
},
|
},
|
||||||
hooks: {
|
hooks: {
|
||||||
after: createAuthMiddleware(async (ctx) => {
|
after: createAuthMiddleware(async (ctx) => {
|
||||||
if (ctx.path.startsWith("/get-session")) {
|
if (
|
||||||
const user = ctx.context.session?.user;
|
|
||||||
|
|
||||||
if (
|
|
||||||
env("NEXT_PUBLIC_KAN_ENV") === "cloud" &&
|
|
||||||
user &&
|
|
||||||
!user.stripeCustomerId
|
|
||||||
) {
|
|
||||||
const stripe = createStripeClient();
|
|
||||||
const stripeCustomer = await stripe.customers.create({
|
|
||||||
email: user.email,
|
|
||||||
metadata: {
|
|
||||||
userId: user.id,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
await userRepo.update(db, user.id, {
|
|
||||||
stripeCustomerId: stripeCustomer.id,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} else if (
|
|
||||||
ctx.path === "/magic-link/verify" &&
|
ctx.path === "/magic-link/verify" &&
|
||||||
(ctx.query?.callbackURL as string | undefined)?.includes(
|
(ctx.query?.callbackURL as string | undefined)?.includes(
|
||||||
"type=invite",
|
"type=invite",
|
||||||
) &&
|
)
|
||||||
ctx.query?.memberPublicId
|
|
||||||
) {
|
) {
|
||||||
const userId = ctx.context.newSession?.session.userId;
|
const userId = ctx.context.newSession?.session.userId;
|
||||||
const memberPublicId = ctx.query.memberPublicId as string;
|
const callbackURL = ctx.query?.callbackURL as string | undefined;
|
||||||
|
const memberPublicId = callbackURL?.split("memberPublicId=")[1];
|
||||||
|
|
||||||
if (userId) {
|
if (userId && memberPublicId) {
|
||||||
const member = await memberRepo.getByPublicId(db, memberPublicId);
|
const member = await memberRepo.getByPublicId(db, memberPublicId);
|
||||||
|
|
||||||
if (member?.id) {
|
if (member?.id) {
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE "subscription" ADD COLUMN "unlimitedSeats" boolean DEFAULT false NOT NULL;
|
||||||
2543
packages/db/migrations/meta/20250907185512_snapshot.json
Normal file
2543
packages/db/migrations/meta/20250907185512_snapshot.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -71,6 +71,13 @@
|
|||||||
"when": 1756803246096,
|
"when": 1756803246096,
|
||||||
"tag": "20250902085406_AddSubscriptions",
|
"tag": "20250902085406_AddSubscriptions",
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idx": 10,
|
||||||
|
"version": "7",
|
||||||
|
"when": 1757271312974,
|
||||||
|
"tag": "20250907185512_AddUnlimitedSeatsToSubscription",
|
||||||
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
91
packages/db/src/repository/subscription.repo.ts
Normal file
91
packages/db/src/repository/subscription.repo.ts
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
import { eq } from "drizzle-orm";
|
||||||
|
|
||||||
|
import type { dbClient } from "@kan/db/client";
|
||||||
|
import { subscription } from "@kan/db/schema";
|
||||||
|
|
||||||
|
export const updateById = async (
|
||||||
|
db: dbClient,
|
||||||
|
subscriptionId: number,
|
||||||
|
updates: {
|
||||||
|
unlimitedSeats?: boolean;
|
||||||
|
status?: string;
|
||||||
|
seats?: number | null;
|
||||||
|
periodStart?: Date | null;
|
||||||
|
periodEnd?: Date | null;
|
||||||
|
cancelAtPeriodEnd?: boolean | null;
|
||||||
|
},
|
||||||
|
) => {
|
||||||
|
const [result] = await db
|
||||||
|
.update(subscription)
|
||||||
|
.set({
|
||||||
|
...updates,
|
||||||
|
updatedAt: new Date(),
|
||||||
|
})
|
||||||
|
.where(eq(subscription.id, subscriptionId))
|
||||||
|
.returning({
|
||||||
|
id: subscription.id,
|
||||||
|
plan: subscription.plan,
|
||||||
|
status: subscription.status,
|
||||||
|
unlimitedSeats: subscription.unlimitedSeats,
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const updateByStripeSubscriptionId = async (
|
||||||
|
db: dbClient,
|
||||||
|
stripeSubscriptionId: string,
|
||||||
|
updates: {
|
||||||
|
unlimitedSeats?: boolean;
|
||||||
|
status?: string;
|
||||||
|
seats?: number | null;
|
||||||
|
periodStart?: Date | null;
|
||||||
|
periodEnd?: Date | null;
|
||||||
|
cancelAtPeriodEnd?: boolean | null;
|
||||||
|
},
|
||||||
|
) => {
|
||||||
|
const [result] = await db
|
||||||
|
.update(subscription)
|
||||||
|
.set({
|
||||||
|
...updates,
|
||||||
|
updatedAt: new Date(),
|
||||||
|
})
|
||||||
|
.where(eq(subscription.stripeSubscriptionId, stripeSubscriptionId))
|
||||||
|
.returning({
|
||||||
|
id: subscription.id,
|
||||||
|
plan: subscription.plan,
|
||||||
|
status: subscription.status,
|
||||||
|
unlimitedSeats: subscription.unlimitedSeats,
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getByStripeSubscriptionId = async (
|
||||||
|
db: dbClient,
|
||||||
|
stripeSubscriptionId: string,
|
||||||
|
) => {
|
||||||
|
return await db.query.subscription.findFirst({
|
||||||
|
where: eq(subscription.stripeSubscriptionId, stripeSubscriptionId),
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getByReferenceId = async (db: dbClient, referenceId: string) => {
|
||||||
|
return await db.query.subscription.findMany({
|
||||||
|
where: eq(subscription.referenceId, referenceId),
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
export const create = async (
|
||||||
|
db: dbClient,
|
||||||
|
data: {
|
||||||
|
plan: string;
|
||||||
|
referenceId: string;
|
||||||
|
userId: string;
|
||||||
|
stripeCustomerId: string;
|
||||||
|
status: string;
|
||||||
|
},
|
||||||
|
) => {
|
||||||
|
const [result] = await db.insert(subscription).values(data).returning();
|
||||||
|
return result;
|
||||||
|
};
|
||||||
@@ -127,6 +127,7 @@ export const getByPublicIdWithMembers = (
|
|||||||
plan: true,
|
plan: true,
|
||||||
status: true,
|
status: true,
|
||||||
seats: true,
|
seats: true,
|
||||||
|
unlimitedSeats: true,
|
||||||
periodStart: true,
|
periodStart: true,
|
||||||
periodEnd: true,
|
periodEnd: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ export const subscription = pgTable("subscription", {
|
|||||||
periodEnd: timestamp("periodEnd"),
|
periodEnd: timestamp("periodEnd"),
|
||||||
cancelAtPeriodEnd: boolean("cancelAtPeriodEnd"),
|
cancelAtPeriodEnd: boolean("cancelAtPeriodEnd"),
|
||||||
seats: integer("seats"),
|
seats: integer("seats"),
|
||||||
|
unlimitedSeats: boolean("unlimitedSeats").default(false).notNull(),
|
||||||
trialStart: timestamp("trialStart"),
|
trialStart: timestamp("trialStart"),
|
||||||
trialEnd: timestamp("trialEnd"),
|
trialEnd: timestamp("trialEnd"),
|
||||||
createdAt: timestamp("createdAt").notNull().defaultNow(),
|
createdAt: timestamp("createdAt").notNull().defaultNow(),
|
||||||
|
|||||||
@@ -45,14 +45,14 @@ export const sendEmail = async (
|
|||||||
html,
|
html,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (cloudMailerClient) {
|
// if (cloudMailerClient) {
|
||||||
const response = await cloudMailerClient.emails.send({
|
// const response = await cloudMailerClient.emails.send({
|
||||||
...options,
|
// ...options,
|
||||||
body: html,
|
// body: html,
|
||||||
});
|
// });
|
||||||
|
|
||||||
return response;
|
// return response;
|
||||||
}
|
// }
|
||||||
|
|
||||||
const response = await transporter.sendMail(options);
|
const response = await transporter.sendMail(options);
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
export * from "./generateUID";
|
export * from "./generateUID";
|
||||||
export * from "./generateSlug";
|
export * from "./generateSlug";
|
||||||
|
export * from "./subscriptions";
|
||||||
|
|||||||
57
packages/shared/src/utils/subscriptions.ts
Normal file
57
packages/shared/src/utils/subscriptions.ts
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
export type SubscriptionStatus =
|
||||||
|
| "active"
|
||||||
|
| "trialing"
|
||||||
|
| "past_due"
|
||||||
|
| "canceled"
|
||||||
|
| "unpaid";
|
||||||
|
export type SubscriptionPlan = "team" | "pro";
|
||||||
|
|
||||||
|
export interface Subscription {
|
||||||
|
id: number | null;
|
||||||
|
plan: string;
|
||||||
|
status: string;
|
||||||
|
seats: number | null;
|
||||||
|
unlimitedSeats: boolean;
|
||||||
|
periodStart: Date | null;
|
||||||
|
periodEnd: Date | null;
|
||||||
|
referenceId: string;
|
||||||
|
stripeSubscriptionId: string | null;
|
||||||
|
stripeCustomerId: string | null;
|
||||||
|
createdAt: Date;
|
||||||
|
updatedAt: Date;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getActiveSubscriptions = (
|
||||||
|
subscriptions: Subscription[] | undefined,
|
||||||
|
) => {
|
||||||
|
if (!subscriptions) return [];
|
||||||
|
return subscriptions.filter(
|
||||||
|
(sub) => sub.status === "active" || sub.status === "trialing",
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getSubscriptionByPlan = (
|
||||||
|
subscriptions: Subscription[] | undefined,
|
||||||
|
plan: SubscriptionPlan,
|
||||||
|
) => {
|
||||||
|
if (!subscriptions) return undefined;
|
||||||
|
return subscriptions.find(
|
||||||
|
(sub) =>
|
||||||
|
sub.plan === plan &&
|
||||||
|
(sub.status === "active" || sub.status === "trialing"),
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const hasActiveSubscription = (
|
||||||
|
subscriptions: Subscription[] | undefined,
|
||||||
|
plan: SubscriptionPlan,
|
||||||
|
) => {
|
||||||
|
return getSubscriptionByPlan(subscriptions, plan) !== undefined;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const hasUnlimitedSeats = (
|
||||||
|
subscriptions: Subscription[] | undefined,
|
||||||
|
) => {
|
||||||
|
const activeSubscriptions = getActiveSubscriptions(subscriptions);
|
||||||
|
return activeSubscriptions.some((sub) => sub.unlimitedSeats);
|
||||||
|
};
|
||||||
@@ -64,7 +64,7 @@ export const updateSubscriptionSeats = async (
|
|||||||
quantity: newQuantity,
|
quantity: newQuantity,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
proration_behavior: "always_invoice", // Invoice immediately
|
proration_behavior: "create_prorations",
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,11 @@
|
|||||||
"NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY",
|
"NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY",
|
||||||
"STRIPE_SECRET_KEY",
|
"STRIPE_SECRET_KEY",
|
||||||
"STRIPE_WEBHOOK_SECRET",
|
"STRIPE_WEBHOOK_SECRET",
|
||||||
"STRIPE_PRO_PLAN_PRICE_ID",
|
"STRIPE_WEBHOOK_SECRET_LEGACY",
|
||||||
|
"STRIPE_PRO_PLAN_MONTHLY_PRICE_ID",
|
||||||
|
"STRIPE_PRO_PLAN_YEARLY_PRICE_ID",
|
||||||
|
"STRIPE_TEAM_PLAN_MONTHLY_PRICE_ID",
|
||||||
|
"STRIPE_TEAM_PLAN_YEARLY_PRICE_ID",
|
||||||
"NEXT_PUBLIC_STORAGE_DOMAIN",
|
"NEXT_PUBLIC_STORAGE_DOMAIN",
|
||||||
"NEXT_PUBLIC_STORAGE_URL",
|
"NEXT_PUBLIC_STORAGE_URL",
|
||||||
"NEXT_PUBLIC_AVATAR_BUCKET_NAME",
|
"NEXT_PUBLIC_AVATAR_BUCKET_NAME",
|
||||||
|
|||||||
Reference in New Issue
Block a user