Compare commits

...

33 Commits

Author SHA1 Message Date
Elias Schneider
416eba6ae6 release: 0.22.0 2024-02-04 18:57:49 +01:00
Elias Schneider
3880854240 chore(translations): update translations via Crowdin (#385)
* New translations en-us.ts (Greek)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (French)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Serbian (Cyrillic))

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Chinese Simplified)

* New translations en-us.ts (Chinese Traditional)

* New translations en-us.ts (Portuguese, Brazilian)

* New translations en-us.ts (Thai)

* New translations en-us.ts (Dutch, Belgium)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Portuguese, Brazilian)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (French)

* New translations en-us.ts (French)

* New translations en-us.ts (Dutch, Belgium)

* New translations en-us.ts (Dutch, Belgium)
2024-02-04 18:54:48 +01:00
Maurice Schorn
43d186a370 Markdown support for TextPreviews (#396)
* add markdown-to-jsx dependency

* replace TextPreview with Markdown

* basic table styling

* add light mode backgroundColor
2024-02-04 18:50:43 +01:00
Elias Schneider
c189cd97a5 fix(translations): typo in string 2024-01-18 09:13:31 +01:00
Elias Schneider
d83e28a1c3 chore(translations): add Slovenian files 2024-01-14 18:53:55 +01:00
Elias Schneider
3299f767d3 release: 0.21.5 2024-01-14 14:16:47 +01:00
Elias Schneider
16a9724693 chore(translations): update translations via Crowdin (#378)
* New translations en-us.ts (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Serbian (Cyrillic))

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Chinese Traditional)

* New translations en-us.ts (Portuguese, Brazilian)

* New translations en-us.ts (Thai)

* New translations en-us.ts (Dutch, Belgium)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Portuguese, Brazilian)

* New translations en-us.ts (German)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Greek)
2024-01-14 14:15:44 +01:00
Elias Schneider
0ccb836444 fix: password can be changed with wrong password 2024-01-14 14:14:07 +01:00
Elias Schneider
067652aa80 chore(translations): add Greek files 2024-01-14 13:19:51 +01:00
Elias Schneider
1523d1b5b2 release: 0.21.4 2024-01-09 21:29:29 +01:00
Elias Schneider
ea14e28dd8 chore(translations): update translations via Crowdin (#370)
* New translations en-us.ts (Italian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Chinese Simplified)

* New translations en-us.ts (Chinese Simplified)

* New translations en-us.ts (Chinese Simplified)

* New translations en-us.ts (German)

* New translations en-us.ts (German)
2024-01-09 15:51:04 +01:00
Ivan Li
d7750086b5 feat(frontend): add navigateToLink button for CopyTextField. close #372. (#376)
* feat(frontend): add navigateToLink button for CopyTextField. close #372.

* chore(frontend): remove unused props for CopyTextField.
2024-01-09 15:50:42 +01:00
Ivan Li
eb7216b4b1 chore(frontend/share): displays the never expire checkbox if the system allows. (#371) 2024-01-07 22:13:59 +01:00
Elias Schneider
1d62225019 Merge branch 'main' of https://github.com/stonith404/pingvin-share 2024-01-04 15:46:43 +01:00
Elias Schneider
bf5250c4a7 ci/cd: remove close inactive issue action 2024-01-04 15:46:40 +01:00
Elias Schneider
cdd0a864d1 chore(translations): update translations via Crowdin (#365)
* New translations en-us.ts (Italian)

* New translations en-us.ts (Danish)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Portuguese, Brazilian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Dutch, Belgium)

* New translations en-us.ts (Dutch, Belgium)

* New translations en-us.ts (Dutch, Belgium)
2024-01-03 13:48:42 +01:00
Elias Schneider
692c1bef25 release: 0.21.3 2024-01-02 21:40:49 +01:00
Elias Schneider
fe09d0e25f fix: don't show validation error on upload modal if password or max views are empty 2024-01-02 21:33:15 +01:00
Elias Schneider
3ce18dc1dc release: 0.21.2 2023-12-29 18:15:42 +01:00
Elias Schneider
6fb31abd84 fix: missing logo images on fresh installation 2023-12-29 18:12:02 +01:00
Elias Schneider
7a301b455c fix: missing translations on reset password page 2023-12-29 18:09:31 +01:00
Elias Schneider
5781a7b540 chore(translations): add Italian files 2023-12-27 13:54:37 +01:00
Elias Schneider
2efbeee5bf chore(translations): update translations via Crowdin (#359)
* New translations en-us.ts (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Serbian (Cyrillic))

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Chinese Simplified)

* New translations en-us.ts (Chinese Traditional)

* New translations en-us.ts (Portuguese, Brazilian)

* New translations en-us.ts (Thai)

* New translations en-us.ts (Dutch, Belgium)

* New translations en-us.ts (French)

* New translations en-us.ts (Polish)
2023-12-27 13:45:07 +01:00
Elias Schneider
be4ff0f0f0 release: 0.21.1 2023-12-20 12:33:36 +01:00
Qing Fu
3ea52a24ef feat(oauth): add oidc username claim (#357)
* feat(oauth): add oidc username claim

* style: remove undefined
2023-12-20 12:32:42 +01:00
No Solo Hacking
f179189b59 docs: add review by "No Solo Hacking" to the Spanish README (#356)
* Update README.es.md

* Update docs/README.es.md

Co-authored-by: Elias Schneider <login@eliasschneider.com>

---------

Co-authored-by: Elias Schneider <login@eliasschneider.com>
2023-12-15 07:27:01 +01:00
Elias Schneider
bc333f768f chore(translations): update translations via Crowdin (#349)
* New translations en-us.ts (Swedish)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Polish)

* New translations en-us.ts (French)
2023-12-13 08:41:42 +01:00
Elias Schneider
26c98e2b41 chore: fix deps vulnerabilities 2023-12-01 11:03:03 +01:00
Elias Schneider
4b7732838d release: 0.21.0 2023-12-01 10:28:09 +01:00
Elias Schneider
021b9ac5d5 chore(translations): update translations via Crowdin (#347)
* New translations en-us.ts (Swedish)

* New translations en-us.ts (Chinese Traditional)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (German)

* New translations en-us.ts (Portuguese, Brazilian)

* New translations en-us.ts (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Serbian (Cyrillic))

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Chinese Simplified)

* New translations en-us.ts (Chinese Traditional)

* New translations en-us.ts (Thai)

* New translations en-us.ts (Dutch, Belgium)

* New translations en-us.ts (Polish)
2023-12-01 10:27:40 +01:00
Qing Fu
5f94c7295a feat(oauth): limited discord server sign-in (#346)
* feat(oauth): limited discord server sign-in

* fix: typo

* style: change undefined to optional

* style: remove conditional operator
2023-11-30 22:41:06 +01:00
Rhys Chang
d9a9523c9a New translations zh-TW.ts (#339) 2023-11-26 12:49:08 +01:00
Elias Schneider
384d2343d5 New translations en-us.ts (Portuguese, Brazilian) (#336) 2023-11-26 12:48:22 +01:00
42 changed files with 3011 additions and 847 deletions

View File

@@ -1,23 +0,0 @@
name: Close inactive issues
on:
schedule:
- cron: "00 00 * * *"
jobs:
close-issues:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v4
with:
days-before-issue-stale: 30
days-before-issue-close: 14
exempt-issue-labels: "feature"
stale-issue-label: "stale"
stale-issue-message: "This issue is stale because it has been open for 30 days with no activity."
close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale."
days-before-pr-stale: -1
days-before-pr-close: -1
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,3 +1,53 @@
## [0.22.0](https://github.com/stonith404/pingvin-share/compare/v0.21.5...v0.22.0) (2024-02-04)
### Bug Fixes
* **translations:** typo in string ([c189cd9](https://github.com/stonith404/pingvin-share/commit/c189cd97a502cee8ea79e5187d9288d636d4983c))
## [0.21.5](https://github.com/stonith404/pingvin-share/compare/v0.21.4...v0.21.5) (2024-01-14)
### Bug Fixes
* password can be changed with wrong password ([0ccb836](https://github.com/stonith404/pingvin-share/commit/0ccb8364448d27ea07c8b11972ff454d610893c6))
## [0.21.4](https://github.com/stonith404/pingvin-share/compare/v0.21.3...v0.21.4) (2024-01-09)
### Features
* **frontend:** add navigateToLink button for CopyTextField. close [#372](https://github.com/stonith404/pingvin-share/issues/372). ([#376](https://github.com/stonith404/pingvin-share/issues/376)) ([d775008](https://github.com/stonith404/pingvin-share/commit/d7750086b5b796cfc70d8dc0c7d0ab4bd1996ca0))
## [0.21.3](https://github.com/stonith404/pingvin-share/compare/v0.21.2...v0.21.3) (2024-01-02)
### Bug Fixes
* don't show validation error on upload modal if password or max views are empty ([fe09d0e](https://github.com/stonith404/pingvin-share/commit/fe09d0e25f6fbfc4e1c9302054d3387fe8b1f0ea))
## [0.21.2](https://github.com/stonith404/pingvin-share/compare/v0.21.1...v0.21.2) (2023-12-29)
### Bug Fixes
* missing logo images on fresh installation ([6fb31ab](https://github.com/stonith404/pingvin-share/commit/6fb31abd84b22cd464b6b45bf7ca6f83853e8720))
* missing translations on reset password page ([7a301b4](https://github.com/stonith404/pingvin-share/commit/7a301b455cdea4b1dbc04cc6223e094fee9aca7b))
## [0.21.1](https://github.com/stonith404/pingvin-share/compare/v0.21.0...v0.21.1) (2023-12-20)
### Features
* **oauth:** add oidc username claim ([#357](https://github.com/stonith404/pingvin-share/issues/357)) ([3ea52a2](https://github.com/stonith404/pingvin-share/commit/3ea52a24ef7c3b6845bc13382616ea0c8d784585))
## [0.21.0](https://github.com/stonith404/pingvin-share/compare/v0.20.3...v0.21.0) (2023-12-01)
### Features
* **oauth:** limited discord server sign-in ([#346](https://github.com/stonith404/pingvin-share/issues/346)) ([5f94c72](https://github.com/stonith404/pingvin-share/commit/5f94c7295ab8594ed2ed615628214e869a02da2d))
## [0.20.3](https://github.com/stonith404/pingvin-share/compare/v0.20.2...v0.20.3) (2023-11-17)

View File

@@ -58,4 +58,4 @@ HEALTHCHECK --interval=10s --timeout=3s CMD curl -f http://localhost:3000/api/he
# Application startup
# HOSTNAME=0.0.0.0 fixes https://github.com/vercel/next.js/issues/51684. It can be removed as soon as the issue is fixed
CMD cp -rn /tmp/img /opt/app/frontend/public && nginx && PORT=3333 HOSTNAME=0.0.0.0 node frontend/server.js & cd backend && npm run prod
CMD cp -rn /tmp/img/* /opt/app/frontend/public/img && nginx && PORT=3333 HOSTNAME=0.0.0.0 node frontend/server.js & cd backend && npm run prod

View File

@@ -1,12 +1,12 @@
{
"name": "pingvin-share-backend",
"version": "0.20.3",
"version": "0.22.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "pingvin-share-backend",
"version": "0.20.3",
"version": "0.22.0",
"dependencies": {
"@nestjs/cache-manager": "^2.1.0",
"@nestjs/common": "^10.1.2",
@@ -1308,24 +1308,15 @@
}
},
"node_modules/@types/clamscan": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/clamscan/-/clamscan-2.0.4.tgz",
"integrity": "sha512-NpD+EmE+ZK5WRJOAmeDuSYJIv15BUnc4PxQA+m3QNkutaPBZ7bmLDTvqBu2iDchs7YKQjiEQEwEMvsdwtdtImA==",
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@types/clamscan/-/clamscan-2.0.7.tgz",
"integrity": "sha512-YopQF+D1pqbvMbvqTQx2MdxEqFbQAiPJKtjj/KnK9xxgmYkdt3dInkj/k6a+bztT4TexQ+tCUi/5D3LqDZIdhg==",
"dev": true,
"dependencies": {
"@types/node": "*",
"axios": "^0.24.0"
}
},
"node_modules/@types/clamscan/node_modules/axios": {
"version": "0.24.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
"integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"dev": true,
"dependencies": {
"follow-redirects": "^1.14.4"
}
},
"node_modules/@types/connect": {
"version": "3.4.35",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
@@ -2277,13 +2268,12 @@
"dev": true
},
"node_modules/axios": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
"version": "0.24.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
"integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"dev": true,
"dependencies": {
"follow-redirects": "^1.14.9",
"form-data": "^4.0.0"
"follow-redirects": "^1.14.4"
}
},
"node_modules/b4a": {
@@ -5069,15 +5059,15 @@
}
},
"node_modules/joi": {
"version": "17.7.0",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz",
"integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==",
"version": "17.11.0",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz",
"integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==",
"dev": true,
"dependencies": {
"@hapi/hoek": "^9.0.0",
"@hapi/topo": "^5.0.0",
"@sideway/address": "^4.1.3",
"@sideway/formula": "^3.0.0",
"@sideway/formula": "^3.0.1",
"@sideway/pinpoint": "^2.0.0"
}
},
@@ -5556,9 +5546,9 @@
}
},
"node_modules/minimist": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
"integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -6649,6 +6639,12 @@
"node": ">= 0.10"
}
},
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"dev": true
},
"node_modules/psl": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
@@ -7262,9 +7258,9 @@
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/sharp": {
"version": "0.32.4",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.4.tgz",
"integrity": "sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==",
"version": "0.32.6",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
"hasInstallScript": true,
"dependencies": {
"color": "^4.2.3",
@@ -8253,16 +8249,16 @@
"dev": true
},
"node_modules/wait-on": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz",
"integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
"integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
"dev": true,
"dependencies": {
"axios": "^0.27.2",
"joi": "^17.7.0",
"axios": "^1.6.1",
"joi": "^17.11.0",
"lodash": "^4.17.21",
"minimist": "^1.2.7",
"rxjs": "^7.8.0"
"minimist": "^1.2.8",
"rxjs": "^7.8.1"
},
"bin": {
"wait-on": "bin/wait-on"
@@ -8271,6 +8267,17 @@
"node": ">=12.0.0"
}
},
"node_modules/wait-on/node_modules/axios": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
"integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
"dev": true,
"dependencies": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
},
"node_modules/watchpack": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
@@ -9459,24 +9466,13 @@
}
},
"@types/clamscan": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/clamscan/-/clamscan-2.0.4.tgz",
"integrity": "sha512-NpD+EmE+ZK5WRJOAmeDuSYJIv15BUnc4PxQA+m3QNkutaPBZ7bmLDTvqBu2iDchs7YKQjiEQEwEMvsdwtdtImA==",
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@types/clamscan/-/clamscan-2.0.7.tgz",
"integrity": "sha512-YopQF+D1pqbvMbvqTQx2MdxEqFbQAiPJKtjj/KnK9xxgmYkdt3dInkj/k6a+bztT4TexQ+tCUi/5D3LqDZIdhg==",
"dev": true,
"requires": {
"@types/node": "*",
"axios": "^0.24.0"
},
"dependencies": {
"axios": {
"version": "0.24.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
"integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"dev": true,
"requires": {
"follow-redirects": "^1.14.4"
}
}
}
},
"@types/connect": {
@@ -10261,13 +10257,12 @@
"dev": true
},
"axios": {
"version": "0.27.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
"version": "0.24.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
"integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"dev": true,
"requires": {
"follow-redirects": "^1.14.9",
"form-data": "^4.0.0"
"follow-redirects": "^1.14.4"
}
},
"b4a": {
@@ -12299,15 +12294,15 @@
}
},
"joi": {
"version": "17.7.0",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz",
"integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==",
"version": "17.11.0",
"resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz",
"integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==",
"dev": true,
"requires": {
"@hapi/hoek": "^9.0.0",
"@hapi/topo": "^5.0.0",
"@sideway/address": "^4.1.3",
"@sideway/formula": "^3.0.0",
"@sideway/formula": "^3.0.1",
"@sideway/pinpoint": "^2.0.0"
}
},
@@ -12683,9 +12678,9 @@
}
},
"minimist": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
"integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
},
"minipass": {
"version": "3.3.4",
@@ -13490,6 +13485,12 @@
"ipaddr.js": "1.9.1"
}
},
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
"dev": true
},
"psl": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
@@ -13947,9 +13948,9 @@
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"sharp": {
"version": "0.32.4",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.4.tgz",
"integrity": "sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==",
"version": "0.32.6",
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
"requires": {
"color": "^4.2.3",
"detect-libc": "^2.0.2",
@@ -14655,16 +14656,29 @@
}
},
"wait-on": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.0.1.tgz",
"integrity": "sha512-9AnJE9qTjRQOlTZIldAaf/da2eW0eSRSgcqq85mXQja/DW3MriHxkpODDSUEg+Gri/rKEcXUZHe+cevvYItaog==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
"integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
"dev": true,
"requires": {
"axios": "^0.27.2",
"joi": "^17.7.0",
"axios": "^1.6.1",
"joi": "^17.11.0",
"lodash": "^4.17.21",
"minimist": "^1.2.7",
"rxjs": "^7.8.0"
"minimist": "^1.2.8",
"rxjs": "^7.8.1"
},
"dependencies": {
"axios": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
"integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
"dev": true,
"requires": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
}
}
},
"watchpack": {

View File

@@ -1,6 +1,6 @@
{
"name": "pingvin-share-backend",
"version": "0.20.3",
"version": "0.22.0",
"scripts": {
"build": "nest build",
"dev": "cross-env NODE_ENV=development nest start --watch",

View File

@@ -180,6 +180,10 @@ const configVariables: ConfigVariables = {
type: "boolean",
defaultValue: "false",
},
"discord-limitedGuild": {
type: "string",
defaultValue: "",
},
"discord-clientId": {
type: "string",
defaultValue: "",
@@ -197,6 +201,10 @@ const configVariables: ConfigVariables = {
type: "string",
defaultValue: "",
},
"oidc-usernameClaim": {
type: "string",
defaultValue: "",
},
"oidc-clientId": {
type: "string",
defaultValue: "",
@@ -262,8 +270,8 @@ async function migrateConfigVariables() {
for (const existingConfigVariable of existingConfigVariables) {
const configVariable =
configVariables[existingConfigVariable.category]?.[
existingConfigVariable.name
];
existingConfigVariable.name
];
if (!configVariable) {
await prisma.config.delete({
where: {

View File

@@ -139,7 +139,7 @@ export class AuthService {
async updatePassword(user: User, newPassword: string, oldPassword?: string) {
const isPasswordValid =
!user.password || !(await argon.verify(user.password, oldPassword));
!user.password || await argon.verify(user.password, oldPassword);
if (!isPasswordValid) throw new ForbiddenException("Invalid password");

View File

@@ -7,7 +7,7 @@ export class ErrorPageException extends Error {
*/
constructor(
public readonly key: string = "default",
public readonly redirect: string = "/",
public readonly redirect?: string,
public readonly params?: string[],
) {
super("error");

View File

@@ -9,14 +9,27 @@ export class ErrorPageExceptionFilter implements ExceptionFilter {
constructor(private config: ConfigService) {}
catch(exception: ErrorPageException, host: ArgumentsHost) {
this.logger.error(exception);
this.logger.error(
JSON.stringify({
error: exception.key,
params: exception.params,
redirect: exception.redirect,
}),
);
const ctx = host.switchToHttp();
const response = ctx.getResponse();
const url = new URL(`${this.config.get("general.appUrl")}/error`);
url.searchParams.set("redirect", exception.redirect);
url.searchParams.set("error", exception.key);
if (exception.redirect) {
url.searchParams.set("redirect", exception.redirect);
} else {
const redirect = ctx.getRequest().cookies.access_token
? "/account"
: "/auth/signIn";
url.searchParams.set("redirect", redirect);
}
if (exception.params) {
url.searchParams.set("params", exception.params.join(","));
}

View File

@@ -1,15 +1,19 @@
import { OAuthProvider, OAuthToken } from "./oauthProvider.interface";
import { Injectable } from "@nestjs/common";
import fetch from "node-fetch";
import { ConfigService } from "../../config/config.service";
import { OAuthCallbackDto } from "../dto/oauthCallback.dto";
import { OAuthSignInDto } from "../dto/oauthSignIn.dto";
import { ConfigService } from "../../config/config.service";
import { BadRequestException, Injectable } from "@nestjs/common";
import fetch from "node-fetch";
import { ErrorPageException } from "../exceptions/errorPage.exception";
import { OAuthProvider, OAuthToken } from "./oauthProvider.interface";
@Injectable()
export class DiscordProvider implements OAuthProvider<DiscordToken> {
constructor(private config: ConfigService) {}
getAuthEndpoint(state: string): Promise<string> {
let scope = "identify email";
if (this.config.get("oauth.discord-limitedGuild")) {
scope += " guilds";
}
return Promise.resolve(
"https://discord.com/api/oauth2/authorize?" +
new URLSearchParams({
@@ -17,8 +21,8 @@ export class DiscordProvider implements OAuthProvider<DiscordToken> {
redirect_uri:
this.config.get("general.appUrl") + "/api/oauth/callback/discord",
response_type: "code",
state: state,
scope: "identify email",
state,
scope,
}).toString(),
);
}
@@ -69,7 +73,14 @@ export class DiscordProvider implements OAuthProvider<DiscordToken> {
});
const user = (await res.json()) as DiscordUser;
if (user.verified === false) {
throw new BadRequestException("Unverified account.");
throw new ErrorPageException("unverified_account", undefined, [
"provider_discord",
]);
}
const guild = this.config.get("oauth.discord-limitedGuild");
if (guild) {
await this.checkLimitedGuild(token, guild);
}
return {
@@ -79,6 +90,24 @@ export class DiscordProvider implements OAuthProvider<DiscordToken> {
email: user.email,
};
}
async checkLimitedGuild(token: OAuthToken<DiscordToken>, guildId: string) {
try {
const res = await fetch("https://discord.com/api/v10/users/@me/guilds", {
method: "get",
headers: {
Accept: "application/json",
Authorization: `${token.tokenType || "Bearer"} ${token.accessToken}`,
},
});
const guilds = (await res.json()) as DiscordPartialGuild[];
if (!guilds.some((guild) => guild.id === guildId)) {
throw new ErrorPageException("discord_guild_permission_denied");
}
} catch {
throw new ErrorPageException("discord_guild_permission_denied");
}
}
}
export interface DiscordToken {
@@ -96,3 +125,12 @@ export interface DiscordUser {
email: string;
verified: boolean;
}
export interface DiscordPartialGuild {
id: string;
name: string;
icon: string;
owner: boolean;
permissions: string;
features: string[];
}

View File

@@ -1,4 +1,4 @@
import { BadRequestException } from "@nestjs/common";
import { Logger } from "@nestjs/common";
import fetch from "node-fetch";
import { ConfigService } from "../../config/config.service";
import { JwtService } from "@nestjs/jwt";
@@ -7,11 +7,15 @@ import { nanoid } from "nanoid";
import { OAuthCallbackDto } from "../dto/oauthCallback.dto";
import { OAuthProvider, OAuthToken } from "./oauthProvider.interface";
import { OAuthSignInDto } from "../dto/oauthSignIn.dto";
import { ErrorPageException } from "../exceptions/errorPage.exception";
export abstract class GenericOidcProvider implements OAuthProvider<OidcToken> {
protected discoveryUri: string;
private configuration: OidcConfigurationCache;
private jwk: OidcJwkCache;
private logger: Logger = new Logger(
Object.getPrototypeOf(this).constructor.name,
);
protected constructor(
protected name: string,
@@ -104,6 +108,7 @@ export abstract class GenericOidcProvider implements OAuthProvider<OidcToken> {
async getUserInfo(
token: OAuthToken<OidcToken>,
query: OAuthCallbackDto,
claim?: string,
): Promise<OAuthSignInDto> {
const idTokenData = this.decodeIdToken(token.idToken);
// maybe it's not necessary to verify the id token since it's directly obtained from the provider
@@ -112,14 +117,36 @@ export abstract class GenericOidcProvider implements OAuthProvider<OidcToken> {
const nonce = await this.cache.get(key);
await this.cache.del(key);
if (nonce !== idTokenData.nonce) {
throw new BadRequestException("Invalid token");
this.logger.error(
`Invalid nonce. Expected ${nonce}, but got ${idTokenData.nonce}`,
);
throw new ErrorPageException("invalid_token");
}
const username = claim
? idTokenData[claim]
: idTokenData.name ||
idTokenData.nickname ||
idTokenData.preferred_username;
if (!username) {
this.logger.error(
`Can not get username from ID Token ${JSON.stringify(
idTokenData,
undefined,
2,
)}`,
);
throw new ErrorPageException("cannot_get_user_info", undefined, [
`provider_${this.name}`,
]);
}
return {
provider: this.name as any,
email: idTokenData.email,
providerId: idTokenData.sub,
providerUsername: idTokenData.name,
providerUsername: username,
};
}
@@ -204,5 +231,7 @@ export interface OidcIdToken {
iat: number;
email: string;
name: string;
nickname: string;
preferred_username: string;
nonce: string;
}

View File

@@ -1,9 +1,10 @@
import { OAuthProvider, OAuthToken } from "./oauthProvider.interface";
import { Injectable } from "@nestjs/common";
import fetch from "node-fetch";
import { ConfigService } from "../../config/config.service";
import { OAuthCallbackDto } from "../dto/oauthCallback.dto";
import { OAuthSignInDto } from "../dto/oauthSignIn.dto";
import { ConfigService } from "../../config/config.service";
import fetch from "node-fetch";
import { BadRequestException, Injectable } from "@nestjs/common";
import { ErrorPageException } from "../exceptions/errorPage.exception";
import { OAuthProvider, OAuthToken } from "./oauthProvider.interface";
@Injectable()
export class GitHubProvider implements OAuthProvider<GitHubToken> {
@@ -48,12 +49,12 @@ export class GitHubProvider implements OAuthProvider<GitHubToken> {
async getUserInfo(token: OAuthToken<GitHubToken>): Promise<OAuthSignInDto> {
if (!token.scope.includes("user:email")) {
throw new BadRequestException("No email permission granted");
throw new ErrorPageException("no_email", undefined, ["provider_github"]);
}
const user = await this.getGitHubUser(token);
const email = await this.getGitHubEmail(token);
if (!email) {
throw new BadRequestException("No email found");
throw new ErrorPageException("no_email", undefined, ["provider_github"]);
}
return {

View File

@@ -1,9 +1,12 @@
import { GenericOidcProvider } from "./genericOidc.provider";
import { GenericOidcProvider, OidcToken } from "./genericOidc.provider";
import { Inject, Injectable } from "@nestjs/common";
import { ConfigService } from "../../config/config.service";
import { JwtService } from "@nestjs/jwt";
import { CACHE_MANAGER } from "@nestjs/cache-manager";
import { Cache } from "cache-manager";
import { OAuthCallbackDto } from "../dto/oauthCallback.dto";
import { OAuthSignInDto } from "../dto/oauthSignIn.dto";
import { OAuthToken } from "./oauthProvider.interface";
@Injectable()
export class OidcProvider extends GenericOidcProvider {
@@ -24,4 +27,13 @@ export class OidcProvider extends GenericOidcProvider {
protected getDiscoveryUri(): string {
return this.config.get("oauth.oidc-discoveryUri");
}
getUserInfo(
token: OAuthToken<OidcToken>,
query: OAuthCallbackDto,
_?: string,
): Promise<OAuthSignInDto> {
const claim = this.config.get("oauth.oidc-usernameClaim") || undefined;
return super.getUserInfo(token, query, claim);
}
}

View File

@@ -20,7 +20,8 @@ Pingvin Share es una plataforma de intercambio de archivos autoalojada y una alt
## 🐧 Conoce Pingvin Share
- [Demo](https://pingvin-share.dev.eliasschneider.com)
- [Reseña por DB Tech](https://www.youtube.com/watch?v=rWwNeZCOPJA)
- [Reseña realizada por No Solo Hacking (español)](https://www.youtube.com/watch?v=ocd4EpLTYkU)
- [Reseña por DB Tech (inglés)](https://www.youtube.com/watch?v=rWwNeZCOPJA)
<img src="https://user-images.githubusercontent.com/58886915/225038319-b2ef742c-3a74-4eb6-9689-4207a36842a4.png" width="700"/>

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "pingvin-share-frontend",
"version": "0.20.3",
"version": "0.22.0",
"scripts": {
"dev": "next dev",
"build": "next build",
@@ -23,6 +23,7 @@
"file-saver": "^2.0.5",
"jose": "^4.14.4",
"jwt-decode": "^3.1.2",
"markdown-to-jsx": "^7.4.1",
"mime-types": "^2.1.35",
"moment": "^2.29.4",
"next": "^13.4.12",

View File

@@ -1,9 +1,10 @@
import { Button, Center, Stack, Text, Title } from "@mantine/core";
import { Button, Center, Stack, Text, Title, useMantineTheme } from "@mantine/core";
import { modals } from "@mantine/modals";
import Link from "next/link";
import React, { Dispatch, SetStateAction, useEffect, useState } from "react";
import { FormattedMessage } from "react-intl";
import api from "../../services/api.service";
import Markdown from "markdown-to-jsx";
const FilePreviewContext = React.createContext<{
shareId: string;
@@ -115,22 +116,40 @@ const ImagePreview = () => {
const TextPreview = () => {
const { shareId, fileId } = React.useContext(FilePreviewContext);
const [text, setText] = useState<string | null>(null);
const [ text, setText ] = useState<string>("");
const { colorScheme } = useMantineTheme();
useEffect(() => {
api
.get(`/shares/${shareId}/files/${fileId}?download=false`)
.then((res) => setText(res.data));
}, [shareId, fileId]);
.then((res) => setText(res.data ?? "Preview couldn't be fetched."));
}, [ shareId, fileId ]);
const options = {
overrides: {
pre: {
props: {
style: {
backgroundColor: colorScheme == "dark"
? "rgba(50, 50, 50, 0.5)"
: "rgba(220, 220, 220, 0.5)",
padding: "0.75em",
whiteSpace: "pre-wrap",
}
}
},
table: {
props: {
className: "md"
}
}
}
};
return (
<Center style={{ minHeight: 200 }}>
<Stack align="center" spacing={10} style={{ width: "100%" }}>
<Text sx={{ whiteSpace: "pre-wrap" }} size="sm">
{text}
</Text>
</Stack>
</Center>
<Markdown options={options}>
{text}
</Markdown>
);
};

View File

@@ -1,7 +1,8 @@
import { ActionIcon, TextInput } from "@mantine/core";
import { ActionIcon, TextInput, Tooltip } from "@mantine/core";
import { useClipboard } from "@mantine/hooks";
import { useRef, useState } from "react";
import { TbCheck, TbCopy } from "react-icons/tb";
import { IoOpenOutline } from "react-icons/io5";
import useTranslate from "../../hooks/useTranslate.hook";
import toast from "../../utils/toast.util";
@@ -37,12 +38,27 @@ function CopyTextField(props: { link: string }) {
setTextClicked(true);
}
}}
rightSectionWidth={62}
rightSection={
window.isSecureContext && (
<ActionIcon onClick={copyLink}>
{checkState ? <TbCheck /> : <TbCopy />}
</ActionIcon>
)
<>
<Tooltip
label={t("common.text.navigate-to-link")}
position="top"
offset={-2}
openDelay={200}
>
<a href={props.link}>
<ActionIcon>
<IoOpenOutline />
</ActionIcon>
</a>
</Tooltip>
{window.isSecureContext && (
<ActionIcon onClick={copyLink}>
{checkState ? <TbCheck /> : <TbCopy />}
</ActionIcon>
)}
</>
}
/>
);

View File

@@ -92,8 +92,15 @@ const CreateUploadModalBody = ({
.matches(new RegExp("^[a-zA-Z0-9_-]*$"), {
message: t("upload.modal.link.error.invalid"),
}),
password: yup.string().min(3).max(30),
maxViews: yup.number().min(1),
password: yup
.string()
.transform((value) => value || undefined)
.min(3)
.max(30),
maxViews: yup
.number()
.transform((value) => value || undefined)
.min(1),
});
const form = useForm({
@@ -151,8 +158,8 @@ const CreateUploadModalBody = ({
recipients: values.recipients,
description: values.description,
security: {
password: values.password,
maxViews: values.maxViews,
password: values.password || undefined,
maxViews: values.maxViews || undefined,
},
},
files,
@@ -275,10 +282,12 @@ const CreateUploadModalBody = ({
/>
</Col>
</Grid>
<Checkbox
label={t("upload.modal.expires.never-long")}
{...form.getInputProps("never_expires")}
/>
{options.maxExpirationInHours == 0 && (
<Checkbox
label={t("upload.modal.expires.never-long")}
{...form.getInputProps("never_expires")}
/>
)}
<Text
italic
size="xs"

View File

@@ -1,18 +1,22 @@
import danish from "./translations/da-DK";
import german from "./translations/de-DE";
import greek from "./translations/el-GR";
import english from "./translations/en-US";
import spanish from "./translations/es-ES";
import finnish from "./translations/fi-FI";
import french from "./translations/fr-FR";
import italian from "./translations/it-IT";
import japanese from "./translations/ja-JP";
import dutch from "./translations/nl-BE";
import polish from "./translations/pl-PL";
import portuguese from "./translations/pt-BR";
import russian from "./translations/ru-RU";
import slovenian from "./translations/sl-SI";
import serbian from "./translations/sr-SP";
import swedish from "./translations/sv-SE";
import thai from "./translations/th-TH";
import chineseSimplified from "./translations/zh-CN";
import chineseTraditional from "./translations/zh-TW";
export const LOCALES = {
ENGLISH: {
@@ -50,6 +54,11 @@ export const LOCALES = {
code: "zh-CN",
messages: chineseSimplified,
},
CHINESE_TRADITIONAL: {
name: "正體中文",
code: "zh-TW",
messages: chineseTraditional,
},
FINNISH: {
name: "Suomi",
code: "fi-FI",
@@ -90,4 +99,19 @@ export const LOCALES = {
code: "sv-SE",
messages: swedish,
},
ITALIAN: {
name: "Italiano",
code: "it-IT",
messages: italian,
},
GREEK: {
name: "Ελληνικά",
code: "el-GR",
messages: greek,
},
SLOVENIAN: {
name: "Slovenščina",
code: "sl-SI",
messages: slovenian,
},
};

View File

@@ -262,7 +262,7 @@ export default {
"share.table.name": "Navn",
"share.table.size": "Størrelse",
"share.modal.file-preview.error.not-supported.title": "Forhåndsvisning ikke understøttet",
"share.modal.file-preview.error.not-supported.description": "En forhåndsvisning for thise filtype er ikke understøttet. Download venligst filen for at se den.",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Edit {shareId}",
@@ -353,37 +353,45 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID OAuth app",
"admin.config.oauth.oidc-client-id": "OpenID Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "Ups! Denne side findes ikke.",
"404.button.home": "Gå tilbage",
// error
"error.title": "Error",
"error.description": "Oops!",
"error.button.back": "Go back",
"error.title": "Fejl",
"error.description": "Hovsa!",
"error.button.back": "Gå tilbage",
"error.msg.default": "Something went wrong.",
"error.msg.access_denied": "You canceled the authentication process, please try again.",
"error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "This {0} account is already linked to another account.",
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"error.msg.discord_guild_permission_denied": "Du har ikke tilladelse til at logge ind.",
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Gem",
"common.button.create": "Opret",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Generer",
"common.button.done": "Færdig",
"common.text.link": "Link",
"common.text.navigate-to-link": "Go to the link",
"common.text.or": "eller",
"common.button.go-back": "Gå tilbage",
"common.notify.copied": "Linket blev kopieret til udklipsholderen",

View File

@@ -57,7 +57,7 @@ export default {
// /auth/reset-password
"resetPassword.title": "Passwort vergessen?",
"resetPassword.description": "Gib deine Email Adresse ein, um dein Passwort zurückzusetzen.",
"resetPassword.notify.success": "Ein Link zum Rücksetzen des Passwortes wurde an deine Emailadresse versandt.",
"resetPassword.notify.success": "Ein Link zum Zurücksetzen des Passwortes wurde an deine Emailadresse versandt.",
"resetPassword.button.back": "Zurück zur Anmeldeseite",
"resetPassword.text.resetPassword": "Passwort zurücksetzen",
"resetPassword.text.enterNewPassword": "Gib dein neues Passwort ein",
@@ -72,20 +72,20 @@ export default {
"account.card.password.title": "Passwort",
"account.card.password.old": "Altes Passwort",
"account.card.password.new": "Neues Passwort",
"account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.",
"account.card.password.noPasswordSet": "Du hast kein Passwort erstellt. Wenn Du Dich mit E-Mail und Passwort anmelden möchtest, musst Du ein Passwort festlegen.",
"account.notify.password.success": "Passwort erfolgreich geändert",
"account.card.oauth.title": "Social login",
"account.card.oauth.title": "Anmeldung über soziale Netzwerke",
"account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google",
"account.card.oauth.microsoft": "Microsoft",
"account.card.oauth.discord": "Discord",
"account.card.oauth.oidc": "OpenID",
"account.card.oauth.link": "Link",
"account.card.oauth.unlink": "Unlink",
"account.card.oauth.unlinked": "Unlinked",
"account.modal.unlink.title": "Unlink account",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
"account.notify.oauth.unlinked.success": "Unlinked successfully",
"account.card.oauth.link": "Verknüpfen",
"account.card.oauth.unlink": "Verknüpfung aufheben",
"account.card.oauth.unlinked": "Verknüpfung aufgehoben",
"account.modal.unlink.title": "Kontoverknüpfung aufheben",
"account.modal.unlink.description": "Das Entfernen der Verknüpfung mit Deinem sozialen Konten kann dazu führen, dass Du Dein Konto verlierst, wenn Du Dich nicht an Deinen Benutzernamen und Dein Passwort erinnerst.",
"account.notify.oauth.unlinked.success": "Verknüpfung erfolgreich aufgehoben",
"account.card.security.title": "Sicherheit",
"account.card.security.totp.enable.description": "Gib dein aktuelles Passwort ein, um TOTP zu aktivieren",
"account.card.security.totp.disable.description": "Gib dein aktuelles Passwort ein, um TOTP zu deaktivieren",
@@ -214,7 +214,7 @@ export default {
"upload.modal.not-signed-in-description": "Du wirst deine Freigabe nicht löschen können oder die Besucheranzahl sehen.",
"upload.modal.expires.never": "niemals",
"upload.modal.expires.never-long": "Läuft nicht ab",
"upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.",
"upload.modal.expires.error.too-long": "Ablauf überschreitet das maximale Ablaufdatum von {max}.",
"upload.modal.link.label": "Link",
"upload.modal.expires.label": "Gültig bis",
"upload.modal.expires.minute-singular": "Minute",
@@ -262,13 +262,13 @@ export default {
"share.table.name": "Name",
"share.table.size": "Größe",
"share.modal.file-preview.error.not-supported.title": "Vorschau wird nicht unterstützt",
"share.modal.file-preview.error.not-supported.description": "Eine Vorschau für diesen Dateityp wird nicht unterstützt. Bitte lade die Datei herunter, um sie anzuzeigen.",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Edit {shareId}",
"share.edit.append-upload": "Append file",
"share.edit.notify.generic-error": "An error occurred while finishing your share.",
"share.edit.notify.save-success": "Share updated successfully",
"share.edit.title": "{shareId} bearbeiten",
"share.edit.append-upload": "Datei anfügen",
"share.edit.notify.generic-error": "Während der Erstellung der Freigabe ist ein Fehler aufgetreten.",
"share.edit.notify.save-success": "Freigabe erfolgreich aktualisiert",
// END /share/[id]/edit
// /admin/config
"admin.config.title": "Einstellungen",
@@ -276,7 +276,7 @@ export default {
"admin.config.category.share": "Freigabe",
"admin.config.category.email": "E-Mail",
"admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login",
"admin.config.category.oauth": "OAuth-Anmeldung",
"admin.config.general.app-name": "App-Name",
"admin.config.general.app-name.description": "Name der Applikation",
"admin.config.general.app-url": "App-URL",
@@ -308,8 +308,8 @@ export default {
"admin.config.share.allow-registration.description": "Gibt an, ob eine Registrierung erlaubt ist",
"admin.config.share.allow-unauthenticated-shares": "Nicht authentifizierte Freigaben erlauben",
"admin.config.share.allow-unauthenticated-shares.description": "Gibt an, ob nicht authentifizierte Benutzer Freigaben erstellen können",
"admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.max-expiration": "Max. Ablaufdatum",
"admin.config.share.max-expiration.description": "Maximale Ablaufzeit in Stunden. Auf 0 setzen, um kein Ablaufdatum zu definieren.",
"admin.config.share.max-size": "Maximale Größe",
"admin.config.share.max-size.description": "Maximale Größe einer Freigabe in Bytes",
"admin.config.share.zip-compression-level": "Zip Komprimierungsstufe",
@@ -327,63 +327,71 @@ export default {
"admin.config.smtp.password": "Passwort",
"admin.config.smtp.password.description": "Passwort des SMTP-Servers",
"admin.config.smtp.button.test": "Test-E-Mail senden",
"admin.config.oauth.allow-registration": "Allow registration",
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
"admin.config.oauth.ignore-totp": "Ignore TOTP",
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
"admin.config.oauth.allow-registration": "Registrierung erlauben",
"admin.config.oauth.allow-registration.description": "Benutzern erlauben, sich über Soziale Netzwerke zu registrieren",
"admin.config.oauth.ignore-totp": "TOTP ignorieren",
"admin.config.oauth.ignore-totp.description": "Gibt an, ob TOTP ignoriert werden soll, wenn sich der Benutzer über Soziale Netzwerke anmeldet",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
"admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
"admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
"admin.config.oauth.github-enabled.description": "GitHub Anmeldung erlaubt",
"admin.config.oauth.github-client-id": "GitHub Client-ID",
"admin.config.oauth.github-client-id.description": "Client-ID der GitHub OAuth-App",
"admin.config.oauth.github-client-secret": "GitHub Client-Secret",
"admin.config.oauth.github-client-secret.description": "Client-Secret der GitHub OAuth-App",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
"admin.config.oauth.google-client-id": "Google Client ID",
"admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app",
"admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "Client secret of the Google OAuth app",
"admin.config.oauth.google-enabled.description": "Google Anmeldung erlaubt",
"admin.config.oauth.google-client-id": "Google Client-ID",
"admin.config.oauth.google-client-id.description": "Client-ID der Google OAuth-App",
"admin.config.oauth.google-client-secret": "Google Client-Secret",
"admin.config.oauth.google-client-secret.description": "Client-Secret der Google OAuth-App",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.microsoft-enabled.description": "Microsoft Anmeldung erlaubt",
"admin.config.oauth.microsoft-tenant": "Microsoft Mandant",
"admin.config.oauth.microsoft-tenant.description": "Mandant-ID der Microsoft OAuth App\ncommon: Benutzer mit einem persönlichen Microsoft-Konto und einem Arbeits- oder Schulkonto von Microsoft Entra ID können sich in der Anwendung anmelden.\norganizations: Nur Benutzer mit Arbeits- oder Schulkonten von Microsoft Entra ID können sich in der Anwendung anmelden.\nconsumers: Nur Benutzer mit einem persönlichen Microsoft-Konto können sich in der Anwendung anmelden.\nDomänenname des Microsoft Entra Mandanten oder die Mandanten-ID im GUID-Format: Nur Benutzer eines bestimmten Microsoft Entra Mandanten (Verzeichnismitglieder mit einem Arbeits- oder Schulkonto oder Verzeichnis Gäste mit einem persönlichen Microsoft-Konto) können sich anmelden.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client-ID",
"admin.config.oauth.microsoft-client-id.description": "Client-ID der Microsoft OAuth-App",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client-Secret",
"admin.config.oauth.microsoft-client-secret.description": "Client-Secret der Microsoft OAuth-App",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID OAuth app",
"admin.config.oauth.oidc-client-id": "OpenID Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID OAuth app",
"admin.config.oauth.discord-enabled.description": "Discord Anmeldung erlaubt",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord Client-ID",
"admin.config.oauth.discord-client-id.description": "Client-ID der Discord OAuth-App",
"admin.config.oauth.discord-client-secret": "Discord Client-Secret",
"admin.config.oauth.discord-client-secret.description": "Client-Secret der Discord OAuth-App",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "OpenID Connect Anmeldung erlaubt",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client-ID",
"admin.config.oauth.oidc-client-id.description": "Client-ID der OpenID Connect OAuth-App",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client-Secret",
"admin.config.oauth.oidc-client-secret.description": "Client-Secret der OpenID Connect OAuth-App",
// 404
"404.description": "Ups, diese Seite existiert nicht.",
"404.button.home": "Zurück zur Startseite",
// error
"error.title": "Error",
"error.title": "Fehler",
"error.description": "Ups!",
"error.button.back": "Zurück",
"error.msg.default": "Etwas ist schief gelaufen.",
"error.msg.access_denied": "You canceled the authentication process, please try again.",
"error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "This {0} account is already linked to another account.",
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
"error.msg.access_denied": "Du hast den Authentifizierungsprozess abgebrochen, bitte versuche es erneut.",
"error.msg.expired_token": "Der Authentifizierungsprozess hat zu lange gedauert, bitte versuche es erneut.",
"error.msg.invalid_token": "Interner Fehler",
"error.msg.no_user": "Der mit diesem {0} Konto verknüpfte Benutzer existiert nicht.",
"error.msg.no_email": "Kann die E-Mail-Adresse von dem Konto {0} nicht abrufen.",
"error.msg.already_linked": "Das Konto {0} ist bereits mit einem anderen Konto verknüpft.",
"error.msg.not_linked": "Das Konto {0} wurde noch nicht mit einem Konto verknüpft.",
"error.msg.unverified_account": "Dieses Konto {0} wurde noch nicht verifiziert, bitte versuchen Sie es nach der Verifikation erneut.",
"error.msg.discord_guild_permission_denied": "Du bist nicht berechtigt, Dich anzumelden.",
"error.msg.cannot_get_user_info": "Deine Benutzerinformationen können nicht von diesem Konto {0} abgerufen werden.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Speichern",
"common.button.create": "Erstellen",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Generieren",
"common.button.done": "Fertig",
"common.text.link": "Link",
"common.text.navigate-to-link": "Link öffnen",
"common.text.or": "oder",
"common.button.go-back": "Zurück",
"common.notify.copied": "Dein Link wurde in die Zwischenablage kopiert",

View File

@@ -0,0 +1,420 @@
export default {
// Navbar
"navbar.upload": "Μεταφόρτωση",
"navbar.signin": "Είσοδος",
"navbar.home": "Αρχική",
"navbar.signup": "Εγγραφή",
"navbar.links.shares": "",
"navbar.links.reverse": "Αντίστροφος σύνδεσμος κοινής χρήσης",
"navbar.avatar.account": "Ο λογαριασμός μου",
"navbar.avatar.admin": "Διαχείριση",
"navbar.avatar.signout": "Αποσύνδεση",
// END navbar
// /
"home.title": "Μια πλατφόρμα κοινής χρήσης αρχείων <h>σε ιδιωτική εγκατάσταση</h>.",
"home.description": "Θέλετε πραγματικά να δώσετε τα προσωπικά σας αρχεία στο χέρι τρίτων όπως WeTransfer?",
"home.bullet.a.name": "Ιδιωτική εγκατάσταση",
"home.bullet.a.description": "Φιλοξενήστε το Pingvin Share στο δικό σας μηχάνημα.",
"home.bullet.b.name": "Απόρρητο",
"home.bullet.b.description": "Τα αρχεία σας είναι αρχεία σας και δεν πρέπει ποτέ να μπείτε στα χέρια τρίτων.",
"home.bullet.c.name": "Χωρίς όριο μεγέθους αρχείου",
"home.bullet.c.description": "Ανεβάστε όσο μεγάλα αρχεία θέλετε. Μόνο ο σκληρός σας δίσκος θα είναι το όριό σας.",
"home.button.start": "Ας αρχίσουμε",
"home.button.source": "Πηγαίος κώδικας",
// END /
// /auth/signin
"signin.title": "Καλώς ήρθατε ξανά",
"signin.description": "Δεν έχετε ακόμα λογαριασμό;",
"signin.button.signup": "Εγγραφή",
"signin.input.email-or-username": "E-mail ή όνομα χρήστη",
"signin.input.email-or-username.placeholder": "Το email ή το όνομα χρήστη",
"signin.input.password": "Κωδικόs πρόσβασης",
"signin.input.password.placeholder": "Ο κωδικός πρόσβασής σας",
"signin.button.submit": "Είσοδος",
"signIn.notify.totp-required.title": "Απαιτείται έλεγχος ταυτότητας δύο παραγόντων.",
"signIn.notify.totp-required.description": "Παρακαλώ εισάγετε τον κωδικό 2FA.",
"signIn.oauth.or": "Ή",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft",
"signIn.oauth.discord": "Discord",
"signIn.oauth.oidc": "OpenID",
// END /auth/signin
// /auth/signup
"signup.title": "Δημιουργία λογαριασμού",
"signup.description": "Έχετε ήδη λογαριασμό;",
"signup.button.signin": "Είσοδος",
"signup.input.username": "Όνομα χρήστη",
"signup.input.username.placeholder": "Το όνομα χρήστη σας",
"signup.input.email": "E-mail",
"signup.input.email.placeholder": "Το email σας",
"signup.button.submit": "Ας ξεκινήσουμε",
// END /auth/signup
// /auth/totp
"totp.title": "Ταυτοποίηση TOTP",
"totp.button.signIn": "Είσοδος",
// END /auth/totp
// /auth/reset-password
"resetPassword.title": "Ξεχάσατε τον κωδικό σας;",
"resetPassword.description": "Ελέγξτε το e-mail σας για να κάνετε επαναφορά του κωδικού πρόσβασής σας.",
"resetPassword.notify.success": "Εισάγετε το email σας για επαναφορά κωδικού.",
"resetPassword.button.back": "Πίσω στη σελίδα εισόδου",
"resetPassword.text.resetPassword": "Επαναφορά κωδικού πρόσβασης",
"resetPassword.text.enterNewPassword": "Εισάγετε το νέο σας κωδικό",
"resetPassword.input.password": "Νέος κωδικός",
"resetPassword.notify.passwordReset": "Η επαναφορά του κωδικού πρόσβασης σας ολοκληρώθηκε με επιτυχία!",
// /account
"account.title": "Ο λογαριασμός μου",
"account.card.info.title": "Πληροφορίες λογαριασμού",
"account.card.info.username": "Όνομα χρήστη",
"account.card.info.email": "E-mail",
"account.notify.info.success": "Ο λογαριασμός ενημερώθηκε επιτυχώς!",
"account.card.password.title": "Κωδικόs πρόσβασης",
"account.card.password.old": "Παλιός κωδικός",
"account.card.password.new": "Νέος κωδικός",
"account.card.password.noPasswordSet": "Δεν έχετε ορίσει κωδικό πρόσβασης. Αν θέλετε να συνδεθείτε με email και κωδικό πρόσβασης, πρέπει να ορίσετε έναν κωδικό πρόσβασης.",
"account.notify.password.success": "Ο κωδικός πρόσβασης άλλαξε επιτυχώς",
"account.card.oauth.title": "Σύνδεση με λογαριασμό μέσων κοινωνικού δικτύου",
"account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google",
"account.card.oauth.microsoft": "Microsoft",
"account.card.oauth.discord": "Discord",
"account.card.oauth.oidc": "OpenID",
"account.card.oauth.link": "Σύνδεσμος",
"account.card.oauth.unlink": "Αποσύνδεση",
"account.card.oauth.unlinked": "Αποσυνδεδεμένο",
"account.modal.unlink.title": "Αποσύνδεση Λογαριασμού",
"account.modal.unlink.description": "Η αποσύνδεση των κοινωνικών λογαριασμών σας μπορεί να προκαλέσει απώλεια του λογαριασμού σας αν δε θυμάστε το όνομα χρήστη και τον κωδικό πρόσβασης.",
"account.notify.oauth.unlinked.success": "Επιτυχής αποσύνδεση",
"account.card.security.title": "Ασφάλεια",
"account.card.security.totp.enable.description": "Εισάγετε τον τρέχοντα κωδικό σας για να ξεκινήσετε την ενεργοποίηση του TOTP",
"account.card.security.totp.disable.description": "Εισάγετε τον τρέχοντα κωδικό πρόσβασης για να απενεργοποιήσετε το TOTP",
"account.card.security.totp.button.start": "Έναρξη",
"account.modal.totp.title": "Ενεργοποίηση TOTP",
"account.modal.totp.step1": "Βήμα 1: Προσθέστε τον έλεγχο ταυτότητας",
"account.modal.totp.step2": "Βήμα 2: Επικυρώστε τον κωδικό σας",
"account.modal.totp.enterManually": "Χειροκίνητη εισαγωγή",
"account.modal.totp.code": "Κώδικας",
"account.modal.totp.clickToCopy": "Κάνε κλικ για αντιγραφή",
"account.modal.totp.verify": "Επαλήθευση",
"account.notify.totp.disable": "Το TOTP απενεργοποιήθηκε επιτυχώς",
"account.notify.totp.enable": "Το TOTP ενεργοποιήθηκε επιτυχώς",
"account.card.language.title": "Γλώσσα",
"account.card.language.description": "Η μετάφραση της εφαρμογής γίνεται από την εθελοντές της κοινότητας. Μερικές γλώσσες μπορεί να είναι ελλιπείς.",
"account.card.color.title": "Συνδυασμός χρωμάτων",
// ThemeSwitcher.tsx
"account.theme.dark": "Σκοτεινό",
"account.theme.light": "Φωτεινό",
"account.theme.system": "Σύστημα",
"account.button.delete": "Διαγραφή Λογαριασμού",
"account.modal.delete.title": "Διαγραφή Λογαριασμού",
"account.modal.delete.description": "Θέλετε πραγματικά να διαγράψετε το λογαριασμό σας, συμπεριλαμβανομένων όλων των ενεργών μετοχών σας?",
// END /account
// /account/shares
"account.shares.title": "Οι κοινοποιήσεις μου",
"account.shares.title.empty": "Είναι κενό εδώ 👀",
"account.shares.description.empty": "Δεν διαμοιράζεστε τίποτα.",
"account.shares.button.create": "Δημιουργία",
"account.shares.info.title": "Πληροφορίες διαμοιρασμού",
"account.shares.table.id": "Αναγνωριστικό",
"account.shares.table.name": "Όνομα",
"account.shares.table.description": "Περιγραφή",
"account.shares.table.visitors": "Επισκέπτες",
"account.shares.table.expiresAt": "Λήξη",
"account.shares.table.createdAt": "Δημιουργήθηκε",
"account.shares.table.size": "Μέγεθος",
"account.shares.modal.share-informations": "Πληροφορίες διαμοιρασμού",
"account.shares.modal.share-link": "Κοινοποίηση συνδέσμου",
"account.shares.modal.delete.title": "Διαγραφή κοινοποίησης {share}",
"account.shares.modal.delete.description": "Θέλετε πραγματικά να διαγράψετε αυτό το διαμοιρασμό;",
// END /account/shares
// /account/reverseShares
"account.reverseShares.title": "Αντίστροφες κοινοποιήσεις",
"account.reverseShares.description": "Μια αντίστροφη κοινοποίηση σάς επιτρέπει να δημιουργήσετε μια μοναδική διεύθυνση URL που επιτρέπει σε εξωτερικούς χρήστες να δημιουργήσουν μια κοινή χρήση.",
"account.reverseShares.title.empty": "Είναι κενό εδώ 👀",
"account.reverseShares.description.empty": "Δεν έχετε καμία αντίστροφη μετοχή.",
// showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Δημιουργία αντίστροφης κοινοποίησης",
"account.reverseShares.modal.expiration.label": "Λήξη",
"account.reverseShares.modal.expiration.minute-singular": "Λεπτό",
"account.reverseShares.modal.expiration.minute-plural": "Λεπτά",
"account.reverseShares.modal.expiration.hour-singular": "Ώρα",
"account.reverseShares.modal.expiration.hour-plural": "Ώρες",
"account.reverseShares.modal.expiration.day-singular": "Ημέρα",
"account.reverseShares.modal.expiration.day-plural": "Ημέρες",
"account.reverseShares.modal.expiration.week-singular": "Εβδομάδα",
"account.reverseShares.modal.expiration.week-plural": "Εβδομάδες",
"account.reverseShares.modal.expiration.month-singular": "Μήνας",
"account.reverseShares.modal.expiration.month-plural": "Μήνες",
"account.reverseShares.modal.expiration.year-singular": "Έτος",
"account.reverseShares.modal.expiration.year-plural": "Έτη",
"account.reverseShares.modal.max-size.label": "Μέγιστο μέγεθος κοινοποίησης",
"account.reverseShares.modal.send-email": "Αποστολή ειδοποιήσεων με email",
"account.reverseShares.modal.send-email.description": "Στείλτε μια ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου όταν δημιουργείται ένας διαμοιρασμός με αυτόν τον σύνδεσμο ανάστροφης κοινοποίησης.",
"account.reverseShares.modal.max-use.label": "Μέγιστες χρήσεις",
"account.reverseShares.modal.max-use.description": "Ο μέγιστος αριθμός που μπορεί να χρησιμοποιηθεί αυτό το URL για τη δημιουργία ενός διαμοιρασμού.",
"account.reverseShare.never-expires": "Αυτός ο αντίστροφος διαμοιρασμός δε λήγει.",
"account.reverseShare.expires-on": "Αυτός ο αντίστροφος διαμοιρασμός θα λήξει {expiration}.",
"account.reverseShares.table.no-shares": "Δε δημιουργήθηκαν κοινοποιήσεις ακόμα",
"account.reverseShares.table.count.singular": "διαμοιρασμός",
"account.reverseShares.table.count.plural": "διαμοιρασμοί",
"account.reverseShares.table.shares": "Διαμοιρασμοί",
"account.reverseShares.table.remaining": "Υπόλοιπες χρήσεις",
"account.reverseShares.table.max-size": "Μέγιστο μέγεθος κοινοποίησης",
"account.reverseShares.table.expires": "Λήγει στις",
"account.reverseShares.modal.reverse-share-link": "Αντίστροφος σύνδεσμος κοινής χρήσης",
"account.reverseShares.modal.delete.title": "Διαγραφή αντίστροφης κοινοποίησης",
"account.reverseShares.modal.delete.description": "Θέλετε πραγματικά να διαγράψετε αυτή την αντίστροφη κοινοποίηση; Εάν το κάνετε, οι συνδεδεμένες κοινοποιήσεις θα διαγραφούν επίσης.",
// END /account/reverseShares
// /admin
"admin.title": "Διαχείριση",
"admin.button.users": "Διαχείριση χρηστών",
"admin.button.config": "Διαμόρφωση",
"admin.version": "Έκδοση",
// END /admin
// /admin/users
"admin.users.title": "Διαχείριση χρηστών",
"admin.users.table.username": "Όνομα χρήστη",
"admin.users.table.email": "E-mail",
"admin.users.table.admin": "Διαχειριστής",
"admin.users.edit.update.title": "Ενημέρωση χρήστη {username}",
"admin.users.edit.update.admin-privileges": "Δικαιώματα διαχειριστή",
"admin.users.edit.update.change-password.title": "Αλλαγή κωδικού πρόσβασής",
"admin.users.edit.update.change-password.field": "Νέος κωδικός πρόσβασης",
"admin.users.edit.update.change-password.button": "Αποθήκευση νέου κωδικού πρόσβασης",
"admin.users.edit.update.notify.password.success": "Ο κωδικός πρόσβασης άλλαξε επιτυχώς",
"admin.users.edit.delete.title": "Διαγραφή χρήστη {username}",
"admin.users.edit.delete.description": "Θέλετε να διαγράψετε το χρήστη και όλες τις κοινοποιήσεις του;",
// showCreateUserModal.tsx
"admin.users.modal.create.title": "Δημιουργία χρήστη",
"admin.users.modal.create.username": "Όνομα χρήστη",
"admin.users.modal.create.email": "E-mail",
"admin.users.modal.create.password": "Κωδικός πρόσβασης",
"admin.users.modal.create.manual-password": "Χειροκίνητος ορισμός κωδικού πρόσβασης",
"admin.users.modal.create.manual-password.description": "Εάν δεν είναι επιλεγμένο, ο χρήστης θα λάβει ένα email με ένα σύνδεσμο για να ορίσει τον κωδικό πρόσβασής του.",
"admin.users.modal.create.admin": "Δικαιώματα διαχειριστή",
"admin.users.modal.create.admin.description": "Αν ενεργοποιηθεί, ο χρήστης θα μπορεί να έχει πρόσβαση στον πίνακα διαχείρισης.",
// END /admin/users
// /upload
"upload.title": "Μεταφόρτωση",
"upload.notify.generic-error": "Παρουσιάστηκε σφάλμα κατά την ολοκλήρωση της κοινής χρήσης σας.",
"upload.notify.count-failed": "Τα αρχεία {count} απέτυχαν να μεταφορτώσουν. Δοκιμάστε ξανά.",
// Dropzone.tsx
"upload.dropzone.title": "Μεταφόρτωση αρχείων",
"upload.dropzone.description": "Σύρετε και αποθέστε αρχεία εδώ για να ξεκινήσει η κοινή χρήση σας. Μπορούμε να δεχτούμε μόνο αρχεία που είναι λιγότερο από {maxSize} συνολικά.",
"upload.dropzone.notify.file-too-big": "Τα αρχεία σας υπερβαίνουν το μέγιστο μέγεθος κοινής χρήσης του {maxSize}.",
// FileList.tsx
"upload.filelist.name": "Όνομα",
"upload.filelist.size": "Μέγεθος",
// showCreateUploadModal.tsx
"upload.modal.title": "Δημιουργία Κοινοποίησης",
"upload.modal.link.error.invalid": "Μπορεί να περιέχει μόνο γράμματα, αριθμούς, κάτω παύλες και παύλες",
"upload.modal.link.error.taken": "Αυτός ο σύνδεσμος χρησιμοποιείται ήδη",
"upload.modal.not-signed-in": "Δεν είστε συνδεδεμένος/η",
"upload.modal.not-signed-in-description": "Δεν θα μπορείτε να διαγράψετε την κοινή χρήση σας χειροκίνητα και να δείτε την αρίθμηση επισκεπτών.",
"upload.modal.expires.never": "ποτέ",
"upload.modal.expires.never-long": "Χωρίς λήξη",
"upload.modal.expires.error.too-long": "Η λήξη υπερβαίνει τη μέγιστη ημερομηνία λήξης {max}.",
"upload.modal.link.label": "Σύνδεσμος",
"upload.modal.expires.label": "Λήξη",
"upload.modal.expires.minute-singular": "Λεπτό",
"upload.modal.expires.minute-plural": "Λεπτά",
"upload.modal.expires.hour-singular": "Ώρα",
"upload.modal.expires.hour-plural": "Ώρες",
"upload.modal.expires.day-singular": "Ημέρα",
"upload.modal.expires.day-plural": "Ημέρες",
"upload.modal.expires.week-singular": "Εβδομάδα",
"upload.modal.expires.week-plural": "Εβδομάδες",
"upload.modal.expires.month-singular": "Μήνας",
"upload.modal.expires.month-plural": "Μήνες",
"upload.modal.expires.year-singular": "Έτος",
"upload.modal.expires.year-plural": "Έτη",
"upload.modal.accordion.description.title": "Περιγραφή",
"upload.modal.accordion.description.placeholder": "Σημείωση για τους παραλήπτες αυτής της κοινοποίησης",
"upload.modal.accordion.email.title": "Αποδέκτες email",
"upload.modal.accordion.email.placeholder": "Εισάγετε αποδέκτες email",
"upload.modal.accordion.email.invalid-email": "Μη έγκυρη διεύθυνση e-mail",
"upload.modal.accordion.security.title": "Επιλογές ασφαλείας",
"upload.modal.accordion.security.password.label": "Προστασία με κωδικό πρόσβασης",
"upload.modal.accordion.security.password.placeholder": "Χωρίς Κωδικό",
"upload.modal.accordion.security.max-views.label": "Μέγιστος αριθμός εμφανίσεων",
"upload.modal.accordion.security.max-views.placeholder": "Χωρίς όριο",
// showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "Αυτός ο διαμοιρασμός δεν λήγει.",
"upload.modal.completed.expires-on": "Αυτός ο διαμοιρασμός θα λήξει {expiration}.",
"upload.modal.completed.share-ready": "Κοινοποίηση έτοιμου",
// END /upload
// /share/[id]
"share.title": "Διαμοιρασμός {shareId}",
"share.description": "Σας προωθώ αρχεία προς κοινοποίηση.",
"share.error.visitor-limit-exceeded.title": "Υπέρβαση ορίου επισκέπτη",
"share.error.visitor-limit-exceeded.description": "Ξεπεράστηκε το όριο επισκεπτών σε αυτή την κοινοποίηση.",
"share.error.removed.title": "Κοινοποίηση αφαιρέθηκε",
"share.error.not-found.title": "Η κοινοποίηση δε βρέθηκε",
"share.error.not-found.description": "Η κοινοποίηση που ψάχνετε δεν υπάρχει.",
"share.modal.password.title": "Απαιτείται κωδικός",
"share.modal.password.description": "Για να αποκτήσετε πρόσβαση σε αυτή την κοινοποίηση εισάγετε τον κωδικό πρόσβασης.",
"share.modal.password": "Κωδικός πρόσβασης",
"share.modal.error.invalid-password": "Μη έγκυρος κωδικός πρόσβασης",
"share.button.download-all": "Λήψη όλων",
"share.notify.download-all-preparing": "Αυτός ο διαμοιρασμός βρίσκεται σε επεξεργασία. Προσπαθήστε ξανά σε λίγο.",
"share.modal.file-link": "Σύνδεσμος αρχείου",
"share.table.name": "Όνομα",
"share.table.size": "Μέγεθος",
"share.modal.file-preview.error.not-supported.title": "Η προεπισκόπηση δεν υποστηρίζεται",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Ενημέρωση {shareId}",
"share.edit.append-upload": "Προσθήκη αρχείου",
"share.edit.notify.generic-error": "Παρουσιάστηκε σφάλμα κατά την ολοκλήρωση του διαμοιρασμού.",
"share.edit.notify.save-success": "Ο διαμοιρασμός ενημερώθηκε επιτυχώς",
// END /share/[id]/edit
// /admin/config
"admin.config.title": "Διαμόρφωση",
"admin.config.category.general": "Γενικά",
"admin.config.category.share": "Διαμοιρασμός",
"admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Σύνδεση με λογαριασμό μέσων κοινωνικού δικτύου",
"admin.config.general.app-name": "Όνομα εφαρμογής",
"admin.config.general.app-name.description": "Ονομασία της εφαρμογής",
"admin.config.general.app-url": "URL Εφαρμογής",
"admin.config.general.app-url.description": "Η διεύθυνση URL όπου το Pingvin Share είναι διαθέσιμο",
"admin.config.general.show-home-page": "Εμφάνιση αρχικής σελίδας",
"admin.config.general.show-home-page.description": "Εάν θα εμφανίζεται η αρχική σελίδα",
"admin.config.general.logo": "Λογότυπο",
"admin.config.general.logo.description": "Αλλάξτε το λογότυπό σας ανεβάζοντας μια νέα εικόνα. Η εικόνα πρέπει να είναι PNG και αναλογία 1:1.",
"admin.config.general.logo.placeholder": "Επιλέξτε εικόνα",
"admin.config.email.enable-share-email-recipients": "Ενεργοποίηση κοινής χρήσης μέσω email",
"admin.config.email.enable-share-email-recipients.description": "Εάν θα ενεργοποιηθεί η κοινή χρήση μέσω email. Δυνατή μόνον με την ενεργοποίηση SMTP.",
"admin.config.email.share-recipients-subject": "Θέμα στο email διαμοιρασμού",
"admin.config.email.share-recipients-subject.description": "Το θέμα του email διαμοιρασμού που θα φτάσει στον παραλήπτη.",
"admin.config.email.share-recipients-message": "Το θέμα του email για τον διαμοιρασμό που θα φτάσει στον παραλήπτη ",
"admin.config.email.share-recipients-message.description": "Μήνυμα που αποστέλλεται στους παραλήπτες κοινής χρήσης. Διαθέσιμες μεταβλητές:\n {creator} - Το όνομα χρήστη του δημιουργού της κοινής χρήσης\n {shareUrl} - Η διεύθυνση URL της κοινής χρήσης\n {desc} - Η περιγραφή της κοινής χρήσης\n {expires} - Η ημερομηνία λήξης της κοινής χρήσης\n Οι μεταβλητές θα αντικατασταθούν με την πραγματική τιμή.",
"admin.config.email.reverse-share-subject": "Θέμα email αντίστροφου διαμοιρασμού",
"admin.config.email.reverse-share-subject.description": "Θέμα του ηλεκτρονικού ταχυδρομείου που αποστέλλεται όταν κάποιος δημιούργησε έναν αντίστροφο διαμοιρασμό.",
"admin.config.email.reverse-share-message": "Μήνυμα email αντίστροφου διαμοιρασμού",
"admin.config.email.reverse-share-message.description": "Μήνυμα που αποστέλλεται όταν κάποιος δημιουργεί έναν σύνδεσμο αντίστροφου διαμοιρασμού. Το {shareUrl} θα αντικατασταθεί με το όνομα του δημιουργού και τη διεύθυνση URL κοινής χρήσης.",
"admin.config.email.reset-password-subject": "Θέμα μηνύματος επαναφοράς κωδικού πρόσβασης",
"admin.config.email.reset-password-subject.description": "Θέμα του email που αποστέλλεται όταν ένας χρήστης ζητήσει επαναφορά κωδικού πρόσβασης.",
"admin.config.email.reset-password-message": "Κείμενο μηνύματος επαναφοράς κωδικού πρόσβασης",
"admin.config.email.reset-password-message.description": "Μήνυμα που αποστέλλεται όταν ένας χρήστης ζητά επαναφορά κωδικού πρόσβασης. Το {url} θα αντικατασταθεί με τη διεύθυνση URL επαναφοράς κωδικού πρόσβασης.",
"admin.config.email.invite-subject": "Θέμα μηνύματος πρόσκλησης",
"admin.config.email.invite-subject.description": "Θέμα του email που αποστέλλεται όταν ένας διαχειριστής προσκαλεί έναν χρήστη.",
"admin.config.email.invite-message": "Μήνυμα μηνύματος πρόσκλησης",
"admin.config.email.invite-message.description": "Το μήνυμα που αποστέλλεται όταν ένας διαχειριστής προσκαλεί έναν χρήστη. Το {url} θα αντικατασταθεί με το URL πρόσκλησης και το {password} με τον κωδικό πρόσβασης.",
"admin.config.share.allow-registration": "Να επιτρέπεται η εγγραφή",
"admin.config.share.allow-registration.description": "Αν επιτρέπεται η εγγραφή",
"admin.config.share.allow-unauthenticated-shares": "Επιτρέψτε κοινές χρήσεις χωρίς έλεγχο ταυτότητας",
"admin.config.share.allow-unauthenticated-shares.description": "Εάν οι χρήστες χωρίς έλεγχο ταυτότητας μπορούν να δημιουργήσουν κοινόχρηστα στοιχεία",
"admin.config.share.max-expiration": "Μέγιστη λήξη",
"admin.config.share.max-expiration.description": "Μέγιστη λήξη κοινής χρήσης σε ώρες. Ορίστε το 0 για να επιτρέψετε απεριόριστη λήξη.",
"admin.config.share.max-size": "Μέγιστο μέγεθος",
"admin.config.share.max-size.description": "Μέγιστο μέγεθος κοινοποίησης σε bytes",
"admin.config.share.zip-compression-level": "Βαθμός συμπίεσης ZIP",
"admin.config.share.zip-compression-level.description": "Προσαρμόστε το βαθμό συμπίεσης για να εξισορροπηθεί το μέγεθος του αρχείου και η ταχύτητα επεξεργασίας. Έγκυρες τιμές κυμαίνονται από 0 έως 9, με 0 χωρίς συμπίεση και 9 μέγιστη συμπίεση.",
"admin.config.smtp.enabled": "Ενεργοποιημένο",
"admin.config.smtp.enabled.description": "Εάν η λειτουργία SMTP είναι ενεργοποιημένη. Ενεργοποιήστε τη μόνον όταν ορίσετε σωστά τις παραμέτρους που ακολουθούν.",
"admin.config.smtp.host": "Εξυπηρετητής",
"admin.config.smtp.host.description": "SMTP εξυπηρετητής",
"admin.config.smtp.port": "Θύρα",
"admin.config.smtp.port.description": "SMTP θύρα",
"admin.config.smtp.email": "Email",
"admin.config.smtp.email.description": "Διεύθυνση email από όπου αποστέλλονται τα μηνύματα",
"admin.config.smtp.username": "Όνομα χρήστη",
"admin.config.smtp.username.description": "Όνομα χρήστη στον SMTP εξυπηρετητή",
"admin.config.smtp.password": "Κωδικός πρόσβασης",
"admin.config.smtp.password.description": "Κωδικός πρόσβασης στον εξυπηρετητή SMTP",
"admin.config.smtp.button.test": "Αποστολή δοκιμαστικού email",
"admin.config.oauth.allow-registration": "Να επιτρέπεται η εγγραφή",
"admin.config.oauth.allow-registration.description": "Επιτρέψτε στους χρήστες να εγγραφούν μέσω λογαριασμών κοινωνικής δικτύωσης",
"admin.config.oauth.ignore-totp": "Παράβλεψη TOTP",
"admin.config.oauth.ignore-totp.description": "Αν θα αγνοηθεί το TOTP όταν ο χρήστης χρησιμοποιεί την κοινωνική σύνδεση",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Αν είναι ενεργοποιημένη η σύνδεση GitHub",
"admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "Αναγνωριστικό πελάτη της εφαρμογής GitHub OAuth",
"admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Αν θα είναι ενεργοποιημένη η σύνδεση Google",
"admin.config.oauth.google-client-id": "Αναγνωριστικό Πελάτη Google",
"admin.config.oauth.google-client-id.description": "Αναγνωριστικό πελάτη της εφαρμογής Google OAuth",
"admin.config.oauth.google-client-secret": "Google κωδικός",
"admin.config.oauth.google-client-secret.description": "Κωδικός της εφαρμογής Google OAuth",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Αν είναι ενεργοποιημένη η σύνδεση της Microsoft",
"admin.config.oauth.microsoft-tenant": "Αναγνωριστικό Microsoft",
"admin.config.oauth.microsoft-tenant.description": "Αναγνωριστικό για την εφαρμογή Microsoft OAuth\nΚοινή: Οι χρήστες με προσωπικό λογαριασμό Microsoft και λογαριασμό εργασίας ή σχολείου από το Microsoft Entra ID μπορούν να συνδεθούν στην εφαρμογή.\nΟργανισμοί: Μόνο χρήστες με λογαριασμούς εργασίας ή σχολείου από το Microsoft Entra ID μπορούν να συνδεθούν στην εφαρμογή.\nΚαταναλωτές: Μόνο οι χρήστες με προσωπικό λογαριασμό Microsoft μπορούν να συνδεθούν στην εφαρμογή.\nΜε όνομα τομέα του μισθωτή Microsoft Entra ή το αναγνωριστικό μισθωτή σε μορφή GUID: Μόνο χρήστες από έναν συγκεκριμένο μισθωτή της Microsoft Entra (μέλη καταλόγου με λογαριασμό εργασίας ή σχολείου ή επισκέπτες καταλόγου με προσωπικό λογαριασμό Microsoft) μπορούν να συνδεθούν στην εφαρμογή.",
"admin.config.oauth.microsoft-client-id": "Αναγνωριστικό πελάτη Microsoft",
"admin.config.oauth.microsoft-client-id.description": "Αναγνωριστικό πελάτη της εφαρμογής Microsoft OAuth",
"admin.config.oauth.microsoft-client-secret": "Μυστικό πελάτη Microsoft",
"admin.config.oauth.microsoft-client-secret.description": "Μυστικό πελάτη της εφαρμογής Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Αν είναι ενεργοποιημένη η σύνδεση στο Discord",
"admin.config.oauth.discord-limited-guild": "Αναγνωριστικό διακομιστή περιορισμένης ισχύος Discord",
"admin.config.oauth.discord-limited-guild.description": "Περιορισμός σύνδεσης σε χρήστες σε ένα συγκεκριμένο διακομιστή. Αφήστε κενό για να απενεργοποιήσετε.",
"admin.config.oauth.discord-client-id": "Αναγνωριστικό Πελάτη Discord",
"admin.config.oauth.discord-client-id.description": "Αναγνωριστικό πελάτη της εφαρμογής Discord OAuth",
"admin.config.oauth.discord-client-secret": "Μυστικό πελάτη Discord",
"admin.config.oauth.discord-client-secret.description": "Μυστικό πελάτη της εφαρμογής Discord OAuth",
"admin.config.oauth.oidc-enabled": "Σύνδεση OpenID",
"admin.config.oauth.oidc-enabled.description": "Αν είναι ενεργοποιημένη η σύνδεση OpenID",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Αφήστε κενό αν δε γνωρίζετε για αυτή τη ρύθμιση",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "Ουπς. Αυτή η σελίδα δεν υπάρχει.",
"404.button.home": "Πήγαινέ με πίσω",
// error
"error.title": "Σφάλμα",
"error.description": "Ωχ!",
"error.button.back": "Πάμε πίσω",
"error.msg.default": "Κάτι πήγε στραβά.",
"error.msg.access_denied": "Ακυρώσατε τη διαδικασία ελέγχου ταυτότητας, παρακαλώ προσπαθήστε ξανά.",
"error.msg.expired_token": "Η διαδικασία ελέγχου ταυτότητας διήρκεσε πολύ, παρακαλώ προσπαθήστε ξανά.",
"error.msg.invalid_token": "Εσωτερικό σφάλμα",
"error.msg.no_user": "Ο χρήστης που συνδέεται με αυτόν τον λογαριασμό {0} δεν υπάρχει.",
"error.msg.no_email": "Δεν είναι δυνατή η λήψη διεύθυνσης ηλεκτρονικού ταχυδρομείου για αυτόν τον λογαριασμό {0}.",
"error.msg.already_linked": "Αυτός ο λογαριασμός {0} είναι ήδη συνδεδεμένος με άλλο λογαριασμό.",
"error.msg.not_linked": "Αυτός ο λογαριασμός {0} δεν έχει συνδεθεί με κανένα λογαριασμό ακόμα.",
"error.msg.unverified_account": "Αυτός ο λογαριασμός {0} δεν έχει επαληθευτεί, παρακαλώ προσπαθήστε ξανά μετά την επαλήθευση.",
"error.msg.discord_guild_permission_denied": "Δεν σας επιτρέπεται η σύνδεση.",
"error.msg.cannot_get_user_info": "Δεν είναι δυνατή η λήψη των πληροφοριών χρήστη από αυτόν τον λογαριασμό {0}.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "Σύνδεση OpenID",
// Common translations
"common.button.save": "Αποθήκευση",
"common.button.create": "Δημιουργία",
"common.button.submit": "Υποβολή",
"common.button.delete": "Διαγραφή",
"common.button.cancel": "Ακύρωση",
"common.button.confirm": "Επιβεβαίωση",
"common.button.disable": "Απενεργοποίηση",
"common.button.share": "Διαμοιρασμός",
"common.button.generate": "Δημιουργία",
"common.button.done": "Ολοκληρώθηκε",
"common.text.link": "Σύνδεσμος",
"common.text.navigate-to-link": "Μεταβείτε στο σύνδεσμο",
"common.text.or": "ή",
"common.button.go-back": "Επιστροφή",
"common.notify.copied": "Ο σύνδεσμος σας αντιγράφηκε στο πρόχειρο",
"common.success": "Επιτυχία",
"common.error": "Σφάλμα",
"common.error.unknown": "Προέκυψε άγνωστο σφάλμα",
"common.error.invalid-email": "Μη έγκυρη διεύθυνση e-mail",
"common.error.too-short": "Πρέπει να αποτελείται τουλάχιστον {length} χαρακτήρες",
"common.error.too-long": "Πρέπει να αποτελείται το πολύ από {length} χαρακτήρες",
"common.error.exact-length": "Πρέπει να αποτελείται ακριβώς από {length} χαρακτήρες",
"common.error.invalid-number": "Πρέπει να είναι αριθμός",
"common.error.field-required": "Αυτό το πεδίο είναι υποχρεωτικό"
};

View File

@@ -354,7 +354,7 @@ export default {
"share.modal.file-preview.error.not-supported.title": "Preview not supported",
"share.modal.file-preview.error.not-supported.description":
"A preview for thise file type is unsupported. Please download the file to view it.",
"A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
@@ -472,18 +472,22 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID OAuth app",
"admin.config.oauth.oidc-client-id": "OpenID Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "Oops this page doesn't exist.",
@@ -496,15 +500,19 @@ export default {
"error.msg.default": "Something went wrong.",
"error.msg.access_denied": "You canceled the authentication process, please try again.",
"error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "This {0} account is already linked to another account.",
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Save",
@@ -518,6 +526,7 @@ export default {
"common.button.generate": "Generate",
"common.button.done": "Done",
"common.text.link": "Link",
"common.text.navigate-to-link": "Go to the link",
"common.text.or": "or",
"common.button.go-back": "Go back",
"common.notify.copied": "Your link was copied to the clipboard",

View File

@@ -33,7 +33,7 @@ export default {
"signin.button.submit": "Iniciar sesión",
"signIn.notify.totp-required.title": "Se requiere autenticación de dos factores",
"signIn.notify.totp-required.description": "Por favor ingrese su código de autenticación de dos factores",
"signIn.oauth.or": "OR",
"signIn.oauth.or": "O",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft",
@@ -309,7 +309,7 @@ export default {
"admin.config.share.allow-unauthenticated-shares": "Permitir compartir sin iniciar sesión",
"admin.config.share.allow-unauthenticated-shares.description": "Si los usuarios que no han iniciado sesión pueden compartir",
"admin.config.share.max-expiration": "Expiración máxima",
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.max-expiration.description": "Expiración máxima para compartir en horas. Establezca en 0 para permitir una expiración ilimitada.",
"admin.config.share.max-size": "Tamaño máximo",
"admin.config.share.max-size.description": "Tamaño máximo de los archivos, en bytes",
"admin.config.share.zip-compression-level": "Nivel de compresión del Zip",
@@ -327,63 +327,71 @@ export default {
"admin.config.smtp.password": "Contraseña",
"admin.config.smtp.password.description": "Contraseña del servidor SMTP",
"admin.config.smtp.button.test": "Enviar correo de prueba",
"admin.config.oauth.allow-registration": "Allow registration",
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
"admin.config.oauth.ignore-totp": "Ignore TOTP",
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
"admin.config.oauth.allow-registration": "Permitir registro",
"admin.config.oauth.allow-registration.description": "Permitir a los usuarios registrarse mediante login social",
"admin.config.oauth.ignore-totp": "Ignorar TOTP",
"admin.config.oauth.ignore-totp.description": "Ignorar TOTP cuando el usuario utiliza inicio de sesión social",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
"admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
"admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
"admin.config.oauth.github-enabled.description": "Si el inicio de sesión de GitHub está habilitado",
"admin.config.oauth.github-client-id": "ID del Cliente de GitHub",
"admin.config.oauth.github-client-id.description": "ID de cliente de la aplicación OAuth de GitHub",
"admin.config.oauth.github-client-secret": "Palabra secreta del Cliente de GitHub",
"admin.config.oauth.github-client-secret.description": "Secreto de cliente de la aplicación OAuth de GitHub",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
"admin.config.oauth.google-client-id": "Google Client ID",
"admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app",
"admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "Client secret of the Google OAuth app",
"admin.config.oauth.google-enabled.description": "Si el inicio de sesión de Google está habilitado",
"admin.config.oauth.google-client-id": "ID del Cliente de Google",
"admin.config.oauth.google-client-id.description": "ID de cliente de la aplicación de Google OAuth",
"admin.config.oauth.google-client-secret": "Palabra secreta del cliente de Google",
"admin.config.oauth.google-client-secret.description": "Secreto del cliente de la aplicación Google OAuth",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
"admin.config.oauth.microsoft-enabled.description": "Si el inicio de sesión de Microsoft está habilitado",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-id": "ID del cliente de Microsoft",
"admin.config.oauth.microsoft-client-id.description": "ID de cliente de la app OAuth de Microsoft",
"admin.config.oauth.microsoft-client-secret": "Secreto del cliente de Microsoft",
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-enabled.description": "Si el inicio de sesión de Discord está habilitado",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limitar el inicio de sesión a usuarios en un servidor específico. Déjelo en blanco para desactivarlo.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID OAuth app",
"admin.config.oauth.oidc-client-id": "OpenID Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID OAuth app",
"admin.config.oauth.oidc-enabled": "Conexión OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "Oops esta página no existe.",
"404.button.home": "Regrésame al inicio",
// error
"error.title": "Error",
"error.description": "Oops!",
"error.button.back": "Go back",
"error.msg.default": "Something went wrong.",
"error.msg.access_denied": "You canceled the authentication process, please try again.",
"error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "This {0} account is already linked to another account.",
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
"error.description": "¡Ups!",
"error.button.back": "Volver",
"error.msg.default": "Algo ha salido mal.",
"error.msg.access_denied": "Ha cancelado el proceso de autenticación, por favor inténtelo de nuevo.",
"error.msg.expired_token": "El proceso de autenticación ha tardado demasiado, por favor inténtelo de nuevo.",
"error.msg.invalid_token": "Error interno",
"error.msg.no_user": "El usuario vinculado a esta cuenta {0} no existe.",
"error.msg.no_email": "No se puede obtener la dirección de correo electrónico de esta cuenta {0}.",
"error.msg.already_linked": "Esta cuenta {0} ya está vinculada a otra cuenta.",
"error.msg.not_linked": "Esta cuenta {0} aún no ha sido vinculada a ninguna cuenta.",
"error.msg.unverified_account": "Esta cuenta {0} no está verificada, por favor inténtalo de nuevo después de la verificación.",
"error.msg.discord_guild_permission_denied": "No tienes permitido iniciar sesion.",
"error.msg.cannot_get_user_info": "No se puede obtener la información de usuario de la cuenta {0}.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "Conexión OpenID",
// Common translations
"common.button.save": "Guardar",
"common.button.create": "Crear",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Generar",
"common.button.done": "Listo",
"common.text.link": "Enlace",
"common.text.navigate-to-link": "Ir al enlace",
"common.text.or": "o",
"common.button.go-back": "Volver",
"common.notify.copied": "Tu enlace se ha copiado al portapapeles",

View File

@@ -262,7 +262,7 @@ export default {
"share.table.name": "Nimi",
"share.table.size": "Koko",
"share.modal.file-preview.error.not-supported.title": "Esikatselua ei tuettu",
"share.modal.file-preview.error.not-supported.description": "Esikatselua thise tiedostotyypille ei tueta. Ole hyvä ja lataa tiedosto nähdäksesi sen.",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Edit {shareId}",
@@ -353,18 +353,22 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID OAuth app",
"admin.config.oauth.oidc-client-id": "OpenID Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "Hups tätä sivua ei ole olemassa.",
"404.button.home": "Tuo minut takaisin kotiin",
@@ -375,15 +379,19 @@ export default {
"error.msg.default": "Something went wrong.",
"error.msg.access_denied": "You canceled the authentication process, please try again.",
"error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "This {0} account is already linked to another account.",
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Tallenna",
"common.button.create": "Luo",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Luo",
"common.button.done": "Valmis",
"common.text.link": "Linkki",
"common.text.navigate-to-link": "Go to the link",
"common.text.or": "tai",
"common.button.go-back": "Takaisin",
"common.notify.copied": "Linkki kopioitiin leikepöydälle",

View File

@@ -201,7 +201,7 @@ export default {
"upload.notify.count-failed": "{count} fichier(s) na(ont) pas pu être envoyé(s). Veuillez réessayer.",
// Dropzone.tsx
"upload.dropzone.title": "Téléverser des fichiers",
"upload.dropzone.description": "Glissez-déposez des fichiers ici pour commencer votre partage. Ils ne peuvent avoir une taille supérieur à {maxSize} au total.",
"upload.dropzone.description": "Glissez-déposez des fichiers ici pour commencer votre partage. Ils ne peuvent avoir une taille supérieure à {maxSize} au total.",
"upload.dropzone.notify.file-too-big": "Vos fichiers dépassent la taille maximale de {maxSize}.",
// FileList.tsx
"upload.filelist.name": "Nom",
@@ -262,7 +262,7 @@ export default {
"share.table.name": "Nom",
"share.table.size": "Taille",
"share.modal.file-preview.error.not-supported.title": "Aperçu non supporté",
"share.modal.file-preview.error.not-supported.description": "Un aperçu pour ce type de fichier n'est pas pris en charge. Veuillez télécharger le fichier pour le voir.",
"share.modal.file-preview.error.not-supported.description": "Un aperçu de ce type de fichier n'est pas pris en charge. Veuillez télécharger le fichier pour le visualiser.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Modifier {shareId}",
@@ -353,18 +353,22 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Le secret du client de lapplication Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Permettre la connexion via Discord.",
"admin.config.oauth.discord-limited-guild": "ID de serveur restreint Discord",
"admin.config.oauth.discord-limited-guild.description": "Limiter la connexion aux utilisateurs sur un serveur spécifique. Laissez vide pour désactiver.",
"admin.config.oauth.discord-client-id": "ID du client Discord",
"admin.config.oauth.discord-client-id.description": "LID du client de lapplication OAuth Discord",
"admin.config.oauth.discord-client-secret": "Secret du client Discord",
"admin.config.oauth.discord-client-secret.description": "Le secret du client de lapplication OAuth Discord",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Permettre la connexion via OpenID.",
"admin.config.oauth.oidc-enabled": "Connexion OpenID",
"admin.config.oauth.oidc-enabled.description": "Permettre la connexion via OpenID",
"admin.config.oauth.oidc-discovery-uri": "URI de découverte OpenID",
"admin.config.oauth.oidc-discovery-uri.description": "URI de découverte de lapplication OpenID OAuth",
"admin.config.oauth.oidc-discovery-uri.description": "LURI de découverte de la connexion à l'application OpenID OAuth",
"admin.config.oauth.oidc-username-claim": "Revendication du nom dutilisateur OpenID",
"admin.config.oauth.oidc-username-claim.description": "Le champ contenant la revendication du nom dutilisateur dans le jeton OpenID Connect. Laissez vide si vous ne savez pas quoi indiquer.",
"admin.config.oauth.oidc-client-id": "ID du client OpenID",
"admin.config.oauth.oidc-client-id.description": "LID du client de lapplication OAuth OpenID",
"admin.config.oauth.oidc-client-id.description": "LID du client de lapplication OAuth OpenID Connect",
"admin.config.oauth.oidc-client-secret": "Secret du client OpenID",
"admin.config.oauth.oidc-client-secret.description": "Le secret du client de lapplication OAuth OpenID",
"admin.config.oauth.oidc-client-secret.description": "Le secret du client de lapplication OAuth OpenID Connect",
// 404
"404.description": "Désolé, mais cette page nexiste pas.",
"404.button.home": "Retour à laccueil",
@@ -375,15 +379,19 @@ export default {
"error.msg.default": "Quelque chose a mal tourné.",
"error.msg.access_denied": "Vous avez annulé le processus dauthentification, veuillez réessayer.",
"error.msg.expired_token": "Le processus dauthentification a pris trop de temps, veuillez réessayer.",
"error.msg.invalid_token": "Erreur Interne",
"error.msg.no_user": "Lutilisateur associé au compte {0} nexiste pas.",
"error.msg.no_email": "Impossible dobtenir le courriel du compte {0}.",
"error.msg.already_linked": "Le compte {0} est déjà associé à un autre compte.",
"error.msg.not_linked": "Le compte {0} nest pas encore associé à compte.",
"error.msg.unverified_account": "Le compte {0} n'est pas vérifié, veuillez réessayer après vérification.",
"error.msg.discord_guild_permission_denied": "Vous nêtes pas autorisé à vous authentifier.",
"error.msg.cannot_get_user_info": "Impossible dobtenir vos informations utilisateur à partir du compte {0}.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "Connexion OpenID",
// Common translations
"common.button.save": "Sauvegarder",
"common.button.create": "Créer",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Générer",
"common.button.done": "Terminer",
"common.text.link": "Lien",
"common.text.navigate-to-link": "Accéder au lien",
"common.text.or": "ou",
"common.button.go-back": "Précédent",
"common.notify.copied": "Votre lien a été copié dans le presse-papiers",

View File

@@ -0,0 +1,420 @@
export default {
// Navbar
"navbar.upload": "Carica",
"navbar.signin": "Registrati",
"navbar.home": "Home",
"navbar.signup": "Registrati",
"navbar.links.shares": "Le mie condivisioni",
"navbar.links.reverse": "Condivisioni Inverse",
"navbar.avatar.account": "Il mio account",
"navbar.avatar.admin": "Amministrazione",
"navbar.avatar.signout": "Disconetti",
// END navbar
// /
"home.title": "Una piattaforma di condivisione di file <h>autohosted</h>.",
"home.description": "Vuoi davvero dare i tuoi file personali in mano a terzi come WeTransfer?",
"home.bullet.a.name": "Self-hosted",
"home.bullet.a.description": "Ospita Pingvin Condividi sulla tua macchina.",
"home.bullet.b.name": "Privacy",
"home.bullet.b.description": "I tuoi file sono i tuoi file e non dovrebbero mai entrare nelle mani di terzi.",
"home.bullet.c.name": "Nessun fastidioso limite alle dimensioni dei files",
"home.bullet.c.description": "Carica file grandi quanto vuoi. Solo il tuo disco rigido sarà il tuo limite.",
"home.button.start": "Inizia adesso",
"home.button.source": "Codice sorgente",
// END /
// /auth/signin
"signin.title": "Bentornato",
"signin.description": "Non hai ancora un account?",
"signin.button.signup": "Registrazione",
"signin.input.email-or-username": "Email o nome utente",
"signin.input.email-or-username.placeholder": "La tua email o nome utente",
"signin.input.password": "Password",
"signin.input.password.placeholder": "Password",
"signin.button.submit": "Accedi",
"signIn.notify.totp-required.title": "Autenticazione a due fattori richiesta",
"signIn.notify.totp-required.description": "Inserisci il tuo codice di autenticazione a due fattori",
"signIn.oauth.or": "OPPURE",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft",
"signIn.oauth.discord": "Discord",
"signIn.oauth.oidc": "OpenID",
// END /auth/signin
// /auth/signup
"signup.title": "Crea un account",
"signup.description": "Hai già un account?",
"signup.button.signin": "Accedi",
"signup.input.username": "Nome utente",
"signup.input.username.placeholder": "Il tuo nome utente",
"signup.input.email": "Email",
"signup.input.email.placeholder": "La tua email",
"signup.button.submit": "Iniziamo",
// END /auth/signup
// /auth/totp
"totp.title": "Autenticazione TOTP",
"totp.button.signIn": "Accedi",
// END /auth/totp
// /auth/reset-password
"resetPassword.title": "Hai dimenticato la password?",
"resetPassword.description": "Inserisci la tua email per reimpostare la password.",
"resetPassword.notify.success": "Abbiamo inviato un'e-mail all'indirizzo da te indicato. Clicca sul link contenuto nell'e-mail per reimpostare la password del tuo account.",
"resetPassword.button.back": "Torna alla pagina di login",
"resetPassword.text.resetPassword": "Reimposta password",
"resetPassword.text.enterNewPassword": "Inserisci la tua nuova password",
"resetPassword.input.password": "Nuova password",
"resetPassword.notify.passwordReset": "La password è stata reimpostata correttamente.",
// /account
"account.title": "Il mio account",
"account.card.info.title": "Informazioni sull'account",
"account.card.info.username": "Nome utente",
"account.card.info.email": "Email",
"account.notify.info.success": "Account aggiornato correttamente",
"account.card.password.title": "Password",
"account.card.password.old": "Vecchia password",
"account.card.password.new": "Nuova password",
"account.card.password.noPasswordSet": "Non hai una password impostata. Se vuoi accedere con email e password devi impostare una password.",
"account.notify.password.success": "Password cambiata con successo",
"account.card.oauth.title": "Effettua il login con i Social",
"account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google",
"account.card.oauth.microsoft": "Microsoft",
"account.card.oauth.discord": "Discord",
"account.card.oauth.oidc": "OpenID",
"account.card.oauth.link": "Collegamento",
"account.card.oauth.unlink": "Scollega",
"account.card.oauth.unlinked": "Scollegato",
"account.modal.unlink.title": "Scollega account",
"account.modal.unlink.description": "Scollegare i tuoi account social potrebbe causare la perdita del tuo account se non ricordi il tuo nome utente e la password.",
"account.notify.oauth.unlinked.success": "Disconnessione Riuscita",
"account.card.security.title": "Sicurezza",
"account.card.security.totp.enable.description": "Inserisci la tua password attuale per iniziare ad abilitare TOTP",
"account.card.security.totp.disable.description": "Inserisci la tua password attuale per iniziare ad abilitare TOTP",
"account.card.security.totp.button.start": "Iniziare",
"account.modal.totp.title": "Abilita TOTP",
"account.modal.totp.step1": "Passo 1: Aggiungi il tuo autenticatore",
"account.modal.totp.step2": "Passo 2: Convalida il tuo codice",
"account.modal.totp.enterManually": "Inserisci manualmente",
"account.modal.totp.code": "Codice",
"account.modal.totp.clickToCopy": "Clicca per copiare",
"account.modal.totp.verify": "Verifica",
"account.notify.totp.disable": "TOTP disabilitato con successo",
"account.notify.totp.enable": "TOTP abilitato con successo",
"account.card.language.title": "Lingua",
"account.card.language.description": "Il progetto è tradotto dalla community. Alcune lingue potrebbero essere incomplete.",
"account.card.color.title": "Schema di colori",
// ThemeSwitcher.tsx
"account.theme.dark": "Scuro",
"account.theme.light": "Chiaro",
"account.theme.system": "Sistema",
"account.button.delete": "Elimina account",
"account.modal.delete.title": "Cancella Account",
"account.modal.delete.description": "Vuoi davvero eliminare il tuo account, incluse tutte le tue condivisioni attive?",
// END /account
// /account/shares
"account.shares.title": "Le mie condivisioni",
"account.shares.title.empty": "È vuoto qui 👀",
"account.shares.description.empty": "Non hai nessuna condivisione.",
"account.shares.button.create": "Creane uno",
"account.shares.info.title": "Condividi le informazioni",
"account.shares.table.id": "ID",
"account.shares.table.name": "Nome",
"account.shares.table.description": "Descrizione",
"account.shares.table.visitors": "Visitatori",
"account.shares.table.expiresAt": "Scadenza",
"account.shares.table.createdAt": "Creato il",
"account.shares.table.size": "Dimensione",
"account.shares.modal.share-informations": "Condividi le informazioni",
"account.shares.modal.share-link": "Condividi link",
"account.shares.modal.delete.title": "Elimina condivisione {share}",
"account.shares.modal.delete.description": "Vuoi davvero cancellare questa condivisione?",
// END /account/shares
// /account/reverseShares
"account.reverseShares.title": "Condivisione Inversa",
"account.reverseShares.description": "Una condivisione inversa consente di generare un URL univoco che consente agli utenti esterni di creare una condivisione.",
"account.reverseShares.title.empty": "È vuoto qui 👀",
"account.reverseShares.description.empty": "Non hai nessuna condivisione inversa.",
// showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Crea condivisione inversa",
"account.reverseShares.modal.expiration.label": "Valido fino a",
"account.reverseShares.modal.expiration.minute-singular": "Minuto",
"account.reverseShares.modal.expiration.minute-plural": "Minuti",
"account.reverseShares.modal.expiration.hour-singular": "Ora",
"account.reverseShares.modal.expiration.hour-plural": "Ore",
"account.reverseShares.modal.expiration.day-singular": "Giorno",
"account.reverseShares.modal.expiration.day-plural": "Giorni",
"account.reverseShares.modal.expiration.week-singular": "Settimana",
"account.reverseShares.modal.expiration.week-plural": "Settimane",
"account.reverseShares.modal.expiration.month-singular": "Mese",
"account.reverseShares.modal.expiration.month-plural": "Mesi",
"account.reverseShares.modal.expiration.year-singular": "Anno",
"account.reverseShares.modal.expiration.year-plural": "Anni",
"account.reverseShares.modal.max-size.label": "Dimensione massima della condivisione",
"account.reverseShares.modal.send-email": "Invia una notifica via email",
"account.reverseShares.modal.send-email.description": "Invia una notifica email quando viene creata una condivisione con questo link di condivisione inversa.",
"account.reverseShares.modal.max-use.label": "Utilizzo massimo",
"account.reverseShares.modal.max-use.description": "La quantità massima di volte che questo URL può essere usato per creare una condivisione.",
"account.reverseShare.never-expires": "Questa condivisione inversa non scadrà mai.",
"account.reverseShare.expires-on": "Questa condivisione inversa scadrà il {expiration}.",
"account.reverseShares.table.no-shares": "Nessuna condivisione è stata creata",
"account.reverseShares.table.count.singular": "condivisione",
"account.reverseShares.table.count.plural": "condivisioni",
"account.reverseShares.table.shares": "Condivisioni",
"account.reverseShares.table.remaining": "Utenti rimanenti",
"account.reverseShares.table.max-size": "Dimensione massima della condivisione",
"account.reverseShares.table.expires": "Scade il",
"account.reverseShares.modal.reverse-share-link": "Link di condivisione inversa",
"account.reverseShares.modal.delete.title": "Elimina condivisione inversa",
"account.reverseShares.modal.delete.description": "Vuoi davvero eliminare questa condivisione inversa? Se lo fai, anche le azioni associate verranno eliminate.",
// END /account/reverseShares
// /admin
"admin.title": "Amministrazione",
"admin.button.users": "Gestione degli utenti",
"admin.button.config": "Configurazione",
"admin.version": "Versione",
// END /admin
// /admin/users
"admin.users.title": "Gestione degli utenti",
"admin.users.table.username": "Nome utente",
"admin.users.table.email": "Email",
"admin.users.table.admin": "Admin",
"admin.users.edit.update.title": "Aggiorna utente {username}",
"admin.users.edit.update.admin-privileges": "Privilegi di amministrazione",
"admin.users.edit.update.change-password.title": "Cambia la password",
"admin.users.edit.update.change-password.field": "Nuova password",
"admin.users.edit.update.change-password.button": "Salva la nuova password",
"admin.users.edit.update.notify.password.success": "Password cambiata con successo",
"admin.users.edit.delete.title": "Elimina l'utente: {username}",
"admin.users.edit.delete.description": "Vuoi davvero eliminare questo utente e tutte le sue condivisioni?",
// showCreateUserModal.tsx
"admin.users.modal.create.title": "Crea utente",
"admin.users.modal.create.username": "Nome utente",
"admin.users.modal.create.email": "Email",
"admin.users.modal.create.password": "Password",
"admin.users.modal.create.manual-password": "Imposta la password manualmente",
"admin.users.modal.create.manual-password.description": "Se non selezionato, l'utente riceverà un'email con un link per impostare la propria password.",
"admin.users.modal.create.admin": "Privilegi di amministrazione",
"admin.users.modal.create.admin.description": "Se selezionato, l'utente sarà in grado di accedere al pannello amministratore.",
// END /admin/users
// /upload
"upload.title": "Upload",
"upload.notify.generic-error": "Si è verificato un errore durante il completamento della condivisione.",
"upload.notify.count-failed": "Impossibile caricare {count} file. Riprovare.",
// Dropzone.tsx
"upload.dropzone.title": "Upload files",
"upload.dropzone.description": "Trascina qui i file per iniziare la tua condivisione. Possiamo accettare solo i file che sono inferiori a {maxSize} in totale.",
"upload.dropzone.notify.file-too-big": "I tuoi file superano la dimensione massima di condivisione di {maxSize}.",
// FileList.tsx
"upload.filelist.name": "Nome",
"upload.filelist.size": "Dimensione",
// showCreateUploadModal.tsx
"upload.modal.title": "Crea Condivisione",
"upload.modal.link.error.invalid": "Può contenere solo lettere, numeri, underscore e trattini",
"upload.modal.link.error.taken": "Questo link è gia in uso",
"upload.modal.not-signed-in": "Non sei loggato",
"upload.modal.not-signed-in-description": "Non sarai in grado di eliminare la tua condivisione manualmente e visualizzare il numero dei visitatori.",
"upload.modal.expires.never": "mai",
"upload.modal.expires.never-long": "Non Scade Mai",
"upload.modal.expires.error.too-long": "La scadenza supera la data di scadenza massima di {max}.",
"upload.modal.link.label": "Collegamento",
"upload.modal.expires.label": "Valido fino a",
"upload.modal.expires.minute-singular": "Minuto",
"upload.modal.expires.minute-plural": "Minuti",
"upload.modal.expires.hour-singular": "Ora",
"upload.modal.expires.hour-plural": "Ore",
"upload.modal.expires.day-singular": "Giorno",
"upload.modal.expires.day-plural": "Giorni",
"upload.modal.expires.week-singular": "Settimana",
"upload.modal.expires.week-plural": "Settimane",
"upload.modal.expires.month-singular": "Mese",
"upload.modal.expires.month-plural": "Mesi",
"upload.modal.expires.year-singular": "Anno",
"upload.modal.expires.year-plural": "Anni",
"upload.modal.accordion.description.title": "Descrizione",
"upload.modal.accordion.description.placeholder": "Nota per i destinatari di questa condivisione",
"upload.modal.accordion.email.title": "Destinatari di posta elettronica",
"upload.modal.accordion.email.placeholder": "Inserisci le email dei destinatari",
"upload.modal.accordion.email.invalid-email": "Indirizzo email non valido",
"upload.modal.accordion.security.title": "Opzioni di sicurezza",
"upload.modal.accordion.security.password.label": "Protezione con password",
"upload.modal.accordion.security.password.placeholder": "Nessuna password",
"upload.modal.accordion.security.max-views.label": "Visualizzazioni massime",
"upload.modal.accordion.security.max-views.placeholder": "Nessun limite",
// showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "Questa condivisione non scadrà mai.",
"upload.modal.completed.expires-on": "Questa condivisione scadrà il {expiration}.",
"upload.modal.completed.share-ready": "Condivisione pronta",
// END /upload
// /share/[id]
"share.title": "Condividi {shareId}",
"share.description": "Guarda cosa ho condiviso con te!",
"share.error.visitor-limit-exceeded.title": "Limite visitatori superato",
"share.error.visitor-limit-exceeded.description": "Il limite di visitatori di questa condivisione è stato superato.",
"share.error.removed.title": "Condivisione rimossa",
"share.error.not-found.title": "Condivisione non trovata",
"share.error.not-found.description": "La condivisione che stai cercando non esiste.",
"share.modal.password.title": "Password richiesta",
"share.modal.password.description": "Per accedere a questa condivisione inserisci la password.",
"share.modal.password": "Password",
"share.modal.error.invalid-password": "Password non valida",
"share.button.download-all": "Scarica tutto",
"share.notify.download-all-preparing": "La condivisione è in preparazione. Riprova tra qualche minuto.",
"share.modal.file-link": "Link dei File",
"share.table.name": "Nome",
"share.table.size": "Dimensione",
"share.modal.file-preview.error.not-supported.title": "Anteprima non supportata",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Modifica {shareId}",
"share.edit.append-upload": "Aggiungi file",
"share.edit.notify.generic-error": "Si è verificato un errore durante il completamento della condivisione.",
"share.edit.notify.save-success": "Condivisione aggiornata correttamente",
// END /share/[id]/edit
// /admin/config
"admin.config.title": "Configurazione",
"admin.config.category.general": "Generale",
"admin.config.category.share": "Condivisioni",
"admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Effettua il login con i Social",
"admin.config.general.app-name": "Nome dell'App",
"admin.config.general.app-name.description": "Nome dell' applicazione",
"admin.config.general.app-url": "URL dell'App",
"admin.config.general.app-url.description": "Su quale URL Pingvin Share è pubblicato",
"admin.config.general.show-home-page": "Visualizza Home Page",
"admin.config.general.show-home-page.description": "Indica se mostrare la home page",
"admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Cambia il tuo logo caricando una nuova immagine. L'immagine deve essere un PNG e dovrebbe avere il formato 1:1.",
"admin.config.general.logo.placeholder": "Scegli un'immagine",
"admin.config.email.enable-share-email-recipients": "Abilita le email di notifica",
"admin.config.email.enable-share-email-recipients.description": "Indica se consentire la spedizione di email di notifica sulle share. Abilita questa opzione solo se hai abilitato SMTP.",
"admin.config.email.share-recipients-subject": "Oggetto dell'email di condivisione",
"admin.config.email.share-recipients-subject.description": "Oggetto dell'email che viene inviata ai destinatari della condivisione.",
"admin.config.email.share-recipients-message": "Testo dell'email di condivisione",
"admin.config.email.share-recipients-message.description": "Messaggio che viene inviato ai destinatari della condivisione. Variabili disponibili:\n {creator} - Il nome utente del creatore della condivisione\n {shareUrl} - L'URL della condivisione\n {desc} - La descrizione della condivisione\n {expires} - La data di scadenza della condivisione\n Le variabili saranno sostituite con il valore effettivo.",
"admin.config.email.reverse-share-subject": "Oggetto dell'email di condivisione inversa",
"admin.config.email.reverse-share-subject.description": "Oggetto dell'email che viene inviata quando qualcuno ha creato una condivisione con il tuo link di condivisione inversa.",
"admin.config.email.reverse-share-message": "Testo dell'email di condivisione inversa",
"admin.config.email.reverse-share-message.description": "Messaggio che viene inviato quando qualcuno ha creato una condivisione con il tuo link di condivisione inversa. {shareUrl} sarà sostituito con il nome del creatore e l'URL di condivisione.",
"admin.config.email.reset-password-subject": "Oggetto della mail per il reset della password",
"admin.config.email.reset-password-subject.description": "Oggetto dell'email che viene inviata quando un utente richiede il ripristino della password.",
"admin.config.email.reset-password-message": "Testo dell'email per il reset della password",
"admin.config.email.reset-password-message.description": "Messaggio che viene inviato quando un utente richiede un reset della password. {url} verrà sostituito con l'URL di reset della password.",
"admin.config.email.invite-subject": "Oggetto dell'email di invito",
"admin.config.email.invite-subject.description": "Oggetto dell'email che viene inviata quando un amministratore invita un utente.",
"admin.config.email.invite-message": "Testo dell'email di invito",
"admin.config.email.invite-message.description": "Messaggio che viene inviato quando un amministratore invita un utente. {url} verrà sostituito con l'URL di invito e {password} con la password.",
"admin.config.share.allow-registration": "Consenti la registrazione",
"admin.config.share.allow-registration.description": "Indica se la registrazione è autorizzata",
"admin.config.share.allow-unauthenticated-shares": "Consenti condivisioni non autenticate",
"admin.config.share.allow-unauthenticated-shares.description": "Indica se gli utenti non autenticati possono creare condivisioni",
"admin.config.share.max-expiration": "Scadenza massima",
"admin.config.share.max-expiration.description": "Scadenza massima di condivisione in ore. Impostare a 0 per consentire la scadenza illimitata.",
"admin.config.share.max-size": "Dim. massima",
"admin.config.share.max-size.description": "Dimensione massima di condivisione in byte",
"admin.config.share.zip-compression-level": "Livello di compressione Zip",
"admin.config.share.zip-compression-level.description": "Regola il livello per bilanciare la dimensione del file e la velocità di compressione. Valori validi da 0 a 9, con 0 senza compressione e 9 con compressione massima. ",
"admin.config.smtp.enabled": "Abilitato",
"admin.config.smtp.enabled.description": "Indica se SMTP è abilitato. Impostalo a VERO solo se hai inserito host, porta, email, utente e password del tuo server SMTP.",
"admin.config.smtp.host": "Host",
"admin.config.smtp.host.description": "Host del server SMTP",
"admin.config.smtp.port": "Porta",
"admin.config.smtp.port.description": "Porta del server SMTP",
"admin.config.smtp.email": "Email",
"admin.config.smtp.email.description": "Indirizzo da cui vengono inviate le email",
"admin.config.smtp.username": "Nome utente",
"admin.config.smtp.username.description": "Nome utente del server SMTP",
"admin.config.smtp.password": "Password",
"admin.config.smtp.password.description": "Password del server SMTP",
"admin.config.smtp.button.test": "Invia e-mail di prova",
"admin.config.oauth.allow-registration": "Consenti la registrazione",
"admin.config.oauth.allow-registration.description": "Consenti agli utenti di registrarsi tramite social login",
"admin.config.oauth.ignore-totp": "Ignora TOTP",
"admin.config.oauth.ignore-totp.description": "Indica se ignorare TOTP quando l'utente utilizza il social login",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Se l'accesso tramite GitHub è abilitato",
"admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "ID client dell'app GitHub OAuth",
"admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "Client secret dell'app GitHub OAuth",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Se il login tramite Google è abilitato",
"admin.config.oauth.google-client-id": "Id Client Goole",
"admin.config.oauth.google-client-id.description": "ID client dell'app Google OAuth",
"admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "Client secret dell'app Google OAuth",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Se il login tramite Microsoft è abilitato",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Tenant ID dell'app Microsoft OAuth\ngenerico: Gli utenti con un account Microsoft personale e un account di lavoro o scuola da Microsoft Entra ID possono accedere all'applicazione. organizzazioni: Solo gli utenti con account di lavoro o scolastici di Microsoft Entra ID possono accedere all'applicazione.\nclienti: Solo gli utenti con un account Microsoft personale possono accedere all'applicazione.\nnome di dominio del tenant Microsoft Entra o l'ID del tenant in formato GUID: Solo gli utenti di uno specifico tenant Microsoft Entra (membri di directory con un account di lavoro o di scuola o ospiti di directory con un account Microsoft personale) possono accedere all'applicazione.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "ID client dell'app Microsoft OAuth",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "Client secret dell'app Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Se l'accesso tramite Discord è abilitato",
"admin.config.oauth.discord-limited-guild": "Limita a un particolare server ID",
"admin.config.oauth.discord-limited-guild.description": "Limita l'accesso agli utenti in un server specifico. Lascialo vuoto per disabilitare.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "ID client dell'app Discord OAuth",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret dell'applicazione Discord OAuth",
"admin.config.oauth.oidc-enabled": "OpenId Connect",
"admin.config.oauth.oidc-enabled.description": "Se il login tramite OpenID Connect è abilitato",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "URI di scoperta dell'app OAuth di OpenID Connect",
"admin.config.oauth.oidc-username-claim": "Richiesta nome utente OpenID Connect",
"admin.config.oauth.oidc-username-claim.description": "Nome utente nel token OpenID Connect. Lascialo vuoto se non sai cos'è questa configurazione.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID dell'app OAuth di OpenID Connect",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret dell'app OAuth OpenID Connect",
// 404
"404.description": "Ops, questa pagina non esiste.",
"404.button.home": "Riportami a casa",
// error
"error.title": "Errore",
"error.description": "Oops!",
"error.button.back": "Torna indietro",
"error.msg.default": "Si è verificato un errore.",
"error.msg.access_denied": "Hai annullato il processo di autenticazione, per favore riprova.",
"error.msg.expired_token": "Il processo di autenticazione ha richiesto troppo tempo, per favore riprova.",
"error.msg.invalid_token": "Errore Interno",
"error.msg.no_user": "L'utente collegato a questo account {0} non esiste.",
"error.msg.no_email": "Impossibile ottenere l'indirizzo email da questo account {0}.",
"error.msg.already_linked": "Questo account {0} è già collegato ad un altro account.",
"error.msg.not_linked": "Questo account {0} non è ancora collegato ad alcun account.",
"error.msg.unverified_account": "Questo account {0} non è verificato, per favore riprova dopo la verifica.",
"error.msg.discord_guild_permission_denied": "Non sei autorizzato ad accedere.",
"error.msg.cannot_get_user_info": "Non è possibile ottenere le informazioni utente da questo account {0}.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenId Connect",
// Common translations
"common.button.save": "Salva",
"common.button.create": "Crea",
"common.button.submit": "Invia",
"common.button.delete": "Cancella",
"common.button.cancel": "Annulla",
"common.button.confirm": "Conferma",
"common.button.disable": "Disabilita",
"common.button.share": "Condividi",
"common.button.generate": "Genera",
"common.button.done": "Fatto",
"common.text.link": "Collegamento",
"common.text.navigate-to-link": "Vai al collegamento",
"common.text.or": "o",
"common.button.go-back": "Torna indietro",
"common.notify.copied": "Il tuo collegamento e' stato copiato negli appunti",
"common.success": "Successo",
"common.error": "Errore",
"common.error.unknown": "Si è verificato un errore sconosciuto",
"common.error.invalid-email": "Indirizzo email non valido",
"common.error.too-short": "Deve contenere almeno {length} caratteri",
"common.error.too-long": "Deve contenere al massimo {length} caratteri",
"common.error.exact-length": "Deve essere esattamente {length} caratteri",
"common.error.invalid-number": "Deve essere un numero",
"common.error.field-required": "Questo campo è obbligatorio"
};

View File

@@ -262,7 +262,7 @@ export default {
"share.table.name": "ファイル名",
"share.table.size": "サイズ",
"share.modal.file-preview.error.not-supported.title": "プレビューに対応していません",
"share.modal.file-preview.error.not-supported.description": "これらのファイルのプレビューには対応していません。ファイルをダウンロードして、直接確認してください。",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "編集 {shareId}",
@@ -353,18 +353,22 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuthアプリのクライアントシークレット",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Discordアカウントを使用したログインを許可するかどうかを設定します",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord クライアントID",
"admin.config.oauth.discord-client-id.description": "Discord OAuthアプリのクライアントID",
"admin.config.oauth.discord-client-secret": "Discord クライアントシークレット",
"admin.config.oauth.discord-client-secret.description": "Discord OAuthアプリのクライアントシークレット",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "OpenIDアカウントを使用したログインを許可するかどうかを設定します",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "OpenID OAuthアプリのDiscovery URI",
"admin.config.oauth.oidc-client-id": "OpenID クライアントID",
"admin.config.oauth.oidc-client-id.description": "OpenID OAuthアプリのクライアントID",
"admin.config.oauth.oidc-client-secret": "OpenID クライアントシークレット",
"admin.config.oauth.oidc-client-secret.description": "OpenID OAuthアプリのクライアントシークレット",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "ページが見つかりません。",
"404.button.home": "ホームに戻る",
@@ -375,15 +379,19 @@ export default {
"error.msg.default": "問題が発生しました。",
"error.msg.access_denied": "認証処理を中止しました、後で再度お試しください。",
"error.msg.expired_token": "認証処理に時間がかかりすぎています、後で再度お試しください。",
"error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "この{0} アカウントにリンクしたユーザーが存在しません。",
"error.msg.no_email": "この{0} アカウントからメールアドレスを取得出来ません。",
"error.msg.already_linked": "この{0} アカウントは、既に別のアカウントにリンクされています。",
"error.msg.not_linked": "この{0} アカウントはどのアカウントにもリンクされていません。",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "保存",
"common.button.create": "作成",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "生成",
"common.button.done": "完了",
"common.text.link": "リンク",
"common.text.navigate-to-link": "Go to the link",
"common.text.or": "または",
"common.button.go-back": "戻る",
"common.notify.copied": "リンクをクリップボードにコピーしました",

View File

@@ -1,11 +1,11 @@
export default {
// Navbar
"navbar.upload": "Verzenden",
"navbar.upload": "Delen",
"navbar.signin": "Aanmelden",
"navbar.home": "Startpagina",
"navbar.signup": "Registreren",
"navbar.links.shares": "Mijn gedeelde bestanden",
"navbar.links.reverse": "Reverse shares",
"navbar.links.reverse": "Omgekeerd delen",
"navbar.avatar.account": "Mijn account",
"navbar.avatar.admin": "Beheer",
"navbar.avatar.signout": "Afmelden",
@@ -13,14 +13,14 @@ export default {
// /
"home.title": "Een <h>zelfgehost</h> platform voor het delen van bestanden.",
"home.description": "Wil je echt je persoonlijke bestanden geven aan derden zoals WeTransfer?",
"home.bullet.a.name": "Zelf-gehost",
"home.bullet.a.name": "Zelfgehost",
"home.bullet.a.description": "Host Pingvin Share op uw eigen machine.",
"home.bullet.b.name": "Privacy",
"home.bullet.b.description": "Uw bestanden zijn van u en mogen nooit in handen komen van derden.",
"home.bullet.c.name": "Geen vervelende limiet voor bestandsgrootte",
"home.bullet.c.description": "Upload zo grote bestanden als je wilt. Alleen je harde schijf is je limiet.",
"home.button.start": "Aan de slag",
"home.button.source": "Bron code",
"home.button.source": "Broncode",
// END /
// /auth/signin
"signin.title": "Welkom terug",
@@ -33,7 +33,7 @@ export default {
"signin.button.submit": "Aanmelden",
"signIn.notify.totp-required.title": "Tweestapsverificatie vereist",
"signIn.notify.totp-required.description": "Voer uw tweestapsverificatiecode in",
"signIn.oauth.or": "OR",
"signIn.oauth.or": "OF",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft",
@@ -51,8 +51,8 @@ export default {
"signup.button.submit": "Laten we beginnen",
// END /auth/signup
// /auth/totp
"totp.title": "TOTP Authentication",
"totp.button.signIn": "Sign in",
"totp.title": "TOTP Authenticatie",
"totp.button.signIn": "Aanmelden",
// END /auth/totp
// /auth/reset-password
"resetPassword.title": "Wachtwoord vergeten?",
@@ -65,27 +65,27 @@ export default {
"resetPassword.notify.passwordReset": "Uw wachtwoord is met succes opnieuw ingesteld.",
// /account
"account.title": "Mijn account",
"account.card.info.title": "Account informatie",
"account.card.info.title": "Accountinformatie",
"account.card.info.username": "Gebruikersnaam",
"account.card.info.email": "E-mailadres",
"account.notify.info.success": "Account succesvol bijgewerkt",
"account.card.password.title": "Wachtwoord",
"account.card.password.old": "Oud wachtwoord",
"account.card.password.old": "Oude wachtwoord",
"account.card.password.new": "Nieuw wachtwoord",
"account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.",
"account.notify.password.success": "Wachtwoord succesvol gewijzigd",
"account.card.password.noPasswordSet": "U hebt nog geen wachtwoord ingesteld. Stel deze eerst in als u via email wilt inloggen.",
"account.notify.password.success": "Wachtwoord succesvol gewijzigd!",
"account.card.oauth.title": "Social login",
"account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google",
"account.card.oauth.microsoft": "Microsoft",
"account.card.oauth.discord": "Discord",
"account.card.oauth.oidc": "OpenID",
"account.card.oauth.link": "Link",
"account.card.oauth.unlink": "Unlink",
"account.card.oauth.unlinked": "Unlinked",
"account.modal.unlink.title": "Unlink account",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
"account.notify.oauth.unlinked.success": "Unlinked successfully",
"account.card.oauth.link": "Koppelen",
"account.card.oauth.unlink": "Ontkoppel",
"account.card.oauth.unlinked": "Niet-gekoppeld",
"account.modal.unlink.title": "Ontkoppel account",
"account.modal.unlink.description": "Het ontkoppelen van uw sociale accounts kan leiden tot verlies van uw account. Vergeet uw gebruikersnaam en wachtwoord niet.",
"account.notify.oauth.unlinked.success": "Ontkoppelen succesvol",
"account.card.security.title": "Beveiliging",
"account.card.security.totp.enable.description": "Voer uw huidige wachtwoord in om TOTP in te schakelen",
"account.card.security.totp.disable.description": "Voer uw huidige wachtwoord in om TOTP uit te schakelen",
@@ -101,7 +101,7 @@ export default {
"account.notify.totp.enable": "TOTP succesvol ingeschakeld",
"account.card.language.title": "Taal",
"account.card.language.description": "Het project is vertaald door de community. Sommige talen zijn mogelijk onvolledig.",
"account.card.color.title": "Kleuren schema",
"account.card.color.title": "Kleurenschema",
// ThemeSwitcher.tsx
"account.theme.dark": "Donker",
"account.theme.light": "Licht",
@@ -125,16 +125,16 @@ export default {
"account.shares.table.size": "Grootte",
"account.shares.modal.share-informations": "Gegevens delen",
"account.shares.modal.share-link": "Deel link",
"account.shares.modal.delete.title": "Delete share {share}",
"account.shares.modal.delete.description": "Do you really want to delete this share?",
"account.shares.modal.delete.title": "Verwijder share {share}",
"account.shares.modal.delete.description": "Weet u zeker dat u deze share wilt verwijderen?",
// END /account/shares
// /account/reverseShares
"account.reverseShares.title": "Reverse shares",
"account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.",
"account.reverseShares.title": "Omgekeerde share",
"account.reverseShares.description": "Met een omgekeerde share kan een externe gebruiker via unieke genereerde URL bestanden uploaden.",
"account.reverseShares.title.empty": "Het is hier leeg 👀",
"account.reverseShares.description.empty": "You don't have any reverse shares.",
"account.reverseShares.description.empty": "U hebt nog geen omgekeerde shares. Maak er een aan.",
// showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Create reverse share",
"account.reverseShares.modal.title": "Creeër een omgekeerde share",
"account.reverseShares.modal.expiration.label": "Vervaldatum",
"account.reverseShares.modal.expiration.minute-singular": "Minuut",
"account.reverseShares.modal.expiration.minute-plural": "Minuten",
@@ -148,26 +148,26 @@ export default {
"account.reverseShares.modal.expiration.month-plural": "Maanden",
"account.reverseShares.modal.expiration.year-singular": "Jaar",
"account.reverseShares.modal.expiration.year-plural": "Jaren",
"account.reverseShares.modal.max-size.label": "Max share size",
"account.reverseShares.modal.send-email": "Stuur e-mail notificatie",
"account.reverseShares.modal.send-email.description": "Send an email notification when a share is created with this reverse share link.",
"account.reverseShares.modal.max-use.label": "Max uses",
"account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.",
"account.reverseShare.never-expires": "This reverse share will never expire.",
"account.reverseShare.expires-on": "This reverse share will expire on {expiration}.",
"account.reverseShares.table.no-shares": "No shares created yet",
"account.reverseShares.table.count.singular": "share",
"account.reverseShares.table.count.plural": "shares",
"account.reverseShares.table.shares": "Shares",
"account.reverseShares.table.remaining": "Remaining uses",
"account.reverseShares.table.max-size": "Max share size",
"account.reverseShares.modal.max-size.label": "Maximale share-grootte",
"account.reverseShares.modal.send-email": "Stuur e-mailnotificatie",
"account.reverseShares.modal.send-email.description": "Stuur een e-mailnotificatie wanneer er bestanden zijn gedeeld via deze omgekeerde share link.",
"account.reverseShares.modal.max-use.label": "Maximaal gebruikte keren",
"account.reverseShares.modal.max-use.description": "Maximale keren dat deze URL gebruikt kan worden om een share aan te maken.",
"account.reverseShare.never-expires": "Deze omgekeerde share zal nooit verlopen.",
"account.reverseShare.expires-on": "Dit omgekeerde share verloopt op {expiration}.",
"account.reverseShares.table.no-shares": "Nog geen omgekeerde share aangemaakt",
"account.reverseShares.table.count.singular": "deel",
"account.reverseShares.table.count.plural": "delen",
"account.reverseShares.table.shares": "Delen",
"account.reverseShares.table.remaining": "Nog te gebruiken",
"account.reverseShares.table.max-size": "Maximale sharegrootte",
"account.reverseShares.table.expires": "Verloopt op",
"account.reverseShares.modal.reverse-share-link": "Reverse share link",
"account.reverseShares.modal.delete.title": "Delete reverse share",
"account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.",
"account.reverseShares.modal.reverse-share-link": "Omgekeerde share link",
"account.reverseShares.modal.delete.title": "Omgekeerde share verwijderen",
"account.reverseShares.modal.delete.description": "Weet u zeker dat u deze omgekeerde share wilt verwijderen? Als u dit doet, worden de bijbehorende bestanden ook verwijderd.",
// END /account/reverseShares
// /admin
"admin.title": "Beheer",
"admin.title": "Instellingen",
"admin.button.users": "Gebruikers beheer",
"admin.button.config": "Configuratie",
"admin.version": "Versie",
@@ -178,13 +178,13 @@ export default {
"admin.users.table.email": "E-mailadres",
"admin.users.table.admin": "Beheerder",
"admin.users.edit.update.title": "Gebruiker {username} bijwerken",
"admin.users.edit.update.admin-privileges": "Beheerder privileges",
"admin.users.edit.update.admin-privileges": "Beheerdersrechten",
"admin.users.edit.update.change-password.title": "Wachtwoord wijzigen",
"admin.users.edit.update.change-password.field": "Nieuw wachtwoord",
"admin.users.edit.update.change-password.button": "Nieuw wachtwoord opslaan",
"admin.users.edit.update.notify.password.success": "Wachtwoord succesvol gewijzigd",
"admin.users.edit.delete.title": "Gebruiker {username} verwijderen",
"admin.users.edit.delete.description": "Do you really want to delete this user and all his shares?",
"admin.users.edit.delete.description": "Wilt u echt deze gebruiker en al zijn shares verwijderen?",
// showCreateUserModal.tsx
"admin.users.modal.create.title": "Gebruiker aanmaken",
"admin.users.modal.create.username": "Gebruikersnaam",
@@ -192,29 +192,29 @@ export default {
"admin.users.modal.create.password": "Wachtwoord",
"admin.users.modal.create.manual-password": "Wachtwoord handmatig instellen",
"admin.users.modal.create.manual-password.description": "Indien niet aangevinkt, ontvangt de gebruiker een e-mail met een link om zijn wachtwoord in te stellen.",
"admin.users.modal.create.admin": "Beheerder privileges",
"admin.users.modal.create.admin": "Beheerdersrechten",
"admin.users.modal.create.admin.description": "Indien aangevinkt, heeft de gebruiker toegang tot de beheeromgeving.",
// END /admin/users
// /upload
"upload.title": "Uploaden",
"upload.notify.generic-error": "An error occurred while finishing your share.",
"upload.notify.count-failed": "{count} bestanden konden niet worden geüpload. Opnieuw proberen.",
"upload.notify.generic-error": "Er is een fout opgetreden tijdens het voltooien van uw share.",
"upload.notify.count-failed": "{count} bestanden konden niet worden geüpload. Probeer het nogmaals.",
// Dropzone.tsx
"upload.dropzone.title": "Bestanden uploaden",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.",
"upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.",
"upload.dropzone.description": "Sleep uw bestanden hier om uw share te beginnen. We kunnen alleen bestanden accepteren die kleiner zijn dan {maxSize} in totaal.",
"upload.dropzone.notify.file-too-big": "Uw bestanden overschrijden de maximale share-grootte van {maxSize}.",
// FileList.tsx
"upload.filelist.name": "Naam",
"upload.filelist.size": "Grootte",
// showCreateUploadModal.tsx
"upload.modal.title": "Create Share",
"upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens",
"upload.modal.title": "Share aanmaken",
"upload.modal.link.error.invalid": "Het mag alleen letters, cijfers, onderstrepingstekens en koppeltekens bevatten",
"upload.modal.link.error.taken": "Deze link is al in gebruik",
"upload.modal.not-signed-in": "U bent niet aangemeld",
"upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.",
"upload.modal.not-signed-in-description": "Het is niet mogelijk uw gedeelde bestanden handmatig te verwijderen en het aantal bezoekers te bekijken.",
"upload.modal.expires.never": "nooit",
"upload.modal.expires.never-long": "Verloopt nooit",
"upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.",
"upload.modal.expires.error.too-long": "De maximale vervaldatum van {max} is overschreven.",
"upload.modal.link.label": "Koppeling",
"upload.modal.expires.label": "Vervaldatum",
"upload.modal.expires.minute-singular": "Minuut",
@@ -230,45 +230,45 @@ export default {
"upload.modal.expires.year-singular": "Jaar",
"upload.modal.expires.year-plural": "Jaren",
"upload.modal.accordion.description.title": "Beschrijving",
"upload.modal.accordion.description.placeholder": "Note for the recipients of this share",
"upload.modal.accordion.email.title": "E-mail ontvangers",
"upload.modal.accordion.description.placeholder": "Opmerking voor de ontvangers van deze share",
"upload.modal.accordion.email.title": "E-mail van de ontvangers",
"upload.modal.accordion.email.placeholder": "Voer e-mail ontvangers in",
"upload.modal.accordion.email.invalid-email": "Ongeldig e-mailadres",
"upload.modal.accordion.security.title": "Beveiliging opties",
"upload.modal.accordion.security.password.label": "Paswoord beveiling",
"upload.modal.accordion.security.title": "Beveiligingsopties",
"upload.modal.accordion.security.password.label": "Wachtwoordbeveiling",
"upload.modal.accordion.security.password.placeholder": "Geen wachtwoord",
"upload.modal.accordion.security.max-views.label": "Maximum aantal weergaven",
"upload.modal.accordion.security.max-views.placeholder": "Onbeperkt",
// showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "This share will never expire.",
"upload.modal.completed.expires-on": "This share will expire on {expiration}.",
"upload.modal.completed.share-ready": "Share ready",
"upload.modal.completed.never-expires": "Deze omgekeerde share zal nooit verlopen.",
"upload.modal.completed.expires-on": "Deze omgekeerde share verloopt op {expiration}.",
"upload.modal.completed.share-ready": "Share is gereed",
// END /upload
// /share/[id]
"share.title": "Share {shareId}",
"share.description": "Kijk eens wat ik met je heb gedeeld!",
"share.error.visitor-limit-exceeded.title": "Bezoekerslimiet overschreden",
"share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.",
"share.error.removed.title": "Share removed",
"share.error.not-found.title": "Share not found",
"share.error.not-found.description": "The share you're looking for doesn't exist.",
"share.error.visitor-limit-exceeded.description": "De bezoekerslimiet van deze share is overschreden.",
"share.error.removed.title": "Share was verwijderd",
"share.error.not-found.title": "Share niet gevonden",
"share.error.not-found.description": "De share die u zoekt kan niet gevonden worden.",
"share.modal.password.title": "Wachtwoord vereist",
"share.modal.password.description": "To access this share please enter the password for the share.",
"share.modal.password.description": "Vul een wachtwoord in om toegang te krijgen tot deze share.",
"share.modal.password": "Wachtwoord",
"share.modal.error.invalid-password": "Ongeldig wachtwoord",
"share.button.download-all": "Alles downloaden",
"share.notify.download-all-preparing": "The share is preparing. Try again in a few minutes.",
"share.modal.file-link": "Bestand koppeling",
"share.notify.download-all-preparing": "De share word gebundeld. Probeer het over een paar minuten opnieuw.",
"share.modal.file-link": "Link naar bestand",
"share.table.name": "Naam",
"share.table.size": "Grootte",
"share.modal.file-preview.error.not-supported.title": "Voorbeeld niet ondersteund",
"share.modal.file-preview.error.not-supported.description": "Een voorbeeld voor dit bestandstype wordt niet ondersteund. Download het bestand om het te bekijken.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Edit {shareId}",
"share.edit.append-upload": "Append file",
"share.edit.notify.generic-error": "An error occurred while finishing your share.",
"share.edit.notify.save-success": "Share updated successfully",
"share.edit.title": "{shareId} bewerken",
"share.edit.append-upload": "Bestand toevoegen",
"share.edit.notify.generic-error": "Er is een fout opgetreden tijdens het voltooien van uw share.",
"share.edit.notify.save-success": "Share is succesvol bijgewerkt",
// END /share/[id]/edit
// /admin/config
"admin.config.title": "Configuratie",
@@ -276,42 +276,42 @@ export default {
"admin.config.category.share": "Delen",
"admin.config.category.email": "E-mail",
"admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login",
"admin.config.general.app-name": "App naam",
"admin.config.category.oauth": "Social login",
"admin.config.general.app-name": "App-naam",
"admin.config.general.app-name.description": "Naam van de applicatie",
"admin.config.general.app-url": "App URL",
"admin.config.general.app-url.description": "On which URL Pingvin Share is available",
"admin.config.general.app-url": "App-URL",
"admin.config.general.app-url.description": "De URL waar Pingvin Share bereikbaar is",
"admin.config.general.show-home-page": "Toon startpagina",
"admin.config.general.show-home-page.description": "Toon of verberg de home pagina",
"admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Verander uw logo door een nieuwe afbeelding te uploaden. De afbeelding moet PNG zijn en het formaat moet 1:1 hebben.",
"admin.config.general.logo.placeholder": "Afbeelding kiezen",
"admin.config.email.enable-share-email-recipients": "Enable share email recipients",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.",
"admin.config.email.share-recipients-subject": "Share recipients subject",
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
"admin.config.email.share-recipients-message": "Share recipients message",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.",
"admin.config.email.reverse-share-subject": "Reverse share subject",
"admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.",
"admin.config.email.reverse-share-message": "Reverse share message",
"admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.",
"admin.config.email.reset-password-subject": "Reset wachtwoord onderwerp",
"admin.config.email.reset-password-subject.description": "Onderwerp van de e-mail die wordt verzonden wanneer een gebruiker een wachtwoordreset aanvraagt.",
"admin.config.email.reset-password-message": "Wachtwoord opnieuw instellen bericht",
"admin.config.email.reset-password-message.description": "Bericht dat wordt verzonden wanneer een gebruiker een wachtwoord reset aanvraagt. {url} zal worden vervangen door de wachtwoord reset URL.",
"admin.config.email.invite-subject": "Onderwerp uitnodiging",
"admin.config.email.enable-share-email-recipients": "Voer e-mail ontvangers in",
"admin.config.email.enable-share-email-recipients.description": "Sta e-mails toe om de ontvangers de deel link te versturen. Schakel dit alleen in als je SMTP hebt ingeschakeld.",
"admin.config.email.share-recipients-subject": "Onderwerp van ontvangers' share",
"admin.config.email.share-recipients-subject.description": "Het onderwerp van de e-mail die wordt verzonden naar de share-ontvangers.",
"admin.config.email.share-recipients-message": "Bericht voor ontvangers van de share",
"admin.config.email.share-recipients-message.description": "Bericht dat wordt verzonden naar de share ontvangers. Beschikbare variabelen:\n {creator} - De gebruikersnaam van de maker van de share\n {shareUrl} - De URL van de share\n {desc} - De beschrijving van de share\n {expires} - De vervaldatum van de share\n De variabelen worden vervangen door hun werkelijke waarde bij verzending.",
"admin.config.email.reverse-share-subject": "Omgekeerde share email onderwerp",
"admin.config.email.reverse-share-subject.description": "Het onderwerp van de e-mail die wordt verzonden wanneer iemand een share heeft gemaakt met uw omgekeerde share link.",
"admin.config.email.reverse-share-message": "Omgekeerde share-bericht",
"admin.config.email.reverse-share-message.description": "Het bericht dat wordt verzonden wanneer iemand een share heeft aangemaakt via de omgekeerde share-link. {shareUrl} zal worden vervangen door de naam van de maker en de URL van de share.",
"admin.config.email.reset-password-subject": "E-mailonderwerp voor wachtwoordherstel",
"admin.config.email.reset-password-subject.description": "Het onderwerp van de e-mail die wordt verzonden wanneer een gebruiker een wachtwoordherstel aanvraagt.",
"admin.config.email.reset-password-message": "Bericht voor wachtwoordherstel",
"admin.config.email.reset-password-message.description": "Bericht dat wordt verzonden wanneer een gebruiker een wachtwoordherstel aanvraagt. {url} zal worden vervangen door de wachtwoordherstel-URL.",
"admin.config.email.invite-subject": "Onderwerp voor uitnodiging",
"admin.config.email.invite-subject.description": "Onderwerp van de e-mail die wordt verzonden wanneer een beheerder een gebruiker uitnodigt.",
"admin.config.email.invite-message": "Bericht uitnodiging",
"admin.config.email.invite-message": "Bericht voor uitnodiging",
"admin.config.email.invite-message.description": "Bericht dat wordt verzonden wanneer een beheerder een gebruiker uitnodigt. {url} zal worden vervangen door de uitnodigings-URL en {password} met het wachtwoord.",
"admin.config.share.allow-registration": "Sta registratie toe",
"admin.config.share.allow-registration.description": "Of registratie is toegestaan",
"admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares",
"admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares",
"admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.max-size": "Max grootte",
"admin.config.share.max-size.description": "Maximum share size in bytes",
"admin.config.share.allow-unauthenticated-shares": "Ongeverifieerde shares toestaan",
"admin.config.share.allow-unauthenticated-shares.description": "Sta niet-geverifieerde gebruikers toe shares te kunnen aanmaken",
"admin.config.share.max-expiration": "Max. vervaldatum",
"admin.config.share.max-expiration.description": "Maximale verval tijd van de share in uren. Stel in op 0 om onbeperkte vervaldatum toe te staan.",
"admin.config.share.max-size": "Max. grootte",
"admin.config.share.max-size.description": "Maximale share grootte in bytes",
"admin.config.share.zip-compression-level": "Zip compressie niveau",
"admin.config.share.zip-compression-level.description": "Pas het niveau aan voor evenwicht tussen bestandsgrootte en compressie snelheid. Geldige waarden variëren van 0 tot 9, waarbij 0 geen compressie is en 9 de maximale compressie is. ",
"admin.config.smtp.enabled": "Inschakelen",
@@ -326,64 +326,72 @@ export default {
"admin.config.smtp.username.description": "Gebruikersnaam van de SMTP-server",
"admin.config.smtp.password": "Wachtwoord",
"admin.config.smtp.password.description": "Wachtwoord van de SMTP-server",
"admin.config.smtp.button.test": "Test e-mail verzenden",
"admin.config.oauth.allow-registration": "Allow registration",
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
"admin.config.oauth.ignore-totp": "Ignore TOTP",
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
"admin.config.smtp.button.test": "Teste-mail verzenden",
"admin.config.oauth.allow-registration": "Sta registratie toe",
"admin.config.oauth.allow-registration.description": "Gebruikers toestaan zich te registreren via sociale login",
"admin.config.oauth.ignore-totp": "TOTP negeren",
"admin.config.oauth.ignore-totp.description": "TOTP negeren wanneer gebruiker sociale login gebruikt",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
"admin.config.oauth.github-enabled.description": "Ofdat GitHub login is ingeschakeld",
"admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
"admin.config.oauth.github-client-id.description": "Client-ID van de GitHub OAuth app",
"admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
"admin.config.oauth.github-client-secret.description": "Client secret van de GitHub OAuth app",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
"admin.config.oauth.google-client-id": "Google Client ID",
"admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app",
"admin.config.oauth.google-enabled.description": "Ofdat GitHub login is ingeschakeld",
"admin.config.oauth.google-client-id": "Google Client-ID",
"admin.config.oauth.google-client-id.description": "Client-ID van de Google OAuth app",
"admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "Client secret of the Google OAuth app",
"admin.config.oauth.google-client-secret.description": "Client secret van de Google OAuth app",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
"admin.config.oauth.microsoft-enabled.description": "Ofdat Microsoft login is ingeschakeld",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
"admin.config.oauth.microsoft-tenant.description": "Tenant ID van de Microsoft OAuth app\ncommon: Gebruikers met zowel een persoonlijk Microsoft-account als een werk- of schoolaccount van Microsoft Entra ID kunnen zich aanmelden bij de applicatie. organisaties: alleen gebruikers met werk of schoolaccounts van Microsoft Entra ID kunnen zich aanmelden bij de applicatie.\nconsumenten: Alleen gebruikers met een persoonlijk Microsoft-account kunnen zich aanmelden bij de applicatie.\ndomeinnaam van de Microsoft Entra tenant of de tenant ID in GUID formaat: alleen gebruikers van een specifieke Microsoft Entra tenant (directory leden met een werk- of schoolaccount of map gasten met een persoonlijk Microsoft-account) kunnen zich aanmelden bij de toepassing.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-id.description": "Client-ID van de Microsoft OAuth app",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client-secret",
"admin.config.oauth.microsoft-client-secret.description": "Client-secret van de Microsoft OAuth app",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-enabled.description": "Ofdat discord login is ingeschakeld",
"admin.config.oauth.discord-limited-guild": "Discord beperkte server ID",
"admin.config.oauth.discord-limited-guild.description": "Beperk het inloggen tot gebruikers in een specifieke server. Laat leeg om uit te schakelen.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-id.description": "Client-ID van de discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID OAuth app",
"admin.config.oauth.oidc-client-id": "OpenID Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID OAuth app",
"admin.config.oauth.discord-client-secret.description": "Client-secret van de discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Ofdat OpenID Connect login is ingeschakeld",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI van de OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Gebruikersnaam claim in OpenID Connect-ID-token. Laat het leeg als u niet weet wat deze configuratie is.",
"admin.config.oauth.oidc-client-id": "Client-ID OpenID Connect",
"admin.config.oauth.oidc-client-id.description": "Client-ID van de OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret van de OpenID Connect OAuth app",
// 404
"404.description": "Oeps, deze pagina bestaat niet.",
"404.button.home": "Breng me terug naar huis",
// error
"error.title": "Error",
"error.description": "Oops!",
"error.button.back": "Go back",
"error.msg.default": "Something went wrong.",
"error.msg.access_denied": "You canceled the authentication process, please try again.",
"error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "This {0} account is already linked to another account.",
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
"error.title": "Fout",
"error.description": "Oeps!",
"error.button.back": "Terug",
"error.msg.default": "Er ging iets mis.",
"error.msg.access_denied": "U heeft het verificatieproces geannuleerd, probeer het opnieuw.",
"error.msg.expired_token": "Het verificatieproces duurde te lang. Probeer het opnieuw.",
"error.msg.invalid_token": "Interne fout",
"error.msg.no_user": "De gekoppelde gebruiker aan {0} account bestaat niet.",
"error.msg.no_email": "Kan geen e-mailadres ophalen van dit {0} account.",
"error.msg.already_linked": "Dit {0} account is al gekoppeld aan een ander account.",
"error.msg.not_linked": "Dit {0} account is nog aan geen enkel account gekoppeld.",
"error.msg.unverified_account": "Dit {0} account is nog niet geverifieerd, probeer het opnieuw na de verificatie.",
"error.msg.discord_guild_permission_denied": "U heeft geen toestemming om in te loggen.",
"error.msg.cannot_get_user_info": "Kan uw gebruikersgegevens van dit {0} account niet ophalen.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Opslaan",
"common.button.create": "Aanmaken",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Genereren",
"common.button.done": "Voltooid",
"common.text.link": "Koppeling",
"common.text.navigate-to-link": "Ga naar de koppeling",
"common.text.or": "of",
"common.button.go-back": "Ga terug",
"common.notify.copied": "Uw link is gekopieerd naar het klembord",

View File

@@ -112,7 +112,7 @@ export default {
// END /account
// /account/shares
"account.shares.title": "Moje udziały",
"account.shares.title.empty": "Tu jest pusto :eys:",
"account.shares.title.empty": "Tu jest pusto 👀",
"account.shares.description.empty": "Nie masz żadnych udziałów.",
"account.shares.button.create": "Utwórz go",
"account.shares.info.title": "Informacje udziału",
@@ -131,7 +131,7 @@ export default {
// /account/reverseShares
"account.reverseShares.title": "Udziały odwrotne",
"account.reverseShares.description": "Udostępnianie odwrotne pozwala na wygenerowanie unikalnego adresu URL, który umożliwia użytkownikom zewnętrznym na tworzenie udostępniania.",
"account.reverseShares.title.empty": "Tu jest pusto :eys:",
"account.reverseShares.title.empty": "Tu jest pusto 👀",
"account.reverseShares.description.empty": "Nie masz żadnych udostępnień odwrotnych.",
// showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Utwórz udostępnianie odwrotne",
@@ -262,7 +262,7 @@ export default {
"share.table.name": "Nazwa",
"share.table.size": "Rozmiar",
"share.modal.file-preview.error.not-supported.title": "Podgląd nie jest obsługiwany",
"share.modal.file-preview.error.not-supported.description": "Podgląd dla tego typu pliku nie jest obsługiwany. Pobierz plik, aby go zobaczyć.",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Edytuj {shareId}",
@@ -353,18 +353,22 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Sekret klienta aplikacji Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Czy jest włączony login na Discord",
"admin.config.oauth.discord-limited-guild": "ID ograniczonego serwera Discord",
"admin.config.oauth.discord-limited-guild.description": "Ogranicz logowanie do użytkowników na określonym serwerze. Pozostaw puste, aby wyłączyć.",
"admin.config.oauth.discord-client-id": "ID klienta Discord",
"admin.config.oauth.discord-client-id.description": "ID klienta aplikacji Discord OAuth",
"admin.config.oauth.discord-client-secret": "Sekret klienta Discord",
"admin.config.oauth.discord-client-secret.description": "Sekret klienta aplikacji Discord OAuth",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Czy jest włączony login OpenID",
"admin.config.oauth.oidc-discovery-uri": "Wykrywanie URI OpenID",
"admin.config.oauth.oidc-discovery-uri.description": "Wykrywanie URI aplikacji OpenID OAuth",
"admin.config.oauth.oidc-client-id": "ID klienta OpenID",
"admin.config.oauth.oidc-client-id.description": "ID klienta aplikacji OpenID OAuth",
"admin.config.oauth.oidc-client-secret": "Sekret klienta OpenID",
"admin.config.oauth.oidc-client-secret.description": "Sekret klienta aplikacji Discord OAuth",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Czy jest włączony login OpenID Connect",
"admin.config.oauth.oidc-discovery-uri": "Wykrywanie URI OpenID Connect",
"admin.config.oauth.oidc-discovery-uri.description": "Wykrywanie URI OAuth aplikacji OpenID Connect",
"admin.config.oauth.oidc-username-claim": "Żądanie nazwy użytkownika OpenID Connect",
"admin.config.oauth.oidc-username-claim.description": "Żądanie nazwy użytkownika w tokenie identyfikatora OpenID Connect. Jeśli nie wiesz, czym jest ta konfiguracja, pozostaw pustą.",
"admin.config.oauth.oidc-client-id": "Identyfikator klienta OpenID Connect",
"admin.config.oauth.oidc-client-id.description": "Identyfikator klienta OAuth aplikacji OpenID Connect",
"admin.config.oauth.oidc-client-secret": "Sekret klienta OpenID Connect",
"admin.config.oauth.oidc-client-secret.description": "Sekret klienta OAuth aplikacji OpenID Connect",
// 404
"404.description": "Ups! Ta strona nie istnieje.",
"404.button.home": "Wróć do strony domowej",
@@ -375,19 +379,23 @@ export default {
"error.msg.default": "Coś poszło nie tak.",
"error.msg.access_denied": "Anulowałeś proces uwierzytelniania, spróbuj ponownie.",
"error.msg.expired_token": "Proces uwierzytelniania trwał zbyt długo, spróbuj ponownie.",
"error.msg.invalid_token": "Błąd wewnętrzny",
"error.msg.no_user": "Użytkownik powiązany z tym kontem {0} nie istnieje.",
"error.msg.no_email": "Nie można pobrać adresu e-mail z tego konta {0}.",
"error.msg.already_linked": "To konto {0} zostało już połączone z innym kontem.",
"error.msg.not_linked": "To konto {0} nie zostało jeszcze połączone z żadnym kontem.",
"error.msg.unverified_account": "To konto {0} nie zostało zweryfikowane, spróbuj ponownie po weryfikacji.",
"error.msg.discord_guild_permission_denied": "Nie możesz się zalogować.",
"error.msg.cannot_get_user_info": "Nie można uzyskać informacji o użytkowniku z tego konta {0}.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Zapisz",
"common.button.create": "Utwórz",
"common.button.submit": "Zgłoś",
"common.button.submit": "Prześlij",
"common.button.delete": "Usuń",
"common.button.cancel": "Anuluj",
"common.button.confirm": "Potwierdź",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Wygeneruj",
"common.button.done": "Gotowe",
"common.text.link": "Link",
"common.text.navigate-to-link": "Go to the link",
"common.text.or": "lub",
"common.button.go-back": "Wróć",
"common.notify.copied": "Link został skopiowany do schowka",

View File

@@ -235,7 +235,7 @@ export default {
"upload.modal.accordion.email.placeholder": "Insira os destinatários do e-mail",
"upload.modal.accordion.email.invalid-email": "Endereço de e-mail inválido",
"upload.modal.accordion.security.title": "Opções de segurança",
"upload.modal.accordion.security.password.label": "Protecção por senha",
"upload.modal.accordion.security.password.label": "Proteção por senha",
"upload.modal.accordion.security.password.placeholder": "Sem senha",
"upload.modal.accordion.security.max-views.label": "Máximo de visualizações",
"upload.modal.accordion.security.max-views.placeholder": "Sem limite",
@@ -262,7 +262,7 @@ export default {
"share.table.name": "Nome",
"share.table.size": "Tamanho",
"share.modal.file-preview.error.not-supported.title": "Visualização não suportada",
"share.modal.file-preview.error.not-supported.description": "Uma visualização para este tipo de arquivo não é suportada. Faça o download do arquivo para visualizá-lo.",
"share.modal.file-preview.error.not-supported.description": "Uma pré-visualização para este tipo de arquivo não é suportada. Faça o download do arquivo para visualizá-lo.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Editar {shareId}",
@@ -353,17 +353,21 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Client secret do aplicativo Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Se o login do Discord está habilitado",
"admin.config.oauth.discord-limited-guild": "ID do servidor limitado do Discord",
"admin.config.oauth.discord-limited-guild.description": "Limite de login para usuários em um servidor específico. Deixe em branco para desativar.",
"admin.config.oauth.discord-client-id": "ID do Cliente Discord",
"admin.config.oauth.discord-client-id.description": "ID do cliente do aplicativo Discord OAuth",
"admin.config.oauth.discord-client-secret": "Segredo do Cliente Discord",
"admin.config.oauth.discord-client-secret.description": "ID do cliente do aplicativo Discord OAuth",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Se o OpenID login está habilitado",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "",
"admin.config.oauth.oidc-client-id": "ID do Cliente OpenID",
"admin.config.oauth.oidc-enabled": "Conectar o OpenID",
"admin.config.oauth.oidc-enabled.description": "Se o login do OpenID Connect está ativado",
"admin.config.oauth.oidc-discovery-uri": "URI de descoberta do OpenID Connect",
"admin.config.oauth.oidc-discovery-uri.description": "URI da descoberta do aplicativo OpenID Connect OAuth",
"admin.config.oauth.oidc-username-claim": "Reivindicação de nome de usuário OpenID Connect",
"admin.config.oauth.oidc-username-claim.description": "Nome de usuário no token de ID OpenID Connect. Deixe em branco se você não sabe o que é esta configuração.",
"admin.config.oauth.oidc-client-id": "ID do cliente OpenID Connect",
"admin.config.oauth.oidc-client-id.description": "ID do cliente do aplicativo OpenID OAuth",
"admin.config.oauth.oidc-client-secret": "Segredo do Cliente OpenID",
"admin.config.oauth.oidc-client-secret": "Segredo do cliente OpenID Connect",
"admin.config.oauth.oidc-client-secret.description": "ID do cliente do aplicativo OpenID OAuth",
// 404
"404.description": "Ops, esta página não existe.",
@@ -375,15 +379,19 @@ export default {
"error.msg.default": "Algo deu errado.",
"error.msg.access_denied": "Você cancelou o processo de autenticação, por favor, tente novamente.",
"error.msg.expired_token": "O processo de autenticação demorou muito. Por favor, tente novamente.",
"error.msg.invalid_token": "Erro interno",
"error.msg.no_user": "O usuário vinculado a esta conta {0} não existe.",
"error.msg.no_email": "Não é possível obter o endereço de e-mail desta conta {0}.",
"error.msg.already_linked": "Esta conta {0} já está vinculada a outra conta.",
"error.msg.not_linked": "Esta conta {0} ainda não foi vinculada a nenhuma conta.",
"error.msg.unverified_account": "Esta conta {0} não foi verificada, tente novamente após a verificação.",
"error.msg.discord_guild_permission_denied": "Você não tem permissão para acessar.",
"error.msg.cannot_get_user_info": "Não é possível obter suas informações de usuário desta conta {0}.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Salvar",
"common.button.create": "Criar",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Gerar",
"common.button.done": "Concluído",
"common.text.link": "Link",
"common.text.navigate-to-link": "Ir para o link",
"common.text.or": "ou",
"common.button.go-back": "Voltar",
"common.notify.copied": "O seu link foi copiado para a área de transferência",

View File

@@ -262,7 +262,7 @@ export default {
"share.table.name": "Название",
"share.table.size": "Размер",
"share.modal.file-preview.error.not-supported.title": "Предпросмотр не поддерживается",
"share.modal.file-preview.error.not-supported.description": "Предварительный просмотр этого типа файла не поддерживается. Пожалуйста, скачайте файл для его просмотра.",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Редактировать {shareId}",
@@ -353,18 +353,22 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Секретный ключ клиента в приложении Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Включен ли логин Discord",
"admin.config.oauth.discord-limited-guild": "ID ограниченного сервера Discord",
"admin.config.oauth.discord-limited-guild.description": "Ограничение входа для пользователей определенного сервера. Оставьте пустым, чтобы отключить.",
"admin.config.oauth.discord-client-id": "ID клиента Discord",
"admin.config.oauth.discord-client-id.description": "ID клиента в приложении Discord OAuth",
"admin.config.oauth.discord-client-secret": "Секретный ключ клиента Discord",
"admin.config.oauth.discord-client-secret.description": "Секретный ключ клиента в приложении Discord OAuth",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Включен ли логин OpenID",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI приложения OpenID OAuth",
"admin.config.oauth.oidc-client-id": "ID клиента OpenID",
"admin.config.oauth.oidc-client-id.description": "ID клиента в приложении OpenID OAuth",
"admin.config.oauth.oidc-client-secret": "Секретный ключ клиента OpenID",
"admin.config.oauth.oidc-client-secret.description": "Секретный ключ клиента в приложении OpenID OAuth",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "Упс, этой страницы не существует.",
"404.button.home": "Верните меня домой",
@@ -375,15 +379,19 @@ export default {
"error.msg.default": "Что-то пошло не так.",
"error.msg.access_denied": "Вы отменили процесс аутентификации, пожалуйста, попробуйте еще раз.",
"error.msg.expired_token": "Процесс аутентификации занял слишком много времени, пожалуйста, попробуйте еще раз.",
"error.msg.invalid_token": "Внутренняя ошибка",
"error.msg.no_user": "Пользователь связанный с учетной записью {0} не существует.",
"error.msg.no_email": "Не удается получить адрес электронной почты от учетной записи {0}.",
"error.msg.already_linked": "Эта учетная запись {0} уже привязана к другому аккаунту.",
"error.msg.not_linked": "Эта учетная запись {0} ещё не привязана ни к одному аккаунту.",
"error.msg.unverified_account": "Эта учетная запись {0} не подтверждена, повторите попытку после подтверждения.",
"error.msg.discord_guild_permission_denied": "У вас нет разрешения на вход.",
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Сохранить",
"common.button.create": "Создать",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Сгенерировать",
"common.button.done": "Готово",
"common.text.link": "Ссылка",
"common.text.navigate-to-link": "Go to the link",
"common.text.or": "или",
"common.button.go-back": "Назад",
"common.notify.copied": "Ваша ссылка скопирована в буфер обмена",

View File

@@ -0,0 +1,420 @@
export default {
// Navbar
"navbar.upload": "Naloži",
"navbar.signin": "Vpis",
"navbar.home": "Domov",
"navbar.signup": "Registracija",
"navbar.links.shares": "Moja deljenja",
"navbar.links.reverse": "Deljenja v obratni smeri",
"navbar.avatar.account": "Moj račun",
"navbar.avatar.admin": "Administracija",
"navbar.avatar.signout": "Odjava",
// END navbar
// /
"home.title": "Platforma za deljenje datotek z <h>lastnim gostovanjem</h>.",
"home.description": "Ali res želite predati svoje osebne datoteke v roke tretjih oseb, kot je WeTransfer?",
"home.bullet.a.name": "Lastno-Gostovanje",
"home.bullet.a.description": "Gostuj Pingvin Share na svoji lastni napravi.",
"home.bullet.b.name": "Zasebnost",
"home.bullet.b.description": "Vaše datoteke so samo vaše in ne bi nikoli smele pristati v rokah tretjih oseb.",
"home.bullet.c.name": "Brez nadležnih omejitev velikosti datoteke",
"home.bullet.c.description": "Naložite datoteke, velike kolikor želite. Omejuje vas samo vaš disk.",
"home.button.start": "Začnite zdaj",
"home.button.source": "Izvorna koda",
// END /
// /auth/signin
"signin.title": "Dobrodošli nazaj",
"signin.description": "Še nimate računa?",
"signin.button.signup": "Registrirajte se",
"signin.input.email-or-username": "E-pošta ali uporabniško ime",
"signin.input.email-or-username.placeholder": "Vaša e-pošta ali uporabniško ime",
"signin.input.password": "Geslo",
"signin.input.password.placeholder": "Vaše geslo",
"signin.button.submit": "Prijava",
"signIn.notify.totp-required.title": "Zahtevana je dvofaktorska avtentikacija",
"signIn.notify.totp-required.description": "Prosim vnesite vašo kodo dvofaktorske avtentikacije",
"signIn.oauth.or": "ALI",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft",
"signIn.oauth.discord": "Discord",
"signIn.oauth.oidc": "OpenID",
// END /auth/signin
// /auth/signup
"signup.title": "Ustvarite račun",
"signup.description": "Že imate račun?",
"signup.button.signin": "Prijava",
"signup.input.username": "Uporabniško ime",
"signup.input.username.placeholder": "Vaše uporabniško ime",
"signup.input.email": "E-pošta",
"signup.input.email.placeholder": "Vaš e-poštni naslov",
"signup.button.submit": "Pa začnimo",
// END /auth/signup
// /auth/totp
"totp.title": "TOTP Avtentikacija",
"totp.button.signIn": "Prijava",
// END /auth/totp
// /auth/reset-password
"resetPassword.title": "Ste pozabili svoje geslo?",
"resetPassword.description": "Vnesite svoj e-poštni naslov za ponastavitev gesla.",
"resetPassword.notify.success": "Poslali smo e-pošto s povezavo do spremembe gesla.",
"resetPassword.button.back": "Nazaj na stran za prijavo",
"resetPassword.text.resetPassword": "Ponastavi geslo",
"resetPassword.text.enterNewPassword": "Vnesite novo geslo",
"resetPassword.input.password": "Novo geslo",
"resetPassword.notify.passwordReset": "Vaše geslo je bilo uspešno ponastavljeno.",
// /account
"account.title": "Moj račun",
"account.card.info.title": "Informacije o računu",
"account.card.info.username": "Uporabniško ime",
"account.card.info.email": "E-pošta",
"account.notify.info.success": "Račun je bil uspešno posodobljen",
"account.card.password.title": "Geslo",
"account.card.password.old": "Staro geslo",
"account.card.password.new": "Novo geslo",
"account.card.password.noPasswordSet": "Vaše geslo ni nastavljeno. Če se želite prijaviti z e-pošto in geslom, morate imeti nastavljeno geslo.",
"account.notify.password.success": "Geslo je bilo uspešno posodobljeno",
"account.card.oauth.title": "Prijava z računi družbenih omrežij",
"account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google",
"account.card.oauth.microsoft": "Microsoft",
"account.card.oauth.discord": "Discord",
"account.card.oauth.oidc": "OpenID",
"account.card.oauth.link": "Poveži",
"account.card.oauth.unlink": "Odstrani povezavo",
"account.card.oauth.unlinked": "Povezava je odstranjena",
"account.modal.unlink.title": "Odstrani povezavo z računom",
"account.modal.unlink.description": "Odstranitev povezave z računom družbenih omrežij lahko privede do izgube vašega računa, če se ne spomnite vašega uporabniškega imena in gesla.",
"account.notify.oauth.unlinked.success": "Povezava je bila uspešno odstranjena",
"account.card.security.title": "Varnost",
"account.card.security.totp.enable.description": "Vnesite vašo trenutno geslo, da omogočite TOTP",
"account.card.security.totp.disable.description": "Vnesite vašo trenutno geslo, da onemogočite TOTP",
"account.card.security.totp.button.start": "Začni",
"account.modal.totp.title": "Omogoči TOTP",
"account.modal.totp.step1": "1. Korak: Dodajte avtentikator",
"account.modal.totp.step2": "2. Korak: Potrdite svojo kodo",
"account.modal.totp.enterManually": "Vnesite ročno",
"account.modal.totp.code": "Koda",
"account.modal.totp.clickToCopy": "Kliknite za kopiranje",
"account.modal.totp.verify": "Preveri",
"account.notify.totp.disable": "TOTP je uspešno onemogočen",
"account.notify.totp.enable": "TOTP je uspešno omogočen",
"account.card.language.title": "Jezik",
"account.card.language.description": "Projekt je preveden s pomočjo skupnosti. Nekateri jeziki morda niso popolno prevedeni.",
"account.card.color.title": "Barvna shema",
// ThemeSwitcher.tsx
"account.theme.dark": "Temna",
"account.theme.light": "Svetla",
"account.theme.system": "Sistemska",
"account.button.delete": "Izbrišite račun",
"account.modal.delete.title": "Izbrišite račun",
"account.modal.delete.description": "Ali res želite izbrisati vaš račun vključno z vsemi vašimi deljenji?",
// END /account
// /account/shares
"account.shares.title": "Moja deljenja",
"account.shares.title.empty": "Prazno je 👀",
"account.shares.description.empty": "Nimate nobenih deljenj.",
"account.shares.button.create": "Ustvarite ga",
"account.shares.info.title": "Delite informacije",
"account.shares.table.id": "ID",
"account.shares.table.name": "Ime",
"account.shares.table.description": "Opis",
"account.shares.table.visitors": "Obiskovalci",
"account.shares.table.expiresAt": "Poteče dne",
"account.shares.table.createdAt": "Ustvarjeno dne",
"account.shares.table.size": "Velikost",
"account.shares.modal.share-informations": "Delite informacije",
"account.shares.modal.share-link": "Delite povezavo",
"account.shares.modal.delete.title": "Izbrišite delitev {share}",
"account.shares.modal.delete.description": "Ali res želite izbrisati to delitev?",
// END /account/shares
// /account/reverseShares
"account.reverseShares.title": "Delitev v obratni smeri",
"account.reverseShares.description": "Delitev v obratni smeri vam omogoča, da generirate unikaten URL, ki omogoča zunanjim uporabnikom ustvariti delitev.",
"account.reverseShares.title.empty": "Prazno je 👀",
"account.reverseShares.description.empty": "Nimate nobenih delitev v obratni smeri.",
// showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Ustvari delitev v obratni smeri",
"account.reverseShares.modal.expiration.label": "Zapadlost",
"account.reverseShares.modal.expiration.minute-singular": "Minuta",
"account.reverseShares.modal.expiration.minute-plural": "Minute",
"account.reverseShares.modal.expiration.hour-singular": "Ura",
"account.reverseShares.modal.expiration.hour-plural": "Ure",
"account.reverseShares.modal.expiration.day-singular": "Dan",
"account.reverseShares.modal.expiration.day-plural": "Dnevi",
"account.reverseShares.modal.expiration.week-singular": "Teden",
"account.reverseShares.modal.expiration.week-plural": "Tedni",
"account.reverseShares.modal.expiration.month-singular": "Mesec",
"account.reverseShares.modal.expiration.month-plural": "Meseci",
"account.reverseShares.modal.expiration.year-singular": "Leto",
"account.reverseShares.modal.expiration.year-plural": "Leta",
"account.reverseShares.modal.max-size.label": "Največja velikost delitve",
"account.reverseShares.modal.send-email": "Pošlji e-poštno obvestilo",
"account.reverseShares.modal.send-email.description": "Pošlji e-poštno obvestilo, ko je ustvarjena delitev s povezavo te delitve v obratni smeri.",
"account.reverseShares.modal.max-use.label": "Največ uporab",
"account.reverseShares.modal.max-use.description": "Največje število uporab URL-ja za ustvarjanje delitve.",
"account.reverseShare.never-expires": "Ta povezava delitve v obratni smeri ne bo nikoli potekla.",
"account.reverseShare.expires-on": "Ta delitev v obratni smeri bo potekla {expiration}.",
"account.reverseShares.table.no-shares": "Nimate še ustvarjenih delitev",
"account.reverseShares.table.count.singular": "delitev",
"account.reverseShares.table.count.plural": "delitve",
"account.reverseShares.table.shares": "Delitve",
"account.reverseShares.table.remaining": "Preostale uporabe",
"account.reverseShares.table.max-size": "Največja velikost delitve",
"account.reverseShares.table.expires": "Poteče dne",
"account.reverseShares.modal.reverse-share-link": "Povezava delitve v obratni smeri",
"account.reverseShares.modal.delete.title": "Izbriši delitev v obratni smeri",
"account.reverseShares.modal.delete.description": "Ali res želite izbrisati to delitev v obratni smeri? Če boste izbrisali, bodo izbrisane tudi povezane delitve.",
// END /account/reverseShares
// /admin
"admin.title": "Administracija",
"admin.button.users": "Upravljanje uporabnikov",
"admin.button.config": "Nastavitve",
"admin.version": "Različica",
// END /admin
// /admin/users
"admin.users.title": "Upravljanje uporabnikov",
"admin.users.table.username": "Uporabniško ime",
"admin.users.table.email": "E-pošta",
"admin.users.table.admin": "Administrator",
"admin.users.edit.update.title": "Uredi uporabnika {username}",
"admin.users.edit.update.admin-privileges": "Administratorski privilegiji",
"admin.users.edit.update.change-password.title": "Spremenite geslo",
"admin.users.edit.update.change-password.field": "Novo geslo",
"admin.users.edit.update.change-password.button": "Shranite novo geslo",
"admin.users.edit.update.notify.password.success": "Geslo je bilo uspešno posodobljeno",
"admin.users.edit.delete.title": "Izbrišite uporabnika {username}",
"admin.users.edit.delete.description": "Ali res želite izbrisati tega uporabnika in vsa njegova deljenja?",
// showCreateUserModal.tsx
"admin.users.modal.create.title": "Ustvarite uporabnika",
"admin.users.modal.create.username": "Uporabniško ime",
"admin.users.modal.create.email": "E-pošta",
"admin.users.modal.create.password": "Geslo",
"admin.users.modal.create.manual-password": "Ročno nastavite geslo",
"admin.users.modal.create.manual-password.description": "Če je omogočeno, bo uporabnik prejel e-poštno sporočilo s povezavo do nastavitve gesla.",
"admin.users.modal.create.admin": "Administratorski privilegiji",
"admin.users.modal.create.admin.description": "Če je omogočeno, bo lahko porabnik dostopal do administratorskega vmesnika.",
// END /admin/users
// /upload
"upload.title": "Naložite",
"upload.notify.generic-error": "Prišlo je do napake pri ustvarjanju vašega deljenja.",
"upload.notify.count-failed": "Prišlo je do napake pri nalaganju toliko datotek: {count}. Poskušamo ponovno.",
// Dropzone.tsx
"upload.dropzone.title": "Naloži datoteke",
"upload.dropzone.description": "Tukaj spustite datoteke, da začnete z delitvijo. Sprejemamo samo datoteke, ki so skupaj manjše od {maxSize}.",
"upload.dropzone.notify.file-too-big": "Vaše datoteke presegajo največjo dovoljeno velikost {maxSize}.",
// FileList.tsx
"upload.filelist.name": "Ime",
"upload.filelist.size": "Velikost",
// showCreateUploadModal.tsx
"upload.modal.title": "Ustvarite delitev",
"upload.modal.link.error.invalid": "Lahko vsebuje samo črke, številke, podčrtaje in pomišljaje",
"upload.modal.link.error.taken": "Ta povezava je že v uporabi",
"upload.modal.not-signed-in": "Niste prijavljeni",
"upload.modal.not-signed-in-description": "Ne boste mogli izbrisati vaših delitev in pregledati števila obiskovalcev.",
"upload.modal.expires.never": "nikoli",
"upload.modal.expires.never-long": "Nikoli ne poteče",
"upload.modal.expires.error.too-long": "Dan poteka presega najvišji datum poteka {max}.",
"upload.modal.link.label": "Povezava",
"upload.modal.expires.label": "Zapadlost",
"upload.modal.expires.minute-singular": "Minuta",
"upload.modal.expires.minute-plural": "Minute",
"upload.modal.expires.hour-singular": "Ura",
"upload.modal.expires.hour-plural": "Ure",
"upload.modal.expires.day-singular": "Dan",
"upload.modal.expires.day-plural": "Dnevi",
"upload.modal.expires.week-singular": "Teden",
"upload.modal.expires.week-plural": "Tedni",
"upload.modal.expires.month-singular": "Mesec",
"upload.modal.expires.month-plural": "Meseci",
"upload.modal.expires.year-singular": "Leto",
"upload.modal.expires.year-plural": "Leta",
"upload.modal.accordion.description.title": "Opis",
"upload.modal.accordion.description.placeholder": "Sporočilo za prejemnika te delitve",
"upload.modal.accordion.email.title": "Prejemnik e-pošte",
"upload.modal.accordion.email.placeholder": "Vnesite prejemnika e-pošte",
"upload.modal.accordion.email.invalid-email": "Neveljaven e-poštni naslov",
"upload.modal.accordion.security.title": "Varnostne možnosti",
"upload.modal.accordion.security.password.label": "Zaščita z geslom",
"upload.modal.accordion.security.password.placeholder": "Brez gesla",
"upload.modal.accordion.security.max-views.label": "Največje število ogledov",
"upload.modal.accordion.security.max-views.placeholder": "Brez omejitve",
// showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "Ta delitev ne bo nikoli potekla.",
"upload.modal.completed.expires-on": "Ta delitev bo potekla {expiration}.",
"upload.modal.completed.share-ready": "Delitev je pripravljena",
// END /upload
// /share/[id]
"share.title": "Deli {shareId}",
"share.description": "Poglej kaj sem delil s taboj!",
"share.error.visitor-limit-exceeded.title": "Število ogledov je prekoračena",
"share.error.visitor-limit-exceeded.description": "Število ogledov za to delitev je bila prekoračena.",
"share.error.removed.title": "Delitev je odstranjena",
"share.error.not-found.title": "Delitve ni mogoče najti",
"share.error.not-found.description": "Delitev, ki jo iščete ne obstaja.",
"share.modal.password.title": "Zahtevano geslo",
"share.modal.password.description": "Za ogled delitve vnesite geslo te delitve.",
"share.modal.password": "Geslo",
"share.modal.error.invalid-password": "Napačno geslo",
"share.button.download-all": "Prenesi vse",
"share.notify.download-all-preparing": "Delitev je v pripravi. Prosimo poskusite ponovno čez nekaj minut.",
"share.modal.file-link": "Povezava do datoteke",
"share.table.name": "Ime",
"share.table.size": "Velikost",
"share.modal.file-preview.error.not-supported.title": "Predogled ni mogoč",
"share.modal.file-preview.error.not-supported.description": "Predogled za to datoteko ni podprt. Prosimo prenesite datoteko, da si jo ogledate.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Uredite {shareId}",
"share.edit.append-upload": "Dodaj datoteko",
"share.edit.notify.generic-error": "Prišlo je do napake pri ustvarjanju vaše delitve.",
"share.edit.notify.save-success": "Delitev je bila uspešno posodbljena",
// END /share/[id]/edit
// /admin/config
"admin.config.title": "Nastavitve",
"admin.config.category.general": "Splošno",
"admin.config.category.share": "Delitev",
"admin.config.category.email": "E-pošta",
"admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Prijava z računi družbenih omrežij",
"admin.config.general.app-name": "Ime aplikacije",
"admin.config.general.app-name.description": "Ime vaše aplikacije",
"admin.config.general.app-url": "URL aplikacije",
"admin.config.general.app-url.description": "Na katerem URL-ju je dostopen Pingvin Share",
"admin.config.general.show-home-page": "Prikaži domačo stran",
"admin.config.general.show-home-page.description": "Ali prikazati domačo stran",
"admin.config.general.logo": "Logotip",
"admin.config.general.logo.description": "Naložite novo sliko, da spremenite logotip. Datoteka mora biti tipa PNG in imeti razmerje 1:1.",
"admin.config.general.logo.placeholder": "Izberite sliko",
"admin.config.email.enable-share-email-recipients": "Omogoči prejemnike delitve po e-pošti",
"admin.config.email.enable-share-email-recipients.description": "Ali dovolite pošiljanje delitve po e-pošti. Omogočite samo v primeru, da imate omogočen SMTP.",
"admin.config.email.share-recipients-subject": "Zadeva poslane delitve",
"admin.config.email.share-recipients-subject.description": "Zadeva e-poštnega sporočila, ki bo poslan prejemnikom delitve.",
"admin.config.email.share-recipients-message": "Vsebina poslane delitve",
"admin.config.email.share-recipients-message.description": "Vsebina e-poštnega sporočila, ki bo poslana prejemnikom delitve. Spremenljivke, ki so na voljo:\n{creator} - uporabniško ime ustvarjalca delitve\n{shareUrl} - URL delitve\n{desc} - vsebina delitve\n{expires} - datum poteka delitve\n Spremenljivke bodo zamenjane z dejanskimi vrednostmi.",
"admin.config.email.reverse-share-subject": "Zadeva delitve v obratni smeri",
"admin.config.email.reverse-share-subject.description": "Zadeva e-poštnega sporočila, ki bo poslan, ko nekdo ustvari delitev z vašo povezavo.",
"admin.config.email.reverse-share-message": "Vsebina delitve v obratni smeri",
"admin.config.email.reverse-share-message.description": "Vsebina e-poštnega sporočila, ki bo poslan, ko nekdo ustvari delitev v obratni smeri. {shareUrl} bo zamenjan z uporabniškim imenom ustvarjalca in URL-jom delitve.",
"admin.config.email.reset-password-subject": "Zadeva ponastavitve gesla",
"admin.config.email.reset-password-subject.description": "Zadeva e-poštnega sporočila, ki bo poslan, ko uporabnik zahteva ponastavitev gesla.",
"admin.config.email.reset-password-message": "Vsebina za ponastavitev gesla",
"admin.config.email.reset-password-message.description": "Vsebina e-poštnega sporočila, ki bo poslan, ko uporabnik zahteva ponastavitev gesla. {url} bo zamenjan z URL-jem za ponastavitev gesla.",
"admin.config.email.invite-subject": "Zadeva povabila",
"admin.config.email.invite-subject.description": "Zadeva e-poštnega sporočila, ki je poslan, ko administrator povabi uporabnika.",
"admin.config.email.invite-message": "Vsebina povabila",
"admin.config.email.invite-message.description": "Sporočilo, ki se pošlje, ko administrator povabi uporabnika. {url} bo zamenjan s povezavo do povabila, {password} pa z geslom.",
"admin.config.share.allow-registration": "Dovoli registracijo",
"admin.config.share.allow-registration.description": "Če je registracija dovoljena",
"admin.config.share.allow-unauthenticated-shares": "Dovoli delitve s strani neprijavljenih uporabnikov",
"admin.config.share.allow-unauthenticated-shares.description": "Če lahko neprijavljeni uporabniki ustvarijo delitve",
"admin.config.share.max-expiration": "Najvišja zapadlost",
"admin.config.share.max-expiration.description": "Najvišja zapadlost delitve v urah. Nastavljeno na 0 pomeni brez zapadlosti.",
"admin.config.share.max-size": "Največja velikost",
"admin.config.share.max-size.description": "Največja velikost delitve v bytih",
"admin.config.share.zip-compression-level": "Nivo Zip stiskanja",
"admin.config.share.zip-compression-level.description": "Nivo stiskanja, ki uravnoveša med velikostjo datoteke in hitrostjo stiskanja. Veljavne vrednosti so med 0 in 9, kjer 0 pomeni brez kompresije in 9 pomeni največjo kompresijo. ",
"admin.config.smtp.enabled": "Omogočeno",
"admin.config.smtp.enabled.description": "Če je SMTP omogočen. Omogočite samo, če ste vnesli strežnik, vrata, e-pošto, uporabniško ime in geslo vašega SMTP strežnika.",
"admin.config.smtp.host": "Gostitelj",
"admin.config.smtp.host.description": "Gostitelj SMTP strežnika",
"admin.config.smtp.port": "Vrata",
"admin.config.smtp.port.description": "Vrata SMTP strežnika",
"admin.config.smtp.email": "E-pošta",
"admin.config.smtp.email.description": "E-poštni naslov, s katerega bodo poslana e-poštna sporočila",
"admin.config.smtp.username": "Uporabniško ime",
"admin.config.smtp.username.description": "Uporabniško ime SMTP strežnika",
"admin.config.smtp.password": "Geslo",
"admin.config.smtp.password.description": "Geslo SMTP strežnika",
"admin.config.smtp.button.test": "Pošlji testno sporočilo",
"admin.config.oauth.allow-registration": "Dovoli registracijo",
"admin.config.oauth.allow-registration.description": "Dovoli registracijo uporabnika prek družbenih omrežij",
"admin.config.oauth.ignore-totp": "Ignoriraj TOTP",
"admin.config.oauth.ignore-totp.description": "Če ignorirati TOTP, ko se uporabnik registrira prek družbenih omrežij",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Če je dovoljena prijava z GitHub računom",
"admin.config.oauth.github-client-id": "GitHub ID klienta",
"admin.config.oauth.github-client-id.description": "ID klienta GitHub OAuth aplikacije",
"admin.config.oauth.github-client-secret": "GitHub skrivnost klienta",
"admin.config.oauth.github-client-secret.description": "Skrivnost klienta GitHub OAuth aplikacije",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Če je dovoljena prijava z Google računom",
"admin.config.oauth.google-client-id": "Google ID klienta",
"admin.config.oauth.google-client-id.description": "ID Klienta Google OAuth aplikacije",
"admin.config.oauth.google-client-secret": "Skrivnost Google klienta",
"admin.config.oauth.google-client-secret.description": "Skrivnost klienta Google OAuth aplikacije",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Če je dovoljena prijava z Microsoft računom",
"admin.config.oauth.microsoft-tenant": "Microsoft najemnik",
"admin.config.oauth.microsoft-tenant.description": "ID identitete Microsoft OAuth aplikacije\nobičajno: V aplikacijo se lahko prijavijo uporabniki osebnega Microsoft računa in službenega ali šolskega računa z Microsoft Entra ID.\norganizacije: V aplikacijo se lahko prijavijo samo uporabniki službenega ali šolskega računa z Microsoft Entra ID.\nuporabniki: V aplikacijo se lahko prijavijo samo uporabniki osebnega Microsoft računa.\ndomensko ime Microsoft Entra identitete ali ID identitete v formatu GUID: V aplikacijo se lahko prijavijo samo uporabniki specifične Microsoft Entra identitete (člani imenika s službenim ali šolskim računom ali gosti imenika z osebnim Microsoft računom).",
"admin.config.oauth.microsoft-client-id": "Microsoft ID klienta",
"admin.config.oauth.microsoft-client-id.description": "ID Klienta Microsoft OAuth aplikacije",
"admin.config.oauth.microsoft-client-secret": "Skrivnost Microsoft klienta",
"admin.config.oauth.microsoft-client-secret.description": "Skrivnost klienta Microsoft OAuth aplikacije",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Če je dovoljena prijava z Discord računom",
"admin.config.oauth.discord-limited-guild": "ID omejenega Discord strežnika",
"admin.config.oauth.discord-limited-guild.description": "Omogoči omejitev prijave uporabnika v specifičen strežnik. Pustite prazno, da onemogočite.",
"admin.config.oauth.discord-client-id": "Discord ID klienta",
"admin.config.oauth.discord-client-id.description": "ID klienta Discord OAuth aplikacije",
"admin.config.oauth.discord-client-secret": "Discord skrivnost klienta",
"admin.config.oauth.discord-client-secret.description": "Skrivnost klienta Discord OAuth aplikacije",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Če je dovoljena prijava z OpenID Connect",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect URI za odkrivanje",
"admin.config.oauth.oidc-discovery-uri.description": "URI za odkrivanje OpenID Connect OAuth aplikacije",
"admin.config.oauth.oidc-username-claim": "OpenID Connect zahteva za uporabniško ime",
"admin.config.oauth.oidc-username-claim.description": "Zahteva za uporabniško ime za OpenID Connect ID žetona. Pustite prazno, če ne poznate te nastavitve.",
"admin.config.oauth.oidc-client-id": "OpenID Connect ID klienta",
"admin.config.oauth.oidc-client-id.description": "ID Klienta OpenID Connect OAuth aplikacije",
"admin.config.oauth.oidc-client-secret": "OpenID Connect skrivnost klienta",
"admin.config.oauth.oidc-client-secret.description": "Skrivnost klienta OpenID Connect OAuth aplikacije",
// 404
"404.description": "Ups! Ta stran ne obstaja.",
"404.button.home": "Pelji me domov",
// error
"error.title": "Napaka",
"error.description": "Ups!",
"error.button.back": "Nazaj",
"error.msg.default": "Prišlo je do napake.",
"error.msg.access_denied": "Prekinili ste proces prijave, prosimo poskusite ponovno.",
"error.msg.expired_token": "Proces prijave je trajal predolgo, prosimo poskusite ponovno.",
"error.msg.invalid_token": "Interna napaka",
"error.msg.no_user": "Uporabnik povezan na račun {0} ne obstaja.",
"error.msg.no_email": "Ne najdemo e-poštnega naslova za račun {0}.",
"error.msg.already_linked": "Račun {0} je že povezan na drug račun.",
"error.msg.not_linked": "Račun {0} še ni povezan z nobenim računom.",
"error.msg.unverified_account": "Račun {0} je nepreverjen, prosimo poskusite ponovno po preverjanju.",
"error.msg.discord_guild_permission_denied": "Nimate dovoljenja za prijavo.",
"error.msg.cannot_get_user_info": "Ne moremo najti uporabniških informacij za račun {0}.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Shrani",
"common.button.create": "Ustvari",
"common.button.submit": "Pošlji",
"common.button.delete": "Izbriši",
"common.button.cancel": "Prekliči",
"common.button.confirm": "Potrdi",
"common.button.disable": "Onemogoči",
"common.button.share": "Deli",
"common.button.generate": "Generiraj",
"common.button.done": "Končano",
"common.text.link": "Poveži",
"common.text.navigate-to-link": "Pojdi na povezavo",
"common.text.or": "ali",
"common.button.go-back": "Nazaj",
"common.notify.copied": "Povezava je bila kopirana v odložišče",
"common.success": "Uspešno",
"common.error": "Napaka",
"common.error.unknown": "Prišlo je do neznane napake",
"common.error.invalid-email": "Neveljaven e-poštni naslov",
"common.error.too-short": "Vsebovati mora vsaj {length} znakov",
"common.error.too-long": "Vsebuje lahko največ {length} znakov",
"common.error.exact-length": "Dolžina mora biti točno {length} znakov",
"common.error.invalid-number": "Mora biti številka",
"common.error.field-required": "To polje je obvezno"
};

View File

@@ -262,7 +262,7 @@ export default {
"share.table.name": "Назив",
"share.table.size": "Величина",
"share.modal.file-preview.error.not-supported.title": "Преглед није подржан",
"share.modal.file-preview.error.not-supported.description": "Преглед за овај тип датотеке није подржан. Преузмите датотеку да бисте је видели.",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Edit {shareId}",
@@ -353,18 +353,22 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Тајна клијента за Microsot OAuth апликацију",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Да ли је пријављивање на Discord омогућено",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord ИД клијента",
"admin.config.oauth.discord-client-id.description": "ИД клијента Discord OAuth апликације",
"admin.config.oauth.discord-client-secret": "Discord клијент тајна",
"admin.config.oauth.discord-client-secret.description": "Тајна клијента Discord OAuth апликације",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Да ли је пријављивање на OpenID омогућено",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "УРИ за откривање OpenID OAuth апликације",
"admin.config.oauth.oidc-client-id": "OpenID ИД клијента",
"admin.config.oauth.oidc-client-id.description": "ИД клијента OpenID OAuth апликације",
"admin.config.oauth.oidc-client-secret": "Тајна OpenID клијента",
"admin.config.oauth.oidc-client-secret.description": "Тајна клијента OpenID OAuth апликације",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "Опа - Ова страна не постоји.",
"404.button.home": "Врати ме на почетак",
@@ -375,15 +379,19 @@ export default {
"error.msg.default": "Нешто је пошло наопако.",
"error.msg.access_denied": "Отказали сте процес аутентификације, покушајте поново.",
"error.msg.expired_token": "Процес аутентификације је трајао предуго, покушајте поново.",
"error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "Корисник повезан са овим {0} налогом не постоји.",
"error.msg.no_email": "Не могу да добијем адресу е-поште са овог {0} налога.",
"error.msg.already_linked": "Овај {0} налог је већ повезан са другим налогом.",
"error.msg.not_linked": "Овај {0} налог још увек није повезан ни са једним налогом.",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Сачувај",
"common.button.create": "Направи",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Генериши",
"common.button.done": "Готово",
"common.text.link": "Линк",
"common.text.navigate-to-link": "Go to the link",
"common.text.or": "или",
"common.button.go-back": "Иди назад",
"common.notify.copied": "Ваша веза је копирана у clipboard",

View File

@@ -200,7 +200,7 @@ export default {
"upload.notify.generic-error": "Ett fel uppstod när din delning skulle slutföras.",
"upload.notify.count-failed": "{count} filer kunde inte laddas upp. Försöker igen.",
// Dropzone.tsx
"upload.dropzone.title": "Ladde upp filer",
"upload.dropzone.title": "Ladda upp filer",
"upload.dropzone.description": "Drag och släpp filer här för att starta din delning. Vi kan endast acceptera filer som är mindre än {maxSize} totalt.",
"upload.dropzone.notify.file-too-big": "Dina filer överskrider den maximala storleken på {maxSize}.",
// FileList.tsx
@@ -262,7 +262,7 @@ export default {
"share.table.name": "Namn",
"share.table.size": "Storlek",
"share.modal.file-preview.error.not-supported.title": "Förhandsgranskning stöds ej",
"share.modal.file-preview.error.not-supported.description": "En förhandsvisning för filtypen stöds inte. Ladda ner filen för att se den.",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Redigera {shareId}",
@@ -288,16 +288,16 @@ export default {
"admin.config.general.logo.placeholder": "Välj bild",
"admin.config.email.enable-share-email-recipients": "Aktivera e-postmottagare för delning",
"admin.config.email.enable-share-email-recipients.description": "Om du vill tillåta e-post till delningsmottagare. Aktivera endast detta om du har aktiverat SMTP.",
"admin.config.email.share-recipients-subject": "Share recipients subject",
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
"admin.config.email.share-recipients-message": "Share recipients message",
"admin.config.email.share-recipients-subject": "Delning ämne",
"admin.config.email.share-recipients-subject.description": "Ämne för e-postmeddelandet som skickas till delningsmottagarna.",
"admin.config.email.share-recipients-message": "Delning meddelande",
"admin.config.email.share-recipients-message.description": "Meddelande som skickas till delningens mottagare. Tillgängliga variabler:\n {creator} - Användarnamnet för skaparen av delningen\n {shareUrl} - URL för delningen\n {desc} - Beskrivningen av delningen\n {expires} - Förfallodatumet för delningen\n Variablerna kommer att ersättas med det faktiska värdet.",
"admin.config.email.reverse-share-subject": "Omvänd delning ämne",
"admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.",
"admin.config.email.reverse-share-message": "Reverse share message",
"admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.",
"admin.config.email.reset-password-subject": "Reset password subject",
"admin.config.email.reset-password-subject.description": "Subject of the email which gets sent when a user requests a password reset.",
"admin.config.email.reverse-share-subject.description": "Ämne i e-postmeddelandet som skickas när någon skapade en delning med din omvända delningslänk.",
"admin.config.email.reverse-share-message": "Omvänd delning meddelande",
"admin.config.email.reverse-share-message.description": "Meddelande som skickas när någon skapade en delning med din länk för omvänd delning. {shareUrl} kommer att ersättas med skaparens namn och delningens URL.",
"admin.config.email.reset-password-subject": "Återställ lösenord ämne",
"admin.config.email.reset-password-subject.description": "Ämne i e-postmeddelandet som skickas när en användare begär en lösenordsåterställning.",
"admin.config.email.reset-password-message": "Återställ lösenord meddelande",
"admin.config.email.reset-password-message.description": "Meddelande som skickas när en användare begär en lösenordsåterställning. {url} kommer att ersättas med länken för lösenordsåterställningen.",
"admin.config.email.invite-subject": "Inbjudan ämne",
@@ -313,9 +313,9 @@ export default {
"admin.config.share.max-size": "Max storlek",
"admin.config.share.max-size.description": "Maximal storlek för delning i bytes",
"admin.config.share.zip-compression-level": "Komprimeringsnivå för zip",
"admin.config.share.zip-compression-level.description": "Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ",
"admin.config.share.zip-compression-level.description": "Justera nivån för att balansera mellan filstorlek och komprimeringshastighet. Giltiga värden varierar från 0 till 9, med 0 som ingen komprimering och 9 som maximal komprimering. ",
"admin.config.smtp.enabled": "Aktiverad",
"admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.",
"admin.config.smtp.enabled.description": "Om SMTP skall vara aktiverat. Ange endast detta som sant om du angav adress, port, e-post, användare och lösenord för din SMTP-server.",
"admin.config.smtp.host": "Adress",
"admin.config.smtp.host.description": "Adress för SMTP-servern",
"admin.config.smtp.port": "Port",
@@ -344,27 +344,31 @@ export default {
"admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "Client secret för Google OAuth appen",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
"admin.config.oauth.microsoft-enabled.description": "Om Microsoftinloggning skall vara aktiverat",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
"admin.config.oauth.microsoft-tenant.description": "Tenant-ID för Microsoft OAuth app\ngemensamt: Användare med både ett personligt Microsoft-konto och ett arbets- eller skolkonto från Microsoft Entra ID kan logga in på programmet.\norganisationer: Endast användare med arbets- eller skolkonton från Microsoft Entra ID kan logga in på programmet.\nkonsumenter: Endast användare med ett personligt Microsoft-konto kan logga in på programmet.\ndomännamn för Microsoft Entra tenant eller tenant ID i GUID-format: Endast användare från en specifik Microsoft Entra tenant (katalogmedlemmar med ett arbets- eller skolkonto eller kataloggäster med ett personligt Microsoft-konto) kan logga in på ansökan.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-id.description": "Client ID för Microsoft OAuth",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-secret.description": "Client secret för Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-enabled.description": "Om inloggning via Discord är aktiverat",
"admin.config.oauth.discord-limited-guild": "Discord begränsa till server ID",
"admin.config.oauth.discord-limited-guild.description": "Begränsa inloggning till användare på en specifik server. Lämna tomt för att inaktivera.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-id.description": "Client ID för Discord OAuth",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID OAuth app",
"admin.config.oauth.oidc-client-id": "OpenID Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID OAuth app",
"admin.config.oauth.discord-client-secret.description": "Client secret för Discord OAuth",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Om OpenID-inloggning är aktiverat",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI för OpenID Connect OAuth appen",
"admin.config.oauth.oidc-username-claim": "OpenID Connect användarnamnsanspråk",
"admin.config.oauth.oidc-username-claim.description": "Användarnamnsanspråk i OpenID Connect ID token. Lämna tomt om du inte vet vad denna konfiguration är.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID för OpenID OAuth",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret för OpenID OAuth",
// 404
"404.description": "Hoppsan den här sidan finns inte.",
"404.button.home": "Ta mig tillbaka hem",
@@ -375,15 +379,19 @@ export default {
"error.msg.default": "Någonting gick fel.",
"error.msg.access_denied": "Du avbröt autentiseringsprocessen, försök igen.",
"error.msg.expired_token": "Autentiseringsprocessen tog för lång tid, försök igen.",
"error.msg.invalid_token": "Internt fel",
"error.msg.no_user": "Användare som är länkad till detta {0} konto finns inte.",
"error.msg.no_email": "Kan inte hämta e-postadress från detta {0} konto.",
"error.msg.already_linked": "Detta {0} konto är redan länkat till ett annat konto.",
"error.msg.not_linked": "Detta {0} konto har ännu inte länkat till något konto.",
"error.msg.unverified_account": "Detta {0} -konto är overifierat, försök igen efter verifiering.",
"error.msg.discord_guild_permission_denied": "Du är inte tillåten att logga in.",
"error.msg.cannot_get_user_info": "Kan inte hämta din användarinformation från detta {0} konto.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "Spara",
"common.button.create": "Skapa",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "Generera",
"common.button.done": "Klar",
"common.text.link": "Länk",
"common.text.navigate-to-link": "Gå till länken",
"common.text.or": "eller",
"common.button.go-back": "Gå tillbaka",
"common.notify.copied": "Din länk har kopierats till urklipp",

View File

@@ -262,7 +262,7 @@ export default {
"share.table.name": "ชื่อ",
"share.table.size": "ขนาด",
"share.modal.file-preview.error.not-supported.title": "ไม่รองรับการแสดงตัวอย่าง",
"share.modal.file-preview.error.not-supported.description": "ไม่รองรับการแสดงตัวอย่างสำหรับไฟล์ประเภทนี้ โปรดดาวน์โหลดไฟล์เพื่อดู",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Edit {shareId}",
@@ -353,18 +353,22 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID OAuth app",
"admin.config.oauth.oidc-client-id": "OpenID Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "ไม่พบหน้าที่คุณกำลังมองหา",
"404.button.home": "หน้าแรก",
@@ -375,15 +379,19 @@ export default {
"error.msg.default": "Something went wrong.",
"error.msg.access_denied": "You canceled the authentication process, please try again.",
"error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "This {0} account is already linked to another account.",
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "บันทึก",
"common.button.create": "สร้าง",
@@ -396,6 +404,7 @@ export default {
"common.button.generate": "สุ่ม",
"common.button.done": "เสร็จสิ้น",
"common.text.link": "ลิงค์",
"common.text.navigate-to-link": "Go to the link",
"common.text.or": "หรือ",
"common.button.go-back": "ย้อนกลับ",
"common.notify.copied": "คัดลอกไปยังคลิปบอร์ดแล้ว",

View File

@@ -35,7 +35,7 @@ export default {
"signIn.notify.totp-required.description": "请输入一次性验证码",
"signIn.oauth.or": "OR",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.google": "谷歌",
"signIn.oauth.microsoft": "Microsoft",
"signIn.oauth.discord": "Discord",
"signIn.oauth.oidc": "OpenID",
@@ -51,8 +51,8 @@ export default {
"signup.button.submit": "注册",
// END /auth/signup
// /auth/totp
"totp.title": "TOTP Authentication",
"totp.button.signIn": "Sign in",
"totp.title": "两步验证",
"totp.button.signIn": "登录",
// END /auth/totp
// /auth/reset-password
"resetPassword.title": "忘记密码?",
@@ -72,11 +72,11 @@ export default {
"account.card.password.title": "密码",
"account.card.password.old": "旧密码",
"account.card.password.new": "新密码",
"account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.",
"account.card.password.noPasswordSet": "您还未设置密码。如果您想通过邮箱和密码登录,请先设置密码。",
"account.notify.password.success": "密码更改成功!",
"account.card.oauth.title": "Social login",
"account.card.oauth.title": "社交账号登录",
"account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google",
"account.card.oauth.google": "谷歌",
"account.card.oauth.microsoft": "Microsoft",
"account.card.oauth.discord": "Discord",
"account.card.oauth.oidc": "OpenID",
@@ -84,8 +84,8 @@ export default {
"account.card.oauth.unlink": "Unlink",
"account.card.oauth.unlinked": "Unlinked",
"account.modal.unlink.title": "Unlink account",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
"account.notify.oauth.unlinked.success": "Unlinked successfully",
"account.modal.unlink.description": "如果您不记得您的用户名和密码,解除和社交账号的关联可能会导致丢失账户。",
"account.notify.oauth.unlinked.success": "解除关联成功",
"account.card.security.title": "安全",
"account.card.security.totp.enable.description": "请输入当前密码开启两步验证",
"account.card.security.totp.disable.description": "请输入当前密码关闭两步验证",
@@ -100,7 +100,7 @@ export default {
"account.notify.totp.disable": "成功关闭两步验证!",
"account.notify.totp.enable": "成功开启两步验证!",
"account.card.language.title": "语言",
"account.card.language.description": "The project is translated by the community. Some languages might be incomplete.",
"account.card.language.description": "本项目由社区成员翻译,部分语言可能暂未提供翻译。",
"account.card.color.title": "颜色外观",
// ThemeSwitcher.tsx
"account.theme.dark": "暗黑模式",
@@ -130,11 +130,11 @@ export default {
// END /account/shares
// /account/reverseShares
"account.reverseShares.title": "预留共享",
"account.reverseShares.description": "预留共享允许你创建一个特定共享链接,以便外部用户以此创建共享",
"account.reverseShares.description": "预留共享允许你创建一个特定共享链接,以便外部用户以此链接创建共享",
"account.reverseShares.title.empty": "这里空空如也 👀",
"account.reverseShares.description.empty": "你没有创建任何预留共享",
// showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Create reverse share",
"account.reverseShares.modal.title": "创建反向共享",
"account.reverseShares.modal.expiration.label": "过期时间",
"account.reverseShares.modal.expiration.minute-singular": "1 分钟",
"account.reverseShares.modal.expiration.minute-plural": "分钟",
@@ -214,7 +214,7 @@ export default {
"upload.modal.not-signed-in-description": "你将不能删除你的共享或查看访问次数",
"upload.modal.expires.never": "永不",
"upload.modal.expires.never-long": "永不过期",
"upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.",
"upload.modal.expires.error.too-long": "您设置的过期时间超出了系统上限 {max}",
"upload.modal.link.label": "共享链接",
"upload.modal.expires.label": "过期时间",
"upload.modal.expires.minute-singular": "1 分钟",
@@ -262,7 +262,7 @@ export default {
"share.table.name": "文件名",
"share.table.size": "文件大小",
"share.modal.file-preview.error.not-supported.title": "该文件类型不支持预览",
"share.modal.file-preview.error.not-supported.description": "该文件类型不支持预览,请下载后打开查看",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "编辑 {shareId}",
@@ -276,22 +276,22 @@ export default {
"admin.config.category.share": "共享",
"admin.config.category.email": "电子邮件",
"admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login",
"admin.config.category.oauth": "社交账号登录",
"admin.config.general.app-name": "App 名称",
"admin.config.general.app-name.description": "这个 App 的名称",
"admin.config.general.app-name.description": "自定义 App 的名称",
"admin.config.general.app-url": "App 的地址",
"admin.config.general.app-url.description": "Pingvin Share 的 URL 地址",
"admin.config.general.show-home-page": "显示首页",
"admin.config.general.show-home-page.description": "是否显示首页",
"admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "上传个性化 Logo图片必须是长宽比 1:1 的 PNG 格式",
"admin.config.general.logo.description": "上传你的个性化 Logo图片必须是长宽比 1:1 的 PNG 格式",
"admin.config.general.logo.placeholder": "选择图片",
"admin.config.email.enable-share-email-recipients": "开启共享邮件通知",
"admin.config.email.enable-share-email-recipients.description": "是否允许通过邮件通知发送共享信息,只有设置了 SMTP 后该选项才有效",
"admin.config.email.share-recipients-subject": "共享邮件通知主题",
"admin.config.email.share-recipients-subject.description": "发送共享邮件通知的邮件主题",
"admin.config.email.share-recipients-message": "共享邮件通知内容",
"admin.config.email.share-recipients-message.description": "发送到接收者的共享邮件通知具体内容。可选的变量有:\n {creator} - 共享创建者\n {shareUrl} - 共享链接\n {desc} - 共享描述\n {expires} - 共享过期时间\n 这些变量会被实际的值所替代",
"admin.config.email.share-recipients-message.description": "发接收者的共享邮件通知具体内容。可选的变量有:\n {creator} - 共享创建者\n {shareUrl} - 共享链接\n {desc} - 共享描述\n {expires} - 共享过期时间\n 这些变量会被实际的值所替代",
"admin.config.email.reverse-share-subject": "预留共享邮件通知主题",
"admin.config.email.reverse-share-subject.description": "当有人使用了你的预留共享链接时,发送的预留共享邮件通知主题",
"admin.config.email.reverse-share-message": "预留共享邮件通知内容",
@@ -308,12 +308,12 @@ export default {
"admin.config.share.allow-registration.description": "是否允许注册",
"admin.config.share.allow-unauthenticated-shares": "是否允许未验证的共享",
"admin.config.share.allow-unauthenticated-shares.description": "是否允许未验证的用户创建共享",
"admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.max-expiration": "最长过期时间",
"admin.config.share.max-expiration.description": "“最长过期时间”以小时为单位如果将其设置为“0”则为永不过期。",
"admin.config.share.max-size": "最大文件上限",
"admin.config.share.max-size.description": "最大文件上限,单位 bytes (1GB=1024MB=1048576KB=1073741824bytes)",
"admin.config.share.zip-compression-level": "Zip compression level",
"admin.config.share.zip-compression-level.description": "Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ",
"admin.config.share.zip-compression-level": "Zip 文件压缩质量",
"admin.config.share.zip-compression-level.description": "调整压缩质量来平衡压缩文件的大小和压缩的速度。有效值介于 0 和 9 之间0 为不压缩9 为最高质量压缩。 ",
"admin.config.smtp.enabled": "启用",
"admin.config.smtp.enabled.description": "是否开启 SMTP仅当输入主机名、端口、发送邮箱、用户名和密码后开启",
"admin.config.smtp.host": "主机名",
@@ -327,63 +327,71 @@ export default {
"admin.config.smtp.password": "密码",
"admin.config.smtp.password.description": "SMTP 主机密码",
"admin.config.smtp.button.test": "发送测试邮件",
"admin.config.oauth.allow-registration": "Allow registration",
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
"admin.config.oauth.ignore-totp": "Ignore TOTP",
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
"admin.config.oauth.allow-registration": "允许注册",
"admin.config.oauth.allow-registration.description": "允许用户通过登录社交账号来注册",
"admin.config.oauth.ignore-totp": "忽略两步验证",
"admin.config.oauth.ignore-totp.description": "用户通过社交账号登录时是否忽略两步验证",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
"admin.config.oauth.github-enabled.description": "是否启用 GitHub 账号登录",
"admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
"admin.config.oauth.github-client-id.description": "GitHub OAuth App 的 Client ID",
"admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
"admin.config.oauth.google-client-id": "Google Client ID",
"admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app",
"admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "Client secret of the Google OAuth app",
"admin.config.oauth.github-client-secret.description": "GitHub OAuth App 的 Client secret",
"admin.config.oauth.google-enabled": "谷歌",
"admin.config.oauth.google-enabled.description": "是否启用谷歌账号登录",
"admin.config.oauth.google-client-id": "谷歌 Client ID",
"admin.config.oauth.google-client-id.description": "Google OAuth App 的 Client ID",
"admin.config.oauth.google-client-secret": "谷歌 Client secret",
"admin.config.oauth.google-client-secret.description": "Google OAuth App 的 Client secret",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
"admin.config.oauth.microsoft-enabled.description": "是否启用微软账号登录",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-id.description": "Microsoft OAuth App 的 Client ID",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth App 的 Client secret",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID OAuth app",
"admin.config.oauth.oidc-client-id": "OpenID Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID OAuth app",
"admin.config.oauth.discord-enabled.description": "是否启用 Discord 账号登录",
"admin.config.oauth.discord-limited-guild": "Discord 的 limited server ID",
"admin.config.oauth.discord-limited-guild.description": "限制特定服务器中的用户登录。留空来禁用。",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Discord OAuth App 的 Client ID",
"admin.config.oauth.discord-client-secret": "Discord 的 Client secret",
"admin.config.oauth.discord-client-secret.description": "Discord OAuth App 的 Client secret",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "是否启用 OpenID Connect 登录",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect 的 Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "OpenID Connect OAuth App 的 Discovery URI",
"admin.config.oauth.oidc-username-claim": "OpenID Connect 用户名请求",
"admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID token 中的用户名请求。如果您不知道这项配置是什么,请留空。",
"admin.config.oauth.oidc-client-id": "OpenID Connect 的 Client ID",
"admin.config.oauth.oidc-client-id.description": "OpenID Connect OAuth App 的 Client ID",
"admin.config.oauth.oidc-client-secret": "OpenID Connect 的 Client secret",
"admin.config.oauth.oidc-client-secret.description": "OpenID Connect OAuth App 的 Client secret",
// 404
"404.description": "当前的页面走丢啦",
"404.button.home": "返回主页",
// error
"error.title": "Error",
"error.description": "Oops!",
"error.button.back": "Go back",
"error.msg.default": "Something went wrong.",
"error.msg.access_denied": "You canceled the authentication process, please try again.",
"error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "This {0} account is already linked to another account.",
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
"error.title": "出错了",
"error.description": "糟糕!",
"error.button.back": "返回上一页",
"error.msg.default": "发生未知错误。",
"error.msg.access_denied": "您取消了认证过程,请重试。",
"error.msg.expired_token": "认证过程耗时异常,请重试。",
"error.msg.invalid_token": "内部错误",
"error.msg.no_user": "用户关联的这个 {0} 账户不存在。",
"error.msg.no_email": "无法从 {0} 这个账户获取邮箱地址。",
"error.msg.already_linked": "{0} 这个账户已经关联到另一个账号。",
"error.msg.not_linked": "{0} 这个账户尚未关联到任何账号。",
"error.msg.unverified_account": "{0} 这个账户尚未验证,请在验证后重试。",
"error.msg.discord_guild_permission_denied": "您无权登录。",
"error.msg.cannot_get_user_info": "无法从 {0} 这个账户获取您的用户信息。",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_google": "谷歌",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "保存",
"common.button.create": "创建",
@@ -396,10 +404,11 @@ export default {
"common.button.generate": "生成",
"common.button.done": "完成",
"common.text.link": "链接",
"common.text.navigate-to-link": "访问链接",
"common.text.or": "或",
"common.button.go-back": "返回",
"common.notify.copied": "已复制到剪贴板",
"common.success": "Success",
"common.success": "成功",
"common.error": "错误",
"common.error.unknown": "发生未知错误",
"common.error.invalid-email": "邮件地址不可用",

View File

@@ -0,0 +1,420 @@
export default {
// Navbar
"navbar.upload": "上傳",
"navbar.signin": "登入",
"navbar.home": "首頁",
"navbar.signup": "註冊",
"navbar.links.shares": "我的分享",
"navbar.links.reverse": "檔案請求",
"navbar.avatar.account": "帳號設定",
"navbar.avatar.admin": "管理",
"navbar.avatar.signout": "登出",
// END navbar
// /
"home.title": "<h>自建</h> 檔案分享平台!",
"home.description": "您真的放心把檔案交到第三方檔案平台手中嗎?",
"home.bullet.a.name": "完全自建",
"home.bullet.a.description": "輕松使用私有服務器搭建檔案分享平台",
"home.bullet.b.name": "完全隱私",
"home.bullet.b.description": "您的檔案只屬於您!不需將它放到第三方檔案平台",
"home.bullet.c.name": "完全無限",
"home.bullet.c.description": "想上傳多大都可以,更需要擔心的是您的存儲空間容量",
"home.button.start": "開始使用",
"home.button.source": "原始碼",
// END /
// /auth/signin
"signin.title": "歡迎回來",
"signin.description": "還沒有帳號嗎?請",
"signin.button.signup": "註冊",
"signin.input.email-or-username": "電子郵件或使用者名稱",
"signin.input.email-or-username.placeholder": "請輸入電子郵件或使用者名稱",
"signin.input.password": "密碼",
"signin.input.password.placeholder": "請輸入密碼",
"signin.button.submit": "登入",
"signIn.notify.totp-required.title": "請繼續兩步驗證",
"signIn.notify.totp-required.description": "請輸入一次性驗證碼",
"signIn.oauth.or": "OR",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft",
"signIn.oauth.discord": "Discord",
"signIn.oauth.oidc": "OpenID",
// END /auth/signin
// /auth/signup
"signup.title": "建立帳號",
"signup.description": "已經有帳號了?請",
"signup.button.signin": "登入",
"signup.input.username": "使用者名稱",
"signup.input.username.placeholder": "請輸入使用者名稱",
"signup.input.email": "電子郵件",
"signup.input.email.placeholder": "請輸入電子郵件",
"signup.button.submit": "註冊",
// END /auth/signup
// /auth/totp
"totp.title": "TOTP Authentication",
"totp.button.signIn": "Sign in",
// END /auth/totp
// /auth/reset-password
"resetPassword.title": "忘記密碼?",
"resetPassword.description": "請輸入Email以讓系統寄送重置密碼郵件",
"resetPassword.notify.success": "一封包含密碼重置地址的郵件已發送到您的Email",
"resetPassword.button.back": "返回登入頁面",
"resetPassword.text.resetPassword": "重置密碼",
"resetPassword.text.enterNewPassword": "請輸入新密碼",
"resetPassword.input.password": "新密碼",
"resetPassword.notify.passwordReset": "密碼更新成功!",
// /account
"account.title": "我的帳號",
"account.card.info.title": "帳號資訊",
"account.card.info.username": "使用者名稱",
"account.card.info.email": "Email",
"account.notify.info.success": "帳號資訊更新成功!",
"account.card.password.title": "密碼",
"account.card.password.old": "舊密碼",
"account.card.password.new": "新密碼",
"account.card.password.noPasswordSet": "並未設定密碼若希望使用E-mail與密碼進行登入則必須要設定密碼。",
"account.notify.password.success": "密碼更改成功!",
"account.card.oauth.title": "第三方登入",
"account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google",
"account.card.oauth.microsoft": "Microsoft",
"account.card.oauth.discord": "Discord",
"account.card.oauth.oidc": "OpenID",
"account.card.oauth.link": "聯結",
"account.card.oauth.unlink": "取消聯結",
"account.card.oauth.unlinked": "已取消聯結",
"account.modal.unlink.title": "取消聯結第三方登入",
"account.modal.unlink.description": "若不記得使用者名稱與密碼,取消聯結第三方登入可能會使您無法登入。",
"account.notify.oauth.unlinked.success": "已完成取消聯結",
"account.card.security.title": "安控",
"account.card.security.totp.enable.description": "請輸入當前密碼開啟兩步驗證",
"account.card.security.totp.disable.description": "請輸入當前密碼關閉兩步驗證",
"account.card.security.totp.button.start": "開啟",
"account.modal.totp.title": "開啟兩步驗證",
"account.modal.totp.step1": "第一步:添加驗證應用程式 Authenticator",
"account.modal.totp.step2": "第二步:輸入一次性驗證碼",
"account.modal.totp.enterManually": "手動輸入",
"account.modal.totp.code": "驗證碼",
"account.modal.totp.clickToCopy": "複製",
"account.modal.totp.verify": "確認",
"account.notify.totp.disable": "成功關閉兩步驗證!",
"account.notify.totp.enable": "成功開啟兩步驗證!",
"account.card.language.title": "語言",
"account.card.language.description": "此專案由社群進行翻譯,部分語言可能尚未完成翻譯。",
"account.card.color.title": "顏色外觀",
// ThemeSwitcher.tsx
"account.theme.dark": "深色模式",
"account.theme.light": "淺色模式",
"account.theme.system": "比照系統",
"account.button.delete": "刪除帳號",
"account.modal.delete.title": "刪除帳號",
"account.modal.delete.description": "您真的想刪除您的帳號,並刪除所有的分享嗎?",
// END /account
// /account/shares
"account.shares.title": "我的分享",
"account.shares.title.empty": "這裡空空如也 👀",
"account.shares.description.empty": "您沒有建立任何分享",
"account.shares.button.create": "建立分享",
"account.shares.info.title": "分享資訊",
"account.shares.table.id": "ID",
"account.shares.table.name": "分享代號",
"account.shares.table.description": "描述",
"account.shares.table.visitors": "造訪次數",
"account.shares.table.expiresAt": "過期時間",
"account.shares.table.createdAt": "建立時間",
"account.shares.table.size": "檔案大小",
"account.shares.modal.share-informations": "分享資訊",
"account.shares.modal.share-link": "分享聯結",
"account.shares.modal.delete.title": "刪除 {share}",
"account.shares.modal.delete.description": "您真的想刪除這個分享嗎?",
// END /account/shares
// /account/reverseShares
"account.reverseShares.title": "檔案請求",
"account.reverseShares.description": "檔案請求允許您建立一個特定的上船畫面,以便外部使用者與您分享檔案",
"account.reverseShares.title.empty": "這里空空如也 👀",
"account.reverseShares.description.empty": "您沒有建立任何檔案請求",
// showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "建立檔案請求",
"account.reverseShares.modal.expiration.label": "過期時間",
"account.reverseShares.modal.expiration.minute-singular": "分鐘",
"account.reverseShares.modal.expiration.minute-plural": "分鐘",
"account.reverseShares.modal.expiration.hour-singular": "小時",
"account.reverseShares.modal.expiration.hour-plural": "小時",
"account.reverseShares.modal.expiration.day-singular": "天",
"account.reverseShares.modal.expiration.day-plural": "天",
"account.reverseShares.modal.expiration.week-singular": "周",
"account.reverseShares.modal.expiration.week-plural": "周",
"account.reverseShares.modal.expiration.month-singular": "月",
"account.reverseShares.modal.expiration.month-plural": "月",
"account.reverseShares.modal.expiration.year-singular": "年",
"account.reverseShares.modal.expiration.year-plural": "年",
"account.reverseShares.modal.max-size.label": "上傳大小上限",
"account.reverseShares.modal.send-email": "發送Email提醒",
"account.reverseShares.modal.send-email.description": "當這個檔案請求聯結被用於分享時發送Email提醒",
"account.reverseShares.modal.max-use.label": "最大使用次數",
"account.reverseShares.modal.max-use.description": "這個檔案請求聯結可被用於建立分享的最大使用次數",
"account.reverseShare.never-expires": "這個檔案請求永不過期",
"account.reverseShare.expires-on": "這個檔案請求將過期於 {expiration}",
"account.reverseShares.table.no-shares": "當前沒有建立任何分享",
"account.reverseShares.table.count.singular": "分享",
"account.reverseShares.table.count.plural": "分享",
"account.reverseShares.table.shares": "分享",
"account.reverseShares.table.remaining": "剩餘使用次數",
"account.reverseShares.table.max-size": "上傳大小上限",
"account.reverseShares.table.expires": "過期時間",
"account.reverseShares.modal.reverse-share-link": "檔案請求聯結",
"account.reverseShares.modal.delete.title": "刪除檔案請求聯結",
"account.reverseShares.modal.delete.description": "您真的想刪除此檔案請求聯結嗎?聯結下所有關聯的檔案都將被刪除",
// END /account/reverseShares
// /admin
"admin.title": "管理",
"admin.button.users": "使用者管理",
"admin.button.config": "配置管理",
"admin.version": "版本",
// END /admin
// /admin/users
"admin.users.title": "使用者管理",
"admin.users.table.username": "使用者名稱",
"admin.users.table.email": "Email",
"admin.users.table.admin": "管理員",
"admin.users.edit.update.title": "更新使用者 {username}",
"admin.users.edit.update.admin-privileges": "管理員",
"admin.users.edit.update.change-password.title": "更改密碼",
"admin.users.edit.update.change-password.field": "新密碼",
"admin.users.edit.update.change-password.button": "保存新密碼",
"admin.users.edit.update.notify.password.success": "密碼更新成功!",
"admin.users.edit.delete.title": "刪除使用者 {username}",
"admin.users.edit.delete.description": "您真的想刪除這個帳號,並刪除該使用者所有的分享嗎?",
// showCreateUserModal.tsx
"admin.users.modal.create.title": "建立使用者",
"admin.users.modal.create.username": "使用者名稱",
"admin.users.modal.create.email": "Email",
"admin.users.modal.create.password": "密碼",
"admin.users.modal.create.manual-password": "手動設置密碼",
"admin.users.modal.create.manual-password.description": "如果不勾選使用者將會收到一封Email來設置他們的密碼",
"admin.users.modal.create.admin": "管理員",
"admin.users.modal.create.admin.description": "如果勾選,使用者將能查看管理員面板",
// END /admin/users
// /upload
"upload.title": "上傳",
"upload.notify.generic-error": "建立分享的過程中發生了錯誤",
"upload.notify.count-failed": "{count} 檔案上傳失敗,請重試",
// Dropzone.tsx
"upload.dropzone.title": "上傳檔案",
"upload.dropzone.description": "將檔案拖曳至此以上傳,檔案大小不能超過上限 {maxSize}",
"upload.dropzone.notify.file-too-big": "您的檔案超過了最大上傳限制 {maxSize}",
// FileList.tsx
"upload.filelist.name": "檔案名稱",
"upload.filelist.size": "檔案大小",
// showCreateUploadModal.tsx
"upload.modal.title": "建立分享",
"upload.modal.link.error.invalid": "只能包括字母,數字,下劃線(_),和橫線(-)",
"upload.modal.link.error.taken": "這個分享代號已經存在了",
"upload.modal.not-signed-in": "當前沒有登入",
"upload.modal.not-signed-in-description": "您將不能刪除您的分享或查看查看次數",
"upload.modal.expires.never": "永不",
"upload.modal.expires.never-long": "永不過期",
"upload.modal.expires.error.too-long": "過期時間超出了系統上限設定 {max}。",
"upload.modal.link.label": "分享聯結",
"upload.modal.expires.label": "過期時間",
"upload.modal.expires.minute-singular": "分鐘",
"upload.modal.expires.minute-plural": "分鐘",
"upload.modal.expires.hour-singular": "小時",
"upload.modal.expires.hour-plural": "小時",
"upload.modal.expires.day-singular": "天",
"upload.modal.expires.day-plural": "天",
"upload.modal.expires.week-singular": "周",
"upload.modal.expires.week-plural": "周",
"upload.modal.expires.month-singular": "月",
"upload.modal.expires.month-plural": "月",
"upload.modal.expires.year-singular": "年",
"upload.modal.expires.year-plural": "年",
"upload.modal.accordion.description.title": "描述",
"upload.modal.accordion.description.placeholder": "分享檔案備註資訊",
"upload.modal.accordion.email.title": "Email提醒",
"upload.modal.accordion.email.placeholder": "收件人Email地址",
"upload.modal.accordion.email.invalid-email": "Email地址不可用",
"upload.modal.accordion.security.title": "安控",
"upload.modal.accordion.security.password.label": "密碼保護",
"upload.modal.accordion.security.password.placeholder": "無密碼",
"upload.modal.accordion.security.max-views.label": "最大查看次數",
"upload.modal.accordion.security.max-views.placeholder": "無限",
// showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "這個分享永不過期",
"upload.modal.completed.expires-on": "這個分享將過期於 {expiration}。",
"upload.modal.completed.share-ready": "分享建立完畢",
// END /upload
// /share/[id]
"share.title": "分享 {shareId}",
"share.description": "瞧瞧我給您分享了些什麽!",
"share.error.visitor-limit-exceeded.title": "查看次數達到上限",
"share.error.visitor-limit-exceeded.description": "查看次數達到上限",
"share.error.removed.title": "分享已刪除",
"share.error.not-found.title": "分享未找到",
"share.error.not-found.description": "分享檔案遺失了",
"share.modal.password.title": "需要密碼",
"share.modal.password.description": "請輸入密碼來查看此分享",
"share.modal.password": "密碼",
"share.modal.error.invalid-password": "密碼錯誤",
"share.button.download-all": "全部下載",
"share.notify.download-all-preparing": "正在處理中,請稍等片刻",
"share.modal.file-link": "檔案聯結",
"share.table.name": "檔案名稱",
"share.table.size": "檔案大小",
"share.modal.file-preview.error.not-supported.title": "該檔案類型不支持預覽",
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "編輯 {shareId}",
"share.edit.append-upload": "追加檔案",
"share.edit.notify.generic-error": "保存分享的過程中發生了錯誤",
"share.edit.notify.save-success": "分享已更新成功",
// END /share/[id]/edit
// /admin/config
"admin.config.title": "配置管理",
"admin.config.category.general": "通用",
"admin.config.category.share": "分享",
"admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "第三方登入",
"admin.config.general.app-name": "App 名稱",
"admin.config.general.app-name.description": "這個 App 的名稱",
"admin.config.general.app-url": "App URL",
"admin.config.general.app-url.description": "Pingvin Share 的 URL",
"admin.config.general.show-home-page": "顯示首頁",
"admin.config.general.show-home-page.description": "是否顯示首頁",
"admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "上傳個性化 Logo圖片必須是長寬比 1:1 的 PNG 格式",
"admin.config.general.logo.placeholder": "選擇圖片",
"admin.config.email.enable-share-email-recipients": "開啟分享Email通知",
"admin.config.email.enable-share-email-recipients.description": "是否允許通過Email通知發送分享資訊需進行 SMTP 設定後此選項才有效",
"admin.config.email.share-recipients-subject": "分享Email通知主題",
"admin.config.email.share-recipients-subject.description": "發送分享Email通知的主題",
"admin.config.email.share-recipients-message": "分享Email通知內容",
"admin.config.email.share-recipients-message.description": "發送到接收者的分享Email通知具體內容。可使用的參數有\n {creator} - 分享建立者\n {shareUrl} - 分享聯結\n {desc} - 分享描述\n {expires} - 分享過期時間\n 這些參數會被實際的值所替代",
"admin.config.email.reverse-share-subject": "檔案請求Email通知主題",
"admin.config.email.reverse-share-subject.description": "當有人使用了您的檔案請求聯結時,發送的檔案請求通知主題",
"admin.config.email.reverse-share-message": "檔案請求Email通知內容",
"admin.config.email.reverse-share-message.description": "當有人使用了您的檔案請求聯結時,發送的通知內容。{shareUrl} 會被建立者的使用者名稱和分享聯結代替",
"admin.config.email.reset-password-subject": "重置密碼Email通知主題",
"admin.config.email.reset-password-subject.description": "當使用者發動重置密碼時,發送的重置密碼通知主題",
"admin.config.email.reset-password-message": "重置密碼Email通知內容",
"admin.config.email.reset-password-message.description": "當使用者發動重置密碼時,重置密碼通知內容。{url} 會被重置密碼聯結代替",
"admin.config.email.invite-subject": "邀請Email通知主題",
"admin.config.email.invite-subject.description": "當管理員邀請使用者時,發送的邀請通知主題",
"admin.config.email.invite-message": "邀請Email通知內容",
"admin.config.email.invite-message.description": "當管理員邀請使用者時,發送的邀請通知內容。{url} 會被邀請聯結代替,{password} 會被密碼代替",
"admin.config.share.allow-registration": "允許註冊",
"admin.config.share.allow-registration.description": "是否允許註冊",
"admin.config.share.allow-unauthenticated-shares": "是否允許未登入進行分享",
"admin.config.share.allow-unauthenticated-shares.description": "是否允許未登入的使用者建立分享",
"admin.config.share.max-expiration": "最大過期時間",
"admin.config.share.max-expiration.description": "最大過期時間(小時)若設定為0則為永不過期",
"admin.config.share.max-size": "最大檔案上限",
"admin.config.share.max-size.description": "最大檔案上限,單位 bytes (1GB=1024MB=1048576KB=1073741824bytes)",
"admin.config.share.zip-compression-level": "Zip 壓縮等級",
"admin.config.share.zip-compression-level.description": "調整壓縮等級以平衡檔案大小和壓縮速度。 有效值範圍從 0 到 9其中 0 表示無壓縮9 表示最大壓縮",
"admin.config.smtp.enabled": "啟用",
"admin.config.smtp.enabled.description": "是否開啟 SMTP需輸入Host、Port、發送郵箱、使用者名稱和密碼後才有作用",
"admin.config.smtp.host": "Host",
"admin.config.smtp.host.description": "SMTP Host",
"admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "SMTP Port",
"admin.config.smtp.email": "發送郵箱",
"admin.config.smtp.email.description": "發送郵箱地址",
"admin.config.smtp.username": "使用者名稱",
"admin.config.smtp.username.description": "SMTP 主機使用者名稱",
"admin.config.smtp.password": "密碼",
"admin.config.smtp.password.description": "SMTP 主機密碼",
"admin.config.smtp.button.test": "發送測試Email",
"admin.config.oauth.allow-registration": "允許註冊",
"admin.config.oauth.allow-registration.description": "允許使用者以第三方登入註冊",
"admin.config.oauth.ignore-totp": "略過 TOTP",
"admin.config.oauth.ignore-totp.description": "當使用者使用第三方登入時,略過 TOTP 驗證",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "啟用 Github 登入",
"admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "GitHub OAuth 的 Client ID",
"admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "GitHub OAuth 的 Client secret",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "啟用 Google 登入",
"admin.config.oauth.google-client-id": "Google Client ID",
"admin.config.oauth.google-client-id.description": "Google OAuth 的 Client ID",
"admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "Google OAuth 的 Client secret",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "啟用 Microsoft 登入",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Microsoft OAuth 的 Tenant ID\ncommon: 擁有 Microsoft Entra ID 的個人 Microsoft 帳號和工作或學校帳號的使用者可以登入該應用程式。\norganizations: 擁有 Microsoft Entra ID 的工作或學校帳號的使用者才能登入應用程式。\nconsumers: 只有擁有個人 Microsoft 帳號的使用者才能登入該應用程式。\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: 只有來自特定 Microsoft Entra 租戶的使用者(具有工作或學校帳號的目錄成員或具有個人 Microsoft 帳號的目錄成員)才能登入應用程式。",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "Microsoft OAuth 的 Client ID",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth 的 Client secret",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "啟用 Discord 登入",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Discord OAuth 的 Client ID",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Discord OAuth 的 Client secret",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
// 404
"404.description": "查無此頁",
"404.button.home": "返回主頁",
// error
"error.title": "Error",
"error.description": "Oops!",
"error.button.back": "返回上一頁",
"error.msg.default": "發生預期外的問題。",
"error.msg.access_denied": "您取消了身分驗證,請重試。",
"error.msg.expired_token": "身分驗證過程逾時,請重試。",
"error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "與此 {0} 帳號關聯的使用者不存在。",
"error.msg.no_email": "無法從此 {0} 帳號取得Email地址。",
"error.msg.already_linked": "此 {0} 帳號已與另一個帳號關聯。",
"error.msg.not_linked": "此 {0} 帳號尚未關聯到任何帳號。",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID Connect",
// Common translations
"common.button.save": "儲存",
"common.button.create": "建立",
"common.button.submit": "送出",
"common.button.delete": "刪除",
"common.button.cancel": "取消",
"common.button.confirm": "確認",
"common.button.disable": "關閉",
"common.button.share": "分享",
"common.button.generate": "自動產生",
"common.button.done": "完成",
"common.text.link": "聯結",
"common.text.navigate-to-link": "Go to the link",
"common.text.or": "或",
"common.button.go-back": "返回",
"common.notify.copied": "已複製到剪貼簿",
"common.success": "成功",
"common.error": "錯誤",
"common.error.unknown": "發生預期外錯誤",
"common.error.invalid-email": "Email地址不可用",
"common.error.too-short": "必須不少於 {length} 個字元",
"common.error.too-long": "必須不超過 {length} 個字元",
"common.error.exact-length": "必須為 {length} 個字元",
"common.error.invalid-number": "必須為數字",
"common.error.field-required": "必填"
};

View File

@@ -68,13 +68,13 @@ const ResetPassword = () => {
})}
>
<PasswordInput
label={t("resetPassword.text.password")}
label={t("resetPassword.input.password")}
placeholder="••••••••••"
{...form.getInputProps("password")}
/>
<Group position="right" mt="lg">
<Button type="submit" className={classes.control}>
<FormattedMessage id="resetPassword.button.resetPassword" />
<FormattedMessage id="resetPassword.text.resetPassword" />
</Button>
</Group>
</form>

View File

@@ -3,11 +3,20 @@ import { Global } from "@mantine/core";
const GlobalStyle = () => {
return (
<Global
styles={() => ({
styles={(theme) => ({
a: {
color: "inherit",
textDecoration: "none",
},
"table.md, table.md th:nth-of-type(odd), table.md td:nth-of-type(odd)": {
background: theme.colorScheme == "dark"
? "rgba(50, 50, 50, 0.5)"
: "rgba(220, 220, 220, 0.5)",
},
"table.md td": {
paddingLeft: "0.5em",
paddingRight: "0.5em",
},
})}
/>
);

View File

@@ -1,6 +1,6 @@
{
"name": "pingvin-share",
"version": "0.20.3",
"version": "0.22.0",
"scripts": {
"format": "cd frontend && npm run format && cd ../backend && npm run format",
"lint": "cd frontend && npm run lint && cd ../backend && npm run lint",