Compare commits
10 Commits
fix/missin
...
fix/kan-15
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31c9a36502 | ||
|
|
0f92ac0d9b | ||
|
|
eb0ca9c738 | ||
|
|
3233c35836 | ||
|
|
ba2fd7f695 | ||
|
|
c7f7531b11 | ||
|
|
4f57fc45a7 | ||
|
|
ea92dcd2ed | ||
|
|
d51600aba8 | ||
|
|
c3ed2e5e7f |
64
README.md
64
README.md
@@ -138,36 +138,40 @@ pnpm dev
|
|||||||
|
|
||||||
## Environment Variables 🔐
|
## Environment Variables 🔐
|
||||||
|
|
||||||
| Variable | Description | Required | Example |
|
| Variable | Description | Required | Example |
|
||||||
| -------------------------------- | -------------------------------------------------------- | ------------------ | --------------------------------------------- |
|
| ----------------------------------------- | -------------------------------------------------------- | ------------------------ | ----------------------------------------------------------- |
|
||||||
| `POSTGRES_URL` | PostgreSQL connection URL | To use external database | `postgres://user:pass@localhost:5432/db` |
|
| `POSTGRES_URL` | PostgreSQL connection URL | To use external database | `postgres://user:pass@localhost:5432/db` |
|
||||||
| `EMAIL_FROM` | Sender email address | For Email | `"Kan <hello@mail.kan.bn>"` |
|
| `EMAIL_FROM` | Sender email address | For Email | `"Kan <hello@mail.kan.bn>"` |
|
||||||
| `SMTP_HOST` | SMTP server hostname | For Email | `smtp.resend.com` |
|
| `SMTP_HOST` | SMTP server hostname | For Email | `smtp.resend.com` |
|
||||||
| `SMTP_PORT` | SMTP server port | For Email | `465` |
|
| `SMTP_PORT` | SMTP server port | For Email | `465` |
|
||||||
| `SMTP_USER` | SMTP username/email | No | `resend` |
|
| `SMTP_USER` | SMTP username/email | No | `resend` |
|
||||||
| `SMTP_PASSWORD` | SMTP password/token | No | `re_xxxx` |
|
| `SMTP_PASSWORD` | SMTP password/token | No | `re_xxxx` |
|
||||||
| `SMTP_SECURE` | Use secure SMTP connection (defaults to true if not set) | For Email | `true` |
|
| `SMTP_SECURE` | Use secure SMTP connection (defaults to true if not set) | For Email | `true` |
|
||||||
| `NEXT_PUBLIC_BASE_URL` | Base URL of your installation | Yes | `http://localhost:3000` |
|
| `NEXT_PUBLIC_BASE_URL` | Base URL of your installation | Yes | `http://localhost:3000` |
|
||||||
| `BETTER_AUTH_SECRET` | Auth encryption secret | Yes | Random 32+ char string |
|
| `BETTER_AUTH_SECRET` | Auth encryption secret | Yes | Random 32+ char string |
|
||||||
| `BETTER_AUTH_TRUSTED_ORIGINS` | Allowed callback origins | No | `http://localhost:3000,http://localhost:3001` |
|
| `BETTER_AUTH_TRUSTED_ORIGINS` | Allowed callback origins | No | `http://localhost:3000,http://localhost:3001` |
|
||||||
| `GOOGLE_CLIENT_ID` | Google OAuth client ID | For Google login | `xxx.apps.googleusercontent.com` |
|
| `GOOGLE_CLIENT_ID` | Google OAuth client ID | For Google login | `xxx.apps.googleusercontent.com` |
|
||||||
| `GOOGLE_CLIENT_SECRET` | Google OAuth client secret | For Google login | `xxx` |
|
| `GOOGLE_CLIENT_SECRET` | Google OAuth client secret | For Google login | `xxx` |
|
||||||
| `DISCORD_CLIENT_ID` | Discord OAuth client ID | For Discord login | `xxx` |
|
| `DISCORD_CLIENT_ID` | Discord OAuth client ID | For Discord login | `xxx` |
|
||||||
| `DISCORD_CLIENT_SECRET` | Discord OAuth client secret | For Discord login | `xxx` |
|
| `DISCORD_CLIENT_SECRET` | Discord OAuth client secret | For Discord login | `xxx` |
|
||||||
| `GITHUB_CLIENT_ID` | GitHub OAuth client ID | For GitHub login | `xxx` |
|
| `GITHUB_CLIENT_ID` | GitHub OAuth client ID | For GitHub login | `xxx` |
|
||||||
| `GITHUB_CLIENT_SECRET` | GitHub OAuth client secret | For GitHub login | `xxx` |
|
| `GITHUB_CLIENT_SECRET` | GitHub OAuth client secret | For GitHub login | `xxx` |
|
||||||
| `TRELLO_APP_API_KEY` | Trello app API key | For Trello import | `xxx` |
|
| `OIDC_CLIENT_ID` | Generic OIDC client ID | For OIDC login | `xxx` |
|
||||||
| `TRELLO_APP_API_SECRET` | Trello app API secret | For Trello import | `xxx` |
|
| `OIDC_CLIENT_SECRET` | Generic OIDC client secret | For OIDC login | `xxx` |
|
||||||
| `S3_REGION` | S3 storage region | For file uploads | `WEUR` |
|
| `OIDC_DISCOVERY_URL` | OIDC discovery URL | For OIDC login | `https://auth.example.com/.well-known/openid-configuration` |
|
||||||
| `S3_ENDPOINT` | S3 endpoint URL | For file uploads | `https://xxx.r2.cloudflarestorage.com` |
|
| `TRELLO_APP_API_KEY` | Trello app API key | For Trello import | `xxx` |
|
||||||
| `S3_ACCESS_KEY_ID` | S3 access key | For file uploads | `xxx` |
|
| `TRELLO_APP_API_SECRET` | Trello app API secret | For Trello import | `xxx` |
|
||||||
| `S3_SECRET_ACCESS_KEY` | S3 secret key | For file uploads | `xxx` |
|
| `S3_REGION` | S3 storage region | For file uploads | `WEUR` |
|
||||||
| `S3_FORCE_PATH_STYLE` | Use path-style URLs for S3 | For file uploads | `true` |
|
| `S3_ENDPOINT` | S3 endpoint URL | For file uploads | `https://xxx.r2.cloudflarestorage.com` |
|
||||||
| `NEXT_PUBLIC_STORAGE_URL` | Storage service URL | For file uploads | `https://storage.kanbn.com` |
|
| `S3_ACCESS_KEY_ID` | S3 access key | For file uploads | `xxx` |
|
||||||
| `NEXT_PUBLIC_STORAGE_DOMAIN` | Storage domain name | For file uploads | `kanbn.com` |
|
| `S3_SECRET_ACCESS_KEY` | S3 secret key | For file uploads | `xxx` |
|
||||||
| `NEXT_PUBLIC_AVATAR_BUCKET_NAME` | S3 bucket name for avatars | For file uploads | `avatars` |
|
| `S3_FORCE_PATH_STYLE` | Use path-style URLs for S3 | For file uploads | `true` |
|
||||||
| `NEXT_PUBLIC_ALLOW_CREDENTIALS` | Allow email & password login | For authentication | `true` |
|
| `NEXT_PUBLIC_STORAGE_URL` | Storage service URL | For file uploads | `https://storage.kanbn.com` |
|
||||||
| `NEXT_PUBLIC_DISABLE_SIGN_UP` | Disable sign up | For authentication | `false` |
|
| `NEXT_PUBLIC_STORAGE_DOMAIN` | Storage domain name | For file uploads | `kanbn.com` |
|
||||||
|
| `NEXT_PUBLIC_AVATAR_BUCKET_NAME` | S3 bucket name for avatars | For file uploads | `avatars` |
|
||||||
|
| `NEXT_PUBLIC_ALLOW_CREDENTIALS` | Allow email & password login | For authentication | `true` |
|
||||||
|
| `NEXT_PUBLIC_DISABLE_SIGN_UP` | Disable sign up | For authentication | `false` |
|
||||||
|
| `NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY` | Hide “Powered by kan.bn” on public boards (self-host) | For white labelling | `true` |
|
||||||
|
|
||||||
See `.env.example` for a complete list of supported environment variables.
|
See `.env.example` for a complete list of supported environment variables.
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ checksums:
|
|||||||
Add%20a%20comment.../singular: c28cfccc0cc69a2a2487e37eb9988028
|
Add%20a%20comment.../singular: c28cfccc0cc69a2a2487e37eb9988028
|
||||||
Add%20an%20item.../singular: f8e7993980420698700b07f56b3a38af
|
Add%20an%20item.../singular: f8e7993980420698700b07f56b3a38af
|
||||||
Add%20checklist/singular: 05d73200b56cfea75fb3a0f94c9bfb74
|
Add%20checklist/singular: 05d73200b56cfea75fb3a0f94c9bfb74
|
||||||
Add%20description...%20(type%20'%2F'%20to%20open%20commands)/singular: df99ea599521682e9ad0a90716955dc6
|
Add%20description...%20(type%20'%2F'%20to%20open%20commands%20or%20'%40'%20to%20mention)/singular: c6eb35a796dd7ac0e3dbc66244b71248
|
||||||
Add%20details.../singular: 2f42547fd5d199f173aa7a88c8a9b19a
|
Add%20details.../singular: 2f42547fd5d199f173aa7a88c8a9b19a
|
||||||
Add%20label/singular: 0be732d46df263265935fda342097a08
|
Add%20label/singular: 0be732d46df263265935fda342097a08
|
||||||
Add%20member/singular: 11979625770516ca287e929381778e02
|
Add%20member/singular: 11979625770516ca287e929381778e02
|
||||||
@@ -31,6 +31,7 @@ checksums:
|
|||||||
All%20systems%20operational/singular: ee943a4046b09e6334cceeea9fda2bfc
|
All%20systems%20operational/singular: ee943a4046b09e6334cceeea9fda2bfc
|
||||||
Already%20have%20an%20account%3F%20%3C0%3E%3C1%3ESign%20in%3C%2F1%3E%3C%2F0%3E/singular: 2959fd276248208b65cb27ed46b20135
|
Already%20have%20an%20account%3F%20%3C0%3E%3C1%3ESign%20in%3C%2F1%3E%3C%2F0%3E/singular: 2959fd276248208b65cb27ed46b20135
|
||||||
An%20error%20occurred%20while%20disconnecting%20your%20Trello%20account./singular: 0aa3973b860c1faf8d9123aebf567e40
|
An%20error%20occurred%20while%20disconnecting%20your%20Trello%20account./singular: 0aa3973b860c1faf8d9123aebf567e40
|
||||||
|
An%20unexpected%20error%20occurred.%20Please%20try%20again%20later./singular: 1b5749b0cca6a62d75a577bee6804074
|
||||||
API%20keys/singular: 07f3620a30e08136f0b072c9af8d1eef
|
API%20keys/singular: 07f3620a30e08136f0b072c9af8d1eef
|
||||||
API%20Reference/singular: 7dcc877064bfdf889ec55dbc9e06a242
|
API%20Reference/singular: 7dcc877064bfdf889ec55dbc9e06a242
|
||||||
Applicants/singular: 4babd8331a1441e91087f855f43e57f8
|
Applicants/singular: 4babd8331a1441e91087f855f43e57f8
|
||||||
@@ -67,6 +68,7 @@ checksums:
|
|||||||
Cancel/singular: 2e2a849c2223911717de8caa2c71bade
|
Cancel/singular: 2e2a849c2223911717de8caa2c71bade
|
||||||
Card%20not%20found/singular: 91509e2f92b0b3b11330b6983139fdbf
|
Card%20not%20found/singular: 91509e2f92b0b3b11330b6983139fdbf
|
||||||
Card%20title/singular: 7c34f59f4005e6cb3a6ff546ea0b96e3
|
Card%20title/singular: 7c34f59f4005e6cb3a6ff546ea0b96e3
|
||||||
|
Change%20Password/singular: a552fc5c4189ebc3e2e6018edda7d18f
|
||||||
Change%20the%20language%20of%20the%20app./singular: fb20db145e28ed44aba89c146ded7bfc
|
Change%20the%20language%20of%20the%20app./singular: fb20db145e28ed44aba89c146ded7bfc
|
||||||
Check%20your%20inbox/singular: e9a430fcd298def74212238df0f680d6
|
Check%20your%20inbox/singular: e9a430fcd298def74212238df0f680d6
|
||||||
Checklist%20name/singular: 5eb5de823f7ca5a4d97bb41e6a3f675a
|
Checklist%20name/singular: 5eb5de823f7ca5a4d97bb41e6a3f675a
|
||||||
@@ -82,6 +84,7 @@ checksums:
|
|||||||
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%20URL%20change/singular: e14b4ce081d1ef6194b37e1814e97b39
|
||||||
|
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
|
||||||
Connect%20your%20Trello%20account%20to%20import%20boards./singular: 84a510a7485f43e43f2191bd161171d7
|
Connect%20your%20Trello%20account%20to%20import%20boards./singular: 84a510a7485f43e43f2191bd161171d7
|
||||||
@@ -104,6 +107,7 @@ checksums:
|
|||||||
Create%20workspace/singular: 2e6718e79964ea5ce22d76c2189c77ca
|
Create%20workspace/singular: 2e6718e79964ea5ce22d76c2189c77ca
|
||||||
created%20the%20card/singular: 605475f5aaeb4dbccbf7c4eb9107b43d
|
created%20the%20card/singular: 605475f5aaeb4dbccbf7c4eb9107b43d
|
||||||
Critical/singular: eb327cd411b50aee954f8d1d215d003a
|
Critical/singular: eb327cd411b50aee954f8d1d215d003a
|
||||||
|
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%20URLs%20are%20a%20premium%20feature.%20You'll%20be%20directed%20to%20upgrade%20your%20account./singular: b52e4f6122cf739c9551d29beb89b25e
|
||||||
Customer%20Support/singular: 50e3c77e22e41061ca85ea2f02625a2e
|
Customer%20Support/singular: 50e3c77e22e41061ca85ea2f02625a2e
|
||||||
@@ -140,9 +144,13 @@ checksums:
|
|||||||
email/singular: f31eb214738e037d58e26149797739df
|
email/singular: f31eb214738e037d58e26149797739df
|
||||||
Email/singular: e7f34943a0c2fb849db1839ff6ef5cb5
|
Email/singular: e7f34943a0c2fb849db1839ff6ef5cb5
|
||||||
Enhancement/singular: 785fe23c0eef0a5b60b5b2a88151de31
|
Enhancement/singular: 785fe23c0eef0a5b60b5b2a88151de31
|
||||||
|
Enter%20your%20current%20password/singular: bfceabde4c0b6f2cb439015b76549651
|
||||||
|
Enter%20your%20current%20password%20and%20choose%20a%20new%20secure%20password./singular: 9bb88155b18e98ea799c0e939d16af64
|
||||||
Enter%20your%20email%20address/singular: 9bc008365ebe3e404e241c8ca876f56e
|
Enter%20your%20email%20address/singular: 9bc008365ebe3e404e241c8ca876f56e
|
||||||
Enter%20your%20name/singular: cd95fbdd0533f2c2e8edf9d9bd9aa8df
|
Enter%20your%20name/singular: cd95fbdd0533f2c2e8edf9d9bd9aa8df
|
||||||
|
Enter%20your%20new%20password/singular: c67251e3002b68bc20a7cf5de23e43ac
|
||||||
Enter%20your%20password/singular: ea4fdd034522dead21bae0c0abb52eae
|
Enter%20your%20password/singular: ea4fdd034522dead21bae0c0abb52eae
|
||||||
|
Error%20Changing%20Password/singular: ebecb5c1b72ba4b063117241f5ba4f2d
|
||||||
Error%20deleting%20account/singular: d42965a9bc9e5ec4ed57890268924643
|
Error%20deleting%20account/singular: d42965a9bc9e5ec4ed57890268924643
|
||||||
Error%20deleting%20label/singular: 94387e3a45ec768ae7715701ae00136e
|
Error%20deleting%20label/singular: 94387e3a45ec768ae7715701ae00136e
|
||||||
Error%20deleting%20workspace/singular: 0aec9bd8170bc84f5ea5c9a47c52ed26
|
Error%20deleting%20workspace/singular: 0aec9bd8170bc84f5ea5c9a47c52ed26
|
||||||
@@ -244,6 +252,8 @@ checksums:
|
|||||||
New%20import/singular: e8fddfe15dd170277df919e5d37efd47
|
New%20import/singular: e8fddfe15dd170277df919e5d37efd47
|
||||||
New%20label/singular: 890040da52a88c16c249a4ac78980f81
|
New%20label/singular: 890040da52a88c16c249a4ac78980f81
|
||||||
New%20list/singular: 146c2e642b11056a0b07ed65733e4178
|
New%20list/singular: 146c2e642b11056a0b07ed65733e4178
|
||||||
|
New%20password%20is%20required/singular: f88427a4cca058631199a4384cb5622e
|
||||||
|
New%20password%20must%20be%20different%20from%20current%20password/singular: db33013fcc6c40995cf8a37deb3d5667
|
||||||
New%20Ticket/singular: 665ff16ec736cba20e8a1b3beb3baa09
|
New%20Ticket/singular: 665ff16ec736cba20e8a1b3beb3baa09
|
||||||
New%20workspace/singular: 8eecf05b4ce29aa880adfed2e11476af
|
New%20workspace/singular: 8eecf05b4ce29aa880adfed2e11476af
|
||||||
Newsletter/singular: dcfb9666301924431ac8ae88e5b6f9d7
|
Newsletter/singular: dcfb9666301924431ac8ae88e5b6f9d7
|
||||||
@@ -260,11 +270,15 @@ checksums:
|
|||||||
Organize%20and%20find%20cards%20quickly%20with%20powerful%20filtering%20tools./singular: 1b9898c4b21e9dff413b4f76dc59db56
|
Organize%20and%20find%20cards%20quickly%20with%20powerful%20filtering%20tools./singular: 1b9898c4b21e9dff413b4f76dc59db56
|
||||||
Own%20your%20data/singular: cc2178dac4bdf6b07f030cfc2a7510e6
|
Own%20your%20data/singular: cc2178dac4bdf6b07f030cfc2a7510e6
|
||||||
Part-time/singular: 213d63da450f35dabb3ab0e35e29feed
|
Part-time/singular: 213d63da450f35dabb3ab0e35e29feed
|
||||||
|
Password%20Changed/singular: 1fcebe9ddb46f722a57f195efddc695d
|
||||||
|
Password%20must%20be%20at%20least%208%20characters/singular: 4c30501d085eaccea47af34212bb26a7
|
||||||
|
Passwords%20do%20not%20match/singular: 37ca1f4e0afc9a0b8e9617f767103c92
|
||||||
Payment%20frequency/singular: 63ded0e4ffb462ca8bd33d38e4691d86
|
Payment%20frequency/singular: 63ded0e4ffb462ca8bd33d38e4691d86
|
||||||
Pending/singular: 030a6f3395d5d4efddd3cc67d6009039
|
Pending/singular: 030a6f3395d5d4efddd3cc67d6009039
|
||||||
per%20user%2Fmonth/singular: 72af182c1ba6df6732640f4d8a78d360
|
per%20user%2Fmonth/singular: 72af182c1ba6df6732640f4d8a78d360
|
||||||
Personal%20Project/singular: d7820b1bf4efecc61ed89234567aaa9c
|
Personal%20Project/singular: d7820b1bf4efecc61ed89234567aaa9c
|
||||||
Planning/singular: 353f58c75248275fe091740607501610
|
Planning/singular: 353f58c75248275fe091740607501610
|
||||||
|
Please%20confirm%20your%20new%20password/singular: 43d0307b9307238cc6c199cfa66caff2
|
||||||
Please%20enter%20a%20valid%20email%20address/singular: 8de4bc8832b11b380bc4cbcedc16e48b
|
Please%20enter%20a%20valid%20email%20address/singular: 8de4bc8832b11b380bc4cbcedc16e48b
|
||||||
Please%20enter%20a%20valid%20name/singular: f2d741f1b5cae722e35cb5206786f932
|
Please%20enter%20a%20valid%20name/singular: f2d741f1b5cae722e35cb5206786f932
|
||||||
Please%20enter%20a%20valid%20password/singular: 4b32c17e19b79bcbf0bb092c06ba310f
|
Please%20enter%20a%20valid%20password/singular: 4b32c17e19b79bcbf0bb092c06ba310f
|
||||||
@@ -329,6 +343,7 @@ checksums:
|
|||||||
Templates/singular: 8ed62f56c81fa96c0f3182acb331bf63
|
Templates/singular: 8ed62f56c81fa96c0f3182acb331bf63
|
||||||
Terms%20of%20service/singular: 0b8a8b23aff021a6cde79613fdb39c28
|
Terms%20of%20service/singular: 0b8a8b23aff021a6cde79613fdb39c28
|
||||||
Thank%20you%20for%20your%20feedback!/singular: 07edd8c50685a52c0969d711df26d768
|
Thank%20you%20for%20your%20feedback!/singular: 07edd8c50685a52c0969d711df26d768
|
||||||
|
The%20current%20password%20you%20entered%20is%20incorrect./singular: 67a76bf346ab4b48563269e9d941a64a
|
||||||
The%20main%20difference%20between%20Kan%20and%20Trello%20is%20that%20Kan%20is%20open%20source%2C%20allowing%20anyone%20to%20view%2C%20modify%2C%20and%20contribute%20to%20our%20code.%20Our%20cloud%20offering%20also%20offers%20no%20restrictions%20on%20features%20for%20individual%20use%2C%20whereas%20Trello%20locks%20basic%20features%20such%20as%20the%20number%20of%20boards%20you%20can%20create%20behind%20a%20paywall./singular: db6e22cc955c5fbe547feedeb48f8719
|
The%20main%20difference%20between%20Kan%20and%20Trello%20is%20that%20Kan%20is%20open%20source%2C%20allowing%20anyone%20to%20view%2C%20modify%2C%20and%20contribute%20to%20our%20code.%20Our%20cloud%20offering%20also%20offers%20no%20restrictions%20on%20features%20for%20individual%20use%2C%20whereas%20Trello%20locks%20basic%20features%20such%20as%20the%20number%20of%20boards%20you%20can%20create%20behind%20a%20paywall./singular: db6e22cc955c5fbe547feedeb48f8719
|
||||||
The%20open%20source%20%3C0%2F%3E%20alternative%20to%20Trello/singular: 692cb2e8a8e610953c996826beed45a2
|
The%20open%20source%20%3C0%2F%3E%20alternative%20to%20Trello/singular: 692cb2e8a8e610953c996826beed45a2
|
||||||
The%20visibility%20of%20your%20board%20has%20been%20set%20to%20%7B0%7D./singular: 970e17a115f7374e60e0a8ded425db8f
|
The%20visibility%20of%20your%20board%20has%20been%20set%20to%20%7B0%7D./singular: 970e17a115f7374e60e0a8ded425db8f
|
||||||
@@ -420,6 +435,7 @@ checksums:
|
|||||||
Writing/singular: 4f5f3ee3320c252921f80c42653c5d49
|
Writing/singular: 4f5f3ee3320c252921f80c42653c5d49
|
||||||
Yearly/singular: 87f43e016c19cb25860f456549a2f431
|
Yearly/singular: 87f43e016c19cb25860f456549a2f431
|
||||||
Yes%2C%20we%20offer%20an%20forever%20free%20plan%20for%20individual%20use.%20No%20restrictions%2C%20no%20paywalls%2C%20no%20limits./singular: 963cee303d0ff13c1719f4575e774fe3
|
Yes%2C%20we%20offer%20an%20forever%20free%20plan%20for%20individual%20use.%20No%20restrictions%2C%20no%20paywalls%2C%20no%20limits./singular: 963cee303d0ff13c1719f4575e774fe3
|
||||||
|
You%20are%20about%20to%20change%20your%20password./singular: df4783d593505766d78c5bc08d3d48ac
|
||||||
You%20can%20get%20a%20custom%20workspace%20URL%2C%20like%20%3C0%3Ekan.bn%2Fkan%3C%2F0%3E%2C%20by%20going%20into%20your%20%3C1%3Eworkspace%20settings%3C%2F1%3E%20and%20purchasing%20a%20pro%20workspace%20subscription.%20All%20subscriptions%20help%20fund%20the%20development%20of%20the%20project!/singular: 41dd145ef56f539e12dc064a9807c660
|
You%20can%20get%20a%20custom%20workspace%20URL%2C%20like%20%3C0%3Ekan.bn%2Fkan%3C%2F0%3E%2C%20by%20going%20into%20your%20%3C1%3Eworkspace%20settings%3C%2F1%3E%20and%20purchasing%20a%20pro%20workspace%20subscription.%20All%20subscriptions%20help%20fund%20the%20development%20of%20the%20project!/singular: 41dd145ef56f539e12dc064a9807c660
|
||||||
You%20can%20invite%20team%20members%20by%20clicking%20the%20%22Invite%22%20button%20in%20the%20top%20right%20corner%20of%20the%20%3C0%3Emembers%20page%3C%2F0%3E%20and%20entering%20their%20email%20address.%20They%20will%20receive%20an%20email%20with%20a%20link%20to%20join%20the%20workspace./singular: 47e125eb9b4c11cab5a2f4b3ab08e883
|
You%20can%20invite%20team%20members%20by%20clicking%20the%20%22Invite%22%20button%20in%20the%20top%20right%20corner%20of%20the%20%3C0%3Emembers%20page%3C%2F0%3E%20and%20entering%20their%20email%20address.%20They%20will%20receive%20an%20email%20with%20a%20link%20to%20join%20the%20workspace./singular: 47e125eb9b4c11cab5a2f4b3ab08e883
|
||||||
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
|
||||||
@@ -428,6 +444,7 @@ checksums:
|
|||||||
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
|
||||||
|
Your%20password%20has%20been%20changed./singular: 8f730f68d52b7efa727aa0784282ebcb
|
||||||
Your%20profile%20image%20has%20been%20updated./singular: 099e1780348cd7bf617721344371a430
|
Your%20profile%20image%20has%20been%20updated./singular: 099e1780348cd7bf617721344371a430
|
||||||
Your%20Trello%20account%20has%20been%20disconnected./singular: 126aeeb73f7e4cad338056e4c933f39b
|
Your%20Trello%20account%20has%20been%20disconnected./singular: 126aeeb73f7e4cad338056e4c933f39b
|
||||||
Your%20Trello%20account%20is%20connected./singular: 0499d193001fce2fbec445ae034ce512
|
Your%20Trello%20account%20is%20connected./singular: 0499d193001fce2fbec445ae034ce512
|
||||||
|
|||||||
@@ -31,12 +31,12 @@ const config = {
|
|||||||
|
|
||||||
images: {
|
images: {
|
||||||
remotePatterns: [
|
remotePatterns: [
|
||||||
|
|
||||||
{
|
{
|
||||||
protocol: "https",
|
protocol: "https",
|
||||||
hostname: process.env.S3_FORCE_PATH_STYLE === "true"
|
hostname:
|
||||||
? `${env("NEXT_PUBLIC_STORAGE_DOMAIN")}`
|
env("S3_FORCE_PATH_STYLE") === "true"
|
||||||
: `*.${env("NEXT_PUBLIC_STORAGE_DOMAIN")}`,
|
? `${env("NEXT_PUBLIC_STORAGE_DOMAIN")}`
|
||||||
|
: `*.${env("NEXT_PUBLIC_STORAGE_DOMAIN")}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
protocol: "http",
|
protocol: "http",
|
||||||
@@ -54,4 +54,16 @@ const config = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Only allow external images when OIDC is configured (for OIDC provider avatars)
|
||||||
|
if (
|
||||||
|
env("OIDC_CLIENT_ID") &&
|
||||||
|
env("OIDC_CLIENT_SECRET") &&
|
||||||
|
env("OIDC_DISCOVERY_URL")
|
||||||
|
) {
|
||||||
|
config.images?.remotePatterns?.push({
|
||||||
|
protocol: "https",
|
||||||
|
hostname: "**",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export default config;
|
export default config;
|
||||||
|
|||||||
@@ -49,6 +49,7 @@
|
|||||||
"next": "^15.3.4",
|
"next": "^15.3.4",
|
||||||
"next-logger": "^5.0.1",
|
"next-logger": "^5.0.1",
|
||||||
"next-runtime-env": "^1.7.2",
|
"next-runtime-env": "^1.7.2",
|
||||||
|
"next-themes": "^0.4.6",
|
||||||
"nextjs-cors": "^2.2.0",
|
"nextjs-cors": "^2.2.0",
|
||||||
"pino": "^9.6.0",
|
"pino": "^9.6.0",
|
||||||
"posthog-js": "^1.254.0",
|
"posthog-js": "^1.254.0",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { t } from "@lingui/core/macro";
|
|||||||
import { Trans } from "@lingui/react/macro";
|
import { Trans } from "@lingui/react/macro";
|
||||||
import { useQuery } from "@tanstack/react-query";
|
import { useQuery } from "@tanstack/react-query";
|
||||||
import { env } from "next-runtime-env";
|
import { env } from "next-runtime-env";
|
||||||
import { useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { useForm } from "react-hook-form";
|
import { useForm } from "react-hook-form";
|
||||||
import {
|
import {
|
||||||
FaApple,
|
FaApple,
|
||||||
@@ -16,6 +16,7 @@ import {
|
|||||||
FaGoogle,
|
FaGoogle,
|
||||||
FaLinkedin,
|
FaLinkedin,
|
||||||
FaMicrosoft,
|
FaMicrosoft,
|
||||||
|
FaOpenid,
|
||||||
FaReddit,
|
FaReddit,
|
||||||
FaSpotify,
|
FaSpotify,
|
||||||
FaTiktok,
|
FaTiktok,
|
||||||
@@ -33,6 +34,8 @@ import Button from "~/components/Button";
|
|||||||
import Input from "~/components/Input";
|
import Input from "~/components/Input";
|
||||||
import { usePopup } from "~/providers/popup";
|
import { usePopup } from "~/providers/popup";
|
||||||
|
|
||||||
|
type AuthProvider = SocialProvider | "oidc";
|
||||||
|
|
||||||
interface FormValues {
|
interface FormValues {
|
||||||
name?: string;
|
name?: string;
|
||||||
email: string;
|
email: string;
|
||||||
@@ -141,16 +144,28 @@ const availableSocialProviders = {
|
|||||||
name: "Zoom",
|
name: "Zoom",
|
||||||
icon: SiZoom,
|
icon: SiZoom,
|
||||||
},
|
},
|
||||||
|
oidc: {
|
||||||
|
id: "oidc",
|
||||||
|
name: "OIDC",
|
||||||
|
icon: FaOpenid,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export function Auth({ setIsMagicLinkSent, isSignUp }: AuthProps) {
|
export function Auth({ setIsMagicLinkSent, isSignUp }: AuthProps) {
|
||||||
const [isLoginWithProviderPending, setIsLoginWithProviderPending] =
|
const [isLoginWithProviderPending, setIsLoginWithProviderPending] =
|
||||||
useState<null | SocialProvider>(null);
|
useState<null | AuthProvider>(null);
|
||||||
const isCredentialsEnabled =
|
const [isCredentialsEnabled, setIsCredentialsEnabled] = useState(false);
|
||||||
env("NEXT_PUBLIC_ALLOW_CREDENTIALS")?.toLowerCase() === "true";
|
|
||||||
const [isLoginWithEmailPending, setIsLoginWithEmailPending] = useState(false);
|
const [isLoginWithEmailPending, setIsLoginWithEmailPending] = useState(false);
|
||||||
const [loginError, setLoginError] = useState<string | null>(null);
|
const [loginError, setLoginError] = useState<string | null>(null);
|
||||||
const { showPopup } = usePopup();
|
const { showPopup } = usePopup();
|
||||||
|
const oidcProviderName = "OIDC";
|
||||||
|
|
||||||
|
// Safely get environment variables on client side to avoid hydration mismatch
|
||||||
|
useEffect(() => {
|
||||||
|
const credentialsAllowed =
|
||||||
|
env("NEXT_PUBLIC_ALLOW_CREDENTIALS")?.toLowerCase() === "true";
|
||||||
|
setIsCredentialsEnabled(credentialsAllowed);
|
||||||
|
}, []);
|
||||||
|
|
||||||
const {
|
const {
|
||||||
register,
|
register,
|
||||||
@@ -226,13 +241,26 @@ export function Auth({ setIsMagicLinkSent, isSignUp }: AuthProps) {
|
|||||||
setIsLoginWithEmailPending(false);
|
setIsLoginWithEmailPending(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleLoginWithProvider = async (provider: SocialProvider) => {
|
const handleLoginWithProvider = async (provider: AuthProvider) => {
|
||||||
setIsLoginWithProviderPending(provider);
|
setIsLoginWithProviderPending(provider);
|
||||||
setLoginError(null);
|
setLoginError(null);
|
||||||
const { error } = await authClient.signIn.social({
|
|
||||||
provider,
|
let error;
|
||||||
callbackURL: "/boards",
|
if (provider === "oidc") {
|
||||||
});
|
// Use oauth2 signin for OIDC provider
|
||||||
|
const result = await authClient.signIn.oauth2({
|
||||||
|
providerId: "oidc",
|
||||||
|
callbackURL: "/boards",
|
||||||
|
});
|
||||||
|
error = result.error;
|
||||||
|
} else {
|
||||||
|
// Use social signin for traditional social providers
|
||||||
|
const result = await authClient.signIn.social({
|
||||||
|
provider,
|
||||||
|
callbackURL: "/boards",
|
||||||
|
});
|
||||||
|
error = result.error;
|
||||||
|
}
|
||||||
|
|
||||||
setIsLoginWithProviderPending(null);
|
setIsLoginWithProviderPending(null);
|
||||||
|
|
||||||
@@ -260,13 +288,16 @@ export function Auth({ setIsMagicLinkSent, isSignUp }: AuthProps) {
|
|||||||
return (
|
return (
|
||||||
<Button
|
<Button
|
||||||
key={key}
|
key={key}
|
||||||
onClick={() => handleLoginWithProvider(key as SocialProvider)}
|
onClick={() => handleLoginWithProvider(key as AuthProvider)}
|
||||||
isLoading={isLoginWithProviderPending === key}
|
isLoading={isLoginWithProviderPending === key}
|
||||||
iconLeft={<provider.icon />}
|
iconLeft={<provider.icon />}
|
||||||
fullWidth
|
fullWidth
|
||||||
size="lg"
|
size="lg"
|
||||||
>
|
>
|
||||||
<Trans>Continue with {provider.name}</Trans>
|
<Trans>
|
||||||
|
Continue with{" "}
|
||||||
|
{key === "oidc" ? oidcProviderName : provider.name}
|
||||||
|
</Trans>
|
||||||
</Button>
|
</Button>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|||||||
@@ -55,51 +55,59 @@ export default function CheckboxDropdown({
|
|||||||
|
|
||||||
const renderMenuItems = (items: Item[], groupKey: string | null) => (
|
const renderMenuItems = (items: Item[], groupKey: string | null) => (
|
||||||
<>
|
<>
|
||||||
{items.map((item) => (
|
{items.length > 0 ? (
|
||||||
<Menu.Item key={item.key}>
|
items.map((item) => (
|
||||||
<div
|
<Menu.Item key={item.key}>
|
||||||
className="group flex items-center rounded-[5px] p-2 hover:bg-light-200 dark:hover:bg-dark-300"
|
<div
|
||||||
onClick={(e) => {
|
className="group flex items-center rounded-[5px] p-2 hover:bg-light-200 dark:hover:bg-dark-300"
|
||||||
e.preventDefault();
|
onClick={(e) => {
|
||||||
handleSelect(groupKey, { key: item.key, value: item.value });
|
e.preventDefault();
|
||||||
}}
|
handleSelect(groupKey, { key: item.key, value: item.value });
|
||||||
>
|
}}
|
||||||
<input
|
|
||||||
id={item.key}
|
|
||||||
name={item.key}
|
|
||||||
type="checkbox"
|
|
||||||
className="h-[14px] w-[14px] rounded bg-transparent"
|
|
||||||
onClick={(event) => event.stopPropagation()}
|
|
||||||
onChange={() =>
|
|
||||||
handleSelect(groupKey, { key: item.key, value: item.value })
|
|
||||||
}
|
|
||||||
checked={item.selected}
|
|
||||||
/>
|
|
||||||
{item.leftIcon && (
|
|
||||||
<span className="ml-3 flex items-center">{item.leftIcon}</span>
|
|
||||||
)}
|
|
||||||
<label
|
|
||||||
htmlFor={item.key}
|
|
||||||
className="ml-3 text-[12px] text-dark-900"
|
|
||||||
>
|
>
|
||||||
{item.value}
|
<input
|
||||||
</label>
|
id={item.key}
|
||||||
{handleEdit && (
|
name={item.key}
|
||||||
<button
|
type="checkbox"
|
||||||
type="button"
|
className="h-[14px] w-[14px] rounded bg-transparent"
|
||||||
className="invisible ml-auto group-hover:visible"
|
onClick={(event) => event.stopPropagation()}
|
||||||
onClick={(event) => {
|
onChange={() =>
|
||||||
event.preventDefault();
|
handleSelect(groupKey, { key: item.key, value: item.value })
|
||||||
event.stopPropagation();
|
}
|
||||||
handleEdit(item.key);
|
checked={item.selected}
|
||||||
}}
|
/>
|
||||||
|
{item.leftIcon && (
|
||||||
|
<span className="ml-3 flex items-center">{item.leftIcon}</span>
|
||||||
|
)}
|
||||||
|
<label
|
||||||
|
htmlFor={item.key}
|
||||||
|
className="ml-3 text-[12px] text-dark-900"
|
||||||
>
|
>
|
||||||
<HiEllipsisHorizontal size={20} className="text-dark-900" />
|
{item.value}
|
||||||
</button>
|
</label>
|
||||||
)}
|
{handleEdit && (
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
className="invisible ml-auto group-hover:visible"
|
||||||
|
onClick={(event) => {
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
handleEdit(item.key);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<HiEllipsisHorizontal size={20} className="text-dark-900" />
|
||||||
|
</button>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</Menu.Item>
|
||||||
|
))
|
||||||
|
) : (
|
||||||
|
!handleCreate && (
|
||||||
|
<div className="flex items-center p-2 text-[12px] text-dark-900">
|
||||||
|
No items
|
||||||
</div>
|
</div>
|
||||||
</Menu.Item>
|
)
|
||||||
))}
|
)}
|
||||||
{handleCreate && (
|
{handleCreate && (
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { authClient } from "@kan/auth/client";
|
|||||||
|
|
||||||
import { useClickOutside } from "~/hooks/useClickOutside";
|
import { useClickOutside } from "~/hooks/useClickOutside";
|
||||||
import { useModal } from "~/providers/modal";
|
import { useModal } from "~/providers/modal";
|
||||||
import { useTheme } from "~/providers/theme";
|
import { useTheme } from "next-themes";
|
||||||
import { WorkspaceProvider } from "~/providers/workspace";
|
import { WorkspaceProvider } from "~/providers/workspace";
|
||||||
import FeedbackModal from "./FeedbackModal";
|
import FeedbackModal from "./FeedbackModal";
|
||||||
import Modal from "./modal";
|
import Modal from "./modal";
|
||||||
@@ -41,7 +41,7 @@ export default function Dashboard({
|
|||||||
rightPanel,
|
rightPanel,
|
||||||
hasRightPanel = false,
|
hasRightPanel = false,
|
||||||
}: DashboardProps) {
|
}: DashboardProps) {
|
||||||
const theme = useTheme();
|
const { theme } = useTheme();
|
||||||
const { modalContentType } = useModal();
|
const { modalContentType } = useModal();
|
||||||
|
|
||||||
const { data: session, isPending: sessionLoading } = authClient.useSession();
|
const { data: session, isPending: sessionLoading } = authClient.useSession();
|
||||||
@@ -90,7 +90,7 @@ export default function Dashboard({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const isDarkMode = theme.activeTheme === "dark";
|
const isDarkMode = theme === "dark";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ export function NewWorkspaceForm() {
|
|||||||
description: values.description,
|
description: values.description,
|
||||||
slug: values.slug,
|
slug: values.slug,
|
||||||
plan: values.plan,
|
plan: values.plan,
|
||||||
|
role: "admin",
|
||||||
});
|
});
|
||||||
closeModal();
|
closeModal();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import settingsIconLight from "~/assets/settings-light.json";
|
|||||||
import ReactiveButton from "~/components/ReactiveButton";
|
import ReactiveButton from "~/components/ReactiveButton";
|
||||||
import UserMenu from "~/components/UserMenu";
|
import UserMenu from "~/components/UserMenu";
|
||||||
import WorkspaceMenu from "~/components/WorkspaceMenu";
|
import WorkspaceMenu from "~/components/WorkspaceMenu";
|
||||||
import { useTheme } from "~/providers/theme";
|
import { useTheme } from "next-themes";
|
||||||
|
|
||||||
interface SideNavigationProps {
|
interface SideNavigationProps {
|
||||||
user: UserType;
|
user: UserType;
|
||||||
@@ -59,9 +59,9 @@ export default function SideNavigation({
|
|||||||
|
|
||||||
const { pathname } = router;
|
const { pathname } = router;
|
||||||
|
|
||||||
const { activeTheme } = useTheme();
|
const { theme, resolvedTheme } = useTheme();
|
||||||
|
|
||||||
const isDarkMode = activeTheme === "dark";
|
const isDarkMode = resolvedTheme === "dark";
|
||||||
|
|
||||||
const navigation = [
|
const navigation = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,23 +1,22 @@
|
|||||||
import { CgDarkMode } from "react-icons/cg";
|
import { CgDarkMode } from "react-icons/cg";
|
||||||
|
import { useTheme } from "next-themes";
|
||||||
import { useTheme } from "~/providers/theme";
|
|
||||||
|
|
||||||
const ThemeToggle = () => {
|
const ThemeToggle = () => {
|
||||||
const { themePreference, switchTheme } = useTheme();
|
const { theme, setTheme } = useTheme();
|
||||||
|
|
||||||
const toggleTheme = () => {
|
const toggleTheme = () => {
|
||||||
switchTheme(themePreference === "light" ? "dark" : "light");
|
setTheme(theme === "light" ? "dark" : "light");
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<button
|
<button
|
||||||
onClick={toggleTheme}
|
onClick={toggleTheme}
|
||||||
className="rounded p-1.5 transition-all hover:bg-light-200 dark:hover:bg-dark-100"
|
className="rounded p-1.5 transition-all hover:bg-light-200 dark:hover:bg-dark-100"
|
||||||
aria-label={`Switch to ${themePreference === "light" ? "dark" : "light"} theme`}
|
aria-label={`Switch to ${theme === "light" ? "dark" : "light"} theme`}
|
||||||
>
|
>
|
||||||
<CgDarkMode
|
<CgDarkMode
|
||||||
className={`h-4 w-4 text-light-900 transition-transform duration-200 dark:text-dark-900 ${
|
className={`h-4 w-4 text-light-900 transition-transform duration-200 dark:text-dark-900 ${
|
||||||
themePreference === "dark" ? "rotate-180" : "rotate-0"
|
theme === "dark" ? "rotate-180" : "rotate-0"
|
||||||
}`}
|
}`}
|
||||||
/>
|
/>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import { authClient } from "@kan/auth/client";
|
|||||||
|
|
||||||
import { useIsMobile } from "~/hooks/useMediaQuery";
|
import { useIsMobile } from "~/hooks/useMediaQuery";
|
||||||
import { useModal } from "~/providers/modal";
|
import { useModal } from "~/providers/modal";
|
||||||
import { useTheme } from "~/providers/theme";
|
import { useTheme } from "next-themes";
|
||||||
import { getAvatarUrl } from "~/utils/helpers";
|
import { getAvatarUrl } from "~/utils/helpers";
|
||||||
|
|
||||||
interface UserMenuProps {
|
interface UserMenuProps {
|
||||||
@@ -29,7 +29,7 @@ export default function UserMenu({
|
|||||||
onCloseSideNav,
|
onCloseSideNav,
|
||||||
}: UserMenuProps) {
|
}: UserMenuProps) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { themePreference, switchTheme } = useTheme();
|
const { theme, setTheme } = useTheme();
|
||||||
const { openModal } = useModal();
|
const { openModal } = useModal();
|
||||||
const isMobile = useIsMobile();
|
const isMobile = useIsMobile();
|
||||||
|
|
||||||
@@ -127,12 +127,12 @@ export default function UserMenu({
|
|||||||
</div>
|
</div>
|
||||||
<Menu.Item>
|
<Menu.Item>
|
||||||
<button
|
<button
|
||||||
onClick={() => switchTheme("system")}
|
onClick={() => setTheme("system")}
|
||||||
className="flex w-full items-center rounded-[5px] px-3 py-2 text-left text-xs hover:bg-light-200 dark:hover:bg-dark-400"
|
className="flex w-full items-center rounded-[5px] px-3 py-2 text-left text-xs hover:bg-light-200 dark:hover:bg-dark-400"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
className={twMerge(
|
className={twMerge(
|
||||||
themePreference === "system" ? "visible" : "invisible",
|
theme === "system" ? "visible" : "invisible",
|
||||||
"mr-4 h-[6px] w-[6px] rounded-full bg-light-900 dark:bg-dark-900",
|
"mr-4 h-[6px] w-[6px] rounded-full bg-light-900 dark:bg-dark-900",
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
@@ -141,12 +141,12 @@ export default function UserMenu({
|
|||||||
</Menu.Item>
|
</Menu.Item>
|
||||||
<Menu.Item>
|
<Menu.Item>
|
||||||
<button
|
<button
|
||||||
onClick={() => switchTheme("dark")}
|
onClick={() => setTheme("dark")}
|
||||||
className="flex w-full items-center rounded-[5px] px-3 py-2 text-left text-xs hover:bg-light-200 dark:hover:bg-dark-400"
|
className="flex w-full items-center rounded-[5px] px-3 py-2 text-left text-xs hover:bg-light-200 dark:hover:bg-dark-400"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
className={twMerge(
|
className={twMerge(
|
||||||
themePreference === "dark" ? "visible" : "invisible",
|
theme === "dark" ? "visible" : "invisible",
|
||||||
"mr-4 h-[6px] w-[6px] rounded-full bg-light-900 dark:bg-dark-900",
|
"mr-4 h-[6px] w-[6px] rounded-full bg-light-900 dark:bg-dark-900",
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
@@ -155,12 +155,12 @@ export default function UserMenu({
|
|||||||
</Menu.Item>
|
</Menu.Item>
|
||||||
<Menu.Item>
|
<Menu.Item>
|
||||||
<button
|
<button
|
||||||
onClick={() => switchTheme("light")}
|
onClick={() => setTheme("light")}
|
||||||
className="flex w-full items-center rounded-[5px] px-3 py-2 text-left text-xs hover:bg-light-200 dark:hover:bg-dark-400"
|
className="flex w-full items-center rounded-[5px] px-3 py-2 text-left text-xs hover:bg-light-200 dark:hover:bg-dark-400"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
className={twMerge(
|
className={twMerge(
|
||||||
themePreference === "light" ? "visible" : "invisible",
|
theme === "light" ? "visible" : "invisible",
|
||||||
"mr-4 h-[6px] w-[6px] rounded-full bg-light-900 dark:bg-dark-900",
|
"mr-4 h-[6px] w-[6px] rounded-full bg-light-900 dark:bg-dark-900",
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export const env = createEnv({
|
|||||||
s.split(",").every((l) => z.string().url().safeParse(l).success),
|
s.split(",").every((l) => z.string().url().safeParse(l).success),
|
||||||
)
|
)
|
||||||
.optional(),
|
.optional(),
|
||||||
POSTGRES_URL: z.string().url().optional().or(z.literal('')),
|
POSTGRES_URL: z.string().url().optional().or(z.literal("")),
|
||||||
TRELLO_APP_API_KEY: z.string().optional(),
|
TRELLO_APP_API_KEY: z.string().optional(),
|
||||||
TRELLO_APP_SECRET: z.string().optional(),
|
TRELLO_APP_SECRET: z.string().optional(),
|
||||||
STRIPE_SECRET_KEY: z.string().optional(),
|
STRIPE_SECRET_KEY: z.string().optional(),
|
||||||
@@ -51,6 +51,10 @@ export const env = createEnv({
|
|||||||
VK_CLIENT_SECRET: z.string().optional(),
|
VK_CLIENT_SECRET: z.string().optional(),
|
||||||
LINKEDIN_CLIENT_ID: z.string().optional(),
|
LINKEDIN_CLIENT_ID: z.string().optional(),
|
||||||
LINKEDIN_CLIENT_SECRET: z.string().optional(),
|
LINKEDIN_CLIENT_SECRET: z.string().optional(),
|
||||||
|
// Generic OIDC Provider
|
||||||
|
OIDC_CLIENT_ID: z.string().optional(),
|
||||||
|
OIDC_CLIENT_SECRET: z.string().optional(),
|
||||||
|
OIDC_DISCOVERY_URL: z.string().optional(),
|
||||||
REDDIT_CLIENT_ID: z.string().optional(),
|
REDDIT_CLIENT_ID: z.string().optional(),
|
||||||
REDDIT_CLIENT_SECRET: z.string().optional(),
|
REDDIT_CLIENT_SECRET: z.string().optional(),
|
||||||
ROBLOX_CLIENT_ID: z.string().optional(),
|
ROBLOX_CLIENT_ID: z.string().optional(),
|
||||||
@@ -101,6 +105,13 @@ export const env = createEnv({
|
|||||||
(s) => !s || s.toLowerCase() === "true" || s.toLowerCase() === "false",
|
(s) => !s || s.toLowerCase() === "true" || s.toLowerCase() === "false",
|
||||||
)
|
)
|
||||||
.optional(),
|
.optional(),
|
||||||
|
NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY: z
|
||||||
|
.string()
|
||||||
|
.transform((s) => (s === "" ? undefined : s))
|
||||||
|
.refine(
|
||||||
|
(s) => !s || s.toLowerCase() === "true" || s.toLowerCase() === "false",
|
||||||
|
)
|
||||||
|
.optional(),
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* Destructure all variables from `process.env` to make sure they aren't tree-shaken away.
|
* Destructure all variables from `process.env` to make sure they aren't tree-shaken away.
|
||||||
@@ -119,6 +130,8 @@ export const env = createEnv({
|
|||||||
NEXT_PUBLIC_DISABLE_SIGN_UP: process.env.NEXT_PUBLIC_DISABLE_SIGN_UP,
|
NEXT_PUBLIC_DISABLE_SIGN_UP: process.env.NEXT_PUBLIC_DISABLE_SIGN_UP,
|
||||||
NEXT_PUBLIC_USE_STANDALONE_OUTPUT:
|
NEXT_PUBLIC_USE_STANDALONE_OUTPUT:
|
||||||
process.env.NEXT_PUBLIC_USE_STANDALONE_OUTPUT,
|
process.env.NEXT_PUBLIC_USE_STANDALONE_OUTPUT,
|
||||||
|
NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY:
|
||||||
|
process.env.NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY,
|
||||||
},
|
},
|
||||||
skipValidation:
|
skipValidation:
|
||||||
!!process.env.CI || process.env.npm_lifecycle_event === "lint",
|
!!process.env.CI || process.env.npm_lifecycle_event === "lint",
|
||||||
|
|||||||
@@ -23,12 +23,12 @@ msgstr ", oder besuche unsere"
|
|||||||
|
|
||||||
#. placeholder {0}: card?.title ?? "Card"
|
#. placeholder {0}: card?.title ?? "Card"
|
||||||
#. placeholder {1}: board?.name ?? "Board"
|
#. placeholder {1}: board?.name ?? "Board"
|
||||||
#: src/views/card/index.tsx:214
|
#: src/views/card/index.tsx:213
|
||||||
msgid "{0} | {1}"
|
msgid "{0} | {1}"
|
||||||
msgstr "{0} | {1}"
|
msgstr "{0} | {1}"
|
||||||
|
|
||||||
#. placeholder {0}: labelPublicIds.length
|
#. placeholder {0}: labelPublicIds.length
|
||||||
#: src/views/board/components/NewCardForm.tsx:392
|
#: src/views/board/components/NewCardForm.tsx:432
|
||||||
msgid "{0} labels"
|
msgid "{0} labels"
|
||||||
msgstr "{0} Labels"
|
msgstr "{0} Labels"
|
||||||
|
|
||||||
@@ -48,8 +48,8 @@ msgstr "Eine leistungsstarke, flexible Kanban-App, die dir hilft, Arbeit zu orga
|
|||||||
msgid "Account deleted"
|
msgid "Account deleted"
|
||||||
msgstr "Konto gelöscht"
|
msgstr "Konto gelöscht"
|
||||||
|
|
||||||
#: src/views/public/board/CardModal.tsx:136
|
#: src/views/public/board/CardModal.tsx:140
|
||||||
#: src/views/card/index.tsx:287
|
#: src/views/card/index.tsx:288
|
||||||
msgid "Activity"
|
msgid "Activity"
|
||||||
msgstr "Aktivität"
|
msgstr "Aktivität"
|
||||||
|
|
||||||
@@ -74,9 +74,9 @@ msgstr "Element hinzufügen..."
|
|||||||
msgid "Add checklist"
|
msgid "Add checklist"
|
||||||
msgstr "Checkliste hinzufügen"
|
msgstr "Checkliste hinzufügen"
|
||||||
|
|
||||||
#: src/components/Editor.tsx:308
|
#: src/components/Editor.tsx:442
|
||||||
msgid "Add description... (type '/' to open commands)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Beschreibung hinzufügen... (tippe '/' um Befehle zu öffnen)"
|
msgstr "Beschreibung hinzufügen... (tippe '/' um Befehle zu öffnen oder '@' um jemanden zu erwähnen)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:172
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
@@ -139,11 +139,15 @@ 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:100
|
#: src/views/settings/index.tsx:102
|
||||||
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."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:257
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:90
|
||||||
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
|
msgstr "Ein unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es später erneut."
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:259
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "API-Schlüssel"
|
msgstr "API-Schlüssel"
|
||||||
|
|
||||||
@@ -180,7 +184,7 @@ msgstr "Sind Sie sicher, dass Sie diese Checkliste löschen möchten?"
|
|||||||
msgid "Are you sure you want to delete this comment?"
|
msgid "Are you sure you want to delete this comment?"
|
||||||
msgstr "Bist du sicher, dass du diesen Kommentar löschen möchtest?"
|
msgstr "Bist du sicher, dass du diesen Kommentar löschen möchtest?"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:39
|
#: src/components/DeleteLabelConfirmation.tsx:41
|
||||||
msgid "Are you sure you want to delete this label?"
|
msgid "Are you sure you want to delete this label?"
|
||||||
msgstr "Sind Sie sicher, dass Sie dieses Label löschen möchten?"
|
msgstr "Sind Sie sicher, dass Sie dieses Label löschen möchten?"
|
||||||
|
|
||||||
@@ -205,12 +209,12 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Einfaches Kanban"
|
msgstr "Einfaches Kanban"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:196
|
#: src/views/settings/index.tsx:198
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Abrechnung"
|
msgstr "Abrechnung"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:206
|
#: src/views/settings/index.tsx:208
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Abrechnungsportal"
|
msgstr "Abrechnungsportal"
|
||||||
|
|
||||||
@@ -284,12 +288,13 @@ msgstr "Fehlerbericht"
|
|||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
||||||
#: src/views/card/components/Comment.tsx:158
|
#: src/views/card/components/Comment.tsx:158
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:47
|
#: src/components/DeleteLabelConfirmation.tsx:49
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
@@ -297,11 +302,18 @@ msgstr "Abbrechen"
|
|||||||
msgid "Card not found"
|
msgid "Card not found"
|
||||||
msgstr "Karte nicht gefunden"
|
msgstr "Karte nicht gefunden"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:278
|
#: src/views/board/components/NewCardForm.tsx:307
|
||||||
msgid "Card title"
|
msgid "Card title"
|
||||||
msgstr "Kartentitel"
|
msgstr "Kartentitel"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:188
|
#: src/views/settings/index.tsx:291
|
||||||
|
#: src/views/settings/index.tsx:301
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr "Passwort ändern"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:190
|
||||||
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."
|
||||||
|
|
||||||
@@ -364,7 +376,11 @@ msgstr "hat Checklistenelement <0>{0}</0> abgeschlossen"
|
|||||||
msgid "Confirm URL change"
|
msgid "Confirm URL change"
|
||||||
msgstr "URL-Änderung bestätigen"
|
msgstr "URL-Änderung bestätigen"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:233
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
|
msgid "Confirm your new password"
|
||||||
|
msgstr "Bestätigen Sie Ihr neues Passwort"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:235
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Trello verbinden"
|
msgstr "Trello verbinden"
|
||||||
@@ -373,7 +389,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:220
|
#: src/views/settings/index.tsx:222
|
||||||
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."
|
||||||
|
|
||||||
@@ -403,8 +419,8 @@ msgid "Control who can view and edit your boards."
|
|||||||
msgstr "Kontrolliere, wer deine Boards ansehen und bearbeiten kann."
|
msgstr "Kontrolliere, wer deine Boards ansehen und bearbeiten kann."
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:140
|
#: src/views/board/components/NewListForm.tsx:140
|
||||||
#: src/views/board/components/NewCardForm.tsx:418
|
#: src/views/board/components/NewCardForm.tsx:458
|
||||||
#: src/components/LabelForm.tsx:212
|
#: src/components/LabelForm.tsx:213
|
||||||
msgid "Create another"
|
msgid "Create another"
|
||||||
msgstr "Weitere erstellen"
|
msgstr "Weitere erstellen"
|
||||||
|
|
||||||
@@ -412,7 +428,7 @@ msgstr "Weitere erstellen"
|
|||||||
msgid "Create board"
|
msgid "Create board"
|
||||||
msgstr "Board erstellen"
|
msgstr "Board erstellen"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:428
|
#: src/views/board/components/NewCardForm.tsx:468
|
||||||
msgid "Create card"
|
msgid "Create card"
|
||||||
msgstr "Karte erstellen"
|
msgstr "Karte erstellen"
|
||||||
|
|
||||||
@@ -420,7 +436,7 @@ msgstr "Karte erstellen"
|
|||||||
msgid "Create checklist"
|
msgid "Create checklist"
|
||||||
msgstr "Checkliste erstellen"
|
msgstr "Checkliste erstellen"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Create label"
|
msgid "Create label"
|
||||||
msgstr "Label erstellen"
|
msgstr "Label erstellen"
|
||||||
|
|
||||||
@@ -437,7 +453,7 @@ msgid "Create new key"
|
|||||||
msgstr "Neuen Schlüssel erstellen"
|
msgstr "Neuen Schlüssel erstellen"
|
||||||
|
|
||||||
#: src/views/card/components/LabelSelector.tsx:98
|
#: src/views/card/components/LabelSelector.tsx:98
|
||||||
#: src/views/board/components/NewCardForm.tsx:354
|
#: src/views/board/components/NewCardForm.tsx:394
|
||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Neues Label erstellen"
|
msgstr "Neues Label erstellen"
|
||||||
|
|
||||||
@@ -458,6 +474,10 @@ msgstr "hat die Karte erstellt"
|
|||||||
msgid "Critical"
|
msgid "Critical"
|
||||||
msgstr "Kritisch"
|
msgstr "Kritisch"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:19
|
||||||
|
msgid "Current password is required"
|
||||||
|
msgstr "Aktuelles Passwort ist erforderlich"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:74
|
#: src/views/home/components/Pricing.tsx:74
|
||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Benutzerdefinierte Domain"
|
msgstr "Benutzerdefinierte Domain"
|
||||||
@@ -477,13 +497,13 @@ msgstr "Dunkel"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
||||||
#: src/components/LabelForm.tsx:226
|
#: src/components/LabelForm.tsx:228
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:49
|
#: src/components/DeleteLabelConfirmation.tsx:51
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Löschen"
|
msgstr "Löschen"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:288
|
#: src/views/settings/index.tsx:309
|
||||||
#: src/views/settings/index.tsx:298
|
#: src/views/settings/index.tsx:319
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Konto löschen"
|
msgstr "Konto löschen"
|
||||||
@@ -504,8 +524,8 @@ msgstr "Kommentar löschen"
|
|||||||
msgid "Delete list"
|
msgid "Delete list"
|
||||||
msgstr "Liste löschen"
|
msgstr "Liste löschen"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:270
|
#: src/views/settings/index.tsx:272
|
||||||
#: src/views/settings/index.tsx:281
|
#: src/views/settings/index.tsx:283
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Workspace löschen"
|
msgstr "Workspace löschen"
|
||||||
@@ -532,7 +552,7 @@ msgstr "hat Checklistenelement <0>{0}</0> gelöscht"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Design"
|
msgstr "Design"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:248
|
#: src/views/settings/index.tsx:250
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Trello trennen"
|
msgstr "Trello trennen"
|
||||||
|
|
||||||
@@ -540,7 +560,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:149
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Anzeigename"
|
msgstr "Anzeigename"
|
||||||
|
|
||||||
@@ -594,7 +614,7 @@ msgstr "Board-URL bearbeiten"
|
|||||||
msgid "Edit comment"
|
msgid "Edit comment"
|
||||||
msgstr "Kommentar bearbeiten"
|
msgstr "Kommentar bearbeiten"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "Edit label"
|
msgid "Edit label"
|
||||||
msgstr "Label bearbeiten"
|
msgstr "Label bearbeiten"
|
||||||
|
|
||||||
@@ -618,6 +638,14 @@ msgstr "E-Mail"
|
|||||||
msgid "Enhancement"
|
msgid "Enhancement"
|
||||||
msgstr "Verbesserung"
|
msgstr "Verbesserung"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:122
|
||||||
|
msgid "Enter your current password"
|
||||||
|
msgstr "Geben Sie Ihr aktuelles Passwort ein"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:111
|
||||||
|
msgid "Enter your current password and choose a new secure password."
|
||||||
|
msgstr "Geben Sie Ihr aktuelles Passwort ein und wählen Sie ein neues sicheres Passwort."
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:302
|
#: src/components/AuthForm.tsx:302
|
||||||
msgid "Enter your email address"
|
msgid "Enter your email address"
|
||||||
msgstr "Gib deine E-Mail-Adresse ein"
|
msgstr "Gib deine E-Mail-Adresse ein"
|
||||||
@@ -626,15 +654,23 @@ msgstr "Gib deine E-Mail-Adresse ein"
|
|||||||
msgid "Enter your name"
|
msgid "Enter your name"
|
||||||
msgstr "Gib deinen Namen ein"
|
msgstr "Gib deinen Namen ein"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:136
|
||||||
|
msgid "Enter your new password"
|
||||||
|
msgstr "Geben Sie Ihr neues Passwort ein"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:315
|
#: src/components/AuthForm.tsx:315
|
||||||
msgid "Enter your password"
|
msgid "Enter your password"
|
||||||
msgstr "Gib dein Passwort ein"
|
msgstr "Gib dein Passwort ein"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:89
|
||||||
|
msgid "Error Changing Password"
|
||||||
|
msgstr "Fehler beim Ändern des Passworts"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
||||||
msgid "Error deleting account"
|
msgid "Error deleting account"
|
||||||
msgstr "Fehler beim Löschen des Kontos"
|
msgstr "Fehler beim Löschen des Kontos"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:22
|
#: src/components/DeleteLabelConfirmation.tsx:25
|
||||||
msgid "Error deleting label"
|
msgid "Error deleting label"
|
||||||
msgstr "Fehler beim Löschen des Labels"
|
msgstr "Fehler beim Löschen des Labels"
|
||||||
|
|
||||||
@@ -642,7 +678,7 @@ 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:99
|
#: src/views/settings/index.tsx:101
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Fehler beim Trennen von Trello"
|
msgstr "Fehler beim Trennen von Trello"
|
||||||
|
|
||||||
@@ -922,8 +958,8 @@ msgstr "Kanban neu gedacht"
|
|||||||
msgid "Keep in mind that this action is irreversible."
|
msgid "Keep in mind that this action is irreversible."
|
||||||
msgstr "Beachten Sie, dass diese Aktion nicht rückgängig gemacht werden kann."
|
msgstr "Beachten Sie, dass diese Aktion nicht rückgängig gemacht werden kann."
|
||||||
|
|
||||||
#: src/views/card/index.tsx:118
|
#: src/views/card/index.tsx:117
|
||||||
#: src/views/board/components/NewCardForm.tsx:358
|
#: src/views/board/components/NewCardForm.tsx:398
|
||||||
#: src/views/board/components/Filters.tsx:101
|
#: src/views/board/components/Filters.tsx:101
|
||||||
msgid "Labels"
|
msgid "Labels"
|
||||||
msgstr "Labels"
|
msgstr "Labels"
|
||||||
@@ -932,7 +968,7 @@ msgstr "Labels"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Labels & Filter"
|
msgstr "Labels & Filter"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:185
|
#: src/views/settings/index.tsx:187
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Sprache"
|
msgstr "Sprache"
|
||||||
|
|
||||||
@@ -956,7 +992,7 @@ msgstr "Hell"
|
|||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Link kopiert"
|
msgstr "Link kopiert"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:110
|
#: src/views/card/index.tsx:109
|
||||||
msgid "List"
|
msgid "List"
|
||||||
msgstr "Liste"
|
msgstr "Liste"
|
||||||
|
|
||||||
@@ -998,8 +1034,8 @@ msgid "Medium Priority"
|
|||||||
msgstr "Mittlere Priorität"
|
msgstr "Mittlere Priorität"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:161
|
#: src/views/members/index.tsx:161
|
||||||
#: src/views/card/index.tsx:126
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/board/components/NewCardForm.tsx:317
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/components/SideNavigation.tsx:73
|
#: src/components/SideNavigation.tsx:73
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
@@ -1025,7 +1061,7 @@ msgid "moved the card to another list"
|
|||||||
msgstr "hat die Karte in eine andere Liste verschoben"
|
msgstr "hat die Karte in eine andere Liste verschoben"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:99
|
#: src/views/boards/components/NewBoardForm.tsx:99
|
||||||
#: src/components/LabelForm.tsx:134
|
#: src/components/LabelForm.tsx:135
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
@@ -1041,7 +1077,7 @@ msgstr "Neu"
|
|||||||
msgid "New board"
|
msgid "New board"
|
||||||
msgstr "Neues Board"
|
msgstr "Neues Board"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:261
|
#: src/views/board/components/NewCardForm.tsx:290
|
||||||
msgid "New card"
|
msgid "New card"
|
||||||
msgstr "Neue Karte"
|
msgstr "Neue Karte"
|
||||||
|
|
||||||
@@ -1053,7 +1089,7 @@ msgstr "Neue Checkliste"
|
|||||||
msgid "New import"
|
msgid "New import"
|
||||||
msgstr "Neuer Import"
|
msgstr "Neuer Import"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "New label"
|
msgid "New label"
|
||||||
msgstr "Neues Label"
|
msgstr "Neues Label"
|
||||||
|
|
||||||
@@ -1062,6 +1098,14 @@ msgstr "Neues Label"
|
|||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Neue Liste"
|
msgstr "Neue Liste"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:23
|
||||||
|
msgid "New password is required"
|
||||||
|
msgstr "Neues Passwort ist erforderlich"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:31
|
||||||
|
msgid "New password must be different from current password"
|
||||||
|
msgstr "Neues Passwort muss sich vom aktuellen Passwort unterscheiden"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:43
|
#: src/views/boards/components/TemplateBoards.tsx:43
|
||||||
msgid "New Ticket"
|
msgid "New Ticket"
|
||||||
msgstr "Neues Ticket"
|
msgstr "Neues Ticket"
|
||||||
@@ -1102,11 +1146,11 @@ msgstr "Angebot"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Einarbeitung"
|
msgstr "Einarbeitung"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:312
|
||||||
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:273
|
#: src/views/settings/index.tsx:275
|
||||||
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."
|
||||||
|
|
||||||
@@ -1126,6 +1170,18 @@ msgstr "Besitze deine Daten"
|
|||||||
msgid "Part-time"
|
msgid "Part-time"
|
||||||
msgstr "Teilzeit"
|
msgstr "Teilzeit"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:69
|
||||||
|
msgid "Password Changed"
|
||||||
|
msgstr "Passwort geändert"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:22
|
||||||
|
msgid "Password must be at least 8 characters"
|
||||||
|
msgstr "Passwort muss mindestens 8 Zeichen lang sein"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:27
|
||||||
|
msgid "Passwords do not match"
|
||||||
|
msgstr "Passwörter stimmen nicht überein"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:101
|
#: src/views/home/components/Pricing.tsx:101
|
||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Zahlungshäufigkeit"
|
msgstr "Zahlungshäufigkeit"
|
||||||
@@ -1147,6 +1203,10 @@ msgstr "Persönliches Projekt"
|
|||||||
msgid "Planning"
|
msgid "Planning"
|
||||||
msgstr "Planung"
|
msgstr "Planung"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:24
|
||||||
|
msgid "Please confirm your new password"
|
||||||
|
msgstr "Bitte bestätigen Sie Ihr neues Passwort"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:306
|
#: src/components/AuthForm.tsx:306
|
||||||
msgid "Please enter a valid email address"
|
msgid "Please enter a valid email address"
|
||||||
msgstr "Bitte gib eine gültige E-Mail-Adresse ein"
|
msgstr "Bitte gib eine gültige E-Mail-Adresse ein"
|
||||||
@@ -1173,7 +1233,7 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
|
|||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:64
|
#: src/views/members/components/InviteMemberForm.tsx:64
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:172
|
||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
||||||
#: src/views/card/components/NewChecklistForm.tsx:70
|
#: src/views/card/components/NewChecklistForm.tsx:70
|
||||||
@@ -1193,10 +1253,10 @@ msgstr "Bitte wähle eine Datei zum Hochladen aus."
|
|||||||
#: src/views/board/components/VisibilityButton.tsx:53
|
#: src/views/board/components/VisibilityButton.tsx:53
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
||||||
#: src/views/board/components/NewListForm.tsx:78
|
#: src/views/board/components/NewListForm.tsx:78
|
||||||
#: src/views/board/components/NewCardForm.tsx:145
|
#: src/views/board/components/NewCardForm.tsx:174
|
||||||
#: src/components/NewWorkspaceForm.tsx:41
|
#: src/components/NewWorkspaceForm.tsx:41
|
||||||
#: src/components/FeedbackModal.tsx:41
|
#: src/components/FeedbackModal.tsx:41
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:23
|
#: src/components/DeleteLabelConfirmation.tsx:26
|
||||||
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."
|
||||||
|
|
||||||
@@ -1222,7 +1282,7 @@ msgstr "Privat"
|
|||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Profilbild aktualisiert"
|
msgstr "Profilbild aktualisiert"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:144
|
#: src/views/settings/index.tsx:146
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Profilbild"
|
msgstr "Profilbild"
|
||||||
|
|
||||||
@@ -1362,13 +1422,13 @@ msgstr "Feedback senden"
|
|||||||
msgid "Senior"
|
msgid "Senior"
|
||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:138
|
#: src/views/settings/index.tsx:140
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Einstellungen"
|
msgstr "Einstellungen"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:134
|
#: src/views/settings/index.tsx:136
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Einstellungen | {0}"
|
msgstr "Einstellungen | {0}"
|
||||||
|
|
||||||
@@ -1447,6 +1507,10 @@ msgstr "Nutzungsbedingungen"
|
|||||||
msgid "Thank you for your feedback!"
|
msgid "Thank you for your feedback!"
|
||||||
msgstr "Vielen Dank für dein Feedback!"
|
msgstr "Vielen Dank für dein Feedback!"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:84
|
||||||
|
msgid "The current password you entered is incorrect."
|
||||||
|
msgstr "Das eingegebene aktuelle Passwort ist falsch."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:33
|
#: src/views/home/components/Faqs.tsx:33
|
||||||
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
||||||
msgstr "Der hauptunterschied zwischen Kan und Trello ist, dass Kan open source ist und jedem ermöglicht, unseren code einzusehen, zu ändern und dazu beizutragen. Unser cloud-angebot bietet außerdem keine einschränkungen bei funktionen für die individuelle nutzung, während Trello grundlegende funktionen wie die anzahl der boards, die du erstellen kannst, hinter einer paywall versteckt."
|
msgstr "Der hauptunterschied zwischen Kan und Trello ist, dass Kan open source ist und jedem ermöglicht, unseren code einzusehen, zu ändern und dazu beizutragen. Unser cloud-angebot bietet außerdem keine einschränkungen bei funktionen für die individuelle nutzung, während Trello grundlegende funktionen wie die anzahl der boards, die du erstellen kannst, hinter einer paywall versteckt."
|
||||||
@@ -1471,7 +1535,7 @@ msgstr "Sie werden keinen Zugriff mehr auf diesen Workspace haben."
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:42
|
#: src/components/DeleteLabelConfirmation.tsx:44
|
||||||
msgid "This action can't be undone."
|
msgid "This action can't be undone."
|
||||||
msgstr "Diese Aktion kann nicht rückgängig gemacht werden."
|
msgstr "Diese Aktion kann nicht rückgängig gemacht werden."
|
||||||
|
|
||||||
@@ -1508,7 +1572,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:92
|
#: src/views/settings/index.tsx:94
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello getrennt"
|
msgstr "Trello getrennt"
|
||||||
|
|
||||||
@@ -1528,7 +1592,7 @@ msgstr "Checklistenelement kann nicht hinzugefügt werden"
|
|||||||
msgid "Unable to add comment"
|
msgid "Unable to add comment"
|
||||||
msgstr "Kommentar konnte nicht hinzugefügt werden"
|
msgstr "Kommentar konnte nicht hinzugefügt werden"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:142
|
#: src/views/board/components/NewCardForm.tsx:171
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
msgstr "Karte konnte nicht erstellt werden"
|
msgstr "Karte konnte nicht erstellt werden"
|
||||||
|
|
||||||
@@ -1576,7 +1640,7 @@ msgstr "Board-URL kann nicht aktualisiert werden"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Board-Sichtbarkeit konnte nicht aktualisiert werden"
|
msgstr "Board-Sichtbarkeit konnte nicht aktualisiert werden"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:172
|
#: src/views/card/index.tsx:171
|
||||||
#: src/views/board/index.tsx:189
|
#: src/views/board/index.tsx:189
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Karte konnte nicht aktualisiert werden"
|
msgstr "Karte konnte nicht aktualisiert werden"
|
||||||
@@ -1647,7 +1711,7 @@ msgstr "Unbegrenzte listen"
|
|||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr "Aktualisieren"
|
msgstr "Aktualisieren"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Update label"
|
msgid "Update label"
|
||||||
msgstr "Label aktualisieren"
|
msgstr "Label aktualisieren"
|
||||||
|
|
||||||
@@ -1705,11 +1769,11 @@ msgstr "Benutzer ist bereits Mitglied dieses Arbeitsbereichs"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Video"
|
msgstr "Video"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:260
|
#: src/views/settings/index.tsx:262
|
||||||
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:199
|
#: src/views/settings/index.tsx:201
|
||||||
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."
|
||||||
|
|
||||||
@@ -1769,7 +1833,7 @@ msgstr "Arbeitsbereich"
|
|||||||
msgid "Workspace deleted"
|
msgid "Workspace deleted"
|
||||||
msgstr "Workspace gelöscht"
|
msgstr "Workspace gelöscht"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:175
|
#: src/views/settings/index.tsx:177
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Workspace-Beschreibung"
|
msgstr "Workspace-Beschreibung"
|
||||||
|
|
||||||
@@ -1790,7 +1854,7 @@ msgstr "Workspace-Beschreibung aktualisiert"
|
|||||||
msgid "Workspace members"
|
msgid "Workspace members"
|
||||||
msgstr "Workspace-mitglieder"
|
msgstr "Workspace-mitglieder"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:156
|
#: src/views/settings/index.tsx:158
|
||||||
#: src/components/NewWorkspaceForm.tsx:80
|
#: src/components/NewWorkspaceForm.tsx:80
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Name des Workspaces"
|
msgstr "Name des Workspaces"
|
||||||
@@ -1811,7 +1875,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:165
|
#: src/views/settings/index.tsx:167
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "Workspace-URL"
|
msgstr "Workspace-URL"
|
||||||
|
|
||||||
@@ -1827,6 +1891,10 @@ 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
|
||||||
|
msgid "You are about to change your password."
|
||||||
|
msgstr "Sie sind dabei, Ihr Passwort zu ändern."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:67
|
#: src/views/home/components/Faqs.tsx:67
|
||||||
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
||||||
msgstr "Du kannst eine benutzerdefinierte workspace-URL, wie <0>kan.bn/kan</0>, erhalten, indem du in deine <1>workspace-einstellungen</1> gehst und ein pro-workspace-abonnement kaufst. Alle abonnements helfen, die entwicklung des projekts zu finanzieren!"
|
msgstr "Du kannst eine benutzerdefinierte workspace-URL, wie <0>kan.bn/kan</0>, erhalten, indem du in deine <1>workspace-einstellungen</1> gehst und ein pro-workspace-abonnement kaufst. Alle abonnements helfen, die entwicklung des projekts zu finanzieren!"
|
||||||
@@ -1859,15 +1927,19 @@ msgstr "Deine Boards wurden importiert."
|
|||||||
msgid "Your display name has been updated."
|
msgid "Your display name has been updated."
|
||||||
msgstr "Dein Anzeigename wurde aktualisiert."
|
msgstr "Dein Anzeigename wurde aktualisiert."
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:70
|
||||||
|
msgid "Your password has been changed."
|
||||||
|
msgstr "Ihr Passwort wurde geändert."
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:27
|
#: src/views/settings/components/Avatar.tsx:27
|
||||||
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:93
|
#: src/views/settings/index.tsx:95
|
||||||
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:242
|
#: src/views/settings/index.tsx:244
|
||||||
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
@@ -23,12 +23,12 @@ msgstr ", or see our"
|
|||||||
|
|
||||||
#. placeholder {0}: card?.title ?? "Card"
|
#. placeholder {0}: card?.title ?? "Card"
|
||||||
#. placeholder {1}: board?.name ?? "Board"
|
#. placeholder {1}: board?.name ?? "Board"
|
||||||
#: src/views/card/index.tsx:214
|
#: src/views/card/index.tsx:213
|
||||||
msgid "{0} | {1}"
|
msgid "{0} | {1}"
|
||||||
msgstr "{0} | {1}"
|
msgstr "{0} | {1}"
|
||||||
|
|
||||||
#. placeholder {0}: labelPublicIds.length
|
#. placeholder {0}: labelPublicIds.length
|
||||||
#: src/views/board/components/NewCardForm.tsx:392
|
#: src/views/board/components/NewCardForm.tsx:432
|
||||||
msgid "{0} labels"
|
msgid "{0} labels"
|
||||||
msgstr "{0} labels"
|
msgstr "{0} labels"
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ msgstr "A powerful, flexible kanban app that helps you organise work, track prog
|
|||||||
msgid "Account deleted"
|
msgid "Account deleted"
|
||||||
msgstr "Account deleted"
|
msgstr "Account deleted"
|
||||||
|
|
||||||
#: src/views/public/board/CardModal.tsx:136
|
#: src/views/public/board/CardModal.tsx:140
|
||||||
#: src/views/card/index.tsx:287
|
#: src/views/card/index.tsx:288
|
||||||
msgid "Activity"
|
msgid "Activity"
|
||||||
msgstr "Activity"
|
msgstr "Activity"
|
||||||
|
|
||||||
@@ -86,9 +86,13 @@ msgstr "Add an item..."
|
|||||||
msgid "Add checklist"
|
msgid "Add checklist"
|
||||||
msgstr "Add checklist"
|
msgstr "Add checklist"
|
||||||
|
|
||||||
|
#: src/components/Editor.tsx:442
|
||||||
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
|
msgstr "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
|
|
||||||
#: src/components/Editor.tsx:308
|
#: src/components/Editor.tsx:308
|
||||||
msgid "Add description... (type '/' to open commands)"
|
#~ msgid "Add description... (type '/' to open commands)"
|
||||||
msgstr "Add description... (type '/' to open commands)"
|
#~ msgstr "Add description... (type '/' to open commands)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:172
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
@@ -155,11 +159,15 @@ 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:100
|
#: src/views/settings/index.tsx:102
|
||||||
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."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:257
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:90
|
||||||
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
|
msgstr "An unexpected error occurred. Please try again later."
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:259
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "API keys"
|
msgstr "API keys"
|
||||||
|
|
||||||
@@ -200,7 +208,7 @@ msgstr "Are you sure you want to delete this checklist?"
|
|||||||
msgid "Are you sure you want to delete this comment?"
|
msgid "Are you sure you want to delete this comment?"
|
||||||
msgstr "Are you sure you want to delete this comment?"
|
msgstr "Are you sure you want to delete this comment?"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:39
|
#: src/components/DeleteLabelConfirmation.tsx:41
|
||||||
msgid "Are you sure you want to delete this label?"
|
msgid "Are you sure you want to delete this label?"
|
||||||
msgstr "Are you sure you want to delete this label?"
|
msgstr "Are you sure you want to delete this label?"
|
||||||
|
|
||||||
@@ -233,12 +241,12 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Basic Kanban"
|
msgstr "Basic Kanban"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:196
|
#: src/views/settings/index.tsx:198
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Billing"
|
msgstr "Billing"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:206
|
#: src/views/settings/index.tsx:208
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Billing portal"
|
msgstr "Billing portal"
|
||||||
|
|
||||||
@@ -320,12 +328,13 @@ msgstr "Bug Report"
|
|||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
||||||
#: src/views/card/components/Comment.tsx:158
|
#: src/views/card/components/Comment.tsx:158
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:47
|
#: src/components/DeleteLabelConfirmation.tsx:49
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancel"
|
msgstr "Cancel"
|
||||||
|
|
||||||
@@ -333,11 +342,18 @@ msgstr "Cancel"
|
|||||||
msgid "Card not found"
|
msgid "Card not found"
|
||||||
msgstr "Card not found"
|
msgstr "Card not found"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:278
|
#: src/views/board/components/NewCardForm.tsx:307
|
||||||
msgid "Card title"
|
msgid "Card title"
|
||||||
msgstr "Card title"
|
msgstr "Card title"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:188
|
#: src/views/settings/index.tsx:291
|
||||||
|
#: src/views/settings/index.tsx:301
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr "Change Password"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:190
|
||||||
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."
|
||||||
|
|
||||||
@@ -400,7 +416,11 @@ msgstr "completed checklist item <0>{0}</0>"
|
|||||||
msgid "Confirm URL change"
|
msgid "Confirm URL change"
|
||||||
msgstr "Confirm URL change"
|
msgstr "Confirm URL change"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:233
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
|
msgid "Confirm your new password"
|
||||||
|
msgstr "Confirm your new password"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:235
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Connect Trello"
|
msgstr "Connect Trello"
|
||||||
@@ -409,7 +429,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:220
|
#: src/views/settings/index.tsx:222
|
||||||
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."
|
||||||
|
|
||||||
@@ -439,8 +459,8 @@ msgid "Control who can view and edit your boards."
|
|||||||
msgstr "Control who can view and edit your boards."
|
msgstr "Control who can view and edit your boards."
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:140
|
#: src/views/board/components/NewListForm.tsx:140
|
||||||
#: src/views/board/components/NewCardForm.tsx:418
|
#: src/views/board/components/NewCardForm.tsx:458
|
||||||
#: src/components/LabelForm.tsx:212
|
#: src/components/LabelForm.tsx:213
|
||||||
msgid "Create another"
|
msgid "Create another"
|
||||||
msgstr "Create another"
|
msgstr "Create another"
|
||||||
|
|
||||||
@@ -456,7 +476,7 @@ msgstr "Create another"
|
|||||||
msgid "Create board"
|
msgid "Create board"
|
||||||
msgstr "Create board"
|
msgstr "Create board"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:428
|
#: src/views/board/components/NewCardForm.tsx:468
|
||||||
msgid "Create card"
|
msgid "Create card"
|
||||||
msgstr "Create card"
|
msgstr "Create card"
|
||||||
|
|
||||||
@@ -464,7 +484,7 @@ msgstr "Create card"
|
|||||||
msgid "Create checklist"
|
msgid "Create checklist"
|
||||||
msgstr "Create checklist"
|
msgstr "Create checklist"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Create label"
|
msgid "Create label"
|
||||||
msgstr "Create label"
|
msgstr "Create label"
|
||||||
|
|
||||||
@@ -481,7 +501,7 @@ msgid "Create new key"
|
|||||||
msgstr "Create new key"
|
msgstr "Create new key"
|
||||||
|
|
||||||
#: src/views/card/components/LabelSelector.tsx:98
|
#: src/views/card/components/LabelSelector.tsx:98
|
||||||
#: src/views/board/components/NewCardForm.tsx:354
|
#: src/views/board/components/NewCardForm.tsx:394
|
||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Create new label"
|
msgstr "Create new label"
|
||||||
|
|
||||||
@@ -502,6 +522,10 @@ msgstr "created the card"
|
|||||||
msgid "Critical"
|
msgid "Critical"
|
||||||
msgstr "Critical"
|
msgstr "Critical"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:19
|
||||||
|
msgid "Current password is required"
|
||||||
|
msgstr "Current password is required"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:74
|
#: src/views/home/components/Pricing.tsx:74
|
||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Custom domain"
|
msgstr "Custom domain"
|
||||||
@@ -521,13 +545,13 @@ msgstr "Dark"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
||||||
#: src/components/LabelForm.tsx:226
|
#: src/components/LabelForm.tsx:228
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:49
|
#: src/components/DeleteLabelConfirmation.tsx:51
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Delete"
|
msgstr "Delete"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:288
|
#: src/views/settings/index.tsx:309
|
||||||
#: src/views/settings/index.tsx:298
|
#: src/views/settings/index.tsx:319
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Delete account"
|
msgstr "Delete account"
|
||||||
@@ -548,8 +572,8 @@ msgstr "Delete comment"
|
|||||||
msgid "Delete list"
|
msgid "Delete list"
|
||||||
msgstr "Delete list"
|
msgstr "Delete list"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:270
|
#: src/views/settings/index.tsx:272
|
||||||
#: src/views/settings/index.tsx:281
|
#: src/views/settings/index.tsx:283
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Delete workspace"
|
msgstr "Delete workspace"
|
||||||
@@ -576,7 +600,7 @@ msgstr "deleted checklist item <0>{0}</0>"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Design"
|
msgstr "Design"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:248
|
#: src/views/settings/index.tsx:250
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Disconnect Trello"
|
msgstr "Disconnect Trello"
|
||||||
|
|
||||||
@@ -584,7 +608,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:149
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Display name"
|
msgstr "Display name"
|
||||||
|
|
||||||
@@ -638,7 +662,7 @@ msgstr "Edit board URL"
|
|||||||
msgid "Edit comment"
|
msgid "Edit comment"
|
||||||
msgstr "Edit comment"
|
msgstr "Edit comment"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "Edit label"
|
msgid "Edit label"
|
||||||
msgstr "Edit label"
|
msgstr "Edit label"
|
||||||
|
|
||||||
@@ -662,6 +686,14 @@ msgstr "Email"
|
|||||||
msgid "Enhancement"
|
msgid "Enhancement"
|
||||||
msgstr "Enhancement"
|
msgstr "Enhancement"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:122
|
||||||
|
msgid "Enter your current password"
|
||||||
|
msgstr "Enter your current password"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:111
|
||||||
|
msgid "Enter your current password and choose a new secure password."
|
||||||
|
msgstr "Enter your current password and choose a new secure password."
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:302
|
#: src/components/AuthForm.tsx:302
|
||||||
msgid "Enter your email address"
|
msgid "Enter your email address"
|
||||||
msgstr "Enter your email address"
|
msgstr "Enter your email address"
|
||||||
@@ -670,15 +702,23 @@ msgstr "Enter your email address"
|
|||||||
msgid "Enter your name"
|
msgid "Enter your name"
|
||||||
msgstr "Enter your name"
|
msgstr "Enter your name"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:136
|
||||||
|
msgid "Enter your new password"
|
||||||
|
msgstr "Enter your new password"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:315
|
#: src/components/AuthForm.tsx:315
|
||||||
msgid "Enter your password"
|
msgid "Enter your password"
|
||||||
msgstr "Enter your password"
|
msgstr "Enter your password"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:89
|
||||||
|
msgid "Error Changing Password"
|
||||||
|
msgstr "Error Changing Password"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
||||||
msgid "Error deleting account"
|
msgid "Error deleting account"
|
||||||
msgstr "Error deleting account"
|
msgstr "Error deleting account"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:22
|
#: src/components/DeleteLabelConfirmation.tsx:25
|
||||||
msgid "Error deleting label"
|
msgid "Error deleting label"
|
||||||
msgstr "Error deleting label"
|
msgstr "Error deleting label"
|
||||||
|
|
||||||
@@ -686,7 +726,7 @@ 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:99
|
#: src/views/settings/index.tsx:101
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Error disconnecting Trello"
|
msgstr "Error disconnecting Trello"
|
||||||
|
|
||||||
@@ -971,8 +1011,8 @@ msgstr "Kanban reimagined"
|
|||||||
msgid "Keep in mind that this action is irreversible."
|
msgid "Keep in mind that this action is irreversible."
|
||||||
msgstr "Keep in mind that this action is irreversible."
|
msgstr "Keep in mind that this action is irreversible."
|
||||||
|
|
||||||
#: src/views/card/index.tsx:118
|
#: src/views/card/index.tsx:117
|
||||||
#: src/views/board/components/NewCardForm.tsx:358
|
#: src/views/board/components/NewCardForm.tsx:398
|
||||||
#: src/views/board/components/Filters.tsx:101
|
#: src/views/board/components/Filters.tsx:101
|
||||||
msgid "Labels"
|
msgid "Labels"
|
||||||
msgstr "Labels"
|
msgstr "Labels"
|
||||||
@@ -981,7 +1021,7 @@ msgstr "Labels"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Labels & Filters"
|
msgstr "Labels & Filters"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:185
|
#: src/views/settings/index.tsx:187
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Language"
|
msgstr "Language"
|
||||||
|
|
||||||
@@ -1005,7 +1045,7 @@ msgstr "Light"
|
|||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Link copied"
|
msgstr "Link copied"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:110
|
#: src/views/card/index.tsx:109
|
||||||
msgid "List"
|
msgid "List"
|
||||||
msgstr "List"
|
msgstr "List"
|
||||||
|
|
||||||
@@ -1047,8 +1087,8 @@ msgid "Medium Priority"
|
|||||||
msgstr "Medium Priority"
|
msgstr "Medium Priority"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:161
|
#: src/views/members/index.tsx:161
|
||||||
#: src/views/card/index.tsx:126
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/board/components/NewCardForm.tsx:317
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/components/SideNavigation.tsx:73
|
#: src/components/SideNavigation.tsx:73
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
@@ -1078,7 +1118,7 @@ msgid "moved the card to another list"
|
|||||||
msgstr "moved the card to another list"
|
msgstr "moved the card to another list"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:99
|
#: src/views/boards/components/NewBoardForm.tsx:99
|
||||||
#: src/components/LabelForm.tsx:134
|
#: src/components/LabelForm.tsx:135
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Name"
|
msgstr "Name"
|
||||||
|
|
||||||
@@ -1094,7 +1134,7 @@ msgstr "New"
|
|||||||
msgid "New board"
|
msgid "New board"
|
||||||
msgstr "New board"
|
msgstr "New board"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:261
|
#: src/views/board/components/NewCardForm.tsx:290
|
||||||
msgid "New card"
|
msgid "New card"
|
||||||
msgstr "New card"
|
msgstr "New card"
|
||||||
|
|
||||||
@@ -1106,7 +1146,7 @@ msgstr "New checklist"
|
|||||||
msgid "New import"
|
msgid "New import"
|
||||||
msgstr "New import"
|
msgstr "New import"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "New label"
|
msgid "New label"
|
||||||
msgstr "New label"
|
msgstr "New label"
|
||||||
|
|
||||||
@@ -1115,6 +1155,14 @@ msgstr "New label"
|
|||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "New list"
|
msgstr "New list"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:23
|
||||||
|
msgid "New password is required"
|
||||||
|
msgstr "New password is required"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:31
|
||||||
|
msgid "New password must be different from current password"
|
||||||
|
msgstr "New password must be different from current password"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:43
|
#: src/views/boards/components/TemplateBoards.tsx:43
|
||||||
msgid "New Ticket"
|
msgid "New Ticket"
|
||||||
msgstr "New Ticket"
|
msgstr "New Ticket"
|
||||||
@@ -1159,11 +1207,11 @@ msgstr "Offer"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Onboarding"
|
msgstr "Onboarding"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:312
|
||||||
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:273
|
#: src/views/settings/index.tsx:275
|
||||||
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."
|
||||||
|
|
||||||
@@ -1183,6 +1231,18 @@ msgstr "Own your data"
|
|||||||
msgid "Part-time"
|
msgid "Part-time"
|
||||||
msgstr "Part-time"
|
msgstr "Part-time"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:69
|
||||||
|
msgid "Password Changed"
|
||||||
|
msgstr "Password Changed"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:22
|
||||||
|
msgid "Password must be at least 8 characters"
|
||||||
|
msgstr "Password must be at least 8 characters"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:27
|
||||||
|
msgid "Passwords do not match"
|
||||||
|
msgstr "Passwords do not match"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:101
|
#: src/views/home/components/Pricing.tsx:101
|
||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Payment frequency"
|
msgstr "Payment frequency"
|
||||||
@@ -1204,6 +1264,10 @@ msgstr "Personal Project"
|
|||||||
msgid "Planning"
|
msgid "Planning"
|
||||||
msgstr "Planning"
|
msgstr "Planning"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:24
|
||||||
|
msgid "Please confirm your new password"
|
||||||
|
msgstr "Please confirm your new password"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:306
|
#: src/components/AuthForm.tsx:306
|
||||||
msgid "Please enter a valid email address"
|
msgid "Please enter a valid email address"
|
||||||
msgstr "Please enter a valid email address"
|
msgstr "Please enter a valid email address"
|
||||||
@@ -1230,7 +1294,7 @@ msgstr "Please select a file to upload."
|
|||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:64
|
#: src/views/members/components/InviteMemberForm.tsx:64
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:172
|
||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
||||||
#: src/views/card/components/NewChecklistForm.tsx:70
|
#: src/views/card/components/NewChecklistForm.tsx:70
|
||||||
@@ -1250,10 +1314,10 @@ msgstr "Please select a file to upload."
|
|||||||
#: src/views/board/components/VisibilityButton.tsx:53
|
#: src/views/board/components/VisibilityButton.tsx:53
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
||||||
#: src/views/board/components/NewListForm.tsx:78
|
#: src/views/board/components/NewListForm.tsx:78
|
||||||
#: src/views/board/components/NewCardForm.tsx:145
|
#: src/views/board/components/NewCardForm.tsx:174
|
||||||
#: src/components/NewWorkspaceForm.tsx:41
|
#: src/components/NewWorkspaceForm.tsx:41
|
||||||
#: src/components/FeedbackModal.tsx:41
|
#: src/components/FeedbackModal.tsx:41
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:23
|
#: src/components/DeleteLabelConfirmation.tsx:26
|
||||||
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."
|
||||||
|
|
||||||
@@ -1279,7 +1343,7 @@ msgstr "Private"
|
|||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Profile image updated"
|
msgstr "Profile image updated"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:144
|
#: src/views/settings/index.tsx:146
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Profile picture"
|
msgstr "Profile picture"
|
||||||
|
|
||||||
@@ -1427,13 +1491,13 @@ msgstr "Send feedback"
|
|||||||
msgid "Senior"
|
msgid "Senior"
|
||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:138
|
#: src/views/settings/index.tsx:140
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Settings"
|
msgstr "Settings"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:134
|
#: src/views/settings/index.tsx:136
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Settings | {0}"
|
msgstr "Settings | {0}"
|
||||||
|
|
||||||
@@ -1512,6 +1576,10 @@ msgstr "Terms of service"
|
|||||||
msgid "Thank you for your feedback!"
|
msgid "Thank you for your feedback!"
|
||||||
msgstr "Thank you for your feedback!"
|
msgstr "Thank you for your feedback!"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:84
|
||||||
|
msgid "The current password you entered is incorrect."
|
||||||
|
msgstr "The current password you entered is incorrect."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:33
|
#: src/views/home/components/Faqs.tsx:33
|
||||||
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
||||||
msgstr "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
msgstr "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
||||||
@@ -1536,7 +1604,7 @@ msgstr "They won't be able to access this workspace."
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:42
|
#: src/components/DeleteLabelConfirmation.tsx:44
|
||||||
msgid "This action can't be undone."
|
msgid "This action can't be undone."
|
||||||
msgstr "This action can't be undone."
|
msgstr "This action can't be undone."
|
||||||
|
|
||||||
@@ -1577,7 +1645,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:92
|
#: src/views/settings/index.tsx:94
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello disconnected"
|
msgstr "Trello disconnected"
|
||||||
|
|
||||||
@@ -1597,7 +1665,7 @@ msgstr "Unable to add checklist item"
|
|||||||
msgid "Unable to add comment"
|
msgid "Unable to add comment"
|
||||||
msgstr "Unable to add comment"
|
msgstr "Unable to add comment"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:142
|
#: src/views/board/components/NewCardForm.tsx:171
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
msgstr "Unable to create card"
|
msgstr "Unable to create card"
|
||||||
|
|
||||||
@@ -1645,7 +1713,7 @@ msgstr "Unable to update board URL"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Unable to update board visibility"
|
msgstr "Unable to update board visibility"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:172
|
#: src/views/card/index.tsx:171
|
||||||
#: src/views/board/index.tsx:189
|
#: src/views/board/index.tsx:189
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Unable to update card"
|
msgstr "Unable to update card"
|
||||||
@@ -1720,7 +1788,7 @@ msgstr "Unlimited lists"
|
|||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr "Update"
|
msgstr "Update"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Update label"
|
msgid "Update label"
|
||||||
msgstr "Update label"
|
msgstr "Update label"
|
||||||
|
|
||||||
@@ -1782,11 +1850,11 @@ msgstr "User is already a member of this workspace"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Video"
|
msgstr "Video"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:260
|
#: src/views/settings/index.tsx:262
|
||||||
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:199
|
#: src/views/settings/index.tsx:201
|
||||||
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."
|
||||||
|
|
||||||
@@ -1850,7 +1918,7 @@ msgstr "Workspace"
|
|||||||
msgid "Workspace deleted"
|
msgid "Workspace deleted"
|
||||||
msgstr "Workspace deleted"
|
msgstr "Workspace deleted"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:175
|
#: src/views/settings/index.tsx:177
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Workspace description"
|
msgstr "Workspace description"
|
||||||
|
|
||||||
@@ -1871,7 +1939,7 @@ msgstr "Workspace description updated"
|
|||||||
msgid "Workspace members"
|
msgid "Workspace members"
|
||||||
msgstr "Workspace members"
|
msgstr "Workspace members"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:156
|
#: src/views/settings/index.tsx:158
|
||||||
#: src/components/NewWorkspaceForm.tsx:80
|
#: src/components/NewWorkspaceForm.tsx:80
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Workspace name"
|
msgstr "Workspace name"
|
||||||
@@ -1892,7 +1960,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:165
|
#: src/views/settings/index.tsx:167
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "Workspace URL"
|
msgstr "Workspace URL"
|
||||||
|
|
||||||
@@ -1908,6 +1976,10 @@ 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
|
||||||
|
msgid "You are about to change your password."
|
||||||
|
msgstr "You are about to change your password."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:67
|
#: src/views/home/components/Faqs.tsx:67
|
||||||
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
||||||
msgstr "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
msgstr "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
||||||
@@ -1940,15 +2012,19 @@ msgstr "Your boards have been imported."
|
|||||||
msgid "Your display name has been updated."
|
msgid "Your display name has been updated."
|
||||||
msgstr "Your display name has been updated."
|
msgstr "Your display name has been updated."
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:70
|
||||||
|
msgid "Your password has been changed."
|
||||||
|
msgstr "Your password has been changed."
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:27
|
#: src/views/settings/components/Avatar.tsx:27
|
||||||
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:93
|
#: src/views/settings/index.tsx:95
|
||||||
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:242
|
#: src/views/settings/index.tsx:244
|
||||||
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
@@ -23,12 +23,12 @@ msgstr ", o consulta nuestra"
|
|||||||
|
|
||||||
#. placeholder {0}: card?.title ?? "Card"
|
#. placeholder {0}: card?.title ?? "Card"
|
||||||
#. placeholder {1}: board?.name ?? "Board"
|
#. placeholder {1}: board?.name ?? "Board"
|
||||||
#: src/views/card/index.tsx:214
|
#: src/views/card/index.tsx:213
|
||||||
msgid "{0} | {1}"
|
msgid "{0} | {1}"
|
||||||
msgstr "{0} | {1}"
|
msgstr "{0} | {1}"
|
||||||
|
|
||||||
#. placeholder {0}: labelPublicIds.length
|
#. placeholder {0}: labelPublicIds.length
|
||||||
#: src/views/board/components/NewCardForm.tsx:392
|
#: src/views/board/components/NewCardForm.tsx:432
|
||||||
msgid "{0} labels"
|
msgid "{0} labels"
|
||||||
msgstr "{0} etiquetas"
|
msgstr "{0} etiquetas"
|
||||||
|
|
||||||
@@ -48,8 +48,8 @@ msgstr "Una aplicación kanban potente y flexible que te ayuda a organizar el tr
|
|||||||
msgid "Account deleted"
|
msgid "Account deleted"
|
||||||
msgstr "Cuenta eliminada"
|
msgstr "Cuenta eliminada"
|
||||||
|
|
||||||
#: src/views/public/board/CardModal.tsx:136
|
#: src/views/public/board/CardModal.tsx:140
|
||||||
#: src/views/card/index.tsx:287
|
#: src/views/card/index.tsx:288
|
||||||
msgid "Activity"
|
msgid "Activity"
|
||||||
msgstr "Actividad"
|
msgstr "Actividad"
|
||||||
|
|
||||||
@@ -74,9 +74,9 @@ msgstr "Añadir un elemento..."
|
|||||||
msgid "Add checklist"
|
msgid "Add checklist"
|
||||||
msgstr "Añadir lista de verificación"
|
msgstr "Añadir lista de verificación"
|
||||||
|
|
||||||
#: src/components/Editor.tsx:308
|
#: src/components/Editor.tsx:442
|
||||||
msgid "Add description... (type '/' to open commands)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Añadir descripción... (escribe '/' para abrir comandos)"
|
msgstr "Añadir descripción... (escribe '/' para abrir comandos o '@' para mencionar)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:172
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
@@ -139,11 +139,15 @@ 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:100
|
#: src/views/settings/index.tsx:102
|
||||||
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."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:257
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:90
|
||||||
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
|
msgstr "Ha ocurrido un error inesperado. Por favor, inténtalo de nuevo más tarde."
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:259
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "Claves API"
|
msgstr "Claves API"
|
||||||
|
|
||||||
@@ -180,7 +184,7 @@ msgstr "¿Estás seguro de que quieres eliminar esta lista de verificación?"
|
|||||||
msgid "Are you sure you want to delete this comment?"
|
msgid "Are you sure you want to delete this comment?"
|
||||||
msgstr "¿Estás seguro de que quieres eliminar este comentario?"
|
msgstr "¿Estás seguro de que quieres eliminar este comentario?"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:39
|
#: src/components/DeleteLabelConfirmation.tsx:41
|
||||||
msgid "Are you sure you want to delete this label?"
|
msgid "Are you sure you want to delete this label?"
|
||||||
msgstr "¿Estás seguro de que quieres eliminar esta etiqueta?"
|
msgstr "¿Estás seguro de que quieres eliminar esta etiqueta?"
|
||||||
|
|
||||||
@@ -205,12 +209,12 @@ msgstr "Pendientes"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Kanban básico"
|
msgstr "Kanban básico"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:196
|
#: src/views/settings/index.tsx:198
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Facturación"
|
msgstr "Facturación"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:206
|
#: src/views/settings/index.tsx:208
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Portal de facturación"
|
msgstr "Portal de facturación"
|
||||||
|
|
||||||
@@ -284,12 +288,13 @@ msgstr "Informe de error"
|
|||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
||||||
#: src/views/card/components/Comment.tsx:158
|
#: src/views/card/components/Comment.tsx:158
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:47
|
#: src/components/DeleteLabelConfirmation.tsx:49
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancelar"
|
msgstr "Cancelar"
|
||||||
|
|
||||||
@@ -297,11 +302,18 @@ msgstr "Cancelar"
|
|||||||
msgid "Card not found"
|
msgid "Card not found"
|
||||||
msgstr "Tarjeta no encontrada"
|
msgstr "Tarjeta no encontrada"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:278
|
#: src/views/board/components/NewCardForm.tsx:307
|
||||||
msgid "Card title"
|
msgid "Card title"
|
||||||
msgstr "Título de la tarjeta"
|
msgstr "Título de la tarjeta"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:188
|
#: src/views/settings/index.tsx:291
|
||||||
|
#: src/views/settings/index.tsx:301
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr "Cambiar contraseña"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:190
|
||||||
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."
|
||||||
|
|
||||||
@@ -364,7 +376,11 @@ msgstr "completó el elemento <0>{0}</0> de la lista de verificación"
|
|||||||
msgid "Confirm URL change"
|
msgid "Confirm URL change"
|
||||||
msgstr "Confirmar cambio de URL"
|
msgstr "Confirmar cambio de URL"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:233
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
|
msgid "Confirm your new password"
|
||||||
|
msgstr "Confirma tu nueva contraseña"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:235
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Conectar Trello"
|
msgstr "Conectar Trello"
|
||||||
@@ -373,7 +389,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:220
|
#: src/views/settings/index.tsx:222
|
||||||
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."
|
||||||
|
|
||||||
@@ -403,8 +419,8 @@ msgid "Control who can view and edit your boards."
|
|||||||
msgstr "Controla quién puede ver y editar tus tableros."
|
msgstr "Controla quién puede ver y editar tus tableros."
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:140
|
#: src/views/board/components/NewListForm.tsx:140
|
||||||
#: src/views/board/components/NewCardForm.tsx:418
|
#: src/views/board/components/NewCardForm.tsx:458
|
||||||
#: src/components/LabelForm.tsx:212
|
#: src/components/LabelForm.tsx:213
|
||||||
msgid "Create another"
|
msgid "Create another"
|
||||||
msgstr "Crear otro"
|
msgstr "Crear otro"
|
||||||
|
|
||||||
@@ -412,7 +428,7 @@ msgstr "Crear otro"
|
|||||||
msgid "Create board"
|
msgid "Create board"
|
||||||
msgstr "Crear tablero"
|
msgstr "Crear tablero"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:428
|
#: src/views/board/components/NewCardForm.tsx:468
|
||||||
msgid "Create card"
|
msgid "Create card"
|
||||||
msgstr "Crear tarjeta"
|
msgstr "Crear tarjeta"
|
||||||
|
|
||||||
@@ -420,7 +436,7 @@ msgstr "Crear tarjeta"
|
|||||||
msgid "Create checklist"
|
msgid "Create checklist"
|
||||||
msgstr "Crear lista de verificación"
|
msgstr "Crear lista de verificación"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Create label"
|
msgid "Create label"
|
||||||
msgstr "Crear etiqueta"
|
msgstr "Crear etiqueta"
|
||||||
|
|
||||||
@@ -437,7 +453,7 @@ msgid "Create new key"
|
|||||||
msgstr "Crear nueva clave"
|
msgstr "Crear nueva clave"
|
||||||
|
|
||||||
#: src/views/card/components/LabelSelector.tsx:98
|
#: src/views/card/components/LabelSelector.tsx:98
|
||||||
#: src/views/board/components/NewCardForm.tsx:354
|
#: src/views/board/components/NewCardForm.tsx:394
|
||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Crear nueva etiqueta"
|
msgstr "Crear nueva etiqueta"
|
||||||
|
|
||||||
@@ -458,6 +474,10 @@ msgstr "creó la tarjeta"
|
|||||||
msgid "Critical"
|
msgid "Critical"
|
||||||
msgstr "Crítico"
|
msgstr "Crítico"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:19
|
||||||
|
msgid "Current password is required"
|
||||||
|
msgstr "Se requiere la contraseña actual"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:74
|
#: src/views/home/components/Pricing.tsx:74
|
||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Dominio personalizado"
|
msgstr "Dominio personalizado"
|
||||||
@@ -477,13 +497,13 @@ msgstr "Oscuro"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
||||||
#: src/components/LabelForm.tsx:226
|
#: src/components/LabelForm.tsx:228
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:49
|
#: src/components/DeleteLabelConfirmation.tsx:51
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Eliminar"
|
msgstr "Eliminar"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:288
|
#: src/views/settings/index.tsx:309
|
||||||
#: src/views/settings/index.tsx:298
|
#: src/views/settings/index.tsx:319
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Eliminar cuenta"
|
msgstr "Eliminar cuenta"
|
||||||
@@ -504,8 +524,8 @@ msgstr "Eliminar comentario"
|
|||||||
msgid "Delete list"
|
msgid "Delete list"
|
||||||
msgstr "Eliminar lista"
|
msgstr "Eliminar lista"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:270
|
#: src/views/settings/index.tsx:272
|
||||||
#: src/views/settings/index.tsx:281
|
#: src/views/settings/index.tsx:283
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Eliminar espacio de trabajo"
|
msgstr "Eliminar espacio de trabajo"
|
||||||
@@ -532,7 +552,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:248
|
#: src/views/settings/index.tsx:250
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Desconectar Trello"
|
msgstr "Desconectar Trello"
|
||||||
|
|
||||||
@@ -540,7 +560,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:149
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Nombre visible"
|
msgstr "Nombre visible"
|
||||||
|
|
||||||
@@ -594,7 +614,7 @@ msgstr "Editar URL del tablero"
|
|||||||
msgid "Edit comment"
|
msgid "Edit comment"
|
||||||
msgstr "Editar comentario"
|
msgstr "Editar comentario"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "Edit label"
|
msgid "Edit label"
|
||||||
msgstr "Editar etiqueta"
|
msgstr "Editar etiqueta"
|
||||||
|
|
||||||
@@ -618,6 +638,14 @@ msgstr "Correo electrónico"
|
|||||||
msgid "Enhancement"
|
msgid "Enhancement"
|
||||||
msgstr "Mejora"
|
msgstr "Mejora"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:122
|
||||||
|
msgid "Enter your current password"
|
||||||
|
msgstr "Introduce tu contraseña actual"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:111
|
||||||
|
msgid "Enter your current password and choose a new secure password."
|
||||||
|
msgstr "Introduce tu contraseña actual y elige una nueva contraseña segura."
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:302
|
#: src/components/AuthForm.tsx:302
|
||||||
msgid "Enter your email address"
|
msgid "Enter your email address"
|
||||||
msgstr "Introduce tu dirección de correo electrónico"
|
msgstr "Introduce tu dirección de correo electrónico"
|
||||||
@@ -626,15 +654,23 @@ msgstr "Introduce tu dirección de correo electrónico"
|
|||||||
msgid "Enter your name"
|
msgid "Enter your name"
|
||||||
msgstr "Introduce tu nombre"
|
msgstr "Introduce tu nombre"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:136
|
||||||
|
msgid "Enter your new password"
|
||||||
|
msgstr "Introduce tu nueva contraseña"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:315
|
#: src/components/AuthForm.tsx:315
|
||||||
msgid "Enter your password"
|
msgid "Enter your password"
|
||||||
msgstr "Introduce tu contraseña"
|
msgstr "Introduce tu contraseña"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:89
|
||||||
|
msgid "Error Changing Password"
|
||||||
|
msgstr "Error al cambiar la contraseña"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
||||||
msgid "Error deleting account"
|
msgid "Error deleting account"
|
||||||
msgstr "Error al eliminar la cuenta"
|
msgstr "Error al eliminar la cuenta"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:22
|
#: src/components/DeleteLabelConfirmation.tsx:25
|
||||||
msgid "Error deleting label"
|
msgid "Error deleting label"
|
||||||
msgstr "Error al eliminar la etiqueta"
|
msgstr "Error al eliminar la etiqueta"
|
||||||
|
|
||||||
@@ -642,7 +678,7 @@ 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:99
|
#: src/views/settings/index.tsx:101
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Error al desconectar Trello"
|
msgstr "Error al desconectar Trello"
|
||||||
|
|
||||||
@@ -922,8 +958,8 @@ msgstr "Kanban reinventado"
|
|||||||
msgid "Keep in mind that this action is irreversible."
|
msgid "Keep in mind that this action is irreversible."
|
||||||
msgstr "Ten en cuenta que esta acción es irreversible."
|
msgstr "Ten en cuenta que esta acción es irreversible."
|
||||||
|
|
||||||
#: src/views/card/index.tsx:118
|
#: src/views/card/index.tsx:117
|
||||||
#: src/views/board/components/NewCardForm.tsx:358
|
#: src/views/board/components/NewCardForm.tsx:398
|
||||||
#: src/views/board/components/Filters.tsx:101
|
#: src/views/board/components/Filters.tsx:101
|
||||||
msgid "Labels"
|
msgid "Labels"
|
||||||
msgstr "Etiquetas"
|
msgstr "Etiquetas"
|
||||||
@@ -932,7 +968,7 @@ msgstr "Etiquetas"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Etiquetas y filtros"
|
msgstr "Etiquetas y filtros"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:185
|
#: src/views/settings/index.tsx:187
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Idioma"
|
msgstr "Idioma"
|
||||||
|
|
||||||
@@ -956,7 +992,7 @@ msgstr "Claro"
|
|||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Enlace copiado"
|
msgstr "Enlace copiado"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:110
|
#: src/views/card/index.tsx:109
|
||||||
msgid "List"
|
msgid "List"
|
||||||
msgstr "Lista"
|
msgstr "Lista"
|
||||||
|
|
||||||
@@ -998,8 +1034,8 @@ msgid "Medium Priority"
|
|||||||
msgstr "Prioridad media"
|
msgstr "Prioridad media"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:161
|
#: src/views/members/index.tsx:161
|
||||||
#: src/views/card/index.tsx:126
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/board/components/NewCardForm.tsx:317
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/components/SideNavigation.tsx:73
|
#: src/components/SideNavigation.tsx:73
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
@@ -1025,7 +1061,7 @@ msgid "moved the card to another list"
|
|||||||
msgstr "movió la tarjeta a otra lista"
|
msgstr "movió la tarjeta a otra lista"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:99
|
#: src/views/boards/components/NewBoardForm.tsx:99
|
||||||
#: src/components/LabelForm.tsx:134
|
#: src/components/LabelForm.tsx:135
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nombre"
|
msgstr "Nombre"
|
||||||
|
|
||||||
@@ -1041,7 +1077,7 @@ msgstr "Nuevo"
|
|||||||
msgid "New board"
|
msgid "New board"
|
||||||
msgstr "Nuevo tablero"
|
msgstr "Nuevo tablero"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:261
|
#: src/views/board/components/NewCardForm.tsx:290
|
||||||
msgid "New card"
|
msgid "New card"
|
||||||
msgstr "Nueva tarjeta"
|
msgstr "Nueva tarjeta"
|
||||||
|
|
||||||
@@ -1053,7 +1089,7 @@ msgstr "Nueva lista de verificación"
|
|||||||
msgid "New import"
|
msgid "New import"
|
||||||
msgstr "Nueva importación"
|
msgstr "Nueva importación"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "New label"
|
msgid "New label"
|
||||||
msgstr "Nueva etiqueta"
|
msgstr "Nueva etiqueta"
|
||||||
|
|
||||||
@@ -1062,6 +1098,14 @@ msgstr "Nueva etiqueta"
|
|||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Nueva lista"
|
msgstr "Nueva lista"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:23
|
||||||
|
msgid "New password is required"
|
||||||
|
msgstr "Se requiere una nueva contraseña"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:31
|
||||||
|
msgid "New password must be different from current password"
|
||||||
|
msgstr "La nueva contraseña debe ser diferente de la contraseña actual"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:43
|
#: src/views/boards/components/TemplateBoards.tsx:43
|
||||||
msgid "New Ticket"
|
msgid "New Ticket"
|
||||||
msgstr "Nuevo ticket"
|
msgstr "Nuevo ticket"
|
||||||
@@ -1102,11 +1146,11 @@ msgstr "Oferta"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Incorporación"
|
msgstr "Incorporación"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:312
|
||||||
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:273
|
#: src/views/settings/index.tsx:275
|
||||||
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."
|
||||||
|
|
||||||
@@ -1126,6 +1170,18 @@ msgstr "Sé dueño de tus datos"
|
|||||||
msgid "Part-time"
|
msgid "Part-time"
|
||||||
msgstr "Tiempo parcial"
|
msgstr "Tiempo parcial"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:69
|
||||||
|
msgid "Password Changed"
|
||||||
|
msgstr "Contraseña cambiada"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:22
|
||||||
|
msgid "Password must be at least 8 characters"
|
||||||
|
msgstr "La contraseña debe tener al menos 8 caracteres"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:27
|
||||||
|
msgid "Passwords do not match"
|
||||||
|
msgstr "Las contraseñas no coinciden"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:101
|
#: src/views/home/components/Pricing.tsx:101
|
||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Frecuencia de pago"
|
msgstr "Frecuencia de pago"
|
||||||
@@ -1147,6 +1203,10 @@ msgstr "Proyecto personal"
|
|||||||
msgid "Planning"
|
msgid "Planning"
|
||||||
msgstr "Planificación"
|
msgstr "Planificación"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:24
|
||||||
|
msgid "Please confirm your new password"
|
||||||
|
msgstr "Por favor, confirma tu nueva contraseña"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:306
|
#: src/components/AuthForm.tsx:306
|
||||||
msgid "Please enter a valid email address"
|
msgid "Please enter a valid email address"
|
||||||
msgstr "Por favor, introduce una dirección de correo electrónico válida"
|
msgstr "Por favor, introduce una dirección de correo electrónico válida"
|
||||||
@@ -1173,7 +1233,7 @@ msgstr "Por favor selecciona un archivo para subir."
|
|||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:64
|
#: src/views/members/components/InviteMemberForm.tsx:64
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:172
|
||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
||||||
#: src/views/card/components/NewChecklistForm.tsx:70
|
#: src/views/card/components/NewChecklistForm.tsx:70
|
||||||
@@ -1193,10 +1253,10 @@ msgstr "Por favor selecciona un archivo para subir."
|
|||||||
#: src/views/board/components/VisibilityButton.tsx:53
|
#: src/views/board/components/VisibilityButton.tsx:53
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
||||||
#: src/views/board/components/NewListForm.tsx:78
|
#: src/views/board/components/NewListForm.tsx:78
|
||||||
#: src/views/board/components/NewCardForm.tsx:145
|
#: src/views/board/components/NewCardForm.tsx:174
|
||||||
#: src/components/NewWorkspaceForm.tsx:41
|
#: src/components/NewWorkspaceForm.tsx:41
|
||||||
#: src/components/FeedbackModal.tsx:41
|
#: src/components/FeedbackModal.tsx:41
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:23
|
#: src/components/DeleteLabelConfirmation.tsx:26
|
||||||
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."
|
||||||
|
|
||||||
@@ -1222,7 +1282,7 @@ msgstr "Privado"
|
|||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Imagen de perfil actualizada"
|
msgstr "Imagen de perfil actualizada"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:144
|
#: src/views/settings/index.tsx:146
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Foto de perfil"
|
msgstr "Foto de perfil"
|
||||||
|
|
||||||
@@ -1362,13 +1422,13 @@ msgstr "Enviar comentarios"
|
|||||||
msgid "Senior"
|
msgid "Senior"
|
||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:138
|
#: src/views/settings/index.tsx:140
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
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:134
|
#: src/views/settings/index.tsx:136
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Configuración | {0}"
|
msgstr "Configuración | {0}"
|
||||||
|
|
||||||
@@ -1447,6 +1507,10 @@ msgstr "Términos de servicio"
|
|||||||
msgid "Thank you for your feedback!"
|
msgid "Thank you for your feedback!"
|
||||||
msgstr "¡Gracias por tus comentarios!"
|
msgstr "¡Gracias por tus comentarios!"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:84
|
||||||
|
msgid "The current password you entered is incorrect."
|
||||||
|
msgstr "La contraseña actual que has introducido es incorrecta."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:33
|
#: src/views/home/components/Faqs.tsx:33
|
||||||
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
||||||
msgstr "La principal diferencia entre Kan y Trello es que Kan es de código abierto, permitiendo a cualquiera ver, modificar y contribuir a nuestro código. Nuestra oferta en la nube también ofrece funciones sin restricciones para uso individual, mientras que Trello bloquea características básicas como el número de tableros que puedes crear detrás de un muro de pago."
|
msgstr "La principal diferencia entre Kan y Trello es que Kan es de código abierto, permitiendo a cualquiera ver, modificar y contribuir a nuestro código. Nuestra oferta en la nube también ofrece funciones sin restricciones para uso individual, mientras que Trello bloquea características básicas como el número de tableros que puedes crear detrás de un muro de pago."
|
||||||
@@ -1471,7 +1535,7 @@ msgstr "No podrán acceder a este espacio de trabajo."
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:42
|
#: src/components/DeleteLabelConfirmation.tsx:44
|
||||||
msgid "This action can't be undone."
|
msgid "This action can't be undone."
|
||||||
msgstr "Esta acción no se puede deshacer."
|
msgstr "Esta acción no se puede deshacer."
|
||||||
|
|
||||||
@@ -1508,7 +1572,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:92
|
#: src/views/settings/index.tsx:94
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello desconectado"
|
msgstr "Trello desconectado"
|
||||||
|
|
||||||
@@ -1528,7 +1592,7 @@ msgstr "No se puede añadir el elemento a la lista de verificación"
|
|||||||
msgid "Unable to add comment"
|
msgid "Unable to add comment"
|
||||||
msgstr "No se puede añadir el comentario"
|
msgstr "No se puede añadir el comentario"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:142
|
#: src/views/board/components/NewCardForm.tsx:171
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
msgstr "No se puede crear la tarjeta"
|
msgstr "No se puede crear la tarjeta"
|
||||||
|
|
||||||
@@ -1576,7 +1640,7 @@ msgstr "No se puede actualizar la URL del tablero"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "No se puede actualizar la visibilidad del tablero"
|
msgstr "No se puede actualizar la visibilidad del tablero"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:172
|
#: src/views/card/index.tsx:171
|
||||||
#: src/views/board/index.tsx:189
|
#: src/views/board/index.tsx:189
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "No se puede actualizar la tarjeta"
|
msgstr "No se puede actualizar la tarjeta"
|
||||||
@@ -1647,7 +1711,7 @@ msgstr "Listas ilimitadas"
|
|||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr "Actualizar"
|
msgstr "Actualizar"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Update label"
|
msgid "Update label"
|
||||||
msgstr "Actualizar etiqueta"
|
msgstr "Actualizar etiqueta"
|
||||||
|
|
||||||
@@ -1705,11 +1769,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:260
|
#: src/views/settings/index.tsx:262
|
||||||
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:199
|
#: src/views/settings/index.tsx:201
|
||||||
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."
|
||||||
|
|
||||||
@@ -1769,7 +1833,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:175
|
#: src/views/settings/index.tsx:177
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Descripción del espacio de trabajo"
|
msgstr "Descripción del espacio de trabajo"
|
||||||
|
|
||||||
@@ -1790,7 +1854,7 @@ msgstr "Descripción del espacio de trabajo actualizada"
|
|||||||
msgid "Workspace members"
|
msgid "Workspace members"
|
||||||
msgstr "Miembros del espacio de trabajo"
|
msgstr "Miembros del espacio de trabajo"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:156
|
#: src/views/settings/index.tsx:158
|
||||||
#: src/components/NewWorkspaceForm.tsx:80
|
#: src/components/NewWorkspaceForm.tsx:80
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Nombre del espacio de trabajo"
|
msgstr "Nombre del espacio de trabajo"
|
||||||
@@ -1811,7 +1875,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:165
|
#: src/views/settings/index.tsx:167
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "URL del espacio de trabajo"
|
msgstr "URL del espacio de trabajo"
|
||||||
|
|
||||||
@@ -1827,6 +1891,10 @@ 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
|
||||||
|
msgid "You are about to change your password."
|
||||||
|
msgstr "Estás a punto de cambiar tu contraseña."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:67
|
#: src/views/home/components/Faqs.tsx:67
|
||||||
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
||||||
msgstr "Puedes obtener una URL personalizada para tu espacio de trabajo, como <0>kan.bn/kan</0>, yendo a la <1>configuración de tu espacio de trabajo</1> y comprando una suscripción pro. ¡Todas las suscripciones ayudan a financiar el desarrollo del proyecto!"
|
msgstr "Puedes obtener una URL personalizada para tu espacio de trabajo, como <0>kan.bn/kan</0>, yendo a la <1>configuración de tu espacio de trabajo</1> y comprando una suscripción pro. ¡Todas las suscripciones ayudan a financiar el desarrollo del proyecto!"
|
||||||
@@ -1859,15 +1927,19 @@ msgstr "Tus tableros han sido importados."
|
|||||||
msgid "Your display name has been updated."
|
msgid "Your display name has been updated."
|
||||||
msgstr "Tu nombre de visualización ha sido actualizado."
|
msgstr "Tu nombre de visualización ha sido actualizado."
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:70
|
||||||
|
msgid "Your password has been changed."
|
||||||
|
msgstr "Tu contraseña ha sido cambiada."
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:27
|
#: src/views/settings/components/Avatar.tsx:27
|
||||||
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:93
|
#: src/views/settings/index.tsx:95
|
||||||
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:242
|
#: src/views/settings/index.tsx:244
|
||||||
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
@@ -23,12 +23,12 @@ msgstr ", ou consultez notre"
|
|||||||
|
|
||||||
#. placeholder {0}: card?.title ?? "Card"
|
#. placeholder {0}: card?.title ?? "Card"
|
||||||
#. placeholder {1}: board?.name ?? "Board"
|
#. placeholder {1}: board?.name ?? "Board"
|
||||||
#: src/views/card/index.tsx:214
|
#: src/views/card/index.tsx:213
|
||||||
msgid "{0} | {1}"
|
msgid "{0} | {1}"
|
||||||
msgstr "{0} | {1}"
|
msgstr "{0} | {1}"
|
||||||
|
|
||||||
#. placeholder {0}: labelPublicIds.length
|
#. placeholder {0}: labelPublicIds.length
|
||||||
#: src/views/board/components/NewCardForm.tsx:392
|
#: src/views/board/components/NewCardForm.tsx:432
|
||||||
msgid "{0} labels"
|
msgid "{0} labels"
|
||||||
msgstr "{0} étiquettes"
|
msgstr "{0} étiquettes"
|
||||||
|
|
||||||
@@ -48,8 +48,8 @@ msgstr "Une application kanban puissante et flexible qui vous aide à organiser
|
|||||||
msgid "Account deleted"
|
msgid "Account deleted"
|
||||||
msgstr "Compte supprimé"
|
msgstr "Compte supprimé"
|
||||||
|
|
||||||
#: src/views/public/board/CardModal.tsx:136
|
#: src/views/public/board/CardModal.tsx:140
|
||||||
#: src/views/card/index.tsx:287
|
#: src/views/card/index.tsx:288
|
||||||
msgid "Activity"
|
msgid "Activity"
|
||||||
msgstr "Activité"
|
msgstr "Activité"
|
||||||
|
|
||||||
@@ -74,9 +74,9 @@ msgstr "Ajouter un élément..."
|
|||||||
msgid "Add checklist"
|
msgid "Add checklist"
|
||||||
msgstr "Ajouter une checklist"
|
msgstr "Ajouter une checklist"
|
||||||
|
|
||||||
#: src/components/Editor.tsx:308
|
#: src/components/Editor.tsx:442
|
||||||
msgid "Add description... (type '/' to open commands)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Ajouter une description... (tapez '/' pour ouvrir les commandes)"
|
msgstr "Ajouter une description... (tapez '/' pour ouvrir les commandes ou '@' pour mentionner)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:172
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
@@ -139,11 +139,15 @@ 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:100
|
#: src/views/settings/index.tsx:102
|
||||||
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."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:257
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:90
|
||||||
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
|
msgstr "Une erreur inattendue s'est produite. Veuillez réessayer plus tard."
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:259
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "Clés API"
|
msgstr "Clés API"
|
||||||
|
|
||||||
@@ -180,7 +184,7 @@ msgstr "Êtes-vous sûr de vouloir supprimer cette checklist ?"
|
|||||||
msgid "Are you sure you want to delete this comment?"
|
msgid "Are you sure you want to delete this comment?"
|
||||||
msgstr "Êtes-vous sûr de vouloir supprimer ce commentaire ?"
|
msgstr "Êtes-vous sûr de vouloir supprimer ce commentaire ?"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:39
|
#: src/components/DeleteLabelConfirmation.tsx:41
|
||||||
msgid "Are you sure you want to delete this label?"
|
msgid "Are you sure you want to delete this label?"
|
||||||
msgstr "Êtes-vous sûr de vouloir supprimer cette étiquette ?"
|
msgstr "Êtes-vous sûr de vouloir supprimer cette étiquette ?"
|
||||||
|
|
||||||
@@ -205,12 +209,12 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Kanban basique"
|
msgstr "Kanban basique"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:196
|
#: src/views/settings/index.tsx:198
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Facturation"
|
msgstr "Facturation"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:206
|
#: src/views/settings/index.tsx:208
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Portail de facturation"
|
msgstr "Portail de facturation"
|
||||||
|
|
||||||
@@ -284,12 +288,13 @@ msgstr "Rapport de bug"
|
|||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
||||||
#: src/views/card/components/Comment.tsx:158
|
#: src/views/card/components/Comment.tsx:158
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:47
|
#: src/components/DeleteLabelConfirmation.tsx:49
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuler"
|
msgstr "Annuler"
|
||||||
|
|
||||||
@@ -297,11 +302,18 @@ msgstr "Annuler"
|
|||||||
msgid "Card not found"
|
msgid "Card not found"
|
||||||
msgstr "Carte introuvable"
|
msgstr "Carte introuvable"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:278
|
#: src/views/board/components/NewCardForm.tsx:307
|
||||||
msgid "Card title"
|
msgid "Card title"
|
||||||
msgstr "Titre de la carte"
|
msgstr "Titre de la carte"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:188
|
#: src/views/settings/index.tsx:291
|
||||||
|
#: src/views/settings/index.tsx:301
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr "Modifier le mot de passe"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:190
|
||||||
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."
|
||||||
|
|
||||||
@@ -364,7 +376,11 @@ msgstr "a terminé l'élément <0>{0}</0> de la checklist"
|
|||||||
msgid "Confirm URL change"
|
msgid "Confirm URL change"
|
||||||
msgstr "Confirmer le changement d'URL"
|
msgstr "Confirmer le changement d'URL"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:233
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
|
msgid "Confirm your new password"
|
||||||
|
msgstr "Confirmez votre nouveau mot de passe"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:235
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Connecter Trello"
|
msgstr "Connecter Trello"
|
||||||
@@ -373,7 +389,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:220
|
#: src/views/settings/index.tsx:222
|
||||||
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."
|
||||||
|
|
||||||
@@ -403,8 +419,8 @@ msgid "Control who can view and edit your boards."
|
|||||||
msgstr "Contrôlez qui peut voir et modifier vos tableaux."
|
msgstr "Contrôlez qui peut voir et modifier vos tableaux."
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:140
|
#: src/views/board/components/NewListForm.tsx:140
|
||||||
#: src/views/board/components/NewCardForm.tsx:418
|
#: src/views/board/components/NewCardForm.tsx:458
|
||||||
#: src/components/LabelForm.tsx:212
|
#: src/components/LabelForm.tsx:213
|
||||||
msgid "Create another"
|
msgid "Create another"
|
||||||
msgstr "Créer un autre"
|
msgstr "Créer un autre"
|
||||||
|
|
||||||
@@ -412,7 +428,7 @@ msgstr "Créer un autre"
|
|||||||
msgid "Create board"
|
msgid "Create board"
|
||||||
msgstr "Créer un tableau"
|
msgstr "Créer un tableau"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:428
|
#: src/views/board/components/NewCardForm.tsx:468
|
||||||
msgid "Create card"
|
msgid "Create card"
|
||||||
msgstr "Créer une carte"
|
msgstr "Créer une carte"
|
||||||
|
|
||||||
@@ -420,7 +436,7 @@ msgstr "Créer une carte"
|
|||||||
msgid "Create checklist"
|
msgid "Create checklist"
|
||||||
msgstr "Créer une checklist"
|
msgstr "Créer une checklist"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Create label"
|
msgid "Create label"
|
||||||
msgstr "Créer une étiquette"
|
msgstr "Créer une étiquette"
|
||||||
|
|
||||||
@@ -437,7 +453,7 @@ msgid "Create new key"
|
|||||||
msgstr "Créer une nouvelle clé"
|
msgstr "Créer une nouvelle clé"
|
||||||
|
|
||||||
#: src/views/card/components/LabelSelector.tsx:98
|
#: src/views/card/components/LabelSelector.tsx:98
|
||||||
#: src/views/board/components/NewCardForm.tsx:354
|
#: src/views/board/components/NewCardForm.tsx:394
|
||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Créer une nouvelle étiquette"
|
msgstr "Créer une nouvelle étiquette"
|
||||||
|
|
||||||
@@ -458,6 +474,10 @@ msgstr "a créé la carte"
|
|||||||
msgid "Critical"
|
msgid "Critical"
|
||||||
msgstr "Critique"
|
msgstr "Critique"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:19
|
||||||
|
msgid "Current password is required"
|
||||||
|
msgstr "Le mot de passe actuel est requis"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:74
|
#: src/views/home/components/Pricing.tsx:74
|
||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Domaine personnalisé"
|
msgstr "Domaine personnalisé"
|
||||||
@@ -477,13 +497,13 @@ msgstr "Sombre"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
||||||
#: src/components/LabelForm.tsx:226
|
#: src/components/LabelForm.tsx:228
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:49
|
#: src/components/DeleteLabelConfirmation.tsx:51
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:288
|
#: src/views/settings/index.tsx:309
|
||||||
#: src/views/settings/index.tsx:298
|
#: src/views/settings/index.tsx:319
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Supprimer le compte"
|
msgstr "Supprimer le compte"
|
||||||
@@ -504,8 +524,8 @@ msgstr "Supprimer le commentaire"
|
|||||||
msgid "Delete list"
|
msgid "Delete list"
|
||||||
msgstr "Supprimer la liste"
|
msgstr "Supprimer la liste"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:270
|
#: src/views/settings/index.tsx:272
|
||||||
#: src/views/settings/index.tsx:281
|
#: src/views/settings/index.tsx:283
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Supprimer l'espace de travail"
|
msgstr "Supprimer l'espace de travail"
|
||||||
@@ -532,7 +552,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:248
|
#: src/views/settings/index.tsx:250
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Déconnecter Trello"
|
msgstr "Déconnecter Trello"
|
||||||
|
|
||||||
@@ -540,7 +560,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:149
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Nom d'affichage"
|
msgstr "Nom d'affichage"
|
||||||
|
|
||||||
@@ -594,7 +614,7 @@ msgstr "Modifier l'URL du tableau"
|
|||||||
msgid "Edit comment"
|
msgid "Edit comment"
|
||||||
msgstr "Modifier le commentaire"
|
msgstr "Modifier le commentaire"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "Edit label"
|
msgid "Edit label"
|
||||||
msgstr "Modifier l'étiquette"
|
msgstr "Modifier l'étiquette"
|
||||||
|
|
||||||
@@ -618,6 +638,14 @@ msgstr "E-mail"
|
|||||||
msgid "Enhancement"
|
msgid "Enhancement"
|
||||||
msgstr "Amélioration"
|
msgstr "Amélioration"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:122
|
||||||
|
msgid "Enter your current password"
|
||||||
|
msgstr "Saisissez votre mot de passe actuel"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:111
|
||||||
|
msgid "Enter your current password and choose a new secure password."
|
||||||
|
msgstr "Saisissez votre mot de passe actuel et choisissez un nouveau mot de passe sécurisé."
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:302
|
#: src/components/AuthForm.tsx:302
|
||||||
msgid "Enter your email address"
|
msgid "Enter your email address"
|
||||||
msgstr "Saisissez votre adresse e-mail"
|
msgstr "Saisissez votre adresse e-mail"
|
||||||
@@ -626,15 +654,23 @@ msgstr "Saisissez votre adresse e-mail"
|
|||||||
msgid "Enter your name"
|
msgid "Enter your name"
|
||||||
msgstr "Saisissez votre nom"
|
msgstr "Saisissez votre nom"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:136
|
||||||
|
msgid "Enter your new password"
|
||||||
|
msgstr "Saisissez votre nouveau mot de passe"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:315
|
#: src/components/AuthForm.tsx:315
|
||||||
msgid "Enter your password"
|
msgid "Enter your password"
|
||||||
msgstr "Saisissez votre mot de passe"
|
msgstr "Saisissez votre mot de passe"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:89
|
||||||
|
msgid "Error Changing Password"
|
||||||
|
msgstr "Erreur lors du changement de mot de passe"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
||||||
msgid "Error deleting account"
|
msgid "Error deleting account"
|
||||||
msgstr "Erreur lors de la suppression du compte"
|
msgstr "Erreur lors de la suppression du compte"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:22
|
#: src/components/DeleteLabelConfirmation.tsx:25
|
||||||
msgid "Error deleting label"
|
msgid "Error deleting label"
|
||||||
msgstr "Erreur lors de la suppression de l'étiquette"
|
msgstr "Erreur lors de la suppression de l'étiquette"
|
||||||
|
|
||||||
@@ -642,7 +678,7 @@ 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:99
|
#: src/views/settings/index.tsx:101
|
||||||
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"
|
||||||
|
|
||||||
@@ -922,8 +958,8 @@ msgstr "Kanban réinventé"
|
|||||||
msgid "Keep in mind that this action is irreversible."
|
msgid "Keep in mind that this action is irreversible."
|
||||||
msgstr "Gardez à l'esprit que cette action est irréversible."
|
msgstr "Gardez à l'esprit que cette action est irréversible."
|
||||||
|
|
||||||
#: src/views/card/index.tsx:118
|
#: src/views/card/index.tsx:117
|
||||||
#: src/views/board/components/NewCardForm.tsx:358
|
#: src/views/board/components/NewCardForm.tsx:398
|
||||||
#: src/views/board/components/Filters.tsx:101
|
#: src/views/board/components/Filters.tsx:101
|
||||||
msgid "Labels"
|
msgid "Labels"
|
||||||
msgstr "Étiquettes"
|
msgstr "Étiquettes"
|
||||||
@@ -932,7 +968,7 @@ msgstr "Étiquettes"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Étiquettes & filtres"
|
msgstr "Étiquettes & filtres"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:185
|
#: src/views/settings/index.tsx:187
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Langue"
|
msgstr "Langue"
|
||||||
|
|
||||||
@@ -956,7 +992,7 @@ msgstr "Clair"
|
|||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Lien copié"
|
msgstr "Lien copié"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:110
|
#: src/views/card/index.tsx:109
|
||||||
msgid "List"
|
msgid "List"
|
||||||
msgstr "Liste"
|
msgstr "Liste"
|
||||||
|
|
||||||
@@ -998,8 +1034,8 @@ msgid "Medium Priority"
|
|||||||
msgstr "Priorité moyenne"
|
msgstr "Priorité moyenne"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:161
|
#: src/views/members/index.tsx:161
|
||||||
#: src/views/card/index.tsx:126
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/board/components/NewCardForm.tsx:317
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/components/SideNavigation.tsx:73
|
#: src/components/SideNavigation.tsx:73
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
@@ -1025,7 +1061,7 @@ msgid "moved the card to another list"
|
|||||||
msgstr "a déplacé la carte vers une autre liste"
|
msgstr "a déplacé la carte vers une autre liste"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:99
|
#: src/views/boards/components/NewBoardForm.tsx:99
|
||||||
#: src/components/LabelForm.tsx:134
|
#: src/components/LabelForm.tsx:135
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nom"
|
msgstr "Nom"
|
||||||
|
|
||||||
@@ -1041,7 +1077,7 @@ msgstr "Nouveau"
|
|||||||
msgid "New board"
|
msgid "New board"
|
||||||
msgstr "Nouveau tableau"
|
msgstr "Nouveau tableau"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:261
|
#: src/views/board/components/NewCardForm.tsx:290
|
||||||
msgid "New card"
|
msgid "New card"
|
||||||
msgstr "Nouvelle carte"
|
msgstr "Nouvelle carte"
|
||||||
|
|
||||||
@@ -1053,7 +1089,7 @@ msgstr "Nouvelle checklist"
|
|||||||
msgid "New import"
|
msgid "New import"
|
||||||
msgstr "Nouvel import"
|
msgstr "Nouvel import"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "New label"
|
msgid "New label"
|
||||||
msgstr "Nouvelle étiquette"
|
msgstr "Nouvelle étiquette"
|
||||||
|
|
||||||
@@ -1062,6 +1098,14 @@ msgstr "Nouvelle étiquette"
|
|||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Nouvelle liste"
|
msgstr "Nouvelle liste"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:23
|
||||||
|
msgid "New password is required"
|
||||||
|
msgstr "Le nouveau mot de passe est requis"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:31
|
||||||
|
msgid "New password must be different from current password"
|
||||||
|
msgstr "Le nouveau mot de passe doit être différent du mot de passe actuel"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:43
|
#: src/views/boards/components/TemplateBoards.tsx:43
|
||||||
msgid "New Ticket"
|
msgid "New Ticket"
|
||||||
msgstr "Nouveau ticket"
|
msgstr "Nouveau ticket"
|
||||||
@@ -1102,11 +1146,11 @@ msgstr "Offre"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Intégration"
|
msgstr "Intégration"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:312
|
||||||
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:273
|
#: src/views/settings/index.tsx:275
|
||||||
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."
|
||||||
|
|
||||||
@@ -1126,6 +1170,18 @@ msgstr "Maîtrisez vos données"
|
|||||||
msgid "Part-time"
|
msgid "Part-time"
|
||||||
msgstr "Temps partiel"
|
msgstr "Temps partiel"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:69
|
||||||
|
msgid "Password Changed"
|
||||||
|
msgstr "Mot de passe modifié"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:22
|
||||||
|
msgid "Password must be at least 8 characters"
|
||||||
|
msgstr "Le mot de passe doit comporter au moins 8 caractères"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:27
|
||||||
|
msgid "Passwords do not match"
|
||||||
|
msgstr "Les mots de passe ne correspondent pas"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:101
|
#: src/views/home/components/Pricing.tsx:101
|
||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Fréquence de paiement"
|
msgstr "Fréquence de paiement"
|
||||||
@@ -1147,6 +1203,10 @@ msgstr "Projet personnel"
|
|||||||
msgid "Planning"
|
msgid "Planning"
|
||||||
msgstr "Planification"
|
msgstr "Planification"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:24
|
||||||
|
msgid "Please confirm your new password"
|
||||||
|
msgstr "Veuillez confirmer votre nouveau mot de passe"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:306
|
#: src/components/AuthForm.tsx:306
|
||||||
msgid "Please enter a valid email address"
|
msgid "Please enter a valid email address"
|
||||||
msgstr "Veuillez saisir une adresse e-mail valide"
|
msgstr "Veuillez saisir une adresse e-mail valide"
|
||||||
@@ -1173,7 +1233,7 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
|
|||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:64
|
#: src/views/members/components/InviteMemberForm.tsx:64
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:172
|
||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
||||||
#: src/views/card/components/NewChecklistForm.tsx:70
|
#: src/views/card/components/NewChecklistForm.tsx:70
|
||||||
@@ -1193,10 +1253,10 @@ msgstr "Veuillez sélectionner un fichier à télécharger."
|
|||||||
#: src/views/board/components/VisibilityButton.tsx:53
|
#: src/views/board/components/VisibilityButton.tsx:53
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
||||||
#: src/views/board/components/NewListForm.tsx:78
|
#: src/views/board/components/NewListForm.tsx:78
|
||||||
#: src/views/board/components/NewCardForm.tsx:145
|
#: src/views/board/components/NewCardForm.tsx:174
|
||||||
#: src/components/NewWorkspaceForm.tsx:41
|
#: src/components/NewWorkspaceForm.tsx:41
|
||||||
#: src/components/FeedbackModal.tsx:41
|
#: src/components/FeedbackModal.tsx:41
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:23
|
#: src/components/DeleteLabelConfirmation.tsx:26
|
||||||
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."
|
||||||
|
|
||||||
@@ -1222,7 +1282,7 @@ msgstr "Privé"
|
|||||||
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:144
|
#: src/views/settings/index.tsx:146
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Photo de profil"
|
msgstr "Photo de profil"
|
||||||
|
|
||||||
@@ -1362,13 +1422,13 @@ msgstr "Envoyer des commentaires"
|
|||||||
msgid "Senior"
|
msgid "Senior"
|
||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:138
|
#: src/views/settings/index.tsx:140
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
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:134
|
#: src/views/settings/index.tsx:136
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Paramètres | {0}"
|
msgstr "Paramètres | {0}"
|
||||||
|
|
||||||
@@ -1447,6 +1507,10 @@ msgstr "Conditions d'utilisation"
|
|||||||
msgid "Thank you for your feedback!"
|
msgid "Thank you for your feedback!"
|
||||||
msgstr "Merci pour vos commentaires !"
|
msgstr "Merci pour vos commentaires !"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:84
|
||||||
|
msgid "The current password you entered is incorrect."
|
||||||
|
msgstr "Le mot de passe actuel que vous avez saisi est incorrect."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:33
|
#: src/views/home/components/Faqs.tsx:33
|
||||||
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
||||||
msgstr "La principale différence entre Kan et Trello est que Kan est open source, permettant à chacun de consulter, modifier et contribuer à notre code. Notre offre cloud ne comporte également aucune restriction sur les fonctionnalités pour un usage individuel, alors que Trello verrouille des fonctionnalités de base comme le nombre de tableaux que vous pouvez créer derrière un paywall."
|
msgstr "La principale différence entre Kan et Trello est que Kan est open source, permettant à chacun de consulter, modifier et contribuer à notre code. Notre offre cloud ne comporte également aucune restriction sur les fonctionnalités pour un usage individuel, alors que Trello verrouille des fonctionnalités de base comme le nombre de tableaux que vous pouvez créer derrière un paywall."
|
||||||
@@ -1471,7 +1535,7 @@ msgstr "Ils ne pourront plus accéder à cet espace de travail."
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:42
|
#: src/components/DeleteLabelConfirmation.tsx:44
|
||||||
msgid "This action can't be undone."
|
msgid "This action can't be undone."
|
||||||
msgstr "Cette action ne peut pas être annulée."
|
msgstr "Cette action ne peut pas être annulée."
|
||||||
|
|
||||||
@@ -1508,7 +1572,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:92
|
#: src/views/settings/index.tsx:94
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello déconnecté"
|
msgstr "Trello déconnecté"
|
||||||
|
|
||||||
@@ -1528,7 +1592,7 @@ msgstr "Impossible d'ajouter l'élément à la liste de contrôle"
|
|||||||
msgid "Unable to add comment"
|
msgid "Unable to add comment"
|
||||||
msgstr "Impossible d'ajouter un commentaire"
|
msgstr "Impossible d'ajouter un commentaire"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:142
|
#: src/views/board/components/NewCardForm.tsx:171
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
msgstr "Impossible de créer la carte"
|
msgstr "Impossible de créer la carte"
|
||||||
|
|
||||||
@@ -1576,7 +1640,7 @@ msgstr "Impossible de mettre à jour l'URL du tableau"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Impossible de mettre à jour la visibilité du tableau"
|
msgstr "Impossible de mettre à jour la visibilité du tableau"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:172
|
#: src/views/card/index.tsx:171
|
||||||
#: src/views/board/index.tsx:189
|
#: src/views/board/index.tsx:189
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Impossible de mettre à jour la carte"
|
msgstr "Impossible de mettre à jour la carte"
|
||||||
@@ -1647,7 +1711,7 @@ msgstr "Listes illimitées"
|
|||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr "Mettre à jour"
|
msgstr "Mettre à jour"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Update label"
|
msgid "Update label"
|
||||||
msgstr "Mettre à jour l'étiquette"
|
msgstr "Mettre à jour l'étiquette"
|
||||||
|
|
||||||
@@ -1705,11 +1769,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:260
|
#: src/views/settings/index.tsx:262
|
||||||
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:199
|
#: src/views/settings/index.tsx:201
|
||||||
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."
|
||||||
|
|
||||||
@@ -1769,7 +1833,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:175
|
#: src/views/settings/index.tsx:177
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Description de l'espace de travail"
|
msgstr "Description de l'espace de travail"
|
||||||
|
|
||||||
@@ -1790,7 +1854,7 @@ msgstr "Description de l'espace de travail mise à jour"
|
|||||||
msgid "Workspace members"
|
msgid "Workspace members"
|
||||||
msgstr "Membres de l'espace de travail"
|
msgstr "Membres de l'espace de travail"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:156
|
#: src/views/settings/index.tsx:158
|
||||||
#: src/components/NewWorkspaceForm.tsx:80
|
#: src/components/NewWorkspaceForm.tsx:80
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Nom de l'espace de travail"
|
msgstr "Nom de l'espace de travail"
|
||||||
@@ -1811,7 +1875,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:165
|
#: src/views/settings/index.tsx:167
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "URL de l'espace de travail"
|
msgstr "URL de l'espace de travail"
|
||||||
|
|
||||||
@@ -1827,6 +1891,10 @@ 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
|
||||||
|
msgid "You are about to change your password."
|
||||||
|
msgstr "Vous êtes sur le point de modifier votre mot de passe."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:67
|
#: src/views/home/components/Faqs.tsx:67
|
||||||
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
||||||
msgstr "Vous pouvez obtenir une URL d'espace de travail personnalisée, comme <0>kan.bn/kan</0>, en accédant à vos <1>paramètres d'espace de travail</1> et en souscrivant à un abonnement pro. Tous les abonnements contribuent à financer le développement du projet !"
|
msgstr "Vous pouvez obtenir une URL d'espace de travail personnalisée, comme <0>kan.bn/kan</0>, en accédant à vos <1>paramètres d'espace de travail</1> et en souscrivant à un abonnement pro. Tous les abonnements contribuent à financer le développement du projet !"
|
||||||
@@ -1859,15 +1927,19 @@ msgstr "Vos tableaux ont été importés."
|
|||||||
msgid "Your display name has been updated."
|
msgid "Your display name has been updated."
|
||||||
msgstr "Votre nom d'affichage a été mis à jour."
|
msgstr "Votre nom d'affichage a été mis à jour."
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:70
|
||||||
|
msgid "Your password has been changed."
|
||||||
|
msgstr "Votre mot de passe a été modifié."
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:27
|
#: src/views/settings/components/Avatar.tsx:27
|
||||||
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:93
|
#: src/views/settings/index.tsx:95
|
||||||
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:242
|
#: src/views/settings/index.tsx:244
|
||||||
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
@@ -23,12 +23,12 @@ msgstr ", o consulta i nostri"
|
|||||||
|
|
||||||
#. placeholder {0}: card?.title ?? "Card"
|
#. placeholder {0}: card?.title ?? "Card"
|
||||||
#. placeholder {1}: board?.name ?? "Board"
|
#. placeholder {1}: board?.name ?? "Board"
|
||||||
#: src/views/card/index.tsx:214
|
#: src/views/card/index.tsx:213
|
||||||
msgid "{0} | {1}"
|
msgid "{0} | {1}"
|
||||||
msgstr "{0} | {1}"
|
msgstr "{0} | {1}"
|
||||||
|
|
||||||
#. placeholder {0}: labelPublicIds.length
|
#. placeholder {0}: labelPublicIds.length
|
||||||
#: src/views/board/components/NewCardForm.tsx:392
|
#: src/views/board/components/NewCardForm.tsx:432
|
||||||
msgid "{0} labels"
|
msgid "{0} labels"
|
||||||
msgstr "{0} etichette"
|
msgstr "{0} etichette"
|
||||||
|
|
||||||
@@ -48,8 +48,8 @@ msgstr "Un'app kanban potente e flessibile che ti aiuta a organizzare il lavoro,
|
|||||||
msgid "Account deleted"
|
msgid "Account deleted"
|
||||||
msgstr "Account eliminato"
|
msgstr "Account eliminato"
|
||||||
|
|
||||||
#: src/views/public/board/CardModal.tsx:136
|
#: src/views/public/board/CardModal.tsx:140
|
||||||
#: src/views/card/index.tsx:287
|
#: src/views/card/index.tsx:288
|
||||||
msgid "Activity"
|
msgid "Activity"
|
||||||
msgstr "Attività"
|
msgstr "Attività"
|
||||||
|
|
||||||
@@ -74,9 +74,9 @@ msgstr "Aggiungi un elemento..."
|
|||||||
msgid "Add checklist"
|
msgid "Add checklist"
|
||||||
msgstr "Aggiungi checklist"
|
msgstr "Aggiungi checklist"
|
||||||
|
|
||||||
#: src/components/Editor.tsx:308
|
#: src/components/Editor.tsx:442
|
||||||
msgid "Add description... (type '/' to open commands)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Aggiungi descrizione... (digita '/' per aprire i comandi)"
|
msgstr "Aggiungi descrizione... (digita '/' per aprire i comandi o '@' per menzionare)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:172
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
@@ -139,11 +139,15 @@ 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:100
|
#: src/views/settings/index.tsx:102
|
||||||
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."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:257
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:90
|
||||||
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
|
msgstr "Si è verificato un errore imprevisto. Riprova più tardi."
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:259
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "Chiavi API"
|
msgstr "Chiavi API"
|
||||||
|
|
||||||
@@ -180,7 +184,7 @@ msgstr "Sei sicuro di voler eliminare questa checklist?"
|
|||||||
msgid "Are you sure you want to delete this comment?"
|
msgid "Are you sure you want to delete this comment?"
|
||||||
msgstr "Sei sicuro di voler eliminare questo commento?"
|
msgstr "Sei sicuro di voler eliminare questo commento?"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:39
|
#: src/components/DeleteLabelConfirmation.tsx:41
|
||||||
msgid "Are you sure you want to delete this label?"
|
msgid "Are you sure you want to delete this label?"
|
||||||
msgstr "Sei sicuro di voler eliminare questa etichetta?"
|
msgstr "Sei sicuro di voler eliminare questa etichetta?"
|
||||||
|
|
||||||
@@ -205,12 +209,12 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Kanban base"
|
msgstr "Kanban base"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:196
|
#: src/views/settings/index.tsx:198
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Fatturazione"
|
msgstr "Fatturazione"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:206
|
#: src/views/settings/index.tsx:208
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Portale di fatturazione"
|
msgstr "Portale di fatturazione"
|
||||||
|
|
||||||
@@ -284,12 +288,13 @@ msgstr "Segnalazione bug"
|
|||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
||||||
#: src/views/card/components/Comment.tsx:158
|
#: src/views/card/components/Comment.tsx:158
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:47
|
#: src/components/DeleteLabelConfirmation.tsx:49
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annulla"
|
msgstr "Annulla"
|
||||||
|
|
||||||
@@ -297,11 +302,18 @@ msgstr "Annulla"
|
|||||||
msgid "Card not found"
|
msgid "Card not found"
|
||||||
msgstr "Carta non trovata"
|
msgstr "Carta non trovata"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:278
|
#: src/views/board/components/NewCardForm.tsx:307
|
||||||
msgid "Card title"
|
msgid "Card title"
|
||||||
msgstr "Titolo della carta"
|
msgstr "Titolo della carta"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:188
|
#: src/views/settings/index.tsx:291
|
||||||
|
#: src/views/settings/index.tsx:301
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr "Cambia password"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:190
|
||||||
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."
|
||||||
|
|
||||||
@@ -364,7 +376,11 @@ msgstr "ha completato l'elemento <0>{0}</0> della checklist"
|
|||||||
msgid "Confirm URL change"
|
msgid "Confirm URL change"
|
||||||
msgstr "Conferma modifica URL"
|
msgstr "Conferma modifica URL"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:233
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
|
msgid "Confirm your new password"
|
||||||
|
msgstr "Conferma la tua nuova password"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:235
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Connetti Trello"
|
msgstr "Connetti Trello"
|
||||||
@@ -373,7 +389,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:220
|
#: src/views/settings/index.tsx:222
|
||||||
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."
|
||||||
|
|
||||||
@@ -403,8 +419,8 @@ msgid "Control who can view and edit your boards."
|
|||||||
msgstr "Controlla chi può visualizzare e modificare le tue bacheche."
|
msgstr "Controlla chi può visualizzare e modificare le tue bacheche."
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:140
|
#: src/views/board/components/NewListForm.tsx:140
|
||||||
#: src/views/board/components/NewCardForm.tsx:418
|
#: src/views/board/components/NewCardForm.tsx:458
|
||||||
#: src/components/LabelForm.tsx:212
|
#: src/components/LabelForm.tsx:213
|
||||||
msgid "Create another"
|
msgid "Create another"
|
||||||
msgstr "Crea un altro"
|
msgstr "Crea un altro"
|
||||||
|
|
||||||
@@ -412,7 +428,7 @@ msgstr "Crea un altro"
|
|||||||
msgid "Create board"
|
msgid "Create board"
|
||||||
msgstr "Crea bacheca"
|
msgstr "Crea bacheca"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:428
|
#: src/views/board/components/NewCardForm.tsx:468
|
||||||
msgid "Create card"
|
msgid "Create card"
|
||||||
msgstr "Crea carta"
|
msgstr "Crea carta"
|
||||||
|
|
||||||
@@ -420,7 +436,7 @@ msgstr "Crea carta"
|
|||||||
msgid "Create checklist"
|
msgid "Create checklist"
|
||||||
msgstr "Crea checklist"
|
msgstr "Crea checklist"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Create label"
|
msgid "Create label"
|
||||||
msgstr "Crea etichetta"
|
msgstr "Crea etichetta"
|
||||||
|
|
||||||
@@ -437,7 +453,7 @@ msgid "Create new key"
|
|||||||
msgstr "Crea nuova chiave"
|
msgstr "Crea nuova chiave"
|
||||||
|
|
||||||
#: src/views/card/components/LabelSelector.tsx:98
|
#: src/views/card/components/LabelSelector.tsx:98
|
||||||
#: src/views/board/components/NewCardForm.tsx:354
|
#: src/views/board/components/NewCardForm.tsx:394
|
||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Crea nuova etichetta"
|
msgstr "Crea nuova etichetta"
|
||||||
|
|
||||||
@@ -458,6 +474,10 @@ msgstr "ha creato la carta"
|
|||||||
msgid "Critical"
|
msgid "Critical"
|
||||||
msgstr "Critico"
|
msgstr "Critico"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:19
|
||||||
|
msgid "Current password is required"
|
||||||
|
msgstr "La password attuale è obbligatoria"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:74
|
#: src/views/home/components/Pricing.tsx:74
|
||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Dominio personalizzato"
|
msgstr "Dominio personalizzato"
|
||||||
@@ -477,13 +497,13 @@ msgstr "Scuro"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
||||||
#: src/components/LabelForm.tsx:226
|
#: src/components/LabelForm.tsx:228
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:49
|
#: src/components/DeleteLabelConfirmation.tsx:51
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Elimina"
|
msgstr "Elimina"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:288
|
#: src/views/settings/index.tsx:309
|
||||||
#: src/views/settings/index.tsx:298
|
#: src/views/settings/index.tsx:319
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Elimina account"
|
msgstr "Elimina account"
|
||||||
@@ -504,8 +524,8 @@ msgstr "Elimina commento"
|
|||||||
msgid "Delete list"
|
msgid "Delete list"
|
||||||
msgstr "Elimina lista"
|
msgstr "Elimina lista"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:270
|
#: src/views/settings/index.tsx:272
|
||||||
#: src/views/settings/index.tsx:281
|
#: src/views/settings/index.tsx:283
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Elimina spazio di lavoro"
|
msgstr "Elimina spazio di lavoro"
|
||||||
@@ -532,7 +552,7 @@ msgstr "ha eliminato l'elemento <0>{0}</0> della checklist"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Design"
|
msgstr "Design"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:248
|
#: src/views/settings/index.tsx:250
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Disconnetti Trello"
|
msgstr "Disconnetti Trello"
|
||||||
|
|
||||||
@@ -540,7 +560,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:149
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Nome visualizzato"
|
msgstr "Nome visualizzato"
|
||||||
|
|
||||||
@@ -594,7 +614,7 @@ msgstr "Modifica URL della bacheca"
|
|||||||
msgid "Edit comment"
|
msgid "Edit comment"
|
||||||
msgstr "Modifica commento"
|
msgstr "Modifica commento"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "Edit label"
|
msgid "Edit label"
|
||||||
msgstr "Modifica etichetta"
|
msgstr "Modifica etichetta"
|
||||||
|
|
||||||
@@ -618,6 +638,14 @@ msgstr "Email"
|
|||||||
msgid "Enhancement"
|
msgid "Enhancement"
|
||||||
msgstr "Miglioramento"
|
msgstr "Miglioramento"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:122
|
||||||
|
msgid "Enter your current password"
|
||||||
|
msgstr "Inserisci la tua password attuale"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:111
|
||||||
|
msgid "Enter your current password and choose a new secure password."
|
||||||
|
msgstr "Inserisci la tua password attuale e scegli una nuova password sicura."
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:302
|
#: src/components/AuthForm.tsx:302
|
||||||
msgid "Enter your email address"
|
msgid "Enter your email address"
|
||||||
msgstr "Inserisci il tuo indirizzo email"
|
msgstr "Inserisci il tuo indirizzo email"
|
||||||
@@ -626,15 +654,23 @@ msgstr "Inserisci il tuo indirizzo email"
|
|||||||
msgid "Enter your name"
|
msgid "Enter your name"
|
||||||
msgstr "Inserisci il tuo nome"
|
msgstr "Inserisci il tuo nome"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:136
|
||||||
|
msgid "Enter your new password"
|
||||||
|
msgstr "Inserisci la tua nuova password"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:315
|
#: src/components/AuthForm.tsx:315
|
||||||
msgid "Enter your password"
|
msgid "Enter your password"
|
||||||
msgstr "Inserisci la tua password"
|
msgstr "Inserisci la tua password"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:89
|
||||||
|
msgid "Error Changing Password"
|
||||||
|
msgstr "Errore durante il cambio della password"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
||||||
msgid "Error deleting account"
|
msgid "Error deleting account"
|
||||||
msgstr "Errore durante l'eliminazione dell'account"
|
msgstr "Errore durante l'eliminazione dell'account"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:22
|
#: src/components/DeleteLabelConfirmation.tsx:25
|
||||||
msgid "Error deleting label"
|
msgid "Error deleting label"
|
||||||
msgstr "Errore durante l'eliminazione dell'etichetta"
|
msgstr "Errore durante l'eliminazione dell'etichetta"
|
||||||
|
|
||||||
@@ -642,7 +678,7 @@ 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:99
|
#: src/views/settings/index.tsx:101
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Errore durante la disconnessione da Trello"
|
msgstr "Errore durante la disconnessione da Trello"
|
||||||
|
|
||||||
@@ -922,8 +958,8 @@ msgstr "Kanban reinventato"
|
|||||||
msgid "Keep in mind that this action is irreversible."
|
msgid "Keep in mind that this action is irreversible."
|
||||||
msgstr "Tieni presente che questa azione è irreversibile."
|
msgstr "Tieni presente che questa azione è irreversibile."
|
||||||
|
|
||||||
#: src/views/card/index.tsx:118
|
#: src/views/card/index.tsx:117
|
||||||
#: src/views/board/components/NewCardForm.tsx:358
|
#: src/views/board/components/NewCardForm.tsx:398
|
||||||
#: src/views/board/components/Filters.tsx:101
|
#: src/views/board/components/Filters.tsx:101
|
||||||
msgid "Labels"
|
msgid "Labels"
|
||||||
msgstr "Etichette"
|
msgstr "Etichette"
|
||||||
@@ -932,7 +968,7 @@ msgstr "Etichette"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Etichette & Filtri"
|
msgstr "Etichette & Filtri"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:185
|
#: src/views/settings/index.tsx:187
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Lingua"
|
msgstr "Lingua"
|
||||||
|
|
||||||
@@ -956,7 +992,7 @@ msgstr "Chiaro"
|
|||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Link copiato"
|
msgstr "Link copiato"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:110
|
#: src/views/card/index.tsx:109
|
||||||
msgid "List"
|
msgid "List"
|
||||||
msgstr "Lista"
|
msgstr "Lista"
|
||||||
|
|
||||||
@@ -998,8 +1034,8 @@ msgid "Medium Priority"
|
|||||||
msgstr "Media priorità"
|
msgstr "Media priorità"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:161
|
#: src/views/members/index.tsx:161
|
||||||
#: src/views/card/index.tsx:126
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/board/components/NewCardForm.tsx:317
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/components/SideNavigation.tsx:73
|
#: src/components/SideNavigation.tsx:73
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
@@ -1025,7 +1061,7 @@ msgid "moved the card to another list"
|
|||||||
msgstr "ha spostato la scheda in un'altra lista"
|
msgstr "ha spostato la scheda in un'altra lista"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:99
|
#: src/views/boards/components/NewBoardForm.tsx:99
|
||||||
#: src/components/LabelForm.tsx:134
|
#: src/components/LabelForm.tsx:135
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Nome"
|
msgstr "Nome"
|
||||||
|
|
||||||
@@ -1041,7 +1077,7 @@ msgstr "Nuovo"
|
|||||||
msgid "New board"
|
msgid "New board"
|
||||||
msgstr "Nuova bacheca"
|
msgstr "Nuova bacheca"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:261
|
#: src/views/board/components/NewCardForm.tsx:290
|
||||||
msgid "New card"
|
msgid "New card"
|
||||||
msgstr "Nuova carta"
|
msgstr "Nuova carta"
|
||||||
|
|
||||||
@@ -1053,7 +1089,7 @@ msgstr "Nuova checklist"
|
|||||||
msgid "New import"
|
msgid "New import"
|
||||||
msgstr "Nuova importazione"
|
msgstr "Nuova importazione"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "New label"
|
msgid "New label"
|
||||||
msgstr "Nuova etichetta"
|
msgstr "Nuova etichetta"
|
||||||
|
|
||||||
@@ -1062,6 +1098,14 @@ msgstr "Nuova etichetta"
|
|||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Nuova lista"
|
msgstr "Nuova lista"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:23
|
||||||
|
msgid "New password is required"
|
||||||
|
msgstr "La nuova password è obbligatoria"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:31
|
||||||
|
msgid "New password must be different from current password"
|
||||||
|
msgstr "La nuova password deve essere diversa dalla password attuale"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:43
|
#: src/views/boards/components/TemplateBoards.tsx:43
|
||||||
msgid "New Ticket"
|
msgid "New Ticket"
|
||||||
msgstr "Nuovo ticket"
|
msgstr "Nuovo ticket"
|
||||||
@@ -1102,11 +1146,11 @@ msgstr "Offerta"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Inserimento"
|
msgstr "Inserimento"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:312
|
||||||
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:273
|
#: src/views/settings/index.tsx:275
|
||||||
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."
|
||||||
|
|
||||||
@@ -1126,6 +1170,18 @@ msgstr "Possiedi i tuoi dati"
|
|||||||
msgid "Part-time"
|
msgid "Part-time"
|
||||||
msgstr "Part-time"
|
msgstr "Part-time"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:69
|
||||||
|
msgid "Password Changed"
|
||||||
|
msgstr "Password modificata"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:22
|
||||||
|
msgid "Password must be at least 8 characters"
|
||||||
|
msgstr "La password deve contenere almeno 8 caratteri"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:27
|
||||||
|
msgid "Passwords do not match"
|
||||||
|
msgstr "Le password non corrispondono"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:101
|
#: src/views/home/components/Pricing.tsx:101
|
||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Frequenza di pagamento"
|
msgstr "Frequenza di pagamento"
|
||||||
@@ -1147,6 +1203,10 @@ msgstr "Progetto personale"
|
|||||||
msgid "Planning"
|
msgid "Planning"
|
||||||
msgstr "Pianificazione"
|
msgstr "Pianificazione"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:24
|
||||||
|
msgid "Please confirm your new password"
|
||||||
|
msgstr "Conferma la tua nuova password"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:306
|
#: src/components/AuthForm.tsx:306
|
||||||
msgid "Please enter a valid email address"
|
msgid "Please enter a valid email address"
|
||||||
msgstr "Inserisci un indirizzo email valido"
|
msgstr "Inserisci un indirizzo email valido"
|
||||||
@@ -1173,7 +1233,7 @@ msgstr "Seleziona un file da caricare."
|
|||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:64
|
#: src/views/members/components/InviteMemberForm.tsx:64
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:172
|
||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
||||||
#: src/views/card/components/NewChecklistForm.tsx:70
|
#: src/views/card/components/NewChecklistForm.tsx:70
|
||||||
@@ -1193,10 +1253,10 @@ msgstr "Seleziona un file da caricare."
|
|||||||
#: src/views/board/components/VisibilityButton.tsx:53
|
#: src/views/board/components/VisibilityButton.tsx:53
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
||||||
#: src/views/board/components/NewListForm.tsx:78
|
#: src/views/board/components/NewListForm.tsx:78
|
||||||
#: src/views/board/components/NewCardForm.tsx:145
|
#: src/views/board/components/NewCardForm.tsx:174
|
||||||
#: src/components/NewWorkspaceForm.tsx:41
|
#: src/components/NewWorkspaceForm.tsx:41
|
||||||
#: src/components/FeedbackModal.tsx:41
|
#: src/components/FeedbackModal.tsx:41
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:23
|
#: src/components/DeleteLabelConfirmation.tsx:26
|
||||||
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."
|
||||||
|
|
||||||
@@ -1222,7 +1282,7 @@ msgstr "Privato"
|
|||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Immagine del profilo aggiornata"
|
msgstr "Immagine del profilo aggiornata"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:144
|
#: src/views/settings/index.tsx:146
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Immagine del profilo"
|
msgstr "Immagine del profilo"
|
||||||
|
|
||||||
@@ -1362,13 +1422,13 @@ msgstr "Invia feedback"
|
|||||||
msgid "Senior"
|
msgid "Senior"
|
||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:138
|
#: src/views/settings/index.tsx:140
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Impostazioni"
|
msgstr "Impostazioni"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:134
|
#: src/views/settings/index.tsx:136
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Impostazioni | {0}"
|
msgstr "Impostazioni | {0}"
|
||||||
|
|
||||||
@@ -1447,6 +1507,10 @@ msgstr "Termini di servizio"
|
|||||||
msgid "Thank you for your feedback!"
|
msgid "Thank you for your feedback!"
|
||||||
msgstr "Grazie per il tuo feedback!"
|
msgstr "Grazie per il tuo feedback!"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:84
|
||||||
|
msgid "The current password you entered is incorrect."
|
||||||
|
msgstr "La password attuale inserita non è corretta."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:33
|
#: src/views/home/components/Faqs.tsx:33
|
||||||
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
||||||
msgstr "La principale differenza tra Kan e Trello è che Kan è open source, permettendo a chiunque di visualizzare, modificare e contribuire al nostro codice. La nostra offerta cloud non impone inoltre alcuna restrizione sulle funzionalità per uso individuale, mentre Trello blocca funzionalità di base come il numero di bacheche che puoi creare dietro un paywall."
|
msgstr "La principale differenza tra Kan e Trello è che Kan è open source, permettendo a chiunque di visualizzare, modificare e contribuire al nostro codice. La nostra offerta cloud non impone inoltre alcuna restrizione sulle funzionalità per uso individuale, mentre Trello blocca funzionalità di base come il numero di bacheche che puoi creare dietro un paywall."
|
||||||
@@ -1471,7 +1535,7 @@ msgstr "Non potranno accedere a questo spazio di lavoro."
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:42
|
#: src/components/DeleteLabelConfirmation.tsx:44
|
||||||
msgid "This action can't be undone."
|
msgid "This action can't be undone."
|
||||||
msgstr "Questa azione non può essere annullata."
|
msgstr "Questa azione non può essere annullata."
|
||||||
|
|
||||||
@@ -1508,7 +1572,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:92
|
#: src/views/settings/index.tsx:94
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello disconnesso"
|
msgstr "Trello disconnesso"
|
||||||
|
|
||||||
@@ -1528,7 +1592,7 @@ msgstr "Impossibile aggiungere l'elemento della checklist"
|
|||||||
msgid "Unable to add comment"
|
msgid "Unable to add comment"
|
||||||
msgstr "Impossibile aggiungere il commento"
|
msgstr "Impossibile aggiungere il commento"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:142
|
#: src/views/board/components/NewCardForm.tsx:171
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
msgstr "Impossibile creare la scheda"
|
msgstr "Impossibile creare la scheda"
|
||||||
|
|
||||||
@@ -1576,7 +1640,7 @@ msgstr "Impossibile aggiornare l'URL della bacheca"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Impossibile aggiornare la visibilità della bacheca"
|
msgstr "Impossibile aggiornare la visibilità della bacheca"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:172
|
#: src/views/card/index.tsx:171
|
||||||
#: src/views/board/index.tsx:189
|
#: src/views/board/index.tsx:189
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Impossibile aggiornare la scheda"
|
msgstr "Impossibile aggiornare la scheda"
|
||||||
@@ -1647,7 +1711,7 @@ msgstr "Liste illimitate"
|
|||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr "Aggiorna"
|
msgstr "Aggiorna"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Update label"
|
msgid "Update label"
|
||||||
msgstr "Aggiorna etichetta"
|
msgstr "Aggiorna etichetta"
|
||||||
|
|
||||||
@@ -1705,11 +1769,11 @@ msgstr "L'utente è già membro di questo spazio di lavoro"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Video"
|
msgstr "Video"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:260
|
#: src/views/settings/index.tsx:262
|
||||||
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:199
|
#: src/views/settings/index.tsx:201
|
||||||
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."
|
||||||
|
|
||||||
@@ -1769,7 +1833,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:175
|
#: src/views/settings/index.tsx:177
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Descrizione dello spazio di lavoro"
|
msgstr "Descrizione dello spazio di lavoro"
|
||||||
|
|
||||||
@@ -1790,7 +1854,7 @@ msgstr "Descrizione dell'area di lavoro aggiornata"
|
|||||||
msgid "Workspace members"
|
msgid "Workspace members"
|
||||||
msgstr "Membri del workspace"
|
msgstr "Membri del workspace"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:156
|
#: src/views/settings/index.tsx:158
|
||||||
#: src/components/NewWorkspaceForm.tsx:80
|
#: src/components/NewWorkspaceForm.tsx:80
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Nome dello spazio di lavoro"
|
msgstr "Nome dello spazio di lavoro"
|
||||||
@@ -1811,7 +1875,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:165
|
#: src/views/settings/index.tsx:167
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "URL dello spazio di lavoro"
|
msgstr "URL dello spazio di lavoro"
|
||||||
|
|
||||||
@@ -1827,6 +1891,10 @@ 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
|
||||||
|
msgid "You are about to change your password."
|
||||||
|
msgstr "Stai per cambiare la tua password."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:67
|
#: src/views/home/components/Faqs.tsx:67
|
||||||
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
||||||
msgstr "Puoi ottenere un URL personalizzato per il tuo workspace, come <0>kan.bn/kan</0>, accedendo alle tue <1>impostazioni del workspace</1> e acquistando un abbonamento pro. Tutti gli abbonamenti contribuiscono a finanziare lo sviluppo del progetto!"
|
msgstr "Puoi ottenere un URL personalizzato per il tuo workspace, come <0>kan.bn/kan</0>, accedendo alle tue <1>impostazioni del workspace</1> e acquistando un abbonamento pro. Tutti gli abbonamenti contribuiscono a finanziare lo sviluppo del progetto!"
|
||||||
@@ -1859,15 +1927,19 @@ msgstr "Le tue bacheche sono state importate."
|
|||||||
msgid "Your display name has been updated."
|
msgid "Your display name has been updated."
|
||||||
msgstr "Il tuo nome visualizzato è stato aggiornato."
|
msgstr "Il tuo nome visualizzato è stato aggiornato."
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:70
|
||||||
|
msgid "Your password has been changed."
|
||||||
|
msgstr "La tua password è stata modificata."
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:27
|
#: src/views/settings/components/Avatar.tsx:27
|
||||||
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:93
|
#: src/views/settings/index.tsx:95
|
||||||
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:242
|
#: src/views/settings/index.tsx:244
|
||||||
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
@@ -23,12 +23,12 @@ msgstr ", of bekijk onze"
|
|||||||
|
|
||||||
#. placeholder {0}: card?.title ?? "Card"
|
#. placeholder {0}: card?.title ?? "Card"
|
||||||
#. placeholder {1}: board?.name ?? "Board"
|
#. placeholder {1}: board?.name ?? "Board"
|
||||||
#: src/views/card/index.tsx:214
|
#: src/views/card/index.tsx:213
|
||||||
msgid "{0} | {1}"
|
msgid "{0} | {1}"
|
||||||
msgstr "{0} | {1}"
|
msgstr "{0} | {1}"
|
||||||
|
|
||||||
#. placeholder {0}: labelPublicIds.length
|
#. placeholder {0}: labelPublicIds.length
|
||||||
#: src/views/board/components/NewCardForm.tsx:392
|
#: src/views/board/components/NewCardForm.tsx:432
|
||||||
msgid "{0} labels"
|
msgid "{0} labels"
|
||||||
msgstr "{0} labels"
|
msgstr "{0} labels"
|
||||||
|
|
||||||
@@ -48,8 +48,8 @@ msgstr "Een krachtige, flexibele kanban-app die je helpt werk te organiseren, vo
|
|||||||
msgid "Account deleted"
|
msgid "Account deleted"
|
||||||
msgstr "Account verwijderd"
|
msgstr "Account verwijderd"
|
||||||
|
|
||||||
#: src/views/public/board/CardModal.tsx:136
|
#: src/views/public/board/CardModal.tsx:140
|
||||||
#: src/views/card/index.tsx:287
|
#: src/views/card/index.tsx:288
|
||||||
msgid "Activity"
|
msgid "Activity"
|
||||||
msgstr "Activiteit"
|
msgstr "Activiteit"
|
||||||
|
|
||||||
@@ -74,9 +74,9 @@ msgstr "Voeg een item toe..."
|
|||||||
msgid "Add checklist"
|
msgid "Add checklist"
|
||||||
msgstr "Checklist toevoegen"
|
msgstr "Checklist toevoegen"
|
||||||
|
|
||||||
#: src/components/Editor.tsx:308
|
#: src/components/Editor.tsx:442
|
||||||
msgid "Add description... (type '/' to open commands)"
|
msgid "Add description... (type '/' to open commands or '@' to mention)"
|
||||||
msgstr "Voeg beschrijving toe... (typ '/' om commando's te openen)"
|
msgstr "Beschrijving toevoegen... (typ '/' om commando's te openen of '@' om te vermelden)"
|
||||||
|
|
||||||
#: src/views/card/components/ChecklistItemRow.tsx:172
|
#: src/views/card/components/ChecklistItemRow.tsx:172
|
||||||
msgid "Add details..."
|
msgid "Add details..."
|
||||||
@@ -139,11 +139,15 @@ 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:100
|
#: src/views/settings/index.tsx:102
|
||||||
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."
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:257
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:90
|
||||||
|
msgid "An unexpected error occurred. Please try again later."
|
||||||
|
msgstr "Er is een onverwachte fout opgetreden. Probeer het later opnieuw."
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:259
|
||||||
msgid "API keys"
|
msgid "API keys"
|
||||||
msgstr "API-sleutels"
|
msgstr "API-sleutels"
|
||||||
|
|
||||||
@@ -180,7 +184,7 @@ msgstr "Weet je zeker dat je deze checklist wilt verwijderen?"
|
|||||||
msgid "Are you sure you want to delete this comment?"
|
msgid "Are you sure you want to delete this comment?"
|
||||||
msgstr "Weet je zeker dat je deze opmerking wilt verwijderen?"
|
msgstr "Weet je zeker dat je deze opmerking wilt verwijderen?"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:39
|
#: src/components/DeleteLabelConfirmation.tsx:41
|
||||||
msgid "Are you sure you want to delete this label?"
|
msgid "Are you sure you want to delete this label?"
|
||||||
msgstr "Weet je zeker dat je dit label wilt verwijderen?"
|
msgstr "Weet je zeker dat je dit label wilt verwijderen?"
|
||||||
|
|
||||||
@@ -205,12 +209,12 @@ msgstr "Backlog"
|
|||||||
msgid "Basic Kanban"
|
msgid "Basic Kanban"
|
||||||
msgstr "Basis kanban"
|
msgstr "Basis kanban"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:196
|
#: src/views/settings/index.tsx:198
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:55
|
#: src/views/boards/components/TemplateBoards.tsx:55
|
||||||
msgid "Billing"
|
msgid "Billing"
|
||||||
msgstr "Facturering"
|
msgstr "Facturering"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:206
|
#: src/views/settings/index.tsx:208
|
||||||
msgid "Billing portal"
|
msgid "Billing portal"
|
||||||
msgstr "Factureringsportaal"
|
msgstr "Factureringsportaal"
|
||||||
|
|
||||||
@@ -284,12 +288,13 @@ msgstr "Bugrapport"
|
|||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:98
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:88
|
||||||
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
#: src/views/settings/components/CustomURLConfirmation.tsx:50
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:168
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:55
|
||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:76
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:63
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
#: src/views/card/components/DeleteCardConfirmation.tsx:86
|
||||||
#: src/views/card/components/Comment.tsx:158
|
#: src/views/card/components/Comment.tsx:158
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:47
|
#: src/components/DeleteLabelConfirmation.tsx:49
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuleren"
|
msgstr "Annuleren"
|
||||||
|
|
||||||
@@ -297,11 +302,18 @@ msgstr "Annuleren"
|
|||||||
msgid "Card not found"
|
msgid "Card not found"
|
||||||
msgstr "Kaart niet gevonden"
|
msgstr "Kaart niet gevonden"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:278
|
#: src/views/board/components/NewCardForm.tsx:307
|
||||||
msgid "Card title"
|
msgid "Card title"
|
||||||
msgstr "Kaarttitel"
|
msgstr "Kaarttitel"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:188
|
#: src/views/settings/index.tsx:291
|
||||||
|
#: src/views/settings/index.tsx:301
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:109
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:178
|
||||||
|
msgid "Change Password"
|
||||||
|
msgstr "Wachtwoord wijzigen"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:190
|
||||||
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."
|
||||||
|
|
||||||
@@ -364,7 +376,11 @@ msgstr "heeft checklistitem <0>{0}</0> voltooid"
|
|||||||
msgid "Confirm URL change"
|
msgid "Confirm URL change"
|
||||||
msgstr "URL-wijziging bevestigen"
|
msgstr "URL-wijziging bevestigen"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:233
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:150
|
||||||
|
msgid "Confirm your new password"
|
||||||
|
msgstr "Bevestig je nieuwe wachtwoord"
|
||||||
|
|
||||||
|
#: src/views/settings/index.tsx:235
|
||||||
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
#: src/views/boards/components/ImportBoardsForm.tsx:157
|
||||||
msgid "Connect Trello"
|
msgid "Connect Trello"
|
||||||
msgstr "Verbind Trello"
|
msgstr "Verbind Trello"
|
||||||
@@ -373,7 +389,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:220
|
#: src/views/settings/index.tsx:222
|
||||||
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."
|
||||||
|
|
||||||
@@ -403,8 +419,8 @@ msgid "Control who can view and edit your boards."
|
|||||||
msgstr "Bepaal wie je borden kan bekijken en bewerken."
|
msgstr "Bepaal wie je borden kan bekijken en bewerken."
|
||||||
|
|
||||||
#: src/views/board/components/NewListForm.tsx:140
|
#: src/views/board/components/NewListForm.tsx:140
|
||||||
#: src/views/board/components/NewCardForm.tsx:418
|
#: src/views/board/components/NewCardForm.tsx:458
|
||||||
#: src/components/LabelForm.tsx:212
|
#: src/components/LabelForm.tsx:213
|
||||||
msgid "Create another"
|
msgid "Create another"
|
||||||
msgstr "Maak nog een"
|
msgstr "Maak nog een"
|
||||||
|
|
||||||
@@ -412,7 +428,7 @@ msgstr "Maak nog een"
|
|||||||
msgid "Create board"
|
msgid "Create board"
|
||||||
msgstr "Maak bord"
|
msgstr "Maak bord"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:428
|
#: src/views/board/components/NewCardForm.tsx:468
|
||||||
msgid "Create card"
|
msgid "Create card"
|
||||||
msgstr "Maak kaart"
|
msgstr "Maak kaart"
|
||||||
|
|
||||||
@@ -420,7 +436,7 @@ msgstr "Maak kaart"
|
|||||||
msgid "Create checklist"
|
msgid "Create checklist"
|
||||||
msgstr "Checklist maken"
|
msgstr "Checklist maken"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Create label"
|
msgid "Create label"
|
||||||
msgstr "Maak label"
|
msgstr "Maak label"
|
||||||
|
|
||||||
@@ -437,7 +453,7 @@ msgid "Create new key"
|
|||||||
msgstr "Nieuwe sleutel aanmaken"
|
msgstr "Nieuwe sleutel aanmaken"
|
||||||
|
|
||||||
#: src/views/card/components/LabelSelector.tsx:98
|
#: src/views/card/components/LabelSelector.tsx:98
|
||||||
#: src/views/board/components/NewCardForm.tsx:354
|
#: src/views/board/components/NewCardForm.tsx:394
|
||||||
msgid "Create new label"
|
msgid "Create new label"
|
||||||
msgstr "Maak nieuw label"
|
msgstr "Maak nieuw label"
|
||||||
|
|
||||||
@@ -458,6 +474,10 @@ msgstr "heeft de kaart aangemaakt"
|
|||||||
msgid "Critical"
|
msgid "Critical"
|
||||||
msgstr "Kritiek"
|
msgstr "Kritiek"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:19
|
||||||
|
msgid "Current password is required"
|
||||||
|
msgstr "Huidig wachtwoord is vereist"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:74
|
#: src/views/home/components/Pricing.tsx:74
|
||||||
msgid "Custom domain"
|
msgid "Custom domain"
|
||||||
msgstr "Aangepast domein"
|
msgstr "Aangepast domein"
|
||||||
@@ -477,13 +497,13 @@ msgstr "Donker"
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:82
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:66
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
#: src/views/card/components/DeleteCardConfirmation.tsx:92
|
||||||
#: src/components/LabelForm.tsx:226
|
#: src/components/LabelForm.tsx:228
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:49
|
#: src/components/DeleteLabelConfirmation.tsx:51
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "Verwijderen"
|
msgstr "Verwijderen"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:288
|
#: src/views/settings/index.tsx:309
|
||||||
#: src/views/settings/index.tsx:298
|
#: src/views/settings/index.tsx:319
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:96
|
||||||
msgid "Delete account"
|
msgid "Delete account"
|
||||||
msgstr "Account verwijderen"
|
msgstr "Account verwijderen"
|
||||||
@@ -504,8 +524,8 @@ msgstr "Reactie verwijderen"
|
|||||||
msgid "Delete list"
|
msgid "Delete list"
|
||||||
msgstr "Lijst verwijderen"
|
msgstr "Lijst verwijderen"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:270
|
#: src/views/settings/index.tsx:272
|
||||||
#: src/views/settings/index.tsx:281
|
#: src/views/settings/index.tsx:283
|
||||||
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
#: src/views/settings/components/DeleteWorkspaceConfirmation.tsx:106
|
||||||
msgid "Delete workspace"
|
msgid "Delete workspace"
|
||||||
msgstr "Werkruimte verwijderen"
|
msgstr "Werkruimte verwijderen"
|
||||||
@@ -532,7 +552,7 @@ msgstr "heeft checklistitem <0>{0}</0> verwijderd"
|
|||||||
msgid "Design"
|
msgid "Design"
|
||||||
msgstr "Ontwerp"
|
msgstr "Ontwerp"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:248
|
#: src/views/settings/index.tsx:250
|
||||||
msgid "Disconnect Trello"
|
msgid "Disconnect Trello"
|
||||||
msgstr "Trello ontkoppelen"
|
msgstr "Trello ontkoppelen"
|
||||||
|
|
||||||
@@ -540,7 +560,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:149
|
#: src/views/settings/index.tsx:151
|
||||||
msgid "Display name"
|
msgid "Display name"
|
||||||
msgstr "Weergavenaam"
|
msgstr "Weergavenaam"
|
||||||
|
|
||||||
@@ -594,7 +614,7 @@ msgstr "Board URL bewerken"
|
|||||||
msgid "Edit comment"
|
msgid "Edit comment"
|
||||||
msgstr "Reactie bewerken"
|
msgstr "Reactie bewerken"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "Edit label"
|
msgid "Edit label"
|
||||||
msgstr "Label bewerken"
|
msgstr "Label bewerken"
|
||||||
|
|
||||||
@@ -618,6 +638,14 @@ msgstr "E-mail"
|
|||||||
msgid "Enhancement"
|
msgid "Enhancement"
|
||||||
msgstr "Verbetering"
|
msgstr "Verbetering"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:122
|
||||||
|
msgid "Enter your current password"
|
||||||
|
msgstr "Voer je huidige wachtwoord in"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:111
|
||||||
|
msgid "Enter your current password and choose a new secure password."
|
||||||
|
msgstr "Voer je huidige wachtwoord in en kies een nieuw veilig wachtwoord."
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:302
|
#: src/components/AuthForm.tsx:302
|
||||||
msgid "Enter your email address"
|
msgid "Enter your email address"
|
||||||
msgstr "Voer je e-mailadres in"
|
msgstr "Voer je e-mailadres in"
|
||||||
@@ -626,15 +654,23 @@ msgstr "Voer je e-mailadres in"
|
|||||||
msgid "Enter your name"
|
msgid "Enter your name"
|
||||||
msgstr "Voer je naam in"
|
msgstr "Voer je naam in"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:136
|
||||||
|
msgid "Enter your new password"
|
||||||
|
msgstr "Voer je nieuwe wachtwoord in"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:315
|
#: src/components/AuthForm.tsx:315
|
||||||
msgid "Enter your password"
|
msgid "Enter your password"
|
||||||
msgstr "Voer je wachtwoord in"
|
msgstr "Voer je wachtwoord in"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:89
|
||||||
|
msgid "Error Changing Password"
|
||||||
|
msgstr "Fout bij wijzigen wachtwoord"
|
||||||
|
|
||||||
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
#: src/views/settings/components/DeleteAccountConfirmation.tsx:39
|
||||||
msgid "Error deleting account"
|
msgid "Error deleting account"
|
||||||
msgstr "Fout bij verwijderen account"
|
msgstr "Fout bij verwijderen account"
|
||||||
|
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:22
|
#: src/components/DeleteLabelConfirmation.tsx:25
|
||||||
msgid "Error deleting label"
|
msgid "Error deleting label"
|
||||||
msgstr "Fout bij het verwijderen van label"
|
msgstr "Fout bij het verwijderen van label"
|
||||||
|
|
||||||
@@ -642,7 +678,7 @@ 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:99
|
#: src/views/settings/index.tsx:101
|
||||||
msgid "Error disconnecting Trello"
|
msgid "Error disconnecting Trello"
|
||||||
msgstr "Fout bij ontkoppelen van Trello"
|
msgstr "Fout bij ontkoppelen van Trello"
|
||||||
|
|
||||||
@@ -922,8 +958,8 @@ msgstr "Kanban opnieuw uitgevonden"
|
|||||||
msgid "Keep in mind that this action is irreversible."
|
msgid "Keep in mind that this action is irreversible."
|
||||||
msgstr "Houd er rekening mee dat deze actie onomkeerbaar is."
|
msgstr "Houd er rekening mee dat deze actie onomkeerbaar is."
|
||||||
|
|
||||||
#: src/views/card/index.tsx:118
|
#: src/views/card/index.tsx:117
|
||||||
#: src/views/board/components/NewCardForm.tsx:358
|
#: src/views/board/components/NewCardForm.tsx:398
|
||||||
#: src/views/board/components/Filters.tsx:101
|
#: src/views/board/components/Filters.tsx:101
|
||||||
msgid "Labels"
|
msgid "Labels"
|
||||||
msgstr "Labels"
|
msgstr "Labels"
|
||||||
@@ -932,7 +968,7 @@ msgstr "Labels"
|
|||||||
msgid "Labels & Filters"
|
msgid "Labels & Filters"
|
||||||
msgstr "Labels & filters"
|
msgstr "Labels & filters"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:185
|
#: src/views/settings/index.tsx:187
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Taal"
|
msgstr "Taal"
|
||||||
|
|
||||||
@@ -956,7 +992,7 @@ msgstr "Licht"
|
|||||||
msgid "Link copied"
|
msgid "Link copied"
|
||||||
msgstr "Link gekopieerd"
|
msgstr "Link gekopieerd"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:110
|
#: src/views/card/index.tsx:109
|
||||||
msgid "List"
|
msgid "List"
|
||||||
msgstr "Lijst"
|
msgstr "Lijst"
|
||||||
|
|
||||||
@@ -998,8 +1034,8 @@ msgid "Medium Priority"
|
|||||||
msgstr "Gemiddelde prioriteit"
|
msgstr "Gemiddelde prioriteit"
|
||||||
|
|
||||||
#: src/views/members/index.tsx:161
|
#: src/views/members/index.tsx:161
|
||||||
#: src/views/card/index.tsx:126
|
#: src/views/card/index.tsx:125
|
||||||
#: src/views/board/components/NewCardForm.tsx:317
|
#: src/views/board/components/NewCardForm.tsx:357
|
||||||
#: src/views/board/components/Filters.tsx:93
|
#: src/views/board/components/Filters.tsx:93
|
||||||
#: src/components/SideNavigation.tsx:73
|
#: src/components/SideNavigation.tsx:73
|
||||||
msgid "Members"
|
msgid "Members"
|
||||||
@@ -1025,7 +1061,7 @@ msgid "moved the card to another list"
|
|||||||
msgstr "heeft de kaart naar een andere lijst verplaatst"
|
msgstr "heeft de kaart naar een andere lijst verplaatst"
|
||||||
|
|
||||||
#: src/views/boards/components/NewBoardForm.tsx:99
|
#: src/views/boards/components/NewBoardForm.tsx:99
|
||||||
#: src/components/LabelForm.tsx:134
|
#: src/components/LabelForm.tsx:135
|
||||||
msgid "Name"
|
msgid "Name"
|
||||||
msgstr "Naam"
|
msgstr "Naam"
|
||||||
|
|
||||||
@@ -1041,7 +1077,7 @@ msgstr "Nieuw"
|
|||||||
msgid "New board"
|
msgid "New board"
|
||||||
msgstr "Nieuw bord"
|
msgstr "Nieuw bord"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:261
|
#: src/views/board/components/NewCardForm.tsx:290
|
||||||
msgid "New card"
|
msgid "New card"
|
||||||
msgstr "Nieuwe kaart"
|
msgstr "Nieuwe kaart"
|
||||||
|
|
||||||
@@ -1053,7 +1089,7 @@ msgstr "Nieuwe checklist"
|
|||||||
msgid "New import"
|
msgid "New import"
|
||||||
msgstr "Nieuwe import"
|
msgstr "Nieuwe import"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:118
|
#: src/components/LabelForm.tsx:119
|
||||||
msgid "New label"
|
msgid "New label"
|
||||||
msgstr "Nieuw label"
|
msgstr "Nieuw label"
|
||||||
|
|
||||||
@@ -1062,6 +1098,14 @@ msgstr "Nieuw label"
|
|||||||
msgid "New list"
|
msgid "New list"
|
||||||
msgstr "Nieuwe lijst"
|
msgstr "Nieuwe lijst"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:23
|
||||||
|
msgid "New password is required"
|
||||||
|
msgstr "Nieuw wachtwoord is vereist"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:31
|
||||||
|
msgid "New password must be different from current password"
|
||||||
|
msgstr "Nieuw wachtwoord moet verschillen van het huidige wachtwoord"
|
||||||
|
|
||||||
#: src/views/boards/components/TemplateBoards.tsx:43
|
#: src/views/boards/components/TemplateBoards.tsx:43
|
||||||
msgid "New Ticket"
|
msgid "New Ticket"
|
||||||
msgstr "Nieuw ticket"
|
msgstr "Nieuw ticket"
|
||||||
@@ -1102,11 +1146,11 @@ msgstr "Aanbod"
|
|||||||
msgid "Onboarding"
|
msgid "Onboarding"
|
||||||
msgstr "Inwerktraject"
|
msgstr "Inwerktraject"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:291
|
#: src/views/settings/index.tsx:312
|
||||||
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:273
|
#: src/views/settings/index.tsx:275
|
||||||
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."
|
||||||
|
|
||||||
@@ -1126,6 +1170,18 @@ msgstr "Bezit je eigen data"
|
|||||||
msgid "Part-time"
|
msgid "Part-time"
|
||||||
msgstr "Deeltijd"
|
msgstr "Deeltijd"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:69
|
||||||
|
msgid "Password Changed"
|
||||||
|
msgstr "Wachtwoord gewijzigd"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:22
|
||||||
|
msgid "Password must be at least 8 characters"
|
||||||
|
msgstr "Wachtwoord moet minimaal 8 tekens bevatten"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:27
|
||||||
|
msgid "Passwords do not match"
|
||||||
|
msgstr "Wachtwoorden komen niet overeen"
|
||||||
|
|
||||||
#: src/views/home/components/Pricing.tsx:101
|
#: src/views/home/components/Pricing.tsx:101
|
||||||
msgid "Payment frequency"
|
msgid "Payment frequency"
|
||||||
msgstr "Betalingsfrequentie"
|
msgstr "Betalingsfrequentie"
|
||||||
@@ -1147,6 +1203,10 @@ msgstr "Persoonlijk project"
|
|||||||
msgid "Planning"
|
msgid "Planning"
|
||||||
msgstr "Planning"
|
msgstr "Planning"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:24
|
||||||
|
msgid "Please confirm your new password"
|
||||||
|
msgstr "Bevestig je nieuwe wachtwoord"
|
||||||
|
|
||||||
#: src/components/AuthForm.tsx:306
|
#: src/components/AuthForm.tsx:306
|
||||||
msgid "Please enter a valid email address"
|
msgid "Please enter a valid email address"
|
||||||
msgstr "Voer een geldig e-mailadres in"
|
msgstr "Voer een geldig e-mailadres in"
|
||||||
@@ -1173,7 +1233,7 @@ msgstr "Selecteer een bestand om te uploaden."
|
|||||||
#: src/views/settings/components/Avatar.tsx:98
|
#: src/views/settings/components/Avatar.tsx:98
|
||||||
#: src/views/members/components/InviteMemberForm.tsx:64
|
#: src/views/members/components/InviteMemberForm.tsx:64
|
||||||
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
#: src/views/members/components/DeleteMemberConfirmation.tsx:28
|
||||||
#: src/views/card/index.tsx:173
|
#: src/views/card/index.tsx:172
|
||||||
#: src/views/card/components/NewCommentForm.tsx:31
|
#: src/views/card/components/NewCommentForm.tsx:31
|
||||||
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
#: src/views/card/components/NewChecklistItemForm.tsx:89
|
||||||
#: src/views/card/components/NewChecklistForm.tsx:70
|
#: src/views/card/components/NewChecklistForm.tsx:70
|
||||||
@@ -1193,10 +1253,10 @@ msgstr "Selecteer een bestand om te uploaden."
|
|||||||
#: src/views/board/components/VisibilityButton.tsx:53
|
#: src/views/board/components/VisibilityButton.tsx:53
|
||||||
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
#: src/views/board/components/UpdateBoardSlugForm.tsx:72
|
||||||
#: src/views/board/components/NewListForm.tsx:78
|
#: src/views/board/components/NewListForm.tsx:78
|
||||||
#: src/views/board/components/NewCardForm.tsx:145
|
#: src/views/board/components/NewCardForm.tsx:174
|
||||||
#: src/components/NewWorkspaceForm.tsx:41
|
#: src/components/NewWorkspaceForm.tsx:41
|
||||||
#: src/components/FeedbackModal.tsx:41
|
#: src/components/FeedbackModal.tsx:41
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:23
|
#: src/components/DeleteLabelConfirmation.tsx:26
|
||||||
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."
|
||||||
|
|
||||||
@@ -1222,7 +1282,7 @@ msgstr "Privé"
|
|||||||
msgid "Profile image updated"
|
msgid "Profile image updated"
|
||||||
msgstr "Profielafbeelding bijgewerkt"
|
msgstr "Profielafbeelding bijgewerkt"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:144
|
#: src/views/settings/index.tsx:146
|
||||||
msgid "Profile picture"
|
msgid "Profile picture"
|
||||||
msgstr "Profielfoto"
|
msgstr "Profielfoto"
|
||||||
|
|
||||||
@@ -1362,13 +1422,13 @@ msgstr "Feedback versturen"
|
|||||||
msgid "Senior"
|
msgid "Senior"
|
||||||
msgstr "Senior"
|
msgstr "Senior"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:138
|
#: src/views/settings/index.tsx:140
|
||||||
#: src/components/SideNavigation.tsx:78
|
#: src/components/SideNavigation.tsx:78
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Instellingen"
|
msgstr "Instellingen"
|
||||||
|
|
||||||
#. placeholder {0}: workspace.name ?? "Workspace"
|
#. placeholder {0}: workspace.name ?? "Workspace"
|
||||||
#: src/views/settings/index.tsx:134
|
#: src/views/settings/index.tsx:136
|
||||||
msgid "Settings | {0}"
|
msgid "Settings | {0}"
|
||||||
msgstr "Instellingen | {0}"
|
msgstr "Instellingen | {0}"
|
||||||
|
|
||||||
@@ -1447,6 +1507,10 @@ msgstr "Servicevoorwaarden"
|
|||||||
msgid "Thank you for your feedback!"
|
msgid "Thank you for your feedback!"
|
||||||
msgstr "Bedankt voor je feedback!"
|
msgstr "Bedankt voor je feedback!"
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:84
|
||||||
|
msgid "The current password you entered is incorrect."
|
||||||
|
msgstr "Het ingevoerde huidige wachtwoord is onjuist."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:33
|
#: src/views/home/components/Faqs.tsx:33
|
||||||
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
msgid "The main difference between Kan and Trello is that Kan is open source, allowing anyone to view, modify, and contribute to our code. Our cloud offering also offers no restrictions on features for individual use, whereas Trello locks basic features such as the number of boards you can create behind a paywall."
|
||||||
msgstr "Het belangrijkste verschil tussen Kan en Trello is dat Kan open source is, waardoor iedereen onze code kan bekijken, wijzigen en eraan kan bijdragen. Onze cloudoplossing biedt ook geen beperkingen op functies voor individueel gebruik, terwijl Trello basisfuncties zoals het aantal borden dat je kunt maken achter een betaalmuur plaatst."
|
msgstr "Het belangrijkste verschil tussen Kan en Trello is dat Kan open source is, waardoor iedereen onze code kan bekijken, wijzigen en eraan kan bijdragen. Onze cloudoplossing biedt ook geen beperkingen op functies voor individueel gebruik, terwijl Trello basisfuncties zoals het aantal borden dat je kunt maken achter een betaalmuur plaatst."
|
||||||
@@ -1471,7 +1535,7 @@ msgstr "Ze zullen geen toegang meer hebben tot deze werkruimte."
|
|||||||
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
#: src/views/card/components/DeleteCommentConfirmation.tsx:68
|
||||||
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
#: src/views/card/components/DeleteChecklistConfirmation.tsx:58
|
||||||
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
#: src/views/card/components/DeleteCardConfirmation.tsx:78
|
||||||
#: src/components/DeleteLabelConfirmation.tsx:42
|
#: src/components/DeleteLabelConfirmation.tsx:44
|
||||||
msgid "This action can't be undone."
|
msgid "This action can't be undone."
|
||||||
msgstr "Deze actie kan niet ongedaan worden gemaakt."
|
msgstr "Deze actie kan niet ongedaan worden gemaakt."
|
||||||
|
|
||||||
@@ -1508,7 +1572,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:92
|
#: src/views/settings/index.tsx:94
|
||||||
msgid "Trello disconnected"
|
msgid "Trello disconnected"
|
||||||
msgstr "Trello ontkoppeld"
|
msgstr "Trello ontkoppeld"
|
||||||
|
|
||||||
@@ -1528,7 +1592,7 @@ msgstr "Kan checklistitem niet toevoegen"
|
|||||||
msgid "Unable to add comment"
|
msgid "Unable to add comment"
|
||||||
msgstr "Kan geen reactie toevoegen"
|
msgstr "Kan geen reactie toevoegen"
|
||||||
|
|
||||||
#: src/views/board/components/NewCardForm.tsx:142
|
#: src/views/board/components/NewCardForm.tsx:171
|
||||||
msgid "Unable to create card"
|
msgid "Unable to create card"
|
||||||
msgstr "Kan kaart niet aanmaken"
|
msgstr "Kan kaart niet aanmaken"
|
||||||
|
|
||||||
@@ -1576,7 +1640,7 @@ msgstr "Kan board URL niet bijwerken"
|
|||||||
msgid "Unable to update board visibility"
|
msgid "Unable to update board visibility"
|
||||||
msgstr "Kan bordzichtbaarheid niet bijwerken"
|
msgstr "Kan bordzichtbaarheid niet bijwerken"
|
||||||
|
|
||||||
#: src/views/card/index.tsx:172
|
#: src/views/card/index.tsx:171
|
||||||
#: src/views/board/index.tsx:189
|
#: src/views/board/index.tsx:189
|
||||||
msgid "Unable to update card"
|
msgid "Unable to update card"
|
||||||
msgstr "Kan kaart niet bijwerken"
|
msgstr "Kan kaart niet bijwerken"
|
||||||
@@ -1647,7 +1711,7 @@ msgstr "Onbeperkt aantal lijsten"
|
|||||||
msgid "Update"
|
msgid "Update"
|
||||||
msgstr "Bijwerken"
|
msgstr "Bijwerken"
|
||||||
|
|
||||||
#: src/components/LabelForm.tsx:236
|
#: src/components/LabelForm.tsx:238
|
||||||
msgid "Update label"
|
msgid "Update label"
|
||||||
msgstr "Label bijwerken"
|
msgstr "Label bijwerken"
|
||||||
|
|
||||||
@@ -1705,11 +1769,11 @@ msgstr "Gebruiker is al lid van deze werkruimte"
|
|||||||
msgid "Video"
|
msgid "Video"
|
||||||
msgstr "Video"
|
msgstr "Video"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:260
|
#: src/views/settings/index.tsx:262
|
||||||
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:199
|
#: src/views/settings/index.tsx:201
|
||||||
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."
|
||||||
|
|
||||||
@@ -1769,7 +1833,7 @@ msgstr "Werkruimte"
|
|||||||
msgid "Workspace deleted"
|
msgid "Workspace deleted"
|
||||||
msgstr "Werkruimte verwijderd"
|
msgstr "Werkruimte verwijderd"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:175
|
#: src/views/settings/index.tsx:177
|
||||||
msgid "Workspace description"
|
msgid "Workspace description"
|
||||||
msgstr "Werkruimte beschrijving"
|
msgstr "Werkruimte beschrijving"
|
||||||
|
|
||||||
@@ -1790,7 +1854,7 @@ msgstr "Werkruimtebeschrijving bijgewerkt"
|
|||||||
msgid "Workspace members"
|
msgid "Workspace members"
|
||||||
msgstr "Werkruimteleden"
|
msgstr "Werkruimteleden"
|
||||||
|
|
||||||
#: src/views/settings/index.tsx:156
|
#: src/views/settings/index.tsx:158
|
||||||
#: src/components/NewWorkspaceForm.tsx:80
|
#: src/components/NewWorkspaceForm.tsx:80
|
||||||
msgid "Workspace name"
|
msgid "Workspace name"
|
||||||
msgstr "Naam werkruimte"
|
msgstr "Naam werkruimte"
|
||||||
@@ -1811,7 +1875,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:165
|
#: src/views/settings/index.tsx:167
|
||||||
msgid "Workspace URL"
|
msgid "Workspace URL"
|
||||||
msgstr "Werkruimte URL"
|
msgstr "Werkruimte URL"
|
||||||
|
|
||||||
@@ -1827,6 +1891,10 @@ 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
|
||||||
|
msgid "You are about to change your password."
|
||||||
|
msgstr "Je staat op het punt je wachtwoord te wijzigen."
|
||||||
|
|
||||||
#: src/views/home/components/Faqs.tsx:67
|
#: src/views/home/components/Faqs.tsx:67
|
||||||
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
msgid "You can get a custom workspace URL, like <0>kan.bn/kan</0>, by going into your <1>workspace settings</1> and purchasing a pro workspace subscription. All subscriptions help fund the development of the project!"
|
||||||
msgstr "Je kunt een aangepaste werkruimte-URL krijgen, zoals <0>kan.bn/kan</0>, door naar je <1>werkruimte-instellingen</1> te gaan en een pro-werkruimte-abonnement aan te schaffen. Alle abonnementen helpen de ontwikkeling van het project te financieren!"
|
msgstr "Je kunt een aangepaste werkruimte-URL krijgen, zoals <0>kan.bn/kan</0>, door naar je <1>werkruimte-instellingen</1> te gaan en een pro-werkruimte-abonnement aan te schaffen. Alle abonnementen helpen de ontwikkeling van het project te financieren!"
|
||||||
@@ -1859,15 +1927,19 @@ msgstr "Je borden zijn geïmporteerd."
|
|||||||
msgid "Your display name has been updated."
|
msgid "Your display name has been updated."
|
||||||
msgstr "Je weergavenaam is bijgewerkt."
|
msgstr "Je weergavenaam is bijgewerkt."
|
||||||
|
|
||||||
|
#: src/views/settings/components/ChangePasswordConfirmation.tsx:70
|
||||||
|
msgid "Your password has been changed."
|
||||||
|
msgstr "Je wachtwoord is gewijzigd."
|
||||||
|
|
||||||
#: src/views/settings/components/Avatar.tsx:27
|
#: src/views/settings/components/Avatar.tsx:27
|
||||||
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:93
|
#: src/views/settings/index.tsx:95
|
||||||
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:242
|
#: src/views/settings/index.tsx:244
|
||||||
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
@@ -14,7 +14,7 @@ import { useEffect } from "react";
|
|||||||
import { LinguiProviderWrapper } from "~/providers/lingui";
|
import { LinguiProviderWrapper } from "~/providers/lingui";
|
||||||
import { ModalProvider } from "~/providers/modal";
|
import { ModalProvider } from "~/providers/modal";
|
||||||
import { PopupProvider } from "~/providers/popup";
|
import { PopupProvider } from "~/providers/popup";
|
||||||
import { ThemeProvider } from "~/providers/theme";
|
import { ThemeProvider } from "next-themes";
|
||||||
import { api } from "~/utils/api";
|
import { api } from "~/utils/api";
|
||||||
|
|
||||||
const jakarta = Plus_Jakarta_Sans({
|
const jakarta = Plus_Jakarta_Sans({
|
||||||
@@ -81,9 +81,9 @@ const MyApp: AppType = ({ Component, pageProps }: AppPropsWithLayout) => {
|
|||||||
<script src="/__ENV.js" />
|
<script src="/__ENV.js" />
|
||||||
<main className="font-sans">
|
<main className="font-sans">
|
||||||
<LinguiProviderWrapper>
|
<LinguiProviderWrapper>
|
||||||
<ThemeProvider>
|
<ThemeProvider attribute="class" defaultTheme="system" enableSystem>
|
||||||
<ModalProvider>
|
<ModalProvider>
|
||||||
<PopupProvider>
|
<PopupProvider>
|
||||||
{posthogKey ? (
|
{posthogKey ? (
|
||||||
<PostHogProvider client={posthog}>
|
<PostHogProvider client={posthog}>
|
||||||
{getLayout(<Component {...pageProps} />)}
|
{getLayout(<Component {...pageProps} />)}
|
||||||
@@ -91,8 +91,8 @@ const MyApp: AppType = ({ Component, pageProps }: AppPropsWithLayout) => {
|
|||||||
) : (
|
) : (
|
||||||
getLayout(<Component {...pageProps} />)
|
getLayout(<Component {...pageProps} />)
|
||||||
)}
|
)}
|
||||||
</PopupProvider>
|
</PopupProvider>
|
||||||
</ModalProvider>
|
</ModalProvider>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
</LinguiProviderWrapper>
|
</LinguiProviderWrapper>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ const Card = ({
|
|||||||
return (
|
return (
|
||||||
<div className="flex flex-col rounded-md border border-light-200 bg-light-50 px-3 py-2 text-sm text-neutral-900 dark:border-dark-200 dark:bg-dark-200 dark:text-dark-1000 dark:hover:bg-dark-300">
|
<div className="flex flex-col rounded-md border border-light-200 bg-light-50 px-3 py-2 text-sm text-neutral-900 dark:border-dark-200 dark:bg-dark-200 dark:text-dark-1000 dark:hover:bg-dark-300">
|
||||||
<span>{title}</span>
|
<span>{title}</span>
|
||||||
{labels.length || members.length ? (
|
{labels.length || members.length || checklists.length > 0 ? (
|
||||||
<div className="mt-2 flex flex-col justify-end">
|
<div className="mt-2 flex flex-col justify-end">
|
||||||
<div className="space-x-0.5">
|
<div className="space-x-0.5">
|
||||||
{labels.map((label) => (
|
{labels.map((label) => (
|
||||||
|
|||||||
@@ -375,7 +375,7 @@ export default function BoardPage() {
|
|||||||
/>
|
/>
|
||||||
<Filters
|
<Filters
|
||||||
labels={boardData?.labels ?? []}
|
labels={boardData?.labels ?? []}
|
||||||
members={boardData?.workspace.members ?? []}
|
members={boardData?.workspace.members?.filter(member => member.user !== null) ?? []}
|
||||||
position="left"
|
position="left"
|
||||||
isLoading={!boardData}
|
isLoading={!boardData}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import { ImportBoardsForm } from "./components/ImportBoardsForm";
|
|||||||
import { NewBoardForm } from "./components/NewBoardForm";
|
import { NewBoardForm } from "./components/NewBoardForm";
|
||||||
|
|
||||||
export default function BoardsPage() {
|
export default function BoardsPage() {
|
||||||
const { openModal, modalContentType } = useModal();
|
const { openModal, modalContentType, isOpen } = useModal();
|
||||||
const { workspace, hasLoaded } = useWorkspace();
|
const { workspace, hasLoaded } = useWorkspace();
|
||||||
|
|
||||||
if (hasLoaded && !workspace.publicId) openModal("NEW_WORKSPACE");
|
if (hasLoaded && !workspace.publicId) openModal("NEW_WORKSPACE");
|
||||||
@@ -50,12 +50,35 @@ export default function BoardsPage() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Modal modalSize={modalContentType === "NEW_FEEDBACK" ? "md" : "sm"}>
|
<>
|
||||||
{modalContentType === "NEW_FEEDBACK" && <FeedbackModal />}
|
<Modal
|
||||||
{modalContentType === "NEW_BOARD" && <NewBoardForm />}
|
modalSize="md"
|
||||||
{modalContentType === "IMPORT_BOARDS" && <ImportBoardsForm />}
|
isVisible={isOpen && modalContentType === "NEW_FEEDBACK"}
|
||||||
{modalContentType === "NEW_WORKSPACE" && <NewWorkspaceForm />}
|
>
|
||||||
</Modal>
|
<FeedbackModal />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "NEW_BOARD"}
|
||||||
|
>
|
||||||
|
<NewBoardForm />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "IMPORT_BOARDS"}
|
||||||
|
>
|
||||||
|
<ImportBoardsForm />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "NEW_WORKSPACE"}
|
||||||
|
>
|
||||||
|
<NewWorkspaceForm />
|
||||||
|
</Modal>
|
||||||
|
</>
|
||||||
|
|
||||||
<div className="flex h-full flex-row">
|
<div className="flex h-full flex-row">
|
||||||
<BoardsList />
|
<BoardsList />
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ import LabelSelector from "./components/LabelSelector";
|
|||||||
import ListSelector from "./components/ListSelector";
|
import ListSelector from "./components/ListSelector";
|
||||||
import MemberSelector from "./components/MemberSelector";
|
import MemberSelector from "./components/MemberSelector";
|
||||||
import { NewChecklistForm } from "./components/NewChecklistForm";
|
import { NewChecklistForm } from "./components/NewChecklistForm";
|
||||||
import NewChecklistItemForm from "./components/NewChecklistItemForm";
|
|
||||||
import NewCommentForm from "./components/NewCommentForm";
|
import NewCommentForm from "./components/NewCommentForm";
|
||||||
|
|
||||||
interface FormValues {
|
interface FormValues {
|
||||||
@@ -143,6 +142,7 @@ export default function CardPage() {
|
|||||||
openModal,
|
openModal,
|
||||||
getModalState,
|
getModalState,
|
||||||
clearModalState,
|
clearModalState,
|
||||||
|
isOpen,
|
||||||
} = useModal();
|
} = useModal();
|
||||||
const { showPopup } = usePopup();
|
const { showPopup } = usePopup();
|
||||||
const { workspace } = useWorkspace();
|
const { workspace } = useWorkspace();
|
||||||
@@ -213,138 +213,179 @@ export default function CardPage() {
|
|||||||
<PageHead
|
<PageHead
|
||||||
title={t`${card?.title ?? "Card"} | ${board?.name ?? "Board"}`}
|
title={t`${card?.title ?? "Card"} | ${board?.name ?? "Board"}`}
|
||||||
/>
|
/>
|
||||||
<div className="flex h-full flex-1 flex-row">
|
<div className="flex h-full flex-1 flex-row overflow-hidden">
|
||||||
<div className="m-auto flex h-full w-full max-w-[800px] flex-col overflow-hidden">
|
<div className="scrollbar-thumb-rounded-[4px] scrollbar-track-rounded-[4px] w-full flex-1 overflow-y-auto scrollbar scrollbar-track-light-200 scrollbar-thumb-light-400 hover:scrollbar-thumb-light-400 dark:scrollbar-track-dark-100 dark:scrollbar-thumb-dark-300 dark:hover:scrollbar-thumb-dark-300">
|
||||||
<div className="h-full max-h-[calc(100dvh-3rem)] overflow-y-auto p-6 md:max-h-[calc(100dvh-4rem)] md:p-8">
|
<div className="p-auto mx-auto flex h-full w-full max-w-[800px] flex-col">
|
||||||
<div className="mb-8 flex w-full items-center justify-between md:mt-6">
|
<div className="p-6 md:p-8">
|
||||||
{!card && isLoading && (
|
<div className="mb-8 flex w-full items-center justify-between md:mt-6">
|
||||||
<div className="flex space-x-2">
|
{!card && isLoading && (
|
||||||
<div className="h-[2.3rem] w-[150px] animate-pulse rounded-[5px] bg-light-300 dark:bg-dark-300" />
|
<div className="flex space-x-2">
|
||||||
<div className="h-[2.3rem] w-[300px] animate-pulse rounded-[5px] bg-light-300 dark:bg-dark-300" />
|
<div className="h-[2.3rem] w-[150px] animate-pulse rounded-[5px] bg-light-300 dark:bg-dark-300" />
|
||||||
</div>
|
<div className="h-[2.3rem] w-[300px] animate-pulse rounded-[5px] bg-light-300 dark:bg-dark-300" />
|
||||||
)}
|
</div>
|
||||||
|
)}
|
||||||
|
{card && (
|
||||||
|
<>
|
||||||
|
<Link
|
||||||
|
className="whitespace-nowrap font-bold leading-[2.3rem] tracking-tight text-light-900 dark:text-dark-900 sm:text-[1.2rem]"
|
||||||
|
href={`/boards/${board?.publicId}`}
|
||||||
|
>
|
||||||
|
{board?.name}
|
||||||
|
</Link>
|
||||||
|
<IoChevronForwardSharp
|
||||||
|
size={18}
|
||||||
|
className="mx-2 text-light-900 dark:text-dark-900"
|
||||||
|
/>
|
||||||
|
<form
|
||||||
|
onSubmit={handleSubmit(onSubmit)}
|
||||||
|
className="w-full space-y-6"
|
||||||
|
>
|
||||||
|
<div>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="title"
|
||||||
|
{...register("title")}
|
||||||
|
onBlur={handleSubmit(onSubmit)}
|
||||||
|
className="block w-full border-0 bg-transparent p-0 py-0 font-bold tracking-tight text-neutral-900 focus:ring-0 dark:text-dark-1000 sm:text-[1.2rem]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div className="flex">
|
||||||
|
<Dropdown />
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
{!card && !isLoading && (
|
||||||
|
<p className="block p-0 py-0 font-bold leading-[2.3rem] tracking-tight text-neutral-900 dark:text-dark-1000 sm:text-[1.2rem]">
|
||||||
|
{t`Card not found`}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
{card && (
|
{card && (
|
||||||
<>
|
<>
|
||||||
<Link
|
<div className="mb-10 flex w-full max-w-2xl flex-col justify-between">
|
||||||
className="whitespace-nowrap font-bold leading-[2.3rem] tracking-tight text-light-900 dark:text-dark-900 sm:text-[1.2rem]"
|
<form
|
||||||
href={`/boards/${board?.publicId}`}
|
onSubmit={handleSubmit(onSubmit)}
|
||||||
>
|
className="w-full space-y-6"
|
||||||
{board?.name}
|
>
|
||||||
</Link>
|
<div className="mt-2">
|
||||||
<IoChevronForwardSharp
|
<Editor
|
||||||
size={18}
|
content={card.description}
|
||||||
className="mx-2 text-light-900 dark:text-dark-900"
|
onChange={(e) => setValue("description", e)}
|
||||||
|
onBlur={() => handleSubmit(onSubmit)()}
|
||||||
|
workspaceMembers={board?.workspace.members ?? []}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<Checklists
|
||||||
|
checklists={card.checklists}
|
||||||
|
cardPublicId={cardId}
|
||||||
|
activeChecklistForm={activeChecklistForm}
|
||||||
|
setActiveChecklistForm={setActiveChecklistForm}
|
||||||
/>
|
/>
|
||||||
<form
|
<div className="border-t-[1px] border-light-300 pt-12 dark:border-dark-300">
|
||||||
onSubmit={handleSubmit(onSubmit)}
|
<h2 className="text-md pb-4 font-medium text-light-1000 dark:text-dark-1000">
|
||||||
className="w-full space-y-6"
|
{t`Activity`}
|
||||||
>
|
</h2>
|
||||||
<div>
|
<div>
|
||||||
<input
|
<ActivityList
|
||||||
type="text"
|
cardPublicId={cardId}
|
||||||
id="title"
|
activities={activities ?? []}
|
||||||
{...register("title")}
|
isLoading={!card}
|
||||||
onBlur={handleSubmit(onSubmit)}
|
isAdmin={workspace.role === "admin"}
|
||||||
className="block w-full border-0 bg-transparent p-0 py-0 font-bold tracking-tight text-neutral-900 focus:ring-0 dark:text-dark-1000 sm:text-[1.2rem]"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
<div className="mt-6">
|
||||||
<div className="flex">
|
<NewCommentForm cardPublicId={cardId} />
|
||||||
<Dropdown />
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
{!card && !isLoading && (
|
|
||||||
<p className="block p-0 py-0 font-bold leading-[2.3rem] tracking-tight text-neutral-900 dark:text-dark-1000 sm:text-[1.2rem]">
|
|
||||||
{t`Card not found`}
|
|
||||||
</p>
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
{card && (
|
|
||||||
<>
|
|
||||||
<div className="mb-10 flex w-full max-w-2xl flex-col justify-between">
|
|
||||||
<form
|
|
||||||
onSubmit={handleSubmit(onSubmit)}
|
|
||||||
className="w-full space-y-6"
|
|
||||||
>
|
|
||||||
<div className="mt-2">
|
|
||||||
<Editor
|
|
||||||
content={card.description}
|
|
||||||
onChange={(e) => setValue("description", e)}
|
|
||||||
onBlur={() => handleSubmit(onSubmit)()}
|
|
||||||
workspaceMembers={board?.workspace?.members ?? []}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<Checklists
|
|
||||||
checklists={card.checklists}
|
|
||||||
cardPublicId={cardId}
|
|
||||||
activeChecklistForm={activeChecklistForm}
|
|
||||||
setActiveChecklistForm={setActiveChecklistForm}
|
|
||||||
/>
|
|
||||||
<div className="border-t-[1px] border-light-300 pt-12 dark:border-dark-300">
|
|
||||||
<h2 className="text-md pb-4 font-medium text-light-1000 dark:text-dark-1000">
|
|
||||||
{t`Activity`}
|
|
||||||
</h2>
|
|
||||||
<div>
|
|
||||||
<ActivityList
|
|
||||||
cardPublicId={cardId}
|
|
||||||
activities={activities ?? []}
|
|
||||||
isLoading={!card}
|
|
||||||
isAdmin={workspace.role === "admin"}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="mt-6">
|
|
||||||
<NewCommentForm cardPublicId={cardId} />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Modal modalSize={modalContentType === "NEW_FEEDBACK" ? "md" : "sm"}>
|
<>
|
||||||
{modalContentType === "NEW_FEEDBACK" && <FeedbackModal />}
|
<Modal
|
||||||
{modalContentType === "NEW_LABEL" && (
|
modalSize="md"
|
||||||
|
isVisible={isOpen && modalContentType === "NEW_FEEDBACK"}
|
||||||
|
>
|
||||||
|
<FeedbackModal />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "NEW_LABEL"}
|
||||||
|
>
|
||||||
<LabelForm boardPublicId={boardId ?? ""} refetch={refetchCard} />
|
<LabelForm boardPublicId={boardId ?? ""} refetch={refetchCard} />
|
||||||
)}
|
</Modal>
|
||||||
{modalContentType === "EDIT_LABEL" && (
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "EDIT_LABEL"}
|
||||||
|
>
|
||||||
<LabelForm
|
<LabelForm
|
||||||
boardPublicId={boardId ?? ""}
|
boardPublicId={boardId ?? ""}
|
||||||
refetch={refetchCard}
|
refetch={refetchCard}
|
||||||
isEdit
|
isEdit
|
||||||
/>
|
/>
|
||||||
)}
|
</Modal>
|
||||||
{modalContentType === "DELETE_LABEL" && (
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "DELETE_LABEL"}
|
||||||
|
>
|
||||||
<DeleteLabelConfirmation
|
<DeleteLabelConfirmation
|
||||||
refetch={refetchCard}
|
refetch={refetchCard}
|
||||||
labelPublicId={entityId}
|
labelPublicId={entityId}
|
||||||
/>
|
/>
|
||||||
)}
|
</Modal>
|
||||||
{modalContentType === "DELETE_CARD" && (
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "DELETE_CARD"}
|
||||||
|
>
|
||||||
<DeleteCardConfirmation
|
<DeleteCardConfirmation
|
||||||
boardPublicId={boardId ?? ""}
|
boardPublicId={boardId ?? ""}
|
||||||
cardPublicId={cardId}
|
cardPublicId={cardId}
|
||||||
/>
|
/>
|
||||||
)}
|
</Modal>
|
||||||
{modalContentType === "DELETE_COMMENT" && (
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "DELETE_COMMENT"}
|
||||||
|
>
|
||||||
<DeleteCommentConfirmation
|
<DeleteCommentConfirmation
|
||||||
cardPublicId={cardId}
|
cardPublicId={cardId}
|
||||||
commentPublicId={entityId}
|
commentPublicId={entityId}
|
||||||
/>
|
/>
|
||||||
)}
|
</Modal>
|
||||||
{modalContentType === "NEW_WORKSPACE" && <NewWorkspaceForm />}
|
|
||||||
{modalContentType === "ADD_CHECKLIST" && (
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "NEW_WORKSPACE"}
|
||||||
|
>
|
||||||
|
<NewWorkspaceForm />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "ADD_CHECKLIST"}
|
||||||
|
>
|
||||||
<NewChecklistForm cardPublicId={cardId} />
|
<NewChecklistForm cardPublicId={cardId} />
|
||||||
)}
|
</Modal>
|
||||||
{modalContentType === "DELETE_CHECKLIST" && (
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "DELETE_CHECKLIST"}
|
||||||
|
>
|
||||||
<DeleteChecklistConfirmation
|
<DeleteChecklistConfirmation
|
||||||
cardPublicId={cardId}
|
cardPublicId={cardId}
|
||||||
checklistPublicId={entityId}
|
checklistPublicId={entityId}
|
||||||
/>
|
/>
|
||||||
)}
|
</Modal>
|
||||||
</Modal>
|
</>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import PatternedBackground from "~/components/PatternedBackground";
|
import PatternedBackground from "~/components/PatternedBackground";
|
||||||
import { useTheme } from "~/providers/theme";
|
import { useTheme } from "next-themes";
|
||||||
import Footer from "./Footer";
|
import Footer from "./Footer";
|
||||||
import Header from "./Header";
|
import Header from "./Header";
|
||||||
import { authClient } from "@kan/auth/client";
|
import { authClient } from "@kan/auth/client";
|
||||||
|
|
||||||
export default function Layout({ children }: { children: React.ReactNode }) {
|
export default function Layout({ children }: { children: React.ReactNode }) {
|
||||||
const theme = useTheme();
|
const { theme } = useTheme();
|
||||||
|
|
||||||
const { data: session } = authClient.useSession();
|
const { data: session } = authClient.useSession();
|
||||||
|
|
||||||
const isLoggedIn = !!session?.user;
|
const isLoggedIn = !!session?.user;
|
||||||
|
|
||||||
const isDarkMode = theme.activeTheme === "dark";
|
const isDarkMode = theme === "dark";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { IoLogoGithub, IoLogoHackernews } from "react-icons/io";
|
|||||||
|
|
||||||
import Button from "~/components/Button";
|
import Button from "~/components/Button";
|
||||||
import { PageHead } from "~/components/PageHead";
|
import { PageHead } from "~/components/PageHead";
|
||||||
import { useTheme } from "~/providers/theme";
|
import { useTheme } from "next-themes";
|
||||||
import Cta from "./components/Cta";
|
import Cta from "./components/Cta";
|
||||||
import FAQs from "./components/Faqs";
|
import FAQs from "./components/Faqs";
|
||||||
import Features from "./components/Features";
|
import Features from "./components/Features";
|
||||||
@@ -14,9 +14,10 @@ import Layout from "./components/Layout";
|
|||||||
import Pricing from "./components/Pricing";
|
import Pricing from "./components/Pricing";
|
||||||
|
|
||||||
export default function HomeView() {
|
export default function HomeView() {
|
||||||
const theme = useTheme();
|
const { resolvedTheme } = useTheme();
|
||||||
|
|
||||||
|
const isDarkMode = resolvedTheme === "dark";
|
||||||
|
|
||||||
const isDarkMode = theme.activeTheme === "dark";
|
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout>
|
||||||
<PageHead title="Kan.bn | The open source alternative to Trello" />
|
<PageHead title="Kan.bn | The open source alternative to Trello" />
|
||||||
@@ -88,19 +89,27 @@ export default function HomeView() {
|
|||||||
</div>
|
</div>
|
||||||
<div className="px-4">
|
<div className="px-4">
|
||||||
<div className="mb-24 rounded-[16px] border border-light-300 bg-light-50 p-1 shadow-md dark:border-dark-300 dark:bg-dark-100 lg:rounded-[24px] lg:p-2">
|
<div className="mb-24 rounded-[16px] border border-light-300 bg-light-50 p-1 shadow-md dark:border-dark-300 dark:bg-dark-100 lg:rounded-[24px] lg:p-2">
|
||||||
<div className="overflow-hidden rounded-[12px] border border-light-300 shadow-sm dark:border-dark-300 lg:rounded-[16px]">
|
<div className="relative overflow-hidden rounded-[12px] border border-light-300 shadow-sm dark:border-dark-300 lg:rounded-[16px]">
|
||||||
<Image
|
<Image
|
||||||
src={`/hero-${isDarkMode ? "dark" : "light"}.png`}
|
src={`/hero-light.png`}
|
||||||
alt="kanban"
|
alt="kanban"
|
||||||
width={1100}
|
width={1100}
|
||||||
height={1000}
|
height={1000}
|
||||||
|
className="block dark:hidden"
|
||||||
|
/>
|
||||||
|
<Image
|
||||||
|
src={`/hero-dark.png`}
|
||||||
|
alt="kanban"
|
||||||
|
width={1100}
|
||||||
|
height={1000}
|
||||||
|
className="hidden dark:block"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="relative pt-10">
|
<div className="relative pt-10">
|
||||||
<div id="features" className="absolute -top-20" />
|
<div id="features" className="absolute -top-20" />
|
||||||
<Features theme={theme.activeTheme} />
|
<Features theme={resolvedTheme === "dark" ? "dark" : "light"} />
|
||||||
</div>
|
</div>
|
||||||
<div className="relative pt-10">
|
<div className="relative pt-10">
|
||||||
<div id="pricing" className="absolute -top-20" />
|
<div id="pricing" className="absolute -top-20" />
|
||||||
@@ -111,7 +120,7 @@ export default function HomeView() {
|
|||||||
<FAQs />
|
<FAQs />
|
||||||
</div>
|
</div>
|
||||||
<div className="relative">
|
<div className="relative">
|
||||||
<Cta theme={theme.activeTheme} />
|
<Cta theme={resolvedTheme ?? "light"} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import { DeleteMemberConfirmation } from "./components/DeleteMemberConfirmation"
|
|||||||
import { InviteMemberForm } from "./components/InviteMemberForm";
|
import { InviteMemberForm } from "./components/InviteMemberForm";
|
||||||
|
|
||||||
export default function MembersPage() {
|
export default function MembersPage() {
|
||||||
const { modalContentType, openModal } = useModal();
|
const { modalContentType, openModal, isOpen } = useModal();
|
||||||
const { workspace } = useWorkspace();
|
const { workspace } = useWorkspace();
|
||||||
|
|
||||||
const { data, isLoading } = api.workspace.byId.useQuery(
|
const { data, isLoading } = api.workspace.byId.useQuery(
|
||||||
@@ -222,12 +222,35 @@ export default function MembersPage() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Modal modalSize={modalContentType === "NEW_FEEDBACK" ? "md" : "sm"}>
|
<>
|
||||||
{modalContentType === "NEW_FEEDBACK" && <FeedbackModal />}
|
<Modal
|
||||||
{modalContentType === "NEW_WORKSPACE" && <NewWorkspaceForm />}
|
modalSize="md"
|
||||||
{modalContentType === "INVITE_MEMBER" && <InviteMemberForm />}
|
isVisible={isOpen && modalContentType === "NEW_FEEDBACK"}
|
||||||
{modalContentType === "REMOVE_MEMBER" && <DeleteMemberConfirmation />}
|
>
|
||||||
</Modal>
|
<FeedbackModal />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "NEW_WORKSPACE"}
|
||||||
|
>
|
||||||
|
<NewWorkspaceForm />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "INVITE_MEMBER"}
|
||||||
|
>
|
||||||
|
<InviteMemberForm />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "REMOVE_MEMBER"}
|
||||||
|
>
|
||||||
|
<DeleteMemberConfirmation />
|
||||||
|
</Modal>
|
||||||
|
</>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -69,17 +69,20 @@ export function CardModal({
|
|||||||
onClick={async (e) => {
|
onClick={async (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
closeModal();
|
closeModal();
|
||||||
try {
|
|
||||||
await router.replace(
|
setTimeout(async () => {
|
||||||
`/${workspaceSlug}/${boardSlug}`,
|
try {
|
||||||
undefined,
|
await router.replace(
|
||||||
{
|
`/${workspaceSlug}/${boardSlug}`,
|
||||||
shallow: true,
|
undefined,
|
||||||
},
|
{
|
||||||
);
|
shallow: true,
|
||||||
} catch (error) {
|
},
|
||||||
console.error(error);
|
);
|
||||||
}
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
}, 400);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<HiXMark
|
<HiXMark
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import Link from "next/link";
|
|||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { t } from "@lingui/core/macro";
|
import { t } from "@lingui/core/macro";
|
||||||
import { keepPreviousData } from "@tanstack/react-query";
|
import { keepPreviousData } from "@tanstack/react-query";
|
||||||
|
import { env } from "next-runtime-env";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { HiLink, HiOutlineLockClosed } from "react-icons/hi2";
|
import { HiLink, HiOutlineLockClosed } from "react-icons/hi2";
|
||||||
|
|
||||||
@@ -19,6 +20,10 @@ import Card from "~/views/board/components/Card";
|
|||||||
import Filters from "~/views/board/components/Filters";
|
import Filters from "~/views/board/components/Filters";
|
||||||
import { CardModal } from "./CardModal";
|
import { CardModal } from "./CardModal";
|
||||||
|
|
||||||
|
const IS_CLOUD = env("NEXT_PUBLIC_KAN_ENV") === "cloud";
|
||||||
|
const HIDE_POWERED_BY =
|
||||||
|
env("NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY") === "true";
|
||||||
|
|
||||||
export default function PublicBoardView() {
|
export default function PublicBoardView() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { showPopup } = usePopup();
|
const { showPopup } = usePopup();
|
||||||
@@ -40,7 +45,7 @@ export default function PublicBoardView() {
|
|||||||
members: formatToArray(router.query.members),
|
members: formatToArray(router.query.members),
|
||||||
labels: formatToArray(router.query.labels),
|
labels: formatToArray(router.query.labels),
|
||||||
},
|
},
|
||||||
{ enabled: !!boardSlug, placeholderData: keepPreviousData },
|
{ enabled: router.isReady && !!boardSlug, placeholderData: keepPreviousData },
|
||||||
);
|
);
|
||||||
|
|
||||||
const CopyBoardLink = () => {
|
const CopyBoardLink = () => {
|
||||||
@@ -102,7 +107,7 @@ export default function PublicBoardView() {
|
|||||||
<div className="relative h-full overflow-hidden rounded-md border pb-8 dark:border-dark-200">
|
<div className="relative h-full overflow-hidden rounded-md border pb-8 dark:border-dark-200">
|
||||||
<PatternedBackground />
|
<PatternedBackground />
|
||||||
<div className="z-10 flex w-full justify-between p-8">
|
<div className="z-10 flex w-full justify-between p-8">
|
||||||
{isLoading ? (
|
{isLoading || !router.isReady ? (
|
||||||
<div className="flex space-x-2">
|
<div className="flex space-x-2">
|
||||||
<div className="h-[2.3rem] w-[150px] animate-pulse rounded-[5px] bg-light-200 dark:bg-dark-100" />
|
<div className="h-[2.3rem] w-[150px] animate-pulse rounded-[5px] bg-light-200 dark:bg-dark-100" />
|
||||||
</div>
|
</div>
|
||||||
@@ -129,13 +134,13 @@ export default function PublicBoardView() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="scrollbar-w-none scrollbar-track-rounded-[4px] scrollbar-thumb-rounded-[4px] scrollbar-h-[8px] relative h-full flex-1 overflow-y-hidden overflow-x-scroll overscroll-contain scrollbar scrollbar-track-light-200 scrollbar-thumb-light-400 dark:scrollbar-track-dark-100 dark:scrollbar-thumb-dark-300">
|
<div className="scrollbar-w-none scrollbar-track-rounded-[4px] scrollbar-thumb-rounded-[4px] scrollbar-h-[8px] relative h-full flex-1 overflow-y-hidden overflow-x-scroll overscroll-contain scrollbar scrollbar-track-light-200 scrollbar-thumb-light-400 dark:scrollbar-track-dark-100 dark:scrollbar-thumb-dark-300">
|
||||||
{isLoading ? (
|
{isLoading || !router.isReady ? (
|
||||||
<div className="ml-[2rem] flex">
|
<div className="ml-[2rem] flex">
|
||||||
<div className="0 mr-5 h-[500px] w-[18rem] animate-pulse rounded-md bg-light-200 dark:bg-dark-100" />
|
<div className="0 mr-5 h-[500px] w-[18rem] animate-pulse rounded-md bg-light-200 dark:bg-dark-100" />
|
||||||
<div className="0 mr-5 h-[275px] w-[18rem] animate-pulse rounded-md bg-light-200 dark:bg-dark-100" />
|
<div className="0 mr-5 h-[275px] w-[18rem] animate-pulse rounded-md bg-light-200 dark:bg-dark-100" />
|
||||||
<div className="0 mr-5 h-[375px] w-[18rem] animate-pulse rounded-md bg-light-200 dark:bg-dark-100" />
|
<div className="0 mr-5 h-[375px] w-[18rem] animate-pulse rounded-md bg-light-200 dark:bg-dark-100" />
|
||||||
</div>
|
</div>
|
||||||
) : !data ? (
|
) : !data && !isLoading && router.isReady && !!boardSlug ? (
|
||||||
<div className="z-10 flex h-full w-full flex-col items-center justify-center space-y-8 pb-[150px]">
|
<div className="z-10 flex h-full w-full flex-col items-center justify-center space-y-8 pb-[150px]">
|
||||||
<div className="flex flex-col items-center">
|
<div className="flex flex-col items-center">
|
||||||
<HiOutlineLockClosed className="h-10 w-10 text-light-800 dark:text-dark-800" />
|
<HiOutlineLockClosed className="h-10 w-10 text-light-800 dark:text-dark-800" />
|
||||||
@@ -194,12 +199,26 @@ export default function PublicBoardView() {
|
|||||||
<CopyBoardLink />
|
<CopyBoardLink />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Link
|
{IS_CLOUD && (
|
||||||
className="text-lg font-bold tracking-tight text-neutral-900 dark:text-dark-1000"
|
<Link
|
||||||
href="/"
|
className="text-lg font-bold tracking-tight text-neutral-900 dark:text-dark-1000"
|
||||||
>
|
href="/"
|
||||||
kan.bn
|
>
|
||||||
</Link>
|
kan.bn
|
||||||
|
</Link>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{!IS_CLOUD && !HIDE_POWERED_BY && (
|
||||||
|
<a
|
||||||
|
href="https://kan.bn"
|
||||||
|
target="_blank"
|
||||||
|
rel="noreferrer noopener"
|
||||||
|
className="absolute right-[1rem] inline-flex items-center gap-[0.175rem] rounded-full border border-light-300 bg-light-50 px-3 py-1 text-[11px] font-medium text-light-950 shadow-sm transition-colors hover:bg-light-100 dark:border-dark-300 dark:bg-dark-50 dark:text-dark-900 dark:hover:bg-dark-100"
|
||||||
|
>
|
||||||
|
<span>{`Powered by`}</span>
|
||||||
|
<span className="font-semibold">kan.bn</span>
|
||||||
|
</a>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<Popup />
|
<Popup />
|
||||||
|
|||||||
@@ -0,0 +1,184 @@
|
|||||||
|
import { useRouter } from "next/navigation";
|
||||||
|
import { zodResolver } from "@hookform/resolvers/zod";
|
||||||
|
import { t } from "@lingui/core/macro";
|
||||||
|
import { useMutation } from "@tanstack/react-query";
|
||||||
|
import { env } from "next-runtime-env";
|
||||||
|
import { useForm } from "react-hook-form";
|
||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
|
import { authClient } from "@kan/auth/client";
|
||||||
|
|
||||||
|
import Button from "~/components/Button";
|
||||||
|
import Input from "~/components/Input";
|
||||||
|
import { useModal } from "~/providers/modal";
|
||||||
|
import { usePopup } from "~/providers/popup";
|
||||||
|
import { api } from "~/utils/api";
|
||||||
|
|
||||||
|
const FormSchema = z
|
||||||
|
.object({
|
||||||
|
currentPassword: z.string().min(1, t`Current password is required`),
|
||||||
|
newPassword: z
|
||||||
|
.string()
|
||||||
|
.min(8, t`Password must be at least 8 characters`)
|
||||||
|
.min(1, t`New password is required`),
|
||||||
|
confirmPassword: z.string().min(1, t`Please confirm your new password`),
|
||||||
|
})
|
||||||
|
.refine((data) => data.newPassword === data.confirmPassword, {
|
||||||
|
message: t`Passwords do not match`,
|
||||||
|
path: ["confirmPassword"],
|
||||||
|
})
|
||||||
|
.refine((data) => data.currentPassword !== data.newPassword, {
|
||||||
|
message: t`New password must be different from current password`,
|
||||||
|
path: ["newPassword"],
|
||||||
|
});
|
||||||
|
|
||||||
|
type FormValues = z.infer<typeof FormSchema>;
|
||||||
|
|
||||||
|
export function ChangePasswordFormConfirmation() {
|
||||||
|
const { closeModal } = useModal();
|
||||||
|
const { showPopup } = usePopup();
|
||||||
|
const router = useRouter();
|
||||||
|
const utils = api.useUtils();
|
||||||
|
|
||||||
|
const {
|
||||||
|
register,
|
||||||
|
handleSubmit,
|
||||||
|
formState: { errors, isValid },
|
||||||
|
reset,
|
||||||
|
setError,
|
||||||
|
} = useForm<FormValues>({
|
||||||
|
resolver: zodResolver(FormSchema),
|
||||||
|
mode: "onChange",
|
||||||
|
});
|
||||||
|
|
||||||
|
const changePasswordMutation = useMutation({
|
||||||
|
mutationFn: async (data: FormValues) => {
|
||||||
|
const response = await authClient.changePassword({
|
||||||
|
newPassword: data.newPassword,
|
||||||
|
currentPassword: data.currentPassword,
|
||||||
|
revokeOtherSessions: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response?.error) {
|
||||||
|
throw new Error(response?.error.message || "Invalid Password");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onSuccess: async () => {
|
||||||
|
closeModal();
|
||||||
|
showPopup({
|
||||||
|
header: t`Password Changed`,
|
||||||
|
message: t`Your password has been changed.`,
|
||||||
|
icon: "success",
|
||||||
|
});
|
||||||
|
|
||||||
|
utils.invalidate();
|
||||||
|
reset();
|
||||||
|
router.push("/");
|
||||||
|
},
|
||||||
|
onError: async (error: any) => {
|
||||||
|
const errorMessage = error.message.toLowerCase();
|
||||||
|
|
||||||
|
if (errorMessage.includes("invalid password")) {
|
||||||
|
setError("currentPassword", {
|
||||||
|
type: "manual",
|
||||||
|
message: t`The current password you entered is incorrect.`,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
closeModal();
|
||||||
|
showPopup({
|
||||||
|
header: t`Error Changing Password`,
|
||||||
|
message: t`An unexpected error occurred. Please try again later.`,
|
||||||
|
icon: "error",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const onSubmit = (data: FormValues) => {
|
||||||
|
changePasswordMutation.mutate(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleCancel = () => {
|
||||||
|
reset();
|
||||||
|
closeModal();
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="p-5">
|
||||||
|
<div className="flex w-full flex-col justify-between pb-4">
|
||||||
|
<h2 className="text-md pb-4 font-medium dark:text-white">{t`Change Password`}</h2>
|
||||||
|
<p className="mb-4 text-sm text-light-900">
|
||||||
|
{t`Enter your current password and choose a new secure password.`}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form onSubmit={handleSubmit(onSubmit)}>
|
||||||
|
<div className="space-y-2">
|
||||||
|
<div>
|
||||||
|
<Input
|
||||||
|
id="currentPassword"
|
||||||
|
type="password"
|
||||||
|
{...register("currentPassword")}
|
||||||
|
placeholder={t`Enter your current password`}
|
||||||
|
/>
|
||||||
|
{errors.currentPassword && (
|
||||||
|
<p className="mt-2 text-xs text-red-400">
|
||||||
|
{errors.currentPassword.message}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<Input
|
||||||
|
id="newPassword"
|
||||||
|
type="password"
|
||||||
|
{...register("newPassword")}
|
||||||
|
placeholder={t`Enter your new password`}
|
||||||
|
/>
|
||||||
|
{errors.newPassword && (
|
||||||
|
<p className="mt-2 text-xs text-red-400">
|
||||||
|
{errors.newPassword.message}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<Input
|
||||||
|
id="confirmPassword"
|
||||||
|
type="password"
|
||||||
|
{...register("confirmPassword")}
|
||||||
|
placeholder={t`Confirm your new password`}
|
||||||
|
/>
|
||||||
|
{errors.confirmPassword && (
|
||||||
|
<p className="mt-2 text-xs text-red-400">
|
||||||
|
{errors.confirmPassword.message}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="mt-[1.5rem] flex items-center gap-4">
|
||||||
|
<Button
|
||||||
|
variant="secondary"
|
||||||
|
onClick={handleCancel}
|
||||||
|
type="button"
|
||||||
|
fullWidth
|
||||||
|
size="lg"
|
||||||
|
>
|
||||||
|
{t`Cancel`}
|
||||||
|
</Button>
|
||||||
|
<Button
|
||||||
|
variant="primary"
|
||||||
|
type="submit"
|
||||||
|
disabled={!isValid || changePasswordMutation.isPending}
|
||||||
|
isLoading={changePasswordMutation.isPending}
|
||||||
|
fullWidth
|
||||||
|
size="lg"
|
||||||
|
>
|
||||||
|
{t`Change Password`}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -15,6 +15,7 @@ import { usePopup } from "~/providers/popup";
|
|||||||
import { useWorkspace } from "~/providers/workspace";
|
import { useWorkspace } from "~/providers/workspace";
|
||||||
import { api } from "~/utils/api";
|
import { api } from "~/utils/api";
|
||||||
import Avatar from "./components/Avatar";
|
import Avatar from "./components/Avatar";
|
||||||
|
import { ChangePasswordFormConfirmation } from "./components/ChangePasswordConfirmation";
|
||||||
import CreateAPIKeyForm from "./components/CreateAPIKeyForm";
|
import CreateAPIKeyForm from "./components/CreateAPIKeyForm";
|
||||||
import { CustomURLConfirmation } from "./components/CustomURLConfirmation";
|
import { CustomURLConfirmation } from "./components/CustomURLConfirmation";
|
||||||
import { DeleteAccountConfirmation } from "./components/DeleteAccountConfirmation";
|
import { DeleteAccountConfirmation } from "./components/DeleteAccountConfirmation";
|
||||||
@@ -25,14 +26,15 @@ import UpdateWorkspaceNameForm from "./components/UpdateWorkspaceNameForm";
|
|||||||
import UpdateWorkspaceUrlForm from "./components/UpdateWorkspaceUrlForm";
|
import UpdateWorkspaceUrlForm from "./components/UpdateWorkspaceUrlForm";
|
||||||
|
|
||||||
export default function SettingsPage() {
|
export default function SettingsPage() {
|
||||||
const { modalContentType, openModal } = useModal();
|
const { modalContentType, openModal, isOpen } = useModal();
|
||||||
const { workspace } = useWorkspace();
|
const { workspace } = useWorkspace();
|
||||||
const utils = api.useUtils();
|
const utils = api.useUtils();
|
||||||
const { showPopup } = usePopup();
|
const { showPopup } = usePopup();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const workspaceUrlSectionRef = useRef<HTMLDivElement>(null);
|
const workspaceUrlSectionRef = useRef<HTMLDivElement>(null);
|
||||||
const scrollContainerRef = useRef<HTMLDivElement>(null);
|
const scrollContainerRef = useRef<HTMLDivElement>(null);
|
||||||
|
const isCredentialsEnabled =
|
||||||
|
env("NEXT_PUBLIC_ALLOW_CREDENTIALS")?.toLowerCase() === "true";
|
||||||
const { data } = api.user.getUser.useQuery();
|
const { data } = api.user.getUser.useQuery();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
@@ -283,6 +285,25 @@ export default function SettingsPage() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{isCredentialsEnabled && (
|
||||||
|
<div className="mb-8 border-t border-light-300 dark:border-dark-300">
|
||||||
|
<h2 className="mb-4 mt-8 text-[14px] text-neutral-900 dark:text-dark-1000">
|
||||||
|
{t`Change Password`}
|
||||||
|
</h2>
|
||||||
|
<p className="mb-8 text-sm text-neutral-500 dark:text-dark-900">
|
||||||
|
{t`You are about to change your password.`}
|
||||||
|
</p>
|
||||||
|
<div className="mt-4">
|
||||||
|
<Button
|
||||||
|
variant="secondary"
|
||||||
|
onClick={() => openModal("CHANGE_PASSWORD")}
|
||||||
|
>
|
||||||
|
{t`Change Password`}
|
||||||
|
</Button>
|
||||||
|
</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">
|
||||||
<h2 className="mb-4 mt-8 text-[14px] text-neutral-900 dark:text-dark-1000">
|
<h2 className="mb-4 mt-8 text-[14px] text-neutral-900 dark:text-dark-1000">
|
||||||
{t`Delete account`}
|
{t`Delete account`}
|
||||||
@@ -301,19 +322,49 @@ export default function SettingsPage() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Modal modalSize={modalContentType === "NEW_FEEDBACK" ? "md" : "sm"}>
|
<>
|
||||||
{modalContentType === "NEW_FEEDBACK" && <FeedbackModal />}
|
<Modal
|
||||||
{modalContentType === "NEW_WORKSPACE" && <NewWorkspaceForm />}
|
modalSize="md"
|
||||||
{modalContentType === "DELETE_WORKSPACE" && (
|
isVisible={isOpen && modalContentType === "NEW_FEEDBACK"}
|
||||||
|
>
|
||||||
|
<FeedbackModal />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "NEW_WORKSPACE"}
|
||||||
|
>
|
||||||
|
<NewWorkspaceForm />
|
||||||
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "DELETE_WORKSPACE"}
|
||||||
|
>
|
||||||
<DeleteWorkspaceConfirmation />
|
<DeleteWorkspaceConfirmation />
|
||||||
)}
|
</Modal>
|
||||||
{modalContentType === "UPDATE_WORKSPACE_URL" && (
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "UPDATE_WORKSPACE_URL"}
|
||||||
|
>
|
||||||
<CustomURLConfirmation workspacePublicId={workspace.publicId} />
|
<CustomURLConfirmation workspacePublicId={workspace.publicId} />
|
||||||
)}
|
</Modal>
|
||||||
{modalContentType === "DELETE_ACCOUNT" && (
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "DELETE_ACCOUNT"}
|
||||||
|
>
|
||||||
<DeleteAccountConfirmation />
|
<DeleteAccountConfirmation />
|
||||||
)}
|
</Modal>
|
||||||
</Modal>
|
|
||||||
|
<Modal
|
||||||
|
modalSize="sm"
|
||||||
|
isVisible={isOpen && modalContentType === "CHANGE_PASSWORD"}
|
||||||
|
>
|
||||||
|
<ChangePasswordFormConfirmation />
|
||||||
|
</Modal>
|
||||||
|
</>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { fontFamily } from "tailwindcss/defaultTheme";
|
|||||||
import baseConfig from "@kan/tailwind-config/web";
|
import baseConfig from "@kan/tailwind-config/web";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
darkMode: "class",
|
||||||
content: [...baseConfig.content],
|
content: [...baseConfig.content],
|
||||||
plugins: [require("@tailwindcss/typography")],
|
plugins: [require("@tailwindcss/typography")],
|
||||||
presets: [baseConfig],
|
presets: [baseConfig],
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ services:
|
|||||||
- NEXT_PUBLIC_AVATAR_BUCKET_NAME=${NEXT_PUBLIC_AVATAR_BUCKET_NAME}
|
- NEXT_PUBLIC_AVATAR_BUCKET_NAME=${NEXT_PUBLIC_AVATAR_BUCKET_NAME}
|
||||||
- NEXT_PUBLIC_STORAGE_DOMAIN=${NEXT_PUBLIC_STORAGE_DOMAIN}
|
- NEXT_PUBLIC_STORAGE_DOMAIN=${NEXT_PUBLIC_STORAGE_DOMAIN}
|
||||||
|
|
||||||
|
# White label
|
||||||
|
- NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY=${NEXT_PUBLIC_WHITE_LABEL_HIDE_POWERED_BY}
|
||||||
|
|
||||||
# Auth config (optional)
|
# Auth config (optional)
|
||||||
- NEXT_PUBLIC_ALLOW_CREDENTIALS=${NEXT_PUBLIC_ALLOW_CREDENTIALS}
|
- NEXT_PUBLIC_ALLOW_CREDENTIALS=${NEXT_PUBLIC_ALLOW_CREDENTIALS}
|
||||||
- NEXT_PUBLIC_DISABLE_SIGN_UP=${NEXT_PUBLIC_DISABLE_SIGN_UP}
|
- NEXT_PUBLIC_DISABLE_SIGN_UP=${NEXT_PUBLIC_DISABLE_SIGN_UP}
|
||||||
@@ -43,6 +46,11 @@ services:
|
|||||||
- TRELLO_APP_API_KEY=${TRELLO_APP_API_KEY}
|
- TRELLO_APP_API_KEY=${TRELLO_APP_API_KEY}
|
||||||
- TRELLO_APP_SECRET=${TRELLO_APP_SECRET}
|
- TRELLO_APP_SECRET=${TRELLO_APP_SECRET}
|
||||||
|
|
||||||
|
# Generic OIDC provider (optional)
|
||||||
|
- OIDC_CLIENT_ID=${OIDC_CLIENT_ID}
|
||||||
|
- OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET}
|
||||||
|
- OIDC_DISCOVERY_URL=${OIDC_DISCOVERY_URL}
|
||||||
|
|
||||||
# OAuth providers (optional)
|
# OAuth providers (optional)
|
||||||
- BETTER_AUTH_TRUSTED_ORIGINS=${BETTER_AUTH_TRUSTED_ORIGINS}
|
- BETTER_AUTH_TRUSTED_ORIGINS=${BETTER_AUTH_TRUSTED_ORIGINS}
|
||||||
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
|
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { PutObjectCommand, S3Client } from "@aws-sdk/client-s3";
|
|||||||
import { betterAuth } from "better-auth";
|
import { betterAuth } from "better-auth";
|
||||||
import { drizzleAdapter } from "better-auth/adapters/drizzle";
|
import { drizzleAdapter } from "better-auth/adapters/drizzle";
|
||||||
import { createAuthEndpoint, createAuthMiddleware } from "better-auth/api";
|
import { createAuthEndpoint, createAuthMiddleware } from "better-auth/api";
|
||||||
import { apiKey } from "better-auth/plugins";
|
import { apiKey, genericOAuth } from "better-auth/plugins";
|
||||||
import { magicLink } from "better-auth/plugins/magic-link";
|
import { magicLink } from "better-auth/plugins/magic-link";
|
||||||
import { socialProviderList } from "better-auth/social-providers";
|
import { socialProviderList } from "better-auth/social-providers";
|
||||||
import { env } from "next-runtime-env";
|
import { env } from "next-runtime-env";
|
||||||
@@ -83,8 +83,20 @@ export const socialProvidersPlugin = () => ({
|
|||||||
{
|
{
|
||||||
method: "GET",
|
method: "GET",
|
||||||
},
|
},
|
||||||
async (ctx) =>
|
async (ctx) => {
|
||||||
ctx.json(ctx.context.socialProviders.map((p) => p.id.toLowerCase())),
|
const providers = ctx.context.socialProviders.map((p) =>
|
||||||
|
p.id.toLowerCase(),
|
||||||
|
);
|
||||||
|
// Add OIDC provider if configured
|
||||||
|
if (
|
||||||
|
process.env.OIDC_CLIENT_ID &&
|
||||||
|
process.env.OIDC_CLIENT_SECRET &&
|
||||||
|
process.env.OIDC_DISCOVERY_URL
|
||||||
|
) {
|
||||||
|
providers.push("oidc");
|
||||||
|
}
|
||||||
|
return ctx.json(providers);
|
||||||
|
},
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -162,6 +174,25 @@ export const initAuth = (db: dbClient) => {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
// Generic OIDC provider
|
||||||
|
...(process.env.OIDC_CLIENT_ID &&
|
||||||
|
process.env.OIDC_CLIENT_SECRET &&
|
||||||
|
process.env.OIDC_DISCOVERY_URL
|
||||||
|
? [
|
||||||
|
genericOAuth({
|
||||||
|
config: [
|
||||||
|
{
|
||||||
|
providerId: "oidc",
|
||||||
|
clientId: process.env.OIDC_CLIENT_ID,
|
||||||
|
clientSecret: process.env.OIDC_CLIENT_SECRET,
|
||||||
|
discoveryUrl: process.env.OIDC_DISCOVERY_URL,
|
||||||
|
scopes: ["openid", "email", "profile"],
|
||||||
|
pkce: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
]
|
||||||
|
: []),
|
||||||
],
|
],
|
||||||
databaseHooks: {
|
databaseHooks: {
|
||||||
user: {
|
user: {
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
import { BetterAuthClientPlugin } from "better-auth";
|
import type { BetterAuthClientPlugin } from "better-auth";
|
||||||
import { apiKeyClient, magicLinkClient } from "better-auth/client/plugins";
|
import type { BetterFetchOption } from "better-auth/react";
|
||||||
import { BetterFetchOption, createAuthClient } from "better-auth/react";
|
import {
|
||||||
|
apiKeyClient,
|
||||||
|
genericOAuthClient,
|
||||||
|
magicLinkClient,
|
||||||
|
} from "better-auth/client/plugins";
|
||||||
|
import { createAuthClient } from "better-auth/react";
|
||||||
|
|
||||||
import { socialProvidersPlugin } from "./auth";
|
import type { socialProvidersPlugin } from "./auth";
|
||||||
|
|
||||||
const socialProvidersPluginClient = {
|
const socialProvidersPluginClient = {
|
||||||
id: "social-providers-plugin",
|
id: "social-providers-plugin",
|
||||||
@@ -21,5 +26,10 @@ const socialProvidersPluginClient = {
|
|||||||
} satisfies BetterAuthClientPlugin;
|
} satisfies BetterAuthClientPlugin;
|
||||||
|
|
||||||
export const authClient = createAuthClient({
|
export const authClient = createAuthClient({
|
||||||
plugins: [magicLinkClient(), apiKeyClient(), socialProvidersPluginClient],
|
plugins: [
|
||||||
|
magicLinkClient(),
|
||||||
|
apiKeyClient(),
|
||||||
|
genericOAuthClient(),
|
||||||
|
socialProvidersPluginClient,
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|||||||
14
pnpm-lock.yaml
generated
14
pnpm-lock.yaml
generated
@@ -171,6 +171,9 @@ importers:
|
|||||||
next-runtime-env:
|
next-runtime-env:
|
||||||
specifier: ^1.7.2
|
specifier: ^1.7.2
|
||||||
version: 1.8.0
|
version: 1.8.0
|
||||||
|
next-themes:
|
||||||
|
specifier: ^0.4.6
|
||||||
|
version: 0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
|
||||||
nextjs-cors:
|
nextjs-cors:
|
||||||
specifier: ^2.2.0
|
specifier: ^2.2.0
|
||||||
version: 2.2.0(next@15.3.4(@babel/core@7.24.5)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
|
version: 2.2.0(next@15.3.4(@babel/core@7.24.5)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
|
||||||
@@ -5457,6 +5460,12 @@ packages:
|
|||||||
next-runtime-env@1.8.0:
|
next-runtime-env@1.8.0:
|
||||||
resolution: {integrity: sha512-QJVxzmr2gTao/vZKFgcrByFrifl0YOMTvuUVxcI/X7ratlW+9zMvMmA9AGU9cFsumXJtohWkCvwPdBNdkTCYfw==}
|
resolution: {integrity: sha512-QJVxzmr2gTao/vZKFgcrByFrifl0YOMTvuUVxcI/X7ratlW+9zMvMmA9AGU9cFsumXJtohWkCvwPdBNdkTCYfw==}
|
||||||
|
|
||||||
|
next-themes@0.4.6:
|
||||||
|
resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==}
|
||||||
|
peerDependencies:
|
||||||
|
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
|
||||||
|
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
|
||||||
|
|
||||||
next@15.0.4:
|
next@15.0.4:
|
||||||
resolution: {integrity: sha512-nuy8FH6M1FG0lktGotamQDCXhh5hZ19Vo0ht1AOIQWrYJLP598TIUagKtvJrfJ5AGwB/WmDqkKaKhMpVifvGPA==}
|
resolution: {integrity: sha512-nuy8FH6M1FG0lktGotamQDCXhh5hZ19Vo0ht1AOIQWrYJLP598TIUagKtvJrfJ5AGwB/WmDqkKaKhMpVifvGPA==}
|
||||||
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
|
engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0}
|
||||||
@@ -13028,6 +13037,11 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
|
|
||||||
|
next-themes@0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||||
|
dependencies:
|
||||||
|
react: 18.3.1
|
||||||
|
react-dom: 18.3.1(react@18.3.1)
|
||||||
|
|
||||||
next@15.0.4(@babel/core@7.24.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
next@15.0.4(@babel/core@7.24.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@next/env': 15.0.4
|
'@next/env': 15.0.4
|
||||||
|
|||||||
@@ -72,6 +72,9 @@
|
|||||||
"VK_CLIENT_SECRET",
|
"VK_CLIENT_SECRET",
|
||||||
"LINKEDIN_CLIENT_ID",
|
"LINKEDIN_CLIENT_ID",
|
||||||
"LINKEDIN_CLIENT_SECRET",
|
"LINKEDIN_CLIENT_SECRET",
|
||||||
|
"OIDC_CLIENT_ID",
|
||||||
|
"OIDC_CLIENT_SECRET",
|
||||||
|
"OIDC_DISCOVERY_URL",
|
||||||
"REDDIT_CLIENT_ID",
|
"REDDIT_CLIENT_ID",
|
||||||
"REDDIT_CLIENT_SECRET",
|
"REDDIT_CLIENT_SECRET",
|
||||||
"ROBLOX_CLIENT_ID",
|
"ROBLOX_CLIENT_ID",
|
||||||
@@ -93,6 +96,7 @@
|
|||||||
"SMTP_PASSWORD",
|
"SMTP_PASSWORD",
|
||||||
"SMTP_SECURE",
|
"SMTP_SECURE",
|
||||||
"NEXT_PUBLIC_KAN_ENV",
|
"NEXT_PUBLIC_KAN_ENV",
|
||||||
|
"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_PRO_PLAN_PRICE_ID",
|
||||||
|
|||||||
Reference in New Issue
Block a user