Compare commits

...

51 Commits

Author SHA1 Message Date
Elias Schneider
4f9a502e40 last commit :) 2025-06-29 15:57:48 +02:00
Elias Schneider
def1d571d0 chore(translations): update translations via Crowdin (#842)
* New translations en-us.ts (Czech)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Danish)

* New translations en-us.ts (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (German)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Hungarian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Korean)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Slovenian)

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

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Ukrainian)

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

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

* New translations en-us.ts (Vietnamese)

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

* New translations en-us.ts (Thai)

* New translations en-us.ts (Croatian)

* New translations en-us.ts (Estonian)

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

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

* New translations en-us.ts (Arabic, Egypt)

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

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Danish)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (French)

* New translations en-us.ts (Vietnamese)

* New translations en-us.ts (Vietnamese)

* New translations en-us.ts (Vietnamese)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Finnish)

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

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

* New translations en-us.ts (Spanish)

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

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

* New translations en-us.ts (Turkish)

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

* New translations en-us.ts (Chinese Traditional)
2025-06-29 15:32:33 +02:00
Elias Schneider
58de3ce0df chore(translations): update translations via Crowdin 2025-05-25 22:25:52 +02:00
Elias Schneider
dd546b4f17 release: 1.13.0 2025-05-25 22:19:48 +02:00
iisteev
19e6b9a0be docs: update config.example.yaml url in configuration.md (#841)
* docs: update the config.example.yaml url

The example file of the config is config.example.yaml
and not config.yml

* docs: format configuration.md markdown tables

Signed-off-by: iisteev <isteevan.shetoo@is-info.fr>

---------

Signed-off-by: iisteev <isteevan.shetoo@is-info.fr>
2025-05-25 22:18:00 +02:00
JulesdeCube
85f514316b feat: allow to use redis cache instead of memory cache (#832)
* feat(backend/cache): allow to use redis cache instead as memory

* feat(frontend/admin): add cache section

Add a new section for cache attributes. Also add US translation.

---------

Co-authored-by: Jules Lefebvre <jules.lefebvre@diabolocom.com>
2025-05-25 22:16:19 +02:00
JulesdeCube
cfdb29ed4d feat(backend): allow to define path to the config file (#838)
Allow to configure where the configuration file is located via the `CONFIG_FILE` environment variable

Co-authored-by: Jules Lefebvre <jules.lefebvre@diabolocom.com>
2025-05-19 15:30:06 +02:00
Elias Schneider
18b34e9bf2 chore(translations): update translations via Crowdin (#839)
* New translations en-us.ts (Czech)

* New translations en-us.ts (Czech)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Swedish)
2025-05-19 15:28:24 +02:00
Elias Schneider
9d603c41e5 chore: explicitly upgrade Next.js to version 14.2.26 2025-05-16 09:40:49 +02:00
Elias Schneider
7ba499d5a0 New translations en-us.ts (Portuguese, Brazilian) (#831) 2025-05-14 09:35:57 +02:00
Elias Schneider
3d1656688e release: 1.12.0 2025-05-07 16:11:30 +02:00
Elias Schneider
e53a25750d chore: sync package-lock.json 2025-05-07 16:09:45 +02:00
Elias Schneider
ffcd857d9a Merge remote-tracking branch 'origin/main' 2025-05-07 14:10:55 +02:00
Elias Schneider
48a6ceb3b4 fix: OIDC configuration from YAML configuration file doesn't get loaded 2025-05-07 14:10:48 +02:00
Elias Schneider
84833e5f91 chore(translations): update translations via Crowdin (#828)
* New translations en-us.ts (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Czech)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Hungarian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Korean)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Slovenian)

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

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Ukrainian)

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

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

* New translations en-us.ts (Vietnamese)

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

* New translations en-us.ts (Croatian)

* New translations en-us.ts (Estonian)

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

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

* New translations en-us.ts (Arabic, Egypt)

* New translations en-us.ts (French)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Japanese)
2025-05-07 13:39:29 +02:00
Elias Schneider
1864951bdb fix: use sandbox CSP for file previews 2025-05-07 13:39:02 +02:00
Elias Schneider
427e99c7b1 fix: disable HTML rendering in Markdown preview 2025-05-07 13:38:42 +02:00
Lucas Reis
ccc783ab6a feat(s3): stream s3 content over a zip file (#822)
* chore: update package.json and enhance file handling in backend

* refactor: remove StreamResponseFilter and update getZip method for improved file handling

- Deleted StreamResponseFilter as it was no longer needed.
- Updated getZip method in LocalFileService to return a Promise and handle errors more effectively.
- Adjusted getZip method in FileService to await the storage service's getZip call.

* refactor: remove unused UseFilters import in file.controller.ts
2025-05-04 20:37:04 +02:00
Elias Schneider
853f217bf1 chore(translations): update translations via Crowdin (#826)
* New translations en-us.ts (Polish)

* New translations en-us.ts (Polish)
2025-05-04 20:35:26 +02:00
Pranav
af047c0bc1 fix: spelling mistake and add clarity in email template (#824)
* fix: Fix spelling mistake

Change "in a hour" to "in an hour" in
config.example.yaml and config.seed.ts

* fix: Add clarity in email template

Change shareRecipientsMessage
template by splitting the call to
action part of sentence to make
the language more clear.
2025-04-29 08:34:47 +02:00
Elias Schneider
8ddee32664 chore(translations): update translations via Crowdin (#807)
* New translations en-us.ts (Italian)

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

* New translations en-us.ts (Turkish)

* New translations en-us.ts (German)

* New translations en-us.ts (Ukrainian)

* New translations en-us.ts (Estonian)

* New translations en-us.ts (Estonian)

* New translations en-us.ts (Thai)
2025-04-23 08:58:02 +02:00
Elias Schneider
e7128dcfef chore: dump newman version 2025-04-23 08:56:09 +02:00
Elias Schneider
56d8517073 ci/cd: dump nodejs version in action 2025-04-23 08:52:36 +02:00
Elias Schneider
df4341163a chore: upgrade to nodejs 22 2025-04-23 08:33:00 +02:00
Elias Schneider
81547ba1e0 ci/cd: set timeout for workflows 2025-04-23 08:32:05 +02:00
Marvin A. Ruder
a790ac73fd fix: health check for containers with reverse proxy disabled (#816)
* Fixes #809

Signed-off-by: Marvin A. Ruder <signed@mruder.dev>
2025-04-18 18:43:11 +02:00
Elias Schneider
3fd689a760 docs: update example config 2025-04-17 19:16:18 +02:00
Elias Schneider
6a8ac1aa65 chore: upgrade backend dependencies 2025-04-14 15:13:55 +02:00
Elias Schneider
4d1ce8aa49 release: 1.11.1 2025-04-06 20:38:29 +02:00
Elias Schneider
71eab23503 chore: dump package versions 2025-04-05 16:58:15 +02:00
Elias Schneider
2943073c10 release: 1.11.0 2025-04-05 16:55:22 +02:00
Zyanido
27fca64a69 feat: add env variable to disable caddy (#797) 2025-04-05 16:45:55 +02:00
Elias Schneider
7d005db4e1 chore(translations): update translations via Crowdin (#794)
* New translations en-us.ts (German)

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

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

* New translations en-us.ts (Ukrainian)

* 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 (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Czech)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Hungarian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Korean)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Slovenian)

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

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Ukrainian)

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

* New translations en-us.ts (Vietnamese)

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

* New translations en-us.ts (Thai)

* New translations en-us.ts (Croatian)

* New translations en-us.ts (Estonian)

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

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

* New translations en-us.ts (Arabic, Egypt)
2025-04-04 15:48:31 +02:00
marekhanzlik
73a76a9d5b feat(s3): allow disabling upload checksum (#804)
* S3 - toggle useChecksum

* Update frontend/src/i18n/translations/en-US.ts

---------

Co-authored-by: Elias Schneider <login@eliasschneider.com>
2025-04-04 14:59:09 +02:00
Elias Schneider
8e828311fe Update Crowdin configuration file 2025-03-20 20:20:14 +01:00
Elias Schneider
b7410d8589 Update Crowdin configuration file 2025-03-20 20:17:47 +01:00
Elias Schneider
5cfa8f3015 release: 1.10.4 2025-03-20 19:55:25 +01:00
Elias Schneider
ccb7fdca43 fix: admin role gets reset if signing in with an OIDC provider 2025-03-20 19:55:13 +01:00
Elias Schneider
ac81cb9ab7 release: 1.10.3 2025-03-10 21:36:16 +01:00
Elias Schneider
b737cba35e fix: error while signing in with OIDC if roles claim is undefined 2025-03-10 14:23:04 +01:00
Gustav Mårdestam
1d51973358 ci/cd: update build action and add labels to image (#781) 2025-03-07 14:50:37 +01:00
Elias Schneider
589127e943 chore(translations): update translations via Crowdin (#779)
* New translations en-us.ts (Portuguese, Brazilian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Turkish)

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

* New translations en-us.ts (Estonian)

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

* New translations en-us.ts (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Czech)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Hungarian)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Korean)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Slovenian)

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

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Ukrainian)

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

* New translations en-us.ts (Vietnamese)

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

* New translations en-us.ts (Thai)

* New translations en-us.ts (Croatian)

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

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

* New translations en-us.ts (Arabic, Egypt)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Croatian)

* New translations en-us.ts (Croatian)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Estonian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (French)

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Spanish)
2025-03-07 14:47:18 +01:00
Elias Schneider
6722938ae6 release: 1.10.2 2025-03-07 14:47:03 +01:00
Elias Schneider
9f720388ef Merge branch 'main' of https://github.com/stonith404/pingvin-share 2025-03-07 14:38:37 +01:00
Elias Schneider
e7b3c48ff4 fix: don't throw error if group claim is missing 2025-03-07 14:38:33 +01:00
Elias Schneider
0dfd4d014d chore: upgrade prisma and aws CLI 2025-03-07 14:33:11 +01:00
Alexander Lehmann
ce0dc976a8 chore(translations): fix typo (#782)
1 char small typo in the English text
2025-03-03 16:13:03 +01:00
Elias Schneider
61418a1d8d release: 1.10.1 2025-02-28 13:33:49 +01:00
Elias Schneider
1159d972a8 fix: admin property can't be set if OAuth2 user email doesn't match actual user's email 2025-02-28 13:32:31 +01:00
Elias Schneider
b6d1720fe6 fix: type error when trying to run the seed command 2025-02-28 13:30:20 +01:00
Elias Schneider
dc30f4f3c9 refactor: run formatter 2025-02-28 11:18:10 +01:00
62 changed files with 4602 additions and 3064 deletions

View File

@@ -10,8 +10,9 @@ on:
jobs: jobs:
system-tests: system-tests:
timeout-minutes: 15
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: node:18 container: node:22
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Install Dependencies - name: Install Dependencies

View File

@@ -6,6 +6,7 @@ on:
jobs: jobs:
build: build:
timeout-minutes: 60
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: checkout code - name: checkout code
@@ -30,7 +31,7 @@ jobs:
uses: docker/setup-buildx-action@v2 uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub - name: Login to Docker Hub
uses: docker/login-action@v2 uses: docker/login-action@v3
with: with:
username: ${{ secrets.DOCKER_USERNAME }} username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }} password: ${{ secrets.DOCKER_PASSWORD }}
@@ -43,11 +44,12 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push - name: Build and push
uses: docker/build-push-action@v4 uses: docker/build-push-action@v6
with: with:
context: . context: .
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: true push: true
tags: ${{ steps.meta.outputs.tags }} tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha cache-from: type=gha
cache-to: type=gha,mode=max cache-to: type=gha,mode=max

View File

@@ -1,3 +1,66 @@
## [1.13.0](https://github.com/stonith404/pingvin-share/compare/v1.12.0...v1.13.0) (2025-05-25)
### Features
* allow to use redis cache instead of memory cache ([#832](https://github.com/stonith404/pingvin-share/issues/832)) ([85f5143](https://github.com/stonith404/pingvin-share/commit/85f514316b0b808b8c063bf571df6b528a1b3de4))
* **backend:** allow to define path to the config file ([#838](https://github.com/stonith404/pingvin-share/issues/838)) ([cfdb29e](https://github.com/stonith404/pingvin-share/commit/cfdb29ed4dde875233b4bc3f510ae50976b963b8))
## [1.12.0](https://github.com/stonith404/pingvin-share/compare/v1.11.1...v1.12.0) (2025-05-07)
### Features
* **s3:** stream s3 content over a zip file ([#822](https://github.com/stonith404/pingvin-share/issues/822)) ([ccc783a](https://github.com/stonith404/pingvin-share/commit/ccc783ab6a00841a7041c454e77afb472d76999e))
### Bug Fixes
* disable HTML rendering in Markdown preview ([427e99c](https://github.com/stonith404/pingvin-share/commit/427e99c7b1d00ff6ed7b5fd879d8cf0f0d49281a))
* health check for containers with reverse proxy disabled ([#816](https://github.com/stonith404/pingvin-share/issues/816)) ([a790ac7](https://github.com/stonith404/pingvin-share/commit/a790ac73fd42d266a957e09a05b1894199605f6a)), closes [#809](https://github.com/stonith404/pingvin-share/issues/809)
* OIDC configuration from YAML configuration file doesn't get loaded ([48a6ceb](https://github.com/stonith404/pingvin-share/commit/48a6ceb3b4b4dfc0407dc6f9ee2e07cca1829cef))
* spelling mistake and add clarity in email template ([#824](https://github.com/stonith404/pingvin-share/issues/824)) ([af047c0](https://github.com/stonith404/pingvin-share/commit/af047c0bc152a955b3ab135f5a9ea3d62b32fb0f))
* use sandbox CSP for file previews ([1864951](https://github.com/stonith404/pingvin-share/commit/1864951bdbf573431e795109224a45545b86b54d))
## [1.11.1](https://github.com/stonith404/pingvin-share/compare/v1.11.0...v1.11.1) (2025-04-06)
## [1.11.0](https://github.com/stonith404/pingvin-share/compare/v1.10.4...v1.11.0) (2025-04-05)
### Features
* add env variable to disable caddy ([#797](https://github.com/stonith404/pingvin-share/issues/797)) ([27fca64](https://github.com/stonith404/pingvin-share/commit/27fca64a69067eaa094d1559ca1fee4f064d89a7))
* **s3:** allow disabling upload checksum ([#804](https://github.com/stonith404/pingvin-share/issues/804)) ([73a76a9](https://github.com/stonith404/pingvin-share/commit/73a76a9d5b9825a3dc396f49d76ddc5c303fce40))
## [1.10.4](https://github.com/stonith404/pingvin-share/compare/v1.10.3...v1.10.4) (2025-03-20)
### Bug Fixes
* admin role gets reset if signing in with an OIDC provider ([ccb7fdc](https://github.com/stonith404/pingvin-share/commit/ccb7fdca43a2d458243e56a24510fe5325fa7942))
## [1.10.3](https://github.com/stonith404/pingvin-share/compare/v1.10.2...v1.10.3) (2025-03-10)
### Bug Fixes
* error while signing in with OIDC if roles claim is undefined ([b737cba](https://github.com/stonith404/pingvin-share/commit/b737cba35e59255904eccae9e9de1cbd36284fb1))
## [1.10.2](https://github.com/stonith404/pingvin-share/compare/v1.10.1...v1.10.2) (2025-03-07)
### Bug Fixes
* don't throw error if group claim is missing ([e7b3c48](https://github.com/stonith404/pingvin-share/commit/e7b3c48ff48bd7cfb206c32ea97862b757057573))
## [1.10.1](https://github.com/stonith404/pingvin-share/compare/v1.10.0...v1.10.1) (2025-02-28)
### Bug Fixes
* admin property can't be set if OAuth2 user email doesn't match actual user's email ([1159d97](https://github.com/stonith404/pingvin-share/commit/1159d972a8c32a0d6bf53d161c2fc09e6f8dfb28))
* type error when trying to run the seed command ([b6d1720](https://github.com/stonith404/pingvin-share/commit/b6d1720fe637497ad624c6cdc40058b1b0f0c74c))
## [1.10.0](https://github.com/stonith404/pingvin-share/compare/v1.9.1...v1.10.0) (2025-02-28) ## [1.10.0](https://github.com/stonith404/pingvin-share/compare/v1.9.1...v1.10.0) (2025-02-28)

View File

@@ -1,25 +1,25 @@
# Stage 1: Frontend dependencies # Stage 1: Frontend dependencies
FROM node:20-alpine AS frontend-dependencies FROM node:22-alpine AS frontend-dependencies
WORKDIR /opt/app WORKDIR /opt/app
COPY frontend/package.json frontend/package-lock.json ./ COPY frontend/package.json frontend/package-lock.json ./
RUN npm ci RUN npm ci
# Stage 2: Build frontend # Stage 2: Build frontend
FROM node:20-alpine AS frontend-builder FROM node:22-alpine AS frontend-builder
WORKDIR /opt/app WORKDIR /opt/app
COPY ./frontend . COPY ./frontend .
COPY --from=frontend-dependencies /opt/app/node_modules ./node_modules COPY --from=frontend-dependencies /opt/app/node_modules ./node_modules
RUN npm run build RUN npm run build
# Stage 3: Backend dependencies # Stage 3: Backend dependencies
FROM node:20-alpine AS backend-dependencies FROM node:22-alpine AS backend-dependencies
RUN apk add --no-cache python3 RUN apk add --no-cache python3
WORKDIR /opt/app WORKDIR /opt/app
COPY backend/package.json backend/package-lock.json ./ COPY backend/package.json backend/package-lock.json ./
RUN npm ci RUN npm ci
# Stage 4: Build backend # Stage 4: Build backend
FROM node:20-alpine AS backend-builder FROM node:22-alpine AS backend-builder
RUN apk add openssl RUN apk add openssl
WORKDIR /opt/app WORKDIR /opt/app
@@ -29,7 +29,7 @@ RUN npx prisma generate
RUN npm run build && npm prune --production RUN npm run build && npm prune --production
# Stage 5: Final image # Stage 5: Final image
FROM node:20-alpine AS runner FROM node:22-alpine AS runner
ENV NODE_ENV=docker ENV NODE_ENV=docker
# Delete default node user # Delete default node user
@@ -50,15 +50,16 @@ COPY --from=backend-builder /opt/app/node_modules ./node_modules
COPY --from=backend-builder /opt/app/dist ./dist COPY --from=backend-builder /opt/app/dist ./dist
COPY --from=backend-builder /opt/app/prisma ./prisma COPY --from=backend-builder /opt/app/prisma ./prisma
COPY --from=backend-builder /opt/app/package.json ./ COPY --from=backend-builder /opt/app/package.json ./
COPY --from=backend-builder /opt/app/tsconfig.json ./
WORKDIR /opt/app WORKDIR /opt/app
COPY ./reverse-proxy /opt/app/reverse-proxy COPY ./reverse-proxy /opt/app/reverse-proxy
COPY ./scripts ./scripts COPY ./scripts/docker ./scripts/docker
EXPOSE 3000 EXPOSE 3000
HEALTHCHECK --interval=10s --timeout=3s CMD curl -f http://localhost:3000/api/health || exit 1 HEALTHCHECK --interval=10s --timeout=3s CMD /bin/sh -c '(if [[ "$CADDY_DISABLED" = "true" ]]; then curl -fs http://localhost:${BACKEND_PORT:-8080}/api/health; else curl -fs http://localhost:3000/api/health; fi) || exit 1'
ENTRYPOINT ["sh", "./scripts/docker/create-user.sh"] ENTRYPOINT ["sh", "./scripts/docker/create-user.sh"]
CMD ["sh", "./scripts/docker/entrypoint.sh"] CMD ["sh", "./scripts/docker/entrypoint.sh"]

View File

@@ -1,3 +1,11 @@
> ## ⚠️ Project Archived
>
> After much consideration, I've chosen to focus my limited time and energy on my other project, [Pocket ID](https://github.com/pocket-id/pocket-id). As a solo developer, I've found it difficult to actively maintain multiple open source projects with the care and attention they deserve.
>
> If you're interested in continuing this work through a fork, I'd be happy to link to it here in the README.
>
> Thanks to all the contributors and users who have supported Pingvin Share over the years :)
# <div align="center"><img src="https://user-images.githubusercontent.com/58886915/166198400-c2134044-1198-4647-a8b6-da9c4a204c68.svg" width="40"/> </br>Pingvin Share</div> # <div align="center"><img src="https://user-images.githubusercontent.com/58886915/166198400-c2134044-1198-4647-a8b6-da9c4a204c68.svg" width="40"/> </br>Pingvin Share</div>
[![](https://dcbadge.limes.pink/api/server/wHRQ9nFRcK)](https://discord.gg/wHRQ9nFRcK) [![](https://img.shields.io/badge/Crowdin-2E3340.svg?style=for-the-badge&logo=Crowdin&logoColor=white)](https://crowdin.com/project/pingvin-share) [![](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&logoColor=#white)](https://github.com/sponsors/stonith404) [![](https://dcbadge.limes.pink/api/server/wHRQ9nFRcK)](https://discord.gg/wHRQ9nFRcK) [![](https://img.shields.io/badge/Crowdin-2E3340.svg?style=for-the-badge&logo=Crowdin&logoColor=white)](https://crowdin.com/project/pingvin-share) [![](https://img.shields.io/badge/sponsor-30363D?style=for-the-badge&logo=GitHub-Sponsors&logoColor=#white)](https://github.com/sponsors/stonith404)
@@ -44,9 +52,3 @@ For more installation options and advanced configurations, please refer to the [
## 🖤 Contribute ## 🖤 Contribute
We would love it if you want to help make Pingvin Share better! You can either [help to translate](https://stonith404.github.io/pingvin-share/help-out/translate) Pingvin Share or [contribute to the codebase](https://stonith404.github.io/pingvin-share/help-out/contribute). We would love it if you want to help make Pingvin Share better! You can either [help to translate](https://stonith404.github.io/pingvin-share/help-out/translate) Pingvin Share or [contribute to the codebase](https://stonith404.github.io/pingvin-share/help-out/contribute).
## ❤️ Sponsors
Thank you for supporting Pingvin Share 🙏
- [@COMPLEXWASTAKEN](https://github.com/COMPLEXWASTAKEN)

4539
backend/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "pingvin-share-backend", "name": "pingvin-share-backend",
"version": "1.10.0", "version": "1.13.0",
"scripts": { "scripts": {
"build": "nest build", "build": "nest build",
"dev": "cross-env NODE_ENV=development nest start --watch", "dev": "cross-env NODE_ENV=development nest start --watch",
@@ -13,34 +13,36 @@
"seed": "ts-node prisma/seed/config.seed.ts" "seed": "ts-node prisma/seed/config.seed.ts"
}, },
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "^3.679.0", "@aws-sdk/client-s3": "^3.787.0",
"@nestjs/cache-manager": "^2.2.2", "@keyv/redis": "^4.4.0",
"@nestjs/common": "^10.4.3", "@nestjs/cache-manager": "^3.0.1",
"@nestjs/config": "^3.2.3", "@nestjs/common": "^11.0.17",
"@nestjs/core": "^10.4.3", "@nestjs/config": "^4.0.2",
"@nestjs/jwt": "^10.2.0", "@nestjs/core": "^11.0.17",
"@nestjs/passport": "^10.0.3", "@nestjs/jwt": "^11.0.0",
"@nestjs/platform-express": "^10.4.3", "@nestjs/passport": "^11.0.5",
"@nestjs/schedule": "^4.1.1", "@nestjs/platform-express": "^11.0.17",
"@nestjs/swagger": "^7.4.2", "@nestjs/schedule": "^5.0.1",
"@nestjs/throttler": "^6.2.1", "@nestjs/swagger": "^11.1.3",
"@prisma/client": "^5.19.1", "@nestjs/throttler": "^6.4.0",
"@prisma/client": "^6.6.0",
"@types/jmespath": "^0.15.2", "@types/jmespath": "^0.15.2",
"archiver": "^7.0.1", "archiver": "^7.0.1",
"argon2": "^0.41.1", "argon2": "^0.41.1",
"body-parser": "^1.20.3", "body-parser": "^2.2.0",
"cache-manager": "^5.7.6", "cache-manager": "^6.4.2",
"clamscan": "^2.3.1", "cacheable": "^1.9.0",
"clamscan": "^2.4.0",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"class-validator": "^0.14.1", "class-validator": "^0.14.1",
"content-disposition": "^0.5.4", "content-disposition": "^0.5.4",
"cookie-parser": "^1.4.6", "cookie-parser": "^1.4.7",
"jmespath": "^0.16.0", "jmespath": "^0.16.0",
"ldapts": "^7.2.0", "ldapts": "^7.4.0",
"mime-types": "^2.1.35", "mime-types": "^3.0.1",
"moment": "^2.30.1", "moment": "^2.30.1",
"nanoid": "^3.3.7", "nanoid": "^3.3.7",
"nodemailer": "^6.9.15", "nodemailer": "^6.10.1",
"otplib": "^12.0.1", "otplib": "^12.0.1",
"passport": "^0.7.0", "passport": "^0.7.0",
"passport-jwt": "^4.0.1", "passport-jwt": "^4.0.1",
@@ -48,42 +50,43 @@
"qrcode-svg": "^1.1.0", "qrcode-svg": "^1.1.0",
"reflect-metadata": "^0.2.2", "reflect-metadata": "^0.2.2",
"rimraf": "^6.0.1", "rimraf": "^6.0.1",
"rxjs": "^7.8.1", "rxjs": "^7.8.2",
"sharp": "^0.33.5", "sharp": "^0.34.1",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"yaml": "^2.7.0" "uuid": "^11.1.0",
"yaml": "^2.7.1"
}, },
"devDependencies": { "devDependencies": {
"@nestjs/cli": "^10.4.5", "@nestjs/cli": "^11.0.6",
"@nestjs/schematics": "^10.1.4", "@nestjs/schematics": "^11.0.5",
"@nestjs/testing": "^10.4.3", "@nestjs/testing": "^11.0.17",
"@types/archiver": "^6.0.2", "@types/archiver": "^6.0.3",
"@types/clamscan": "^2.0.8", "@types/clamscan": "^2.4.1",
"@types/cookie-parser": "^1.4.7", "@types/cookie-parser": "^1.4.8",
"@types/cron": "^2.4.0", "@types/cron": "^2.4.0",
"@types/express": "^4.17.21", "@types/express": "^5.0.1",
"@types/mime-types": "^2.1.4", "@types/mime-types": "^2.1.4",
"@types/multer": "^1.4.12", "@types/multer": "^1.4.12",
"@types/node": "^22.5.5", "@types/node": "^22.14.1",
"@types/nodemailer": "^6.4.16", "@types/nodemailer": "^6.4.17",
"@types/passport-jwt": "^4.0.1", "@types/passport-jwt": "^4.0.1",
"@types/qrcode-svg": "^1.1.5", "@types/qrcode-svg": "^1.1.5",
"@types/sharp": "^0.32.0", "@types/sharp": "^0.32.0",
"@types/supertest": "^6.0.2", "@types/supertest": "^6.0.3",
"@types/uuid": "^10.0.0", "@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^8.6.0", "@typescript-eslint/eslint-plugin": "^8.29.1",
"@typescript-eslint/parser": "^8.6.0", "@typescript-eslint/parser": "^8.29.1",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"eslint": "^9.10.0", "eslint": "^9.24.0",
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^10.1.2",
"eslint-plugin-prettier": "^5.2.1", "eslint-plugin-prettier": "^5.2.6",
"newman": "^6.2.1", "newman": "^6.2.1",
"prettier": "^3.3.3", "prettier": "^3.5.3",
"prisma": "^5.19.1", "prisma": "^6.6.0",
"source-map-support": "^0.5.21", "source-map-support": "^0.5.21",
"ts-loader": "^9.5.1", "ts-loader": "^9.5.2",
"tsconfig-paths": "4.2.0", "tsconfig-paths": "4.2.0",
"typescript": "^5.6.2", "typescript": "^5.8.3",
"wait-on": "^8.0.1" "wait-on": "^8.0.3"
} }
} }

View File

@@ -76,6 +76,25 @@ export const configVariables = {
secret: false, secret: false,
}, },
}, },
cache: {
"redis-enabled": {
type: "boolean",
defaultValue: "false",
},
"redis-url": {
type: "string",
defaultValue: "redis://pingvin-redis:6379",
secret: true,
},
ttl: {
type: "number",
defaultValue: "60",
},
maxItems: {
type: "number",
defaultValue: "1000",
},
},
email: { email: {
enableShareEmailRecipients: { enableShareEmailRecipients: {
type: "boolean", type: "boolean",
@@ -89,7 +108,7 @@ export const configVariables = {
shareRecipientsMessage: { shareRecipientsMessage: {
type: "text", type: "text",
defaultValue: defaultValue:
"Hey!\n\n{creator} ({creatorEmail}) shared some files with you, view or download the files with this link: {shareUrl}\n\nThe share will expire {expires}.\n\nNote: {desc}\n\nShared securely with Pingvin Share 🐧", "Hey!\n\n{creator} ({creatorEmail}) shared some files with you. You can view or download the files with this link: {shareUrl}\n\nThe share will expire {expires}.\n\nNote: {desc}\n\nShared securely with Pingvin Share 🐧",
}, },
reverseShareSubject: { reverseShareSubject: {
type: "string", type: "string",
@@ -107,7 +126,7 @@ export const configVariables = {
resetPasswordMessage: { resetPasswordMessage: {
type: "text", type: "text",
defaultValue: defaultValue:
"Hey!\n\nYou requested a password reset. Click this link to reset your password: {url}\nThe link expires in a hour.\n\nPingvin Share 🐧", "Hey!\n\nYou requested a password reset. Click this link to reset your password: {url}\nThe link expires in an hour.\n\nPingvin Share 🐧",
}, },
inviteSubject: { inviteSubject: {
type: "string", type: "string",
@@ -349,6 +368,10 @@ export const configVariables = {
defaultValue: "", defaultValue: "",
obscured: true, obscured: true,
}, },
useChecksum: {
type: "boolean",
defaultValue: "true",
},
}, },
legal: { legal: {
enabled: { enabled: {
@@ -415,11 +438,11 @@ const prisma = new PrismaClient({
async function seedConfigVariables() { async function seedConfigVariables() {
for (const [category, configVariablesOfCategory] of Object.entries( for (const [category, configVariablesOfCategory] of Object.entries(
configVariables configVariables,
)) { )) {
let order = 0; let order = 0;
for (const [name, properties] of Object.entries( for (const [name, properties] of Object.entries(
configVariablesOfCategory configVariablesOfCategory,
)) { )) {
const existingConfigVariable = await prisma.config.findUnique({ const existingConfigVariable = await prisma.config.findUnique({
where: { name_category: { name, category } }, where: { name_category: { name, category } },
@@ -465,7 +488,7 @@ async function migrateConfigVariables() {
// Update the config variable if it exists in the seed // Update the config variable if it exists in the seed
} else { } else {
const variableOrder = Object.keys( const variableOrder = Object.keys(
configVariables[existingConfigVariable.category] configVariables[existingConfigVariable.category],
).indexOf(existingConfigVariable.name); ).indexOf(existingConfigVariable.name);
await prisma.config.update({ await prisma.config.update({
where: { where: {

View File

@@ -3,9 +3,9 @@ import { Module } from "@nestjs/common";
import { ScheduleModule } from "@nestjs/schedule"; import { ScheduleModule } from "@nestjs/schedule";
import { AuthModule } from "./auth/auth.module"; import { AuthModule } from "./auth/auth.module";
import { CacheModule } from "@nestjs/cache-manager";
import { APP_GUARD } from "@nestjs/core"; import { APP_GUARD } from "@nestjs/core";
import { ThrottlerGuard, ThrottlerModule } from "@nestjs/throttler"; import { ThrottlerGuard, ThrottlerModule } from "@nestjs/throttler";
import { AppCacheModule } from "./cache/cache.module";
import { AppController } from "./app.controller"; import { AppController } from "./app.controller";
import { ClamScanModule } from "./clamscan/clamscan.module"; import { ClamScanModule } from "./clamscan/clamscan.module";
import { ConfigModule } from "./config/config.module"; import { ConfigModule } from "./config/config.module";
@@ -20,12 +20,12 @@ import { UserModule } from "./user/user.module";
@Module({ @Module({
imports: [ imports: [
ConfigModule,
AuthModule, AuthModule,
ShareModule, ShareModule,
FileModule, FileModule,
EmailModule, EmailModule,
PrismaModule, PrismaModule,
ConfigModule,
JobsModule, JobsModule,
UserModule, UserModule,
ThrottlerModule.forRoot([ ThrottlerModule.forRoot([
@@ -38,9 +38,7 @@ import { UserModule } from "./user/user.module";
ClamScanModule, ClamScanModule,
ReverseShareModule, ReverseShareModule,
OAuthModule, OAuthModule,
CacheModule.register({ AppCacheModule,
isGlobal: true,
}),
], ],
controllers: [AppController], controllers: [AppController],
providers: [ providers: [

41
backend/src/cache/cache.module.ts vendored Normal file
View File

@@ -0,0 +1,41 @@
import { Module } from "@nestjs/common";
import { CacheModule } from "@nestjs/cache-manager";
import { CacheableMemory } from "cacheable";
import { createKeyv } from "@keyv/redis";
import { Keyv } from "keyv";
import { ConfigModule } from "src/config/config.module";
import { ConfigService } from "src/config/config.service";
@Module({
imports: [
ConfigModule,
CacheModule.registerAsync({
isGlobal: true,
imports: [ConfigModule],
inject: [ConfigService],
useFactory: async (configService: ConfigService) => {
const useRedis = configService.get("cache.redis-enabled");
const ttl = configService.get("cache.ttl");
const max = configService.get("cache.maxItems");
let config = {
ttl,
max,
stores: [],
};
if (useRedis) {
const redisUrl = configService.get("cache.redis-url");
config.stores = [
new Keyv({ store: new CacheableMemory({ ttl, lruSize: 5000 }) }),
createKeyv(redisUrl),
];
}
return config;
},
}),
],
exports: [CacheModule],
})
export class AppCacheModule {}

View File

@@ -1,4 +1,5 @@
import { Global, Module } from "@nestjs/common"; import { Global, Module } from "@nestjs/common";
import { Config } from "@prisma/client";
import { EmailModule } from "src/email/email.module"; import { EmailModule } from "src/email/email.module";
import { PrismaService } from "src/prisma/prisma.service"; import { PrismaService } from "src/prisma/prisma.service";
import { ConfigController } from "./config.controller"; import { ConfigController } from "./config.controller";
@@ -16,7 +17,15 @@ import { LogoService } from "./logo.service";
}, },
inject: [PrismaService], inject: [PrismaService],
}, },
ConfigService, {
provide: ConfigService,
useFactory: async (prisma: PrismaService, configVariables: Config[]) => {
const configService = new ConfigService(configVariables, prisma);
await configService.initialize();
return configService;
},
inject: [PrismaService, "CONFIG_VARIABLES"],
},
LogoService, LogoService,
], ],
controllers: [ConfigController], controllers: [ConfigController],

View File

@@ -13,6 +13,7 @@ import { PrismaService } from "src/prisma/prisma.service";
import { stringToTimespan } from "src/utils/date.util"; import { stringToTimespan } from "src/utils/date.util";
import { parse as yamlParse } from "yaml"; import { parse as yamlParse } from "yaml";
import { YamlConfig } from "../../prisma/seed/config.seed"; import { YamlConfig } from "../../prisma/seed/config.seed";
import { CONFIG_FILE } from "src/constants";
/** /**
* ConfigService extends EventEmitter to allow listening for config updates, * ConfigService extends EventEmitter to allow listening for config updates,
@@ -30,7 +31,8 @@ export class ConfigService extends EventEmitter {
super(); super();
} }
async onModuleInit() { // Initialize gets called by the ConfigModule
async initialize() {
await this.loadYamlConfig(); await this.loadYamlConfig();
if (this.yamlConfig) { if (this.yamlConfig) {
@@ -41,7 +43,7 @@ export class ConfigService extends EventEmitter {
private async loadYamlConfig() { private async loadYamlConfig() {
let configFile: string = ""; let configFile: string = "";
try { try {
configFile = fs.readFileSync("../config.yaml", "utf8"); configFile = fs.readFileSync(CONFIG_FILE, "utf8");
} catch (e) { } catch (e) {
this.logger.log( this.logger.log(
"Config.yaml is not set. Falling back to UI configuration.", "Config.yaml is not set. Falling back to UI configuration.",
@@ -49,12 +51,13 @@ export class ConfigService extends EventEmitter {
} }
try { try {
this.yamlConfig = yamlParse(configFile); this.yamlConfig = yamlParse(configFile);
if (this.yamlConfig) { if (this.yamlConfig) {
for (const configVariable of this.configVariables) { for (const configVariable of this.configVariables) {
const category = this.yamlConfig[configVariable.category]; const category = this.yamlConfig[configVariable.category];
if (!category) continue; if (!category) continue;
configVariable.value = category[configVariable.name]; configVariable.value = category[configVariable.name];
this.emit("update", configVariable.name, configVariable.value);
} }
} }
} catch (e) { } catch (e) {
@@ -142,7 +145,7 @@ export class ConfigService extends EventEmitter {
const response: Config[] = []; const response: Config[] = [];
for (const variable of data) { for (const variable of data) {
response.push(await this.update(variable.key, variable.value)); response.push(await this.update(variable.key, variable.value));
} }
return response; return response;

View File

@@ -1,5 +1,7 @@
import { LogLevel } from "@nestjs/common"; import { LogLevel } from "@nestjs/common";
export const CONFIG_FILE = process.env.CONFIG_FILE || "../config.yaml";
export const DATA_DIRECTORY = process.env.DATA_DIRECTORY || "./data"; export const DATA_DIRECTORY = process.env.DATA_DIRECTORY || "./data";
export const SHARE_DIRECTORY = `${DATA_DIRECTORY}/uploads/shares`; export const SHARE_DIRECTORY = `${DATA_DIRECTORY}/uploads/shares`;
export const DATABASE_URL = export const DATABASE_URL =

View File

@@ -54,7 +54,7 @@ export class FileController {
@Res({ passthrough: true }) res: Response, @Res({ passthrough: true }) res: Response,
@Param("shareId") shareId: string, @Param("shareId") shareId: string,
) { ) {
const zipStream = this.fileService.getZip(shareId); const zipStream = await this.fileService.getZip(shareId);
res.set({ res.set({
"Content-Type": "application/zip", "Content-Type": "application/zip",
@@ -78,7 +78,7 @@ export class FileController {
"Content-Type": "Content-Type":
mime?.lookup?.(file.metaData.name) || "application/octet-stream", mime?.lookup?.(file.metaData.name) || "application/octet-stream",
"Content-Length": file.metaData.size, "Content-Length": file.metaData.size,
"Content-Security-Policy": "script-src 'none'", "Content-Security-Policy": "sandbox",
}; };
if (download === "true") { if (download === "true") {

View File

@@ -59,9 +59,9 @@ export class FileService {
return storageService.deleteAllFiles(shareId); return storageService.deleteAllFiles(shareId);
} }
getZip(shareId: string) { async getZip(shareId: string): Promise<Readable> {
const storageService = this.getStorageService(); const storageService = this.getStorageService();
return storageService.getZip(shareId) as Readable; return await storageService.getZip(shareId);
} }
private async streamToUint8Array(stream: Readable): Promise<Uint8Array> { private async streamToUint8Array(stream: Readable): Promise<Uint8Array> {

View File

@@ -14,6 +14,7 @@ import { ConfigService } from "src/config/config.service";
import { PrismaService } from "src/prisma/prisma.service"; import { PrismaService } from "src/prisma/prisma.service";
import { validate as isValidUUID } from "uuid"; import { validate as isValidUUID } from "uuid";
import { SHARE_DIRECTORY } from "../constants"; import { SHARE_DIRECTORY } from "../constants";
import { Readable } from "stream";
@Injectable() @Injectable()
export class LocalFileService { export class LocalFileService {
@@ -155,7 +156,19 @@ export class LocalFileService {
}); });
} }
getZip(shareId: string) { async getZip(shareId: string): Promise<Readable> {
return createReadStream(`${SHARE_DIRECTORY}/${shareId}/archive.zip`); return new Promise((resolve, reject) => {
const zipStream = createReadStream(
`${SHARE_DIRECTORY}/${shareId}/archive.zip`,
);
zipStream.on("error", (err) => {
reject(new InternalServerErrorException(err));
});
zipStream.on("open", () => {
resolve(zipStream);
});
});
} }
} }

View File

@@ -25,6 +25,7 @@ import * as mime from "mime-types";
import { File } from "./file.service"; import { File } from "./file.service";
import { Readable } from "stream"; import { Readable } from "stream";
import { validate as isValidUUID } from "uuid"; import { validate as isValidUUID } from "uuid";
import * as archiver from "archiver";
@Injectable() @Injectable()
export class S3FileService { export class S3FileService {
@@ -275,6 +276,9 @@ export class S3FileService {
} }
getS3Instance(): S3Client { getS3Instance(): S3Client {
const checksumCalculation =
this.config.get("s3.useChecksum") === true ? null : "WHEN_REQUIRED";
return new S3Client({ return new S3Client({
endpoint: this.config.get("s3.endpoint"), endpoint: this.config.get("s3.endpoint"),
region: this.config.get("s3.region"), region: this.config.get("s3.region"),
@@ -283,13 +287,100 @@ export class S3FileService {
secretAccessKey: this.config.get("s3.secret"), secretAccessKey: this.config.get("s3.secret"),
}, },
forcePathStyle: true, forcePathStyle: true,
requestChecksumCalculation: checksumCalculation,
responseChecksumValidation: checksumCalculation,
}); });
} }
getZip() { getZip(shareId: string) {
throw new BadRequestException( return new Promise<Readable>(async (resolve, reject) => {
"ZIP download is not supported with S3 storage", const s3Instance = this.getS3Instance();
); const bucketName = this.config.get("s3.bucketName");
const compressionLevel = this.config.get("share.zipCompressionLevel");
const prefix = `${this.getS3Path()}${shareId}/`;
try {
const listResponse = await s3Instance.send(
new ListObjectsV2Command({
Bucket: bucketName,
Prefix: prefix,
}),
);
if (!listResponse.Contents || listResponse.Contents.length === 0) {
throw new NotFoundException(`No files found for share ${shareId}`);
}
const archive = archiver("zip", {
zlib: { level: parseInt(compressionLevel) },
});
archive.on("error", (err) => {
this.logger.error("Archive error", err);
reject(new InternalServerErrorException("Error creating ZIP file"));
});
const fileKeys = listResponse.Contents.filter(
(object) => object.Key && object.Key !== prefix,
).map((object) => object.Key as string);
if (fileKeys.length === 0) {
throw new NotFoundException(
`No valid files found for share ${shareId}`,
);
}
let filesAdded = 0;
const processNextFile = async (index: number) => {
if (index >= fileKeys.length) {
archive.finalize();
return;
}
const key = fileKeys[index];
const fileName = key.replace(prefix, "");
try {
const response = await s3Instance.send(
new GetObjectCommand({
Bucket: bucketName,
Key: key,
}),
);
if (response.Body instanceof Readable) {
const fileStream = response.Body;
fileStream.on("end", () => {
filesAdded++;
processNextFile(index + 1);
});
fileStream.on("error", (err) => {
this.logger.error(`Error streaming file ${fileName}`, err);
processNextFile(index + 1);
});
archive.append(fileStream, { name: fileName });
} else {
processNextFile(index + 1);
}
} catch (error) {
this.logger.error(`Error processing file ${fileName}`, error);
processNextFile(index + 1);
}
};
resolve(archive);
processNextFile(0);
} catch (error) {
this.logger.error("Error creating ZIP file", error);
reject(new InternalServerErrorException("Error creating ZIP file"));
}
});
} }
getS3Path(): string { getS3Path(): string {

View File

@@ -63,7 +63,7 @@ export class OAuthService {
}, },
}); });
if (oauthUser) { if (oauthUser) {
await this.updateIsAdmin(user); await this.updateIsAdmin(oauthUser.userId, user.isAdmin);
const updatedUser = await this.prisma.user.findFirst({ const updatedUser = await this.prisma.user.findFirst({
where: { where: {
id: oauthUser.userId, id: oauthUser.userId,
@@ -170,7 +170,7 @@ export class OAuthService {
userId: existingUser.id, userId: existingUser.id,
}, },
}); });
await this.updateIsAdmin(user); await this.updateIsAdmin(existingUser.id, user.isAdmin);
return this.auth.generateToken(existingUser, { idToken: user.idToken }); return this.auth.generateToken(existingUser, { idToken: user.idToken });
} }
@@ -196,15 +196,15 @@ export class OAuthService {
return result; return result;
} }
private async updateIsAdmin(user: OAuthSignInDto) { private async updateIsAdmin(userId: string, isAdmin?: boolean) {
if ("isAdmin" in user) if (!isAdmin) return;
await this.prisma.user.update({ await this.prisma.user.update({
where: { where: {
email: user.email, id: userId,
}, },
data: { data: {
isAdmin: user.isAdmin, isAdmin: isAdmin,
}, },
}); });
} }
} }

View File

@@ -147,38 +147,36 @@ export abstract class GenericOidcProvider implements OAuthProvider<OidcToken> {
if (roleConfig?.path) { if (roleConfig?.path) {
// A path to read roles from the token is configured // A path to read roles from the token is configured
let roles: string[] | null; let roles: string[] = [];
try { try {
roles = jmespath.search(idTokenData, roleConfig.path); const rolesClaim = jmespath.search(idTokenData, roleConfig.path);
if (Array.isArray(rolesClaim)) {
roles = rolesClaim;
}
} catch (e) { } catch (e) {
roles = null; this.logger.warn(
}
if (Array.isArray(roles)) {
// Roles are found in the token
if (
roleConfig.generalAccess &&
!roles.includes(roleConfig.generalAccess)
) {
// Role for general access is configured and the user does not have it
this.logger.error(
`User roles ${roles} do not include ${roleConfig.generalAccess}`,
);
throw new ErrorPageException("user_not_allowed");
}
if (roleConfig.adminAccess) {
// Role for admin access is configured
isAdmin = roles.includes(roleConfig.adminAccess);
}
} else {
this.logger.error(
`Roles not found at path ${roleConfig.path} in ID Token ${JSON.stringify( `Roles not found at path ${roleConfig.path} in ID Token ${JSON.stringify(
idTokenData, idTokenData,
undefined, undefined,
2, 2,
)}`, )}`,
); );
}
if (
roleConfig.generalAccess &&
!roles.includes(roleConfig.generalAccess)
) {
// Role for general access is configured and the user does not have it
this.logger.error(
`User roles ${roles} do not include ${roleConfig.generalAccess}`,
);
throw new ErrorPageException("user_not_allowed"); throw new ErrorPageException("user_not_allowed");
} }
if (roleConfig.adminAccess) {
// Role for admin access is configured
isAdmin = roles.includes(roleConfig.adminAccess);
}
} }
if (!username) { if (!username) {

View File

@@ -10,7 +10,7 @@ general:
secureCookies: "false" secureCookies: "false"
#Whether to show the home page #Whether to show the home page
showHomePage: "true" showHomePage: "true"
#Time in hours after which a user must log in again (default: 3 months). #Time after which a user must log in again (default: 3 months).
sessionDuration: 3 months sessionDuration: 3 months
share: share:
#Whether registration is allowed #Whether registration is allowed
@@ -23,12 +23,21 @@ share:
shareIdLength: "8" shareIdLength: "8"
#Maximum share size #Maximum share size
maxSize: "1000000000" maxSize: "1000000000"
#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. #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.
zipCompressionLevel: "9" zipCompressionLevel: "9"
#Adjust the chunk size for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections. #Adjust the chunk size for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.
chunkSize: "10000000" chunkSize: "10000000"
#The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button. #The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.
autoOpenShareModal: "false" autoOpenShareModal: "false"
cache:
#Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.
redis-enabled: "false"
#Url to connect to the Redis instance used for caching.
redis-url: redis://pingvin-redis:6379
#Time in second to keep information inside the cache.
ttl: "60"
#Maximum number of items inside the cache.
maxItems: "1000"
email: email:
#Whether to allow email sharing with recipients. Only enable this if SMTP is activated. #Whether to allow email sharing with recipients. Only enable this if SMTP is activated.
enableShareEmailRecipients: "false" enableShareEmailRecipients: "false"
@@ -45,7 +54,7 @@ email:
Hey! Hey!
{creator} ({creatorEmail}) shared some files with you, view or download the {creator} ({creatorEmail}) shared some files with you. You can view or download the
files with this link: {shareUrl} files with this link: {shareUrl}
@@ -75,7 +84,7 @@ email:
You requested a password reset. Click this link to reset your password: You requested a password reset. Click this link to reset your password:
{url} {url}
The link expires in a hour. The link expires in an hour.
Pingvin Share 🐧 Pingvin Share 🐧
@@ -103,7 +112,7 @@ smtp:
host: "" host: ""
#Port of the SMTP server #Port of the SMTP server
port: "0" port: "0"
#Email address from wich the emails get sent #Email address from which the emails get sent
email: "" email: ""
#Username of the SMTP server #Username of the SMTP server
username: "" username: ""
@@ -204,6 +213,8 @@ s3:
key: "" key: ""
#The secret which allows you to access the S3 bucket. #The secret which allows you to access the S3 bucket.
secret: "" secret: ""
#Turn off for backends that do not support checksum (e.g. B2).
useChecksum: "true"
legal: legal:
#Whether to show a link to imprint and privacy policy in the footer. #Whether to show a link to imprint and privacy policy in the footer.
enabled: "false" enabled: "false"

View File

@@ -1,4 +1,4 @@
files: files:
- source: /frontend/src/i18n/translations/en-US.ts - source: /frontend/src/i18n/translations/en-US.ts
translation: /%original_path%/%locale%.ts translation: /%original_path%/%locale%.ts
pull_request_title: "chore(translations): update translations via Crowdin" pull_request_title: 'chore(translations): update translations via Crowdin'

View File

@@ -16,9 +16,9 @@ You can change the settings in the UI (`/admin/config`)
You can set the configuration via a YAML file. If you choose this way, you won't be able to change the settings in the UI. You can set the configuration via a YAML file. If you choose this way, you won't be able to change the settings in the UI.
If you use Docker you can create a `config.yml` file based on the [`config.example.yaml`](https://github.com/stonith404/pingvin-share/blob/main/config.yaml) and mount it to `/opt/app/config.yaml` in the container. If you use Docker you can create a `config.yml` file based on the [`config.example.yaml`](https://github.com/stonith404/pingvin-share/blob/main/config.example.yaml) and mount it to `/opt/app/config.yaml` in the container.
If you run Pingvin Share without Docker, you can create a `config.yml` file based on the [`config.example.yaml`](https://github.com/stonith404/pingvin-share/blob/main/config.yaml) in the root directory of the project. If you run Pingvin Share without Docker, you can create a `config.yml` file based on the [`config.example.yaml`](https://github.com/stonith404/pingvin-share/blob/main/config.example.yaml) in the root directory of the project.
--- ---
@@ -33,6 +33,7 @@ For installation specific configuration, you can use environment variables. The
| `BACKEND_PORT` | `8080` | The port on which the backend listens. | | `BACKEND_PORT` | `8080` | The port on which the backend listens. |
| `DATABASE_URL` | `file:../data/pingvin-share.db?connection_limit=1` | The URL of the SQLite database. | | `DATABASE_URL` | `file:../data/pingvin-share.db?connection_limit=1` | The URL of the SQLite database. |
| `DATA_DIRECTORY` | `./data` | The directory where data is stored. | | `DATA_DIRECTORY` | `./data` | The directory where data is stored. |
| `CONFIG_FILE` | `../config.yaml` | Path to the configuration file |
| `CLAMAV_HOST` | `127.0.0.1` or `clamav` when running with Docker | The IP address of the ClamAV server. See the [ClamAV docs](integrations.md#clamav) for more information. | | `CLAMAV_HOST` | `127.0.0.1` or `clamav` when running with Docker | The IP address of the ClamAV server. See the [ClamAV docs](integrations.md#clamav) for more information. |
| `CLAMAV_PORT` | `3310` | The port number of the ClamAV server. | | `CLAMAV_PORT` | `3310` | The port number of the ClamAV server. |
@@ -50,4 +51,5 @@ Environment variables that are only available when running Pingvin Share with Do
| Variable | Default Value | Description | | Variable | Default Value | Description |
| ----------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `TRUST_PROXY` | `false` | Whether Pingvin Share is behind a reverse proxy. If set to `true`, the `X-Forwarded-For` header is trusted. | | `TRUST_PROXY` | `false` | Whether Pingvin Share is behind a reverse proxy. If set to `true`, the `X-Forwarded-For` header is trusted. |
| `CADDY_DISABLED` | `false` | Configures if Pingvin Share is starting built-in Caddy. If set to `true`, Caddy will not be started. If disabled, you must configure your reverse proxy to correctly map all paths. Refer to the [official Caddyfile](https://github.com/stonith404/pingvin-share/blob/main/reverse-proxy/Caddyfile) for guidance. |
| `PUID` and `PGID` | `1000` | The user and group ID of the user who should run Pingvin Share inside the Docker container and owns the files that are mounted with the volume. You can get the `PUID` and `GUID` of your user on your host machine by using the command `id`. For more information see [this article](https://docs.linuxserver.io/general/understanding-puid-and-pgid/#using-the-variables). | | `PUID` and `PGID` | `1000` | The user and group ID of the user who should run Pingvin Share inside the Docker container and owns the files that are mounted with the volume. You can get the `PUID` and `GUID` of your user on your host machine by using the command `id`. For more information see [this article](https://docs.linuxserver.io/general/understanding-puid-and-pgid/#using-the-variables). |

View File

@@ -25,7 +25,7 @@ Your container is now listening on `http://localhost:<externalport>`, have fun w
Required tools: Required tools:
- [Node.js](https://nodejs.org/en/download/) >= 16 - [Node.js](https://nodejs.org/en/download/) >= 22
- [Git](https://git-scm.com/downloads) - [Git](https://git-scm.com/downloads)
- [pm2](https://pm2.keymetrics.io/) for running Pingvin Share in the background - [pm2](https://pm2.keymetrics.io/) for running Pingvin Share in the background

View File

@@ -1,12 +1,12 @@
{ {
"name": "pingvin-share-frontend", "name": "pingvin-share-frontend",
"version": "1.10.0", "version": "1.13.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pingvin-share-frontend", "name": "pingvin-share-frontend",
"version": "1.10.0", "version": "1.13.0",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/server": "^11.11.0", "@emotion/server": "^11.11.0",
@@ -25,7 +25,7 @@
"markdown-to-jsx": "^7.5.0", "markdown-to-jsx": "^7.5.0",
"mime-types": "^2.1.35", "mime-types": "^2.1.35",
"moment": "^2.30.1", "moment": "^2.30.1",
"next": "^14.2.12", "next": "^14.2.26",
"next-http-proxy-middleware": "^1.2.6", "next-http-proxy-middleware": "^1.2.6",
"next-pwa": "^5.6.0", "next-pwa": "^5.6.0",
"p-limit": "^6.1.0", "p-limit": "^6.1.0",
@@ -72,81 +72,18 @@
} }
}, },
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
"version": "7.23.5", "version": "7.26.2",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
"integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
"dependencies": { "dependencies": {
"@babel/highlight": "^7.23.4", "@babel/helper-validator-identifier": "^7.25.9",
"chalk": "^2.4.2" "js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/code-frame/node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dependencies": {
"color-convert": "^1.9.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/code-frame/node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/code-frame/node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@babel/code-frame/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@babel/code-frame/node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/code-frame/node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dependencies": {
"has-flag": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/compat-data": { "node_modules/@babel/compat-data": {
"version": "7.19.4", "version": "7.19.4",
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
@@ -491,17 +428,17 @@
} }
}, },
"node_modules/@babel/helper-string-parser": { "node_modules/@babel/helper-string-parser": {
"version": "7.23.4", "version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
"integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/helper-validator-identifier": { "node_modules/@babel/helper-validator-identifier": {
"version": "7.22.20", "version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
"integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
@@ -529,99 +466,24 @@
} }
}, },
"node_modules/@babel/helpers": { "node_modules/@babel/helpers": {
"version": "7.17.9", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
"integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
"dependencies": { "dependencies": {
"@babel/template": "^7.16.7", "@babel/template": "^7.27.0",
"@babel/traverse": "^7.17.9", "@babel/types": "^7.27.0"
"@babel/types": "^7.17.0"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@babel/highlight": {
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
"integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
"dependencies": {
"@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight/node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dependencies": {
"color-convert": "^1.9.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/highlight/node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/highlight/node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/@babel/highlight/node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/@babel/highlight/node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/@babel/highlight/node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/highlight/node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dependencies": {
"has-flag": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.23.5", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
"integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
"dependencies": {
"@babel/types": "^7.27.0"
},
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
}, },
@@ -1667,9 +1529,9 @@
} }
}, },
"node_modules/@babel/runtime": { "node_modules/@babel/runtime": {
"version": "7.24.5", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz",
"integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==",
"dependencies": { "dependencies": {
"regenerator-runtime": "^0.14.0" "regenerator-runtime": "^0.14.0"
}, },
@@ -1678,13 +1540,13 @@
} }
}, },
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.22.15", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.22.13", "@babel/code-frame": "^7.26.2",
"@babel/parser": "^7.22.15", "@babel/parser": "^7.27.0",
"@babel/types": "^7.22.15" "@babel/types": "^7.27.0"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -1719,13 +1581,12 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.23.5", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
"integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
"dependencies": { "dependencies": {
"@babel/helper-string-parser": "^7.23.4", "@babel/helper-string-parser": "^7.25.9",
"@babel/helper-validator-identifier": "^7.22.20", "@babel/helper-validator-identifier": "^7.25.9"
"to-fast-properties": "^2.0.0"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
@@ -2665,9 +2526,9 @@
} }
}, },
"node_modules/@next/env": { "node_modules/@next/env": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.26.tgz",
"integrity": "sha512-JfDpuOCB0UBKlEgEy/H6qcBSzHimn/YWjUHzKl1jMeUO+QVRdzmTTl8gFJaNO87c8DXmVKhFCtwxQ9acqB3+Pw==" "integrity": "sha512-vO//GJ/YBco+H7xdQhzJxF7ub3SUwft76jwaeOyVVQFHCi5DCnkP16WHB+JBylo4vOKPoZBlR94Z8xBxNBdNJA=="
}, },
"node_modules/@next/eslint-plugin-next": { "node_modules/@next/eslint-plugin-next": {
"version": "14.2.12", "version": "14.2.12",
@@ -2725,9 +2586,9 @@
} }
}, },
"node_modules/@next/swc-darwin-arm64": { "node_modules/@next/swc-darwin-arm64": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.26.tgz",
"integrity": "sha512-WDfq7bmROa5cIlk6ZNonNdVhKmbCv38XteVFYsxea1vDJt3SnYGgxLGMTXQNfs5OkFvAhmfKKrwe7Y0Hs+rWOg==", "integrity": "sha512-zDJY8gsKEseGAxG+C2hTMT0w9Nk9N1Sk1qV7vXYz9MEiyRoF5ogQX2+vplyUMIfygnjn9/A04I6yrUTRTuRiyQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2740,9 +2601,9 @@
} }
}, },
"node_modules/@next/swc-darwin-x64": { "node_modules/@next/swc-darwin-x64": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.26.tgz",
"integrity": "sha512-XIQlC+NAmJPfa2hruLvr1H1QJJeqOTDV+v7tl/jIdoFvqhoihvSNykLU/G6NMgoeo+e/H7p/VeWSOvMUHKtTIg==", "integrity": "sha512-U0adH5ryLfmTDkahLwG9sUQG2L0a9rYux8crQeC92rPhi3jGQEY47nByQHrVrt3prZigadwj/2HZ1LUUimuSbg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -2755,9 +2616,9 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-gnu": { "node_modules/@next/swc-linux-arm64-gnu": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.26.tgz",
"integrity": "sha512-pnzBrHTPXIMm5QX3QC8XeMkpVuoAYOmyfsO4VlPn+0NrHraNuWjdhe+3xLq01xR++iCvX+uoeZmJDKcOxI201Q==", "integrity": "sha512-SINMl1I7UhfHGM7SoRiw0AbwnLEMUnJ/3XXVmhyptzriHbWvPPbbm0OEVG24uUKhuS1t0nvN/DBvm5kz6ZIqpg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2770,9 +2631,9 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-musl": { "node_modules/@next/swc-linux-arm64-musl": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.26.tgz",
"integrity": "sha512-WhJJAFpi6yqmUx1momewSdcm/iRXFQS0HU2qlUGlGE/+98eu7JWLD5AAaP/tkK1mudS/rH2f9E3WCEF2iYDydQ==", "integrity": "sha512-s6JaezoyJK2DxrwHWxLWtJKlqKqTdi/zaYigDXUJ/gmx/72CrzdVZfMvUc6VqnZ7YEvRijvYo+0o4Z9DencduA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2785,9 +2646,9 @@
} }
}, },
"node_modules/@next/swc-linux-x64-gnu": { "node_modules/@next/swc-linux-x64-gnu": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.26.tgz",
"integrity": "sha512-ao5HCbw9+iG1Kxm8XsGa3X174Ahn17mSYBQlY6VGsdsYDAbz/ZP13wSLfvlYoIDn1Ger6uYA+yt/3Y9KTIupRg==", "integrity": "sha512-FEXeUQi8/pLr/XI0hKbe0tgbLmHFRhgXOUiPScz2hk0hSmbGiU8aUqVslj/6C6KA38RzXnWoJXo4FMo6aBxjzg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -2800,9 +2661,9 @@
} }
}, },
"node_modules/@next/swc-linux-x64-musl": { "node_modules/@next/swc-linux-x64-musl": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.26.tgz",
"integrity": "sha512-CXm/kpnltKTT7945np6Td3w7shj/92TMRPyI/VvveFe8+YE+/YOJ5hyAWK5rpx711XO1jBCgXl211TWaxOtkaA==", "integrity": "sha512-BUsomaO4d2DuXhXhgQCVt2jjX4B4/Thts8nDoIruEJkhE5ifeQFtvW5c9JkdOtYvE5p2G0hcwQ0UbRaQmQwaVg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -2815,9 +2676,9 @@
} }
}, },
"node_modules/@next/swc-win32-arm64-msvc": { "node_modules/@next/swc-win32-arm64-msvc": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.26.tgz",
"integrity": "sha512-upJn2HGQgKNDbXVfIgmqT2BN8f3z/mX8ddoyi1I565FHbfowVK5pnMEwauvLvaJf4iijvuKq3kw/b6E9oIVRWA==", "integrity": "sha512-5auwsMVzT7wbB2CZXQxDctpWbdEnEW/e66DyXO1DcgHxIyhP06awu+rHKshZE+lPLIGiwtjo7bsyeuubewwxMw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -2830,9 +2691,9 @@
} }
}, },
"node_modules/@next/swc-win32-ia32-msvc": { "node_modules/@next/swc-win32-ia32-msvc": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.26.tgz",
"integrity": "sha512-igQW/JWciTGJwj3G1ipalD2V20Xfx3ywQy17IV0ciOUBbFhNfyU1DILWsTi32c8KmqgIDviUEulW/yPb2FF90w==", "integrity": "sha512-GQWg/Vbz9zUGi9X80lOeGsz1rMH/MtFO/XqigDznhhhTfDlDoynCM6982mPCbSlxJ/aveZcKtTlwfAjwhyxDpg==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@@ -2845,9 +2706,9 @@
} }
}, },
"node_modules/@next/swc-win32-x64-msvc": { "node_modules/@next/swc-win32-x64-msvc": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.26.tgz",
"integrity": "sha512-AFmqeLW6LtxeFTuoB+MXFeM5fm5052i3MU6xD0WzJDOwku6SkZaxb1bxjBaRC8uNqTRTSPl0yMFtjNowIVI67w==", "integrity": "sha512-2rdB3T1/Gp7bv1eQTTm9d1Y1sv9UuJ2LAwOE0Pe2prHKe32UNscj7YS13fRB37d0GAiGNR+Y7ZcW8YjDI8Ns0w==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -3977,9 +3838,9 @@
} }
}, },
"node_modules/axios": { "node_modules/axios": {
"version": "1.7.7", "version": "1.8.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz",
"integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"follow-redirects": "^1.15.6", "follow-redirects": "^1.15.6",
@@ -7259,11 +7120,11 @@
"peer": true "peer": true
}, },
"node_modules/next": { "node_modules/next": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/next/-/next-14.2.20.tgz", "resolved": "https://registry.npmjs.org/next/-/next-14.2.26.tgz",
"integrity": "sha512-yPvIiWsiyVYqJlSQxwmzMIReXn5HxFNq4+tlVQ812N1FbvhmE+fDpIAD7bcS2mGYQwPJ5vAsQouyme2eKsxaug==", "integrity": "sha512-b81XSLihMwCfwiUVRRja3LphLo4uBBMZEzBBWMaISbKTwOmq3wPknIETy/8000tr7Gq4WmbuFYPS7jOYIf+ZJw==",
"dependencies": { "dependencies": {
"@next/env": "14.2.20", "@next/env": "14.2.26",
"@swc/helpers": "0.5.5", "@swc/helpers": "0.5.5",
"busboy": "1.6.0", "busboy": "1.6.0",
"caniuse-lite": "^1.0.30001579", "caniuse-lite": "^1.0.30001579",
@@ -7278,15 +7139,15 @@
"node": ">=18.17.0" "node": ">=18.17.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@next/swc-darwin-arm64": "14.2.20", "@next/swc-darwin-arm64": "14.2.26",
"@next/swc-darwin-x64": "14.2.20", "@next/swc-darwin-x64": "14.2.26",
"@next/swc-linux-arm64-gnu": "14.2.20", "@next/swc-linux-arm64-gnu": "14.2.26",
"@next/swc-linux-arm64-musl": "14.2.20", "@next/swc-linux-arm64-musl": "14.2.26",
"@next/swc-linux-x64-gnu": "14.2.20", "@next/swc-linux-x64-gnu": "14.2.26",
"@next/swc-linux-x64-musl": "14.2.20", "@next/swc-linux-x64-musl": "14.2.26",
"@next/swc-win32-arm64-msvc": "14.2.20", "@next/swc-win32-arm64-msvc": "14.2.26",
"@next/swc-win32-ia32-msvc": "14.2.20", "@next/swc-win32-ia32-msvc": "14.2.26",
"@next/swc-win32-x64-msvc": "14.2.20" "@next/swc-win32-x64-msvc": "14.2.26"
}, },
"peerDependencies": { "peerDependencies": {
"@opentelemetry/api": "^1.1.0", "@opentelemetry/api": "^1.1.0",
@@ -8412,9 +8273,9 @@
} }
}, },
"node_modules/serialize-javascript": { "node_modules/serialize-javascript": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
"integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dependencies": { "dependencies": {
"randombytes": "^2.1.0" "randombytes": "^2.1.0"
} }
@@ -9071,14 +8932,6 @@
"globrex": "^0.1.2" "globrex": "^0.1.2"
} }
}, },
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
"engines": {
"node": ">=4"
}
},
"node_modules/to-regex-range": { "node_modules/to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -10101,63 +9954,13 @@
} }
}, },
"@babel/code-frame": { "@babel/code-frame": {
"version": "7.23.5", "version": "7.26.2",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
"integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
"requires": { "requires": {
"@babel/highlight": "^7.23.4", "@babel/helper-validator-identifier": "^7.25.9",
"chalk": "^2.4.2" "js-tokens": "^4.0.0",
}, "picocolors": "^1.0.0"
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"requires": {
"has-flag": "^3.0.0"
}
}
} }
}, },
"@babel/compat-data": { "@babel/compat-data": {
@@ -10410,14 +10213,14 @@
} }
}, },
"@babel/helper-string-parser": { "@babel/helper-string-parser": {
"version": "7.23.4", "version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
"integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA=="
}, },
"@babel/helper-validator-identifier": { "@babel/helper-validator-identifier": {
"version": "7.22.20", "version": "7.25.9",
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
"integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ=="
}, },
"@babel/helper-validator-option": { "@babel/helper-validator-option": {
"version": "7.18.6", "version": "7.18.6",
@@ -10436,80 +10239,21 @@
} }
}, },
"@babel/helpers": { "@babel/helpers": {
"version": "7.17.9", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
"integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
"requires": { "requires": {
"@babel/template": "^7.16.7", "@babel/template": "^7.27.0",
"@babel/traverse": "^7.17.9", "@babel/types": "^7.27.0"
"@babel/types": "^7.17.0"
}
},
"@babel/highlight": {
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
"integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
"requires": {
"@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"requires": {
"has-flag": "^3.0.0"
}
}
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.23.5", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
"integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==" "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
"requires": {
"@babel/types": "^7.27.0"
}
}, },
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
"version": "7.18.6", "version": "7.18.6",
@@ -11187,21 +10931,21 @@
} }
}, },
"@babel/runtime": { "@babel/runtime": {
"version": "7.24.5", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz",
"integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==",
"requires": { "requires": {
"regenerator-runtime": "^0.14.0" "regenerator-runtime": "^0.14.0"
} }
}, },
"@babel/template": { "@babel/template": {
"version": "7.22.15", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
"requires": { "requires": {
"@babel/code-frame": "^7.22.13", "@babel/code-frame": "^7.26.2",
"@babel/parser": "^7.22.15", "@babel/parser": "^7.27.0",
"@babel/types": "^7.22.15" "@babel/types": "^7.27.0"
} }
}, },
"@babel/traverse": { "@babel/traverse": {
@@ -11229,13 +10973,12 @@
} }
}, },
"@babel/types": { "@babel/types": {
"version": "7.23.5", "version": "7.27.0",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
"integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
"requires": { "requires": {
"@babel/helper-string-parser": "^7.23.4", "@babel/helper-string-parser": "^7.25.9",
"@babel/helper-validator-identifier": "^7.22.20", "@babel/helper-validator-identifier": "^7.25.9"
"to-fast-properties": "^2.0.0"
} }
}, },
"@emnapi/runtime": { "@emnapi/runtime": {
@@ -11840,9 +11583,9 @@
"requires": {} "requires": {}
}, },
"@next/env": { "@next/env": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.26.tgz",
"integrity": "sha512-JfDpuOCB0UBKlEgEy/H6qcBSzHimn/YWjUHzKl1jMeUO+QVRdzmTTl8gFJaNO87c8DXmVKhFCtwxQ9acqB3+Pw==" "integrity": "sha512-vO//GJ/YBco+H7xdQhzJxF7ub3SUwft76jwaeOyVVQFHCi5DCnkP16WHB+JBylo4vOKPoZBlR94Z8xBxNBdNJA=="
}, },
"@next/eslint-plugin-next": { "@next/eslint-plugin-next": {
"version": "14.2.12", "version": "14.2.12",
@@ -11887,57 +11630,57 @@
} }
}, },
"@next/swc-darwin-arm64": { "@next/swc-darwin-arm64": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.26.tgz",
"integrity": "sha512-WDfq7bmROa5cIlk6ZNonNdVhKmbCv38XteVFYsxea1vDJt3SnYGgxLGMTXQNfs5OkFvAhmfKKrwe7Y0Hs+rWOg==", "integrity": "sha512-zDJY8gsKEseGAxG+C2hTMT0w9Nk9N1Sk1qV7vXYz9MEiyRoF5ogQX2+vplyUMIfygnjn9/A04I6yrUTRTuRiyQ==",
"optional": true "optional": true
}, },
"@next/swc-darwin-x64": { "@next/swc-darwin-x64": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.26.tgz",
"integrity": "sha512-XIQlC+NAmJPfa2hruLvr1H1QJJeqOTDV+v7tl/jIdoFvqhoihvSNykLU/G6NMgoeo+e/H7p/VeWSOvMUHKtTIg==", "integrity": "sha512-U0adH5ryLfmTDkahLwG9sUQG2L0a9rYux8crQeC92rPhi3jGQEY47nByQHrVrt3prZigadwj/2HZ1LUUimuSbg==",
"optional": true "optional": true
}, },
"@next/swc-linux-arm64-gnu": { "@next/swc-linux-arm64-gnu": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.26.tgz",
"integrity": "sha512-pnzBrHTPXIMm5QX3QC8XeMkpVuoAYOmyfsO4VlPn+0NrHraNuWjdhe+3xLq01xR++iCvX+uoeZmJDKcOxI201Q==", "integrity": "sha512-SINMl1I7UhfHGM7SoRiw0AbwnLEMUnJ/3XXVmhyptzriHbWvPPbbm0OEVG24uUKhuS1t0nvN/DBvm5kz6ZIqpg==",
"optional": true "optional": true
}, },
"@next/swc-linux-arm64-musl": { "@next/swc-linux-arm64-musl": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.26.tgz",
"integrity": "sha512-WhJJAFpi6yqmUx1momewSdcm/iRXFQS0HU2qlUGlGE/+98eu7JWLD5AAaP/tkK1mudS/rH2f9E3WCEF2iYDydQ==", "integrity": "sha512-s6JaezoyJK2DxrwHWxLWtJKlqKqTdi/zaYigDXUJ/gmx/72CrzdVZfMvUc6VqnZ7YEvRijvYo+0o4Z9DencduA==",
"optional": true "optional": true
}, },
"@next/swc-linux-x64-gnu": { "@next/swc-linux-x64-gnu": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.26.tgz",
"integrity": "sha512-ao5HCbw9+iG1Kxm8XsGa3X174Ahn17mSYBQlY6VGsdsYDAbz/ZP13wSLfvlYoIDn1Ger6uYA+yt/3Y9KTIupRg==", "integrity": "sha512-FEXeUQi8/pLr/XI0hKbe0tgbLmHFRhgXOUiPScz2hk0hSmbGiU8aUqVslj/6C6KA38RzXnWoJXo4FMo6aBxjzg==",
"optional": true "optional": true
}, },
"@next/swc-linux-x64-musl": { "@next/swc-linux-x64-musl": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.26.tgz",
"integrity": "sha512-CXm/kpnltKTT7945np6Td3w7shj/92TMRPyI/VvveFe8+YE+/YOJ5hyAWK5rpx711XO1jBCgXl211TWaxOtkaA==", "integrity": "sha512-BUsomaO4d2DuXhXhgQCVt2jjX4B4/Thts8nDoIruEJkhE5ifeQFtvW5c9JkdOtYvE5p2G0hcwQ0UbRaQmQwaVg==",
"optional": true "optional": true
}, },
"@next/swc-win32-arm64-msvc": { "@next/swc-win32-arm64-msvc": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.26.tgz",
"integrity": "sha512-upJn2HGQgKNDbXVfIgmqT2BN8f3z/mX8ddoyi1I565FHbfowVK5pnMEwauvLvaJf4iijvuKq3kw/b6E9oIVRWA==", "integrity": "sha512-5auwsMVzT7wbB2CZXQxDctpWbdEnEW/e66DyXO1DcgHxIyhP06awu+rHKshZE+lPLIGiwtjo7bsyeuubewwxMw==",
"optional": true "optional": true
}, },
"@next/swc-win32-ia32-msvc": { "@next/swc-win32-ia32-msvc": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.26.tgz",
"integrity": "sha512-igQW/JWciTGJwj3G1ipalD2V20Xfx3ywQy17IV0ciOUBbFhNfyU1DILWsTi32c8KmqgIDviUEulW/yPb2FF90w==", "integrity": "sha512-GQWg/Vbz9zUGi9X80lOeGsz1rMH/MtFO/XqigDznhhhTfDlDoynCM6982mPCbSlxJ/aveZcKtTlwfAjwhyxDpg==",
"optional": true "optional": true
}, },
"@next/swc-win32-x64-msvc": { "@next/swc-win32-x64-msvc": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.20.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.26.tgz",
"integrity": "sha512-AFmqeLW6LtxeFTuoB+MXFeM5fm5052i3MU6xD0WzJDOwku6SkZaxb1bxjBaRC8uNqTRTSPl0yMFtjNowIVI67w==", "integrity": "sha512-2rdB3T1/Gp7bv1eQTTm9d1Y1sv9UuJ2LAwOE0Pe2prHKe32UNscj7YS13fRB37d0GAiGNR+Y7ZcW8YjDI8Ns0w==",
"optional": true "optional": true
}, },
"@nodelib/fs.scandir": { "@nodelib/fs.scandir": {
@@ -12799,9 +12542,9 @@
"dev": true "dev": true
}, },
"axios": { "axios": {
"version": "1.7.7", "version": "1.8.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz",
"integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==",
"dev": true, "dev": true,
"requires": { "requires": {
"follow-redirects": "^1.15.6", "follow-redirects": "^1.15.6",
@@ -15181,20 +14924,20 @@
"peer": true "peer": true
}, },
"next": { "next": {
"version": "14.2.20", "version": "14.2.26",
"resolved": "https://registry.npmjs.org/next/-/next-14.2.20.tgz", "resolved": "https://registry.npmjs.org/next/-/next-14.2.26.tgz",
"integrity": "sha512-yPvIiWsiyVYqJlSQxwmzMIReXn5HxFNq4+tlVQ812N1FbvhmE+fDpIAD7bcS2mGYQwPJ5vAsQouyme2eKsxaug==", "integrity": "sha512-b81XSLihMwCfwiUVRRja3LphLo4uBBMZEzBBWMaISbKTwOmq3wPknIETy/8000tr7Gq4WmbuFYPS7jOYIf+ZJw==",
"requires": { "requires": {
"@next/env": "14.2.20", "@next/env": "14.2.26",
"@next/swc-darwin-arm64": "14.2.20", "@next/swc-darwin-arm64": "14.2.26",
"@next/swc-darwin-x64": "14.2.20", "@next/swc-darwin-x64": "14.2.26",
"@next/swc-linux-arm64-gnu": "14.2.20", "@next/swc-linux-arm64-gnu": "14.2.26",
"@next/swc-linux-arm64-musl": "14.2.20", "@next/swc-linux-arm64-musl": "14.2.26",
"@next/swc-linux-x64-gnu": "14.2.20", "@next/swc-linux-x64-gnu": "14.2.26",
"@next/swc-linux-x64-musl": "14.2.20", "@next/swc-linux-x64-musl": "14.2.26",
"@next/swc-win32-arm64-msvc": "14.2.20", "@next/swc-win32-arm64-msvc": "14.2.26",
"@next/swc-win32-ia32-msvc": "14.2.20", "@next/swc-win32-ia32-msvc": "14.2.26",
"@next/swc-win32-x64-msvc": "14.2.20", "@next/swc-win32-x64-msvc": "14.2.26",
"@swc/helpers": "0.5.5", "@swc/helpers": "0.5.5",
"busboy": "1.6.0", "busboy": "1.6.0",
"caniuse-lite": "^1.0.30001579", "caniuse-lite": "^1.0.30001579",
@@ -15953,9 +15696,9 @@
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A=="
}, },
"serialize-javascript": { "serialize-javascript": {
"version": "6.0.1", "version": "6.0.2",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
"integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"requires": { "requires": {
"randombytes": "^2.1.0" "randombytes": "^2.1.0"
} }
@@ -16427,11 +16170,6 @@
"globrex": "^0.1.2" "globrex": "^0.1.2"
} }
}, },
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
},
"to-regex-range": { "to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",

View File

@@ -1,6 +1,6 @@
{ {
"name": "pingvin-share-frontend", "name": "pingvin-share-frontend",
"version": "1.10.0", "version": "1.13.0",
"scripts": { "scripts": {
"dev": "next dev", "dev": "next dev",
"build": "next build", "build": "next build",
@@ -26,7 +26,7 @@
"markdown-to-jsx": "^7.5.0", "markdown-to-jsx": "^7.5.0",
"mime-types": "^2.1.35", "mime-types": "^2.1.35",
"moment": "^2.30.1", "moment": "^2.30.1",
"next": "^14.2.12", "next": "^14.2.26",
"next-http-proxy-middleware": "^1.2.6", "next-http-proxy-middleware": "^1.2.6",
"next-pwa": "^5.6.0", "next-pwa": "^5.6.0",
"p-limit": "^6.1.0", "p-limit": "^6.1.0",

View File

@@ -13,13 +13,14 @@ import Link from "next/link";
import { Dispatch, SetStateAction } from "react"; import { Dispatch, SetStateAction } from "react";
import { import {
TbAt, TbAt,
TbBinaryTree,
TbBucket,
TbMail, TbMail,
TbScale,
TbServerBolt,
TbSettings,
TbShare, TbShare,
TbSocial, TbSocial,
TbBucket,
TbBinaryTree,
TbSettings,
TbScale,
} from "react-icons/tb"; } from "react-icons/tb";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
@@ -32,6 +33,7 @@ const categories = [
{ name: "LDAP", icon: <TbBinaryTree /> }, { name: "LDAP", icon: <TbBinaryTree /> },
{ name: "S3", icon: <TbBucket /> }, { name: "S3", icon: <TbBucket /> },
{ name: "Legal", icon: <TbScale /> }, { name: "Legal", icon: <TbScale /> },
{ name: "Cache", icon: <TbServerBolt /> },
]; ];
const useStyles = createStyles((theme) => ({ const useStyles = createStyles((theme) => ({

View File

@@ -7,11 +7,11 @@ import {
useMantineTheme, useMantineTheme,
} from "@mantine/core"; } from "@mantine/core";
import { modals } from "@mantine/modals"; import { modals } from "@mantine/modals";
import Markdown, { MarkdownToJSX } from "markdown-to-jsx";
import Link from "next/link"; import Link from "next/link";
import React, { Dispatch, SetStateAction, useEffect, useState } from "react"; import React, { Dispatch, SetStateAction, useEffect, useState } from "react";
import { FormattedMessage } from "react-intl"; import { FormattedMessage } from "react-intl";
import api from "../../services/api.service"; import api from "../../services/api.service";
import Markdown from "markdown-to-jsx";
const FilePreviewContext = React.createContext<{ const FilePreviewContext = React.createContext<{
shareId: string; shareId: string;
@@ -132,7 +132,8 @@ const TextPreview = () => {
.then((res) => setText(res.data ?? "Preview couldn't be fetched.")); .then((res) => setText(res.data ?? "Preview couldn't be fetched."));
}, [shareId, fileId]); }, [shareId, fileId]);
const options = { const options: MarkdownToJSX.Options = {
disableParsingRawHTML: true,
overrides: { overrides: {
pre: { pre: {
props: { props: {

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "المشاركة {shareId}", "share.title": "المشاركة {shareId}",
"share.description": "انظر ما الذي شاركته معك!", "share.description": "انظر ما الذي شاركته معك!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "تم تجاوز حد المشاهدات", "share.error.visitor-limit-exceeded.title": "تم تجاوز حد المشاهدات",
"share.error.visitor-limit-exceeded.description": "تم تجاوز الحد الأقصى لزوار هذه المشاركة.", "share.error.visitor-limit-exceeded.description": "تم تجاوز الحد الأقصى لزوار هذه المشاركة.",
"share.error.removed.title": "تمت إزالة المشاركة", "share.error.removed.title": "تمت إزالة المشاركة",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "الإعدادات", "admin.config.title": "الإعدادات",
"admin.config.category.general": "عام", "admin.config.category.general": "عام",
"admin.config.category.share": "مشاركة", "admin.config.category.share": "مشاركة",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "البريد", "admin.config.category.email": "البريد",
"admin.config.category.smtp": "بروتوكول نقل البريد البسيط SMTP", "admin.config.category.smtp": "بروتوكول نقل البريد البسيط SMTP",
"admin.config.category.oauth": "الدخول بحساب تواصل اجتماعي", "admin.config.category.oauth": "الدخول بحساب تواصل اجتماعي",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "الشعار", "admin.config.general.logo": "الشعار",
"admin.config.general.logo.description": "يمكنك تغيير شعارك عن طريق تحميل صورة جديدة. يجب أن تكون الصورة PNG ويجب أن يكون تنسيقها 1:1.", "admin.config.general.logo.description": "يمكنك تغيير شعارك عن طريق تحميل صورة جديدة. يجب أن تكون الصورة PNG ويجب أن يكون تنسيقها 1:1.",
"admin.config.general.logo.placeholder": "اختر صورة", "admin.config.general.logo.placeholder": "اختر صورة",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "عنوان الرسالة لمستلمي المشاركة", "admin.config.email.share-recipients-subject": "عنوان الرسالة لمستلمي المشاركة",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "المنفذ", "admin.config.smtp.port": "المنفذ",
"admin.config.smtp.port.description": "منفذ خادم الـSMTP", "admin.config.smtp.port.description": "منفذ خادم الـSMTP",
"admin.config.smtp.email": "البريد الإلكتروني", "admin.config.smtp.email": "البريد الإلكتروني",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "اسم المستخدم", "admin.config.smtp.username": "اسم المستخدم",
"admin.config.smtp.username.description": "اسم المستخدم لخادم الـSMTP", "admin.config.smtp.username.description": "اسم المستخدم لخادم الـSMTP",
"admin.config.smtp.password": "كلمة السر", "admin.config.smtp.password": "كلمة السر",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -3,9 +3,9 @@ export default {
"navbar.upload": "Nahrát", "navbar.upload": "Nahrát",
"navbar.signin": "Přihlásit se", "navbar.signin": "Přihlásit se",
"navbar.home": "Domů", "navbar.home": "Domů",
"navbar.signup": "Sign up", "navbar.signup": "Zaregistrovat se",
"navbar.links.shares": "Má sdílení", "navbar.links.shares": "Má sdílení",
"navbar.links.reverse": "Zpětná sdílení", "navbar.links.reverse": "Opačná sdílení",
"navbar.avatar.account": "Můj účet", "navbar.avatar.account": "Můj účet",
"navbar.avatar.admin": "Administrace", "navbar.avatar.admin": "Administrace",
"navbar.avatar.signout": "Odhlásit se", "navbar.avatar.signout": "Odhlásit se",
@@ -13,12 +13,12 @@ export default {
// / // /
"home.title": "<h>Samostatně hostovaná</h> platforma pro sdílení souborů.", "home.title": "<h>Samostatně hostovaná</h> platforma pro sdílení souborů.",
"home.description": "Opravdu chcete dát své osobní soubory do rukou třetích stran, jako je WeTransfer?", "home.description": "Opravdu chcete dát své osobní soubory do rukou třetích stran, jako je WeTransfer?",
"home.bullet.a.name": "Self-Hosted", "home.bullet.a.name": "Vlastní hosting",
"home.bullet.a.description": "Hostujte Pingvin Share na svém vlastním počítači.", "home.bullet.a.description": "Hostujte Pingvin Share na svém vlastním počítači.",
"home.bullet.b.name": "Soukromí", "home.bullet.b.name": "Soukromí",
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.", "home.bullet.b.description": "Vaše soubory jsou Vaše a nikdy k nim nebudou mít přístup třetí strany.",
"home.bullet.c.name": "Žádný otravný limit pro velikost souborů", "home.bullet.c.name": "Žádný otravný limit pro velikost souborů",
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.", "home.bullet.c.description": "Nahrajte tak velké soubory, jak chcete. Limitem je pouze Váš pevný disk.",
"home.button.start": "Začít", "home.button.start": "Začít",
"home.button.source": "Zdrojový kód", "home.button.source": "Zdrojový kód",
// END / // END /
@@ -58,12 +58,12 @@ export default {
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Zapomněli jste heslo?", "resetPassword.title": "Zapomněli jste heslo?",
"resetPassword.description": "Zadejte svůj e-mail pro obnovení hesla.", "resetPassword.description": "Zadejte svůj e-mail pro obnovení hesla.",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.", "resetPassword.notify.success": "Pokud e-mail existuje, byla na něj odeslána zpráva s odkazem k obnovení hesla.",
"resetPassword.button.back": "Zpět na přihlašovací stránku", "resetPassword.button.back": "Zpět na přihlašovací stránku",
"resetPassword.text.resetPassword": "Obnovit heslo", "resetPassword.text.resetPassword": "Obnovit heslo",
"resetPassword.text.enterNewPassword": "Zadejte své nové heslo", "resetPassword.text.enterNewPassword": "Zadejte své nové heslo",
"resetPassword.input.password": "Nové heslo", "resetPassword.input.password": "Nové heslo",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.", "resetPassword.notify.passwordReset": "Vaše heslo bylo úspěšně obnoveno.",
// /account // /account
"account.title": "Můj účet", "account.title": "Můj účet",
"account.card.info.title": "Informace o účtu", "account.card.info.title": "Informace o účtu",
@@ -73,7 +73,7 @@ export default {
"account.card.password.title": "Heslo", "account.card.password.title": "Heslo",
"account.card.password.old": "Staré heslo", "account.card.password.old": "Staré heslo",
"account.card.password.new": "Nové heslo", "account.card.password.new": "Nové heslo",
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.", "account.card.password.noPasswordSet": "Heslo není nastaveno. Pro přihlášení pomocí e-mailu a hesla je potřeba vytvořit heslo.",
"account.notify.password.success": "Heslo bylo úspěšně změněno", "account.notify.password.success": "Heslo bylo úspěšně změněno",
"account.card.oauth.title": "Přihlášení přes sociální sítě", "account.card.oauth.title": "Přihlášení přes sociální sítě",
"account.card.oauth.github": "GitHub", "account.card.oauth.github": "GitHub",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "Odpojit", "account.card.oauth.unlink": "Odpojit",
"account.card.oauth.unlinked": "Odpojeno", "account.card.oauth.unlinked": "Odpojeno",
"account.modal.unlink.title": "Odpojit účet", "account.modal.unlink.title": "Odpojit účet",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials", "account.modal.unlink.description": "Odpojení vašich sociálních účtů může způsobit ztrátu účtu, pokud si nepamatujete své uživatelské jméno a heslo",
"account.notify.oauth.unlinked.success": "Úspěšně odpojeno", "account.notify.oauth.unlinked.success": "Úspěšně odpojeno",
"account.card.security.title": "Zabezpečení", "account.card.security.title": "Zabezpečení",
"account.card.security.totp.enable.description": "Zadejte své současné heslo, abyste mohli povolit TOTP", "account.card.security.totp.enable.description": "Zadejte své současné heslo, abyste mohli povolit TOTP",
@@ -115,30 +115,30 @@ export default {
"account.shares.title": "Má sdílení", "account.shares.title": "Má sdílení",
"account.shares.title.empty": "Je tu prázdno 👀", "account.shares.title.empty": "Je tu prázdno 👀",
"account.shares.description.empty": "Nemáte žádná sdílení.", "account.shares.description.empty": "Nemáte žádná sdílení.",
"account.shares.button.create": "Create one", "account.shares.button.create": "Vytvořit",
"account.shares.info.title": "Share informations", "account.shares.info.title": "Vlastnosti",
"account.shares.table.id": "ID", "account.shares.table.id": "ID",
"account.shares.table.name": "Název", "account.shares.table.name": "Název",
"account.shares.table.description": "Popis", "account.shares.table.description": "Popis",
"account.shares.table.visitors": "Návštěvníci", "account.shares.table.visitors": "Návštěvníci",
"account.shares.table.expiresAt": "Expires on", "account.shares.table.expiresAt": "Vyprší",
"account.shares.table.createdAt": "Created on", "account.shares.table.createdAt": "Vytvořeno",
"account.shares.table.size": "Velikost", "account.shares.table.size": "Velikost",
"account.shares.table.password-protected": "Password protected", "account.shares.table.password-protected": "Chráněno heslem",
"account.shares.table.visitor-count": "{count} of {max}", "account.shares.table.visitor-count": "{count} z {max}",
"account.shares.table.expiry-never": "Never", "account.shares.table.expiry-never": "Nikdy",
"account.shares.modal.share-informations": "Share informations", "account.shares.modal.share-informations": "Vlastnosti",
"account.shares.modal.share-link": "Odkaz na sdílení", "account.shares.modal.share-link": "Odkaz na sdílení",
"account.shares.modal.delete.title": "Delete share: {share}", "account.shares.modal.delete.title": "Odstranit sdílení {share}",
"account.shares.modal.delete.description": "Opravdu chcete odstranit toto sdílení?", "account.shares.modal.delete.description": "Opravdu chcete odstranit toto sdílení?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
"account.reverseShares.title": "Zpětná sdílení", "account.reverseShares.title": "Opačná sdílení",
"account.reverseShares.description": "Zpětné sdílení umožňuje vygenerovat jedinečné URL, které umožní externím uživatelům vytvořit sdílet soubory.", "account.reverseShares.description": "Opačné sdílení umožňuje vygenerovat jedinečné URL, které umožní externím uživatelům vytvořit sdílet soubory.",
"account.reverseShares.title.empty": "Je tu prázdno 👀", "account.reverseShares.title.empty": "Je tu prázdno 👀",
"account.reverseShares.description.empty": "Nemáte žádná zpětná sdílení.", "account.reverseShares.description.empty": "Nemáte žádná opačná sdílení.",
// showCreateReverseShareModal.tsx // showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Vytvořit zpětné sdílení", "account.reverseShares.modal.title": "Vytvořit opačné sdílení",
"account.reverseShares.modal.expiration.label": "Expirace", "account.reverseShares.modal.expiration.label": "Expirace",
"account.reverseShares.modal.expiration.minute-singular": "Minuta", "account.reverseShares.modal.expiration.minute-singular": "Minuta",
"account.reverseShares.modal.expiration.minute-plural": "Minut", "account.reverseShares.modal.expiration.minute-plural": "Minut",
@@ -153,16 +153,16 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "Rok", "account.reverseShares.modal.expiration.year-singular": "Rok",
"account.reverseShares.modal.expiration.year-plural": "Let", "account.reverseShares.modal.expiration.year-plural": "Let",
"account.reverseShares.modal.max-size.label": "Max. velikost sdílení", "account.reverseShares.modal.max-size.label": "Max. velikost sdílení",
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "Odeslat oznámení e-mailem",
"account.reverseShares.modal.send-email.description": "Odešle vám e-mailové upozornění, až bude sdílení pomocí tohoto reverzního sdíleného odkazu vytvořeno.", "account.reverseShares.modal.send-email.description": "Odešle vám e-mailové upozornění, až bude sdílení pomocí tohoto reverzního sdíleného odkazu vytvořeno.",
"account.reverseShares.modal.simplified": "Zjednodušený režim", "account.reverseShares.modal.simplified": "Zjednodušený režim",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "Usnadněte odesílateli sdílení souboru s Vámi. Budou moci pouze upravit název a popisek sdílení.",
"account.reverseShares.modal.public-access": "Veřejný přístup", "account.reverseShares.modal.public-access": "Veřejný přístup",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "Zveřejnit soubory vytvořená tímto opačným sdílením. Pokud není povoleno, pouze Vy a tvůrce sdílení má práva k zobrazení.",
"account.reverseShares.modal.max-use.label": "Max. použití", "account.reverseShares.modal.max-use.label": "Max. použití",
"account.reverseShares.modal.max-use.description": "Maximální počet sdílení, která mohou být vytvořena za pomoci tohoto URL.", "account.reverseShares.modal.max-use.description": "Maximální počet sdílení, která mohou být vytvořena za pomoci tohoto URL.",
"account.reverseShare.never-expires": "Toto zpětné sdílení nikdy nevyprší.", "account.reverseShare.never-expires": "Toto opačné sdílení nikdy nevyprší.",
"account.reverseShare.expires-on": "Toto zpětné sdílení vyprší {expiration}.", "account.reverseShare.expires-on": "Toto opačné sdílení vyprší {expiration}.",
"account.reverseShares.table.no-shares": "Zatím nebyla vytvořena žádná sdílení", "account.reverseShares.table.no-shares": "Zatím nebyla vytvořena žádná sdílení",
"account.reverseShares.table.count.singular": "sdílení", "account.reverseShares.table.count.singular": "sdílení",
"account.reverseShares.table.count.plural": "sdílení", "account.reverseShares.table.count.plural": "sdílení",
@@ -170,9 +170,9 @@ export default {
"account.reverseShares.table.remaining": "Zbývající použití", "account.reverseShares.table.remaining": "Zbývající použití",
"account.reverseShares.table.max-size": "Max. velikost sdílení", "account.reverseShares.table.max-size": "Max. velikost sdílení",
"account.reverseShares.table.expires": "Vyprší", "account.reverseShares.table.expires": "Vyprší",
"account.reverseShares.modal.reverse-share-link": "Odkaz na zpětné sdílení", "account.reverseShares.modal.reverse-share-link": "Odkaz na opačné sdílení",
"account.reverseShares.modal.delete.title": "Odstranit zpětné sdílení", "account.reverseShares.modal.delete.title": "Odstranit opačné sdílení",
"account.reverseShares.modal.delete.description": "Opravdu chcete odstranit toto zpětné sdílení? Pokud tak učiníte, související sdílené budou také odstraněny.", "account.reverseShares.modal.delete.description": "Opravdu chcete odstranit toto opačné sdílení? Pokud tak učiníte, související sdílení budou také odstraněny.",
// END /account/reverseShares // END /account/reverseShares
// /admin // /admin
"admin.title": "Administrace", "admin.title": "Administrace",
@@ -186,14 +186,14 @@ export default {
"admin.users.table.username": "Uživatelské jméno", "admin.users.table.username": "Uživatelské jméno",
"admin.users.table.email": "E-mail", "admin.users.table.email": "E-mail",
"admin.users.table.admin": "Administrátor", "admin.users.table.admin": "Administrátor",
"admin.users.edit.update.title": "Edit user: {username}", "admin.users.edit.update.title": "Upravit uživatele {username}",
"admin.users.edit.update.admin-privileges": "Administrátorská práva", "admin.users.edit.update.admin-privileges": "Administrátorská práva",
"admin.users.edit.update.change-password.title": "Změnit heslo", "admin.users.edit.update.change-password.title": "Změnit heslo",
"admin.users.edit.update.change-password.field": "Nové heslo", "admin.users.edit.update.change-password.field": "Nové heslo",
"admin.users.edit.update.change-password.button": "Uložit nové heslo", "admin.users.edit.update.change-password.button": "Uložit nové heslo",
"admin.users.edit.update.notify.password.success": "Heslo bylo úspěšně změněno", "admin.users.edit.update.notify.password.success": "Heslo bylo úspěšně změněno",
"admin.users.edit.delete.title": "Delete user: {username} ?", "admin.users.edit.delete.title": "Odstranit uživatele: {username}?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?", "admin.users.edit.delete.description": "Opravdu chcete odstranit tohoto uživatele a všechny jeho soubory?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Vytvořit uživatele", "admin.users.modal.create.title": "Vytvořit uživatele",
"admin.users.modal.create.username": "Uživatelské jméno", "admin.users.modal.create.username": "Uživatelské jméno",
@@ -209,20 +209,20 @@ export default {
"admin.shares.table.id": "ID sdílení", "admin.shares.table.id": "ID sdílení",
"admin.shares.table.username": "Autor", "admin.shares.table.username": "Autor",
"admin.shares.table.visitors": "Návštěvníci", "admin.shares.table.visitors": "Návštěvníci",
"admin.shares.table.expires": "Expires on", "admin.shares.table.expires": "Vyprší",
"admin.shares.edit.delete.title": "Delete share: {id}", "admin.shares.edit.delete.title": "Odstranit sdílení: {id}",
"admin.shares.edit.delete.description": "Opravdu chcete smazat toto sdílení?", "admin.shares.edit.delete.description": "Opravdu chcete smazat toto sdílení?",
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Nahrát", "upload.title": "Nahrát",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.", "upload.notify.confirm-leave": "Opravdu chcete opustit tuto stránku? Vaše nahrávání bude zrušeno.",
"upload.notify.generic-error": "Při dokončování vašeho sdílení došlo k chybě.", "upload.notify.generic-error": "Při dokončování vašeho sdílení došlo k chybě.",
"upload.notify.count-failed": "{count} souborů se nepodařilo nahrát. Zkouším to znovu.", "upload.notify.count-failed": "{count} souborů se nepodařilo nahrát. Zkouším to znovu.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link", "upload.reverse-share.error.invalid.title": "Neplatný odkaz na opačné sdílení",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.", "upload.reverse-share.error.invalid.description": "Toto opačné sdílení vypršelo nebo je neplatné.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Nahrát soubory", "upload.dropzone.title": "Nahrát soubory",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Pro spuštění sdílení, přetáhněte soubory sem. Můžete nahrát soubory o celkové velikosti {maxSize}.",
"upload.dropzone.notify.file-too-big": "Vaše soubory přesahují maximální velikost {maxSize}.", "upload.dropzone.notify.file-too-big": "Vaše soubory přesahují maximální velikost {maxSize}.",
// FileList.tsx // FileList.tsx
"upload.filelist.name": "Název", "upload.filelist.name": "Název",
@@ -234,8 +234,8 @@ export default {
"upload.modal.not-signed-in": "Nejste přihlášeni", "upload.modal.not-signed-in": "Nejste přihlášeni",
"upload.modal.not-signed-in-description": "Nebudete moci ručně odstranit své sdílení a zobrazit počet návštěvníků.", "upload.modal.not-signed-in-description": "Nebudete moci ručně odstranit své sdílení a zobrazit počet návštěvníků.",
"upload.modal.expires.never": "nikdy", "upload.modal.expires.never": "nikdy",
"upload.modal.expires.never-long": "Permanent share", "upload.modal.expires.never-long": "Trvalé sdílení",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.", "upload.modal.expires.error.too-long": "Datum vypršení platnosti překračuje maximum {max}.",
"upload.modal.link.label": "Odkaz", "upload.modal.link.label": "Odkaz",
"upload.modal.expires.label": "Expirace", "upload.modal.expires.label": "Expirace",
"upload.modal.expires.minute-singular": "Minuta", "upload.modal.expires.minute-singular": "Minuta",
@@ -265,11 +265,12 @@ export default {
"upload.modal.completed.never-expires": "Toto sdílení nikdy nevyprší.", "upload.modal.completed.never-expires": "Toto sdílení nikdy nevyprší.",
"upload.modal.completed.expires-on": "Toto sdílení vyprší {expiration}.", "upload.modal.completed.expires-on": "Toto sdílení vyprší {expiration}.",
"upload.modal.completed.share-ready": "Sdílení připraveno", "upload.modal.completed.share-ready": "Sdílení připraveno",
"upload.modal.completed.notified-reverse-share-creator": "Upozornili jsme tvůrce zpětného sdílení. Můžete s nimi také ručně sdílet tento odkaz jiným způsobem.", "upload.modal.completed.notified-reverse-share-creator": "Upozornili jsme tvůrce opačného sdílení. Můžete s nimi také ručně sdílet tento odkaz jiným způsobem.",
// END /upload // END /upload
// /share/[id] // /share/[id]
"share.title": "Sdílení {shareId}", "share.title": "Sdílení {shareId}",
"share.description": "Podívejte se, co jsem s vámi sdílel!", "share.description": "Podívejte se, co jsem s vámi sdílel!",
"share.fileCount": "{count, plural, =1 {# soubor} other {# soubory}} · {size} (Archiv může být menší díky kompresi)",
"share.error.visitor-limit-exceeded.title": "Limit návštěvníků překročen", "share.error.visitor-limit-exceeded.title": "Limit návštěvníků překročen",
"share.error.visitor-limit-exceeded.description": "Limit návštěvníků tohoto sdílení byl překročen.", "share.error.visitor-limit-exceeded.description": "Limit návštěvníků tohoto sdílení byl překročen.",
"share.error.removed.title": "Sdílení bylo odstraněno", "share.error.removed.title": "Sdílení bylo odstraněno",
@@ -278,16 +279,16 @@ export default {
"share.error.access-denied.title": "Soukromé sdílení", "share.error.access-denied.title": "Soukromé sdílení",
"share.error.access-denied.description": "Aktuální účet nemá oprávnění k přístupu k tomuto sdílení", "share.error.access-denied.description": "Aktuální účet nemá oprávnění k přístupu k tomuto sdílení",
"share.modal.password.title": "Heslo vyžadováno", "share.modal.password.title": "Heslo vyžadováno",
"share.modal.password.description": "Please enter the password to access this share.", "share.modal.password.description": "Zadejte prosím heslo pro přístup k tomuto sdíleni.",
"share.modal.password": "Heslo", "share.modal.password": "Heslo",
"share.modal.error.invalid-password": "Neplatné heslo", "share.modal.error.invalid-password": "Neplatné heslo",
"share.button.download-all": "Stáhnout vše", "share.button.download-all": "Stáhnout vše",
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.", "share.notify.download-all-preparing": "Sdílení se připravuje. Zkuste to prosím znovu za několik minut.",
"share.modal.file-link": "Odkaz na soubor", "share.modal.file-link": "Odkaz na soubor",
"share.table.name": "Název", "share.table.name": "Název",
"share.table.size": "Velikost", "share.table.size": "Velikost",
"share.modal.file-preview.error.not-supported.title": "Náhled není podporován", "share.modal.file-preview.error.not-supported.title": "Náhled není podporován",
"share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.", "share.modal.file-preview.error.not-supported.description": "Náhledy nejsou podporovány pro tento typ souborů. Stáhněte si soubor pro jeho zobrazení.",
// END /share/[id] // END /share/[id]
// /share/[id]/edit // /share/[id]/edit
"share.edit.title": "Upravit {shareId}", "share.edit.title": "Upravit {shareId}",
@@ -296,17 +297,18 @@ export default {
"share.edit.notify.save-success": "Sdílení úspěšně aktualizováno", "share.edit.notify.save-success": "Sdílení úspěšně aktualizováno",
// END /share/[id]/edit // END /share/[id]/edit
// /imprint // /imprint
"imprint.title": "Imprint", "imprint.title": "Tiráž",
// END /imprint // END /imprint
// /privacy // /privacy
"privacy.title": "Privacy Policy", "privacy.title": "Zásady ochrany osobních údajů",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Konfigurační soubor existuje",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Jelikož je Pingvin Share nastaven pomocí konfiguračního souboru, nemůžete změnit nastavení přes UI.",
"admin.config.title": "Nastavení", "admin.config.title": "Nastavení",
"admin.config.category.general": "Obecné", "admin.config.category.general": "Obecné",
"admin.config.category.share": "Sdílení", "admin.config.category.share": "Sdílení",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "E-mail", "admin.config.category.email": "E-mail",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Přihlášení přes sociální sítě", "admin.config.category.oauth": "Přihlášení přes sociální sítě",
@@ -315,56 +317,64 @@ export default {
"admin.config.general.app-url": "URL aplikace", "admin.config.general.app-url": "URL aplikace",
"admin.config.general.app-url.description": "Na kterém URL je Pingvin Share k dispozici", "admin.config.general.app-url.description": "Na kterém URL je Pingvin Share k dispozici",
"admin.config.general.secure-cookies": "Bezpečné cookies", "admin.config.general.secure-cookies": "Bezpečné cookies",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.", "admin.config.general.secure-cookies.description": "Určuje, zda se má nastavit zabezpečený příznak v cookies. Pokud je povoleno, stránka nebude přístupná přes HTTP.",
"admin.config.general.show-home-page": "Zobrazit domovskou stránku", "admin.config.general.show-home-page": "Zobrazit domovskou stránku",
"admin.config.general.show-home-page.description": "Zda zobrazovat domovskou stránku", "admin.config.general.show-home-page.description": "Zda zobrazovat domovskou stránku",
"admin.config.general.session-duration": "Délka trvání relace", "admin.config.general.session-duration": "Délka trvání relace",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "Čas, po kterém se uživatel musí znovu přihlásit (výchozí: 3 měsíce).",
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Změňte své logo nahráním nového obrázku. Obrázek musí být PNG a měl by mít formát 1:1.", "admin.config.general.logo.description": "Změňte své logo nahráním nového obrázku. Obrázek musí být PNG a měl by mít formát 1:1.",
"admin.config.general.logo.placeholder": "Vybrat obrázek", "admin.config.general.logo.placeholder": "Vybrat obrázek",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.cache.ttl": "TTL",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.email.share-recipients-subject": "Share recipients subject", "admin.config.cache.max-items": "Maximum items",
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.", "admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.email.share-recipients-message": "Share recipients message", "admin.config.cache.redis-enabled": "Redis enabled",
"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 {creatorEmail} - The email 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 These variables will be replaced with the actual value.", "admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.email.reverse-share-subject": "Předmět e-mailu o zpětném sdílení", "admin.config.cache.redis-url": "Redis URL",
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.", "admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.reverse-share-message": "Zpráva o zpětném sdílení", "admin.config.email.enable-share-email-recipients": "Sdílení přes e-mail",
"admin.config.email.reverse-share-message.description": "Zpráva, která bude odeslána, když někdo vytvoří sdílení s vaším odkazem na zpětné sdílení. {shareUrl} bude nahrazeno jménem tvůrce a URL pro sdílení.", "admin.config.email.enable-share-email-recipients.description": "Určuje, zdali je povoleno sdílení souborů přes e-mail. Povolte pouze pokud je aktivováno SMTP.",
"admin.config.email.share-recipients-subject": "Předmět pro příjemce",
"admin.config.email.share-recipients-subject.description": "Předmět e-mailu, který bude odeslán adresátovi.",
"admin.config.email.share-recipients-message": "Zpráva pro příjemce",
"admin.config.email.share-recipients-message.description": "Zpráva, která bude odeslána adresátům. Dostupné proměnné:\n {creator} - Uživatelské jméno tvůrce sdílení\n {shareUrl} - Odkaz sdílení\n {desc} - Popis sdílení\n {expires} - Datum vypršení platnosti sdílení\n Proměnné budou nahrazeny skutečnou hodnotou.",
"admin.config.email.reverse-share-subject": "Předmět e-mailu o opačném sdílení",
"admin.config.email.reverse-share-subject.description": "Předmět e-mailu, když někdo vytvoří sdílení s Vaším odkazem na opačné sdílení.",
"admin.config.email.reverse-share-message": "Zpráva o opačném sdílení",
"admin.config.email.reverse-share-message.description": "Zpráva, která bude odeslána, když někdo vytvoří sdílení s vaším odkazem na opačné sdílení. {shareUrl} bude nahrazeno jménem tvůrce a URL pro sdílení.",
"admin.config.email.reset-password-subject": "Předmět e-mailu pro obnovení hesla", "admin.config.email.reset-password-subject": "Předmět e-mailu pro obnovení hesla",
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.", "admin.config.email.reset-password-subject.description": "Předmět e-mailu, když uživatel požádá o obnovení hesla.",
"admin.config.email.reset-password-message": "Zpráva o obnovení hesla", "admin.config.email.reset-password-message": "Zpráva o obnovení hesla",
"admin.config.email.reset-password-message.description": "Zpráva, která bude odeslána, když uživatel požádá o obnovení hesla. {url} bude nahrazeno URL pro obnovení hesla.", "admin.config.email.reset-password-message.description": "Zpráva, která bude odeslána, když uživatel požádá o obnovení hesla. {url} bude nahrazeno URL pro obnovení hesla.",
"admin.config.email.invite-subject": "Předmět pozvánky", "admin.config.email.invite-subject": "Předmět pozvánky",
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.", "admin.config.email.invite-subject.description": "Předmět e-mailu, když administrátor pozve uživatele.",
"admin.config.email.invite-message": "Zpráva pozvánky", "admin.config.email.invite-message": "Zpráva pozvánky",
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.", "admin.config.email.invite-message.description": "Zpráva, která bude odeslána, když administrátor pozve uživatele. {url} bude nahrazeno odkazem, {email} e-mailem a {password} heslem uživatele.",
"admin.config.share.allow-registration": "Povolit registraci", "admin.config.share.allow-registration": "Povolit registraci",
"admin.config.share.allow-registration.description": "Zda je registrace povolena", "admin.config.share.allow-registration.description": "Zda je registrace povolena",
"admin.config.share.allow-unauthenticated-shares": "Povolit sdílení neověřeným uživatelům", "admin.config.share.allow-unauthenticated-shares": "Povolit sdílení neověřeným uživatelům",
"admin.config.share.allow-unauthenticated-shares.description": "Zda mohou neověření uživatelé vytvářet sdílení", "admin.config.share.allow-unauthenticated-shares.description": "Zda mohou neověření uživatelé vytvářet sdílení",
"admin.config.share.max-expiration": "Max. platnost", "admin.config.share.max-expiration": "Max. platnost",
"admin.config.share.max-expiration.description": "Maximum share expiration. Set to 0 to allow unlimited expiration.", "admin.config.share.max-expiration.description": "Maximální platnost sdílení. Nastavte 0 pro neomezenou platnost.",
"admin.config.share.share-id-length": "Default share ID length", "admin.config.share.share-id-length": "Výchozí délka sdílení ID",
"admin.config.share.share-id-length.description": "Default length for the generated ID of a share. This value is also used to generate links for reverse shares. A value below 8 is not considered secure.", "admin.config.share.share-id-length.description": "Výchozí délka pro generované ID sdílení. Tato hodnota se používá také pro generování odkazů na opačné sdílení. Hodnota nižší než 8 se nepovažuje za bezpečnou.",
"admin.config.share.max-size": "Max. velikost", "admin.config.share.max-size": "Max. velikost",
"admin.config.share.max-size.description": "Maximální velikost sdílení v bajtech", "admin.config.share.max-size.description": "Maximální velikost sdílení v bajtech",
"admin.config.share.zip-compression-level": "Úroveň Zip komprese", "admin.config.share.zip-compression-level": "Úroveň Zip komprese",
"admin.config.share.zip-compression-level.description": "Upravte úroveň pro rovnováhu mezi velikostí souboru a rychlostí komprese. Platné hodnoty se pohybují od 0 do 9, přičemž 0 znamená bez komprese a 9 je maximální komprese. ", "admin.config.share.zip-compression-level.description": "Upravte úroveň pro rovnováhu mezi velikostí souboru a rychlostí komprese. Platné hodnoty se pohybují od 0 do 9, přičemž 0 znamená bez komprese a 9 je maximální komprese. ",
"admin.config.share.chunk-size": "Velikost bloku", "admin.config.share.chunk-size": "Velikost bloku",
"admin.config.share.chunk-size.description": "Adjust the chunk size for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.", "admin.config.share.chunk-size.description": "Upravte velikost bloku pro vaše nahrávání tak, aby byla vyvážena efektivita a spolehlivost podle vašeho internetového připojení. Menší bloky mohou zvýšit spolehlivost nestabilních spojení, zatímco větší bloky urychlují nahrávání při stabilním spojení.",
"admin.config.share.auto-open-share-modal": "Automaticky otevřít menu vytvoření sdílení", "admin.config.share.auto-open-share-modal": "Automaticky otevřít menu vytvoření sdílení",
"admin.config.share.auto-open-share-modal.description": "Menu vytvoření sdílení se automaticky zobrazí, když uživatel vybere soubory, čímž se eliminuje potřeba ručně kliknout na tlačítko.", "admin.config.share.auto-open-share-modal.description": "Menu vytvoření sdílení se automaticky zobrazí, když uživatel vybere soubory, čímž se eliminuje potřeba ručně kliknout na tlačítko.",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "Povolit",
"admin.config.smtp.enabled.description": "Zda je SMTP povoleno. Povolte pouze pokud jste zadali hostitele, port, e-mail, uživatele a heslo vašeho SMTP serveru.", "admin.config.smtp.enabled.description": "Zda je SMTP povoleno. Povolte pouze pokud jste zadali hostitele, port, e-mail, uživatele a heslo vašeho SMTP serveru.",
"admin.config.smtp.host": "Hostitel", "admin.config.smtp.host": "Hostitel",
"admin.config.smtp.host.description": "Hostitel SMTP serveru", "admin.config.smtp.host.description": "Hostitel SMTP serveru",
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "Port SMTP serveru", "admin.config.smtp.port.description": "Port SMTP serveru",
"admin.config.smtp.email": "E-mail", "admin.config.smtp.email": "E-mail",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "E-mailová adresa, ze které budou e-maily odesílány",
"admin.config.smtp.username": "Uživatelské jméno", "admin.config.smtp.username": "Uživatelské jméno",
"admin.config.smtp.username.description": "Uživatelské jméno SMTP serveru", "admin.config.smtp.username.description": "Uživatelské jméno SMTP serveru",
"admin.config.smtp.password": "Heslo", "admin.config.smtp.password": "Heslo",
@@ -383,102 +393,104 @@ export default {
"admin.config.oauth.github-client-id": "GitHub Client ID", "admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "Client ID GitHub OAuth aplikace", "admin.config.oauth.github-client-id.description": "Client ID GitHub OAuth aplikace",
"admin.config.oauth.github-client-secret": "GitHub Client secret", "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 aplikace GitHub OAuth",
"admin.config.oauth.google-enabled": "Google", "admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Zda je povoleno přihlášení přes Google", "admin.config.oauth.google-enabled.description": "Zda je povoleno přihlášení přes Google",
"admin.config.oauth.google-client-id": "Google Client ID", "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-id.description": "Client ID aplikace Google OAuth",
"admin.config.oauth.google-client-secret": "Google Client secret", "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 aplikace Google OAuth",
"admin.config.oauth.microsoft-enabled": "Microsoft", "admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Zda je povoleno přihlášení přes Microsoft", "admin.config.oauth.microsoft-enabled.description": "Zda je povoleno přihlášení přes Microsoft",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant", "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 aplikace Microsoft OAuth\nběžné: Uživatelé s osobním účtem Microsoft a pracovním nebo školním účtem Microsoft Entra ID se mohou přihlásit do aplikace. \n\norganizace: Do aplikace se mohou přihlásit pouze uživatelé s pracovním nebo školním účtem Microsoft Entra ID.\n\nspotřebitelé: Do aplikace se mohou přihlásit pouze uživatelé s osobním účtem Microsoft.\n\nNázev domény Microsoft Entra tenant nebo tenant ID ve formátu GUID: Do aplikace se mohou přihlásit pouze uživatelé z konkrétní Microsoft Entra tenant (členové adresáře s pracovním nebo školním účtem nebo návštěvníci adresáře s osobním účtem Microsoft).",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID", "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 Microsoft OAuth aplikace",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret", "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 Microsoft OAuth aplikace",
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Zda je povoleno přihlášení přes Discord", "admin.config.oauth.discord-enabled.description": "Zda je povoleno přihlášení přes Discord",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "Discord povolení uživatelé",
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.", "admin.config.oauth.discord-limited-users.description": "Povolit přístup pouze uživatelům se zadanými Discord ID. Ponechte prázdné pro zakázání.",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID", "admin.config.oauth.discord-limited-guild": "Discord povolené ID serveru",
"admin.config.oauth.discord-limited-guild.description": "Omezit přihlášení na uživatele na konkrétním serveru. Ponechte prázdné pro vypnutí.", "admin.config.oauth.discord-limited-guild.description": "Omezit přihlášení na uživatele na konkrétním serveru. Ponechte prázdné pro vypnutí.",
"admin.config.oauth.discord-client-id": "Discord Client ID", "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 Discord OAuth aplikace",
"admin.config.oauth.discord-client-secret": "Discord Client secret", "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.discord-client-secret.description": "Client secret Discord OAuth aplikace",
"admin.config.oauth.oidc-enabled": "OpenID Connect", "admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Zda je povoleno přihlášení přes OpenID Connect", "admin.config.oauth.oidc-enabled.description": "Zda je povoleno přihlášení přes OpenID Connect",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI", "admin.config.oauth.oidc-discovery-uri": "Adresa OpenID Connect Discovery",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app", "admin.config.oauth.oidc-discovery-uri.description": "Discovery URL OpenID Connect OAuth aplikace",
"admin.config.oauth.oidc-sign-out": "Sign out from OpenID Connect", "admin.config.oauth.oidc-sign-out": "Odhlásit se z OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Whether the “Sign out” button will sign out from the OpenID Connect provider", "admin.config.oauth.oidc-sign-out.description": "Zda tlačítko \"Odhlásit\" odhlásí od poskytovatele OpenID Connect",
"admin.config.oauth.oidc-scope": "OpenID Connect scope", "admin.config.oauth.oidc-scope": "OpenID Connect informace",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.", "admin.config.oauth.oidc-scope.description": "Informace, které by měly být požadovány od poskytovatele OpenID Connect.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim", "admin.config.oauth.oidc-username-claim": "OpenID Connect požadavek uživatele",
"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-username-claim.description": "Požadavek uživatele v OpenID Connect ID tokenu. Ponechte prázdné, pokud netušíte.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token", "admin.config.oauth.oidc-role-path": "Cesta k rolím v OpenID Connect token",
"admin.config.oauth.oidc-role-path.description": "Musí být platná JMES cesta odkazující na pole rolí. " + "Správa přístupových práv pomocí OpenID Connect rolí je doporučena pouze v případě, že není nastaven žádný jiný poskytovatel identity a přihlášení heslem je zakázáno. " + "Ponechte prázdné, pokud nevíte, co tato konfigurace znamená.", "admin.config.oauth.oidc-role-path.description": "Musí být platná JMES cesta odkazující na pole rolí. " + "Správa přístupových práv pomocí OpenID Connect rolí je doporučena pouze v případě, že není nastaven žádný jiný poskytovatel identity a přihlášení heslem je zakázáno. " + "Ponechte prázdné, pokud nevíte, co tato konfigurace znamená.",
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role pro obecný přístup", "admin.config.oauth.oidc-role-general-access": "OpenID Connect role pro obecný přístup",
"admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a users roles for them to log in. " + "Ponechte prázdné, pokud nevíte, co tato konfigurace znamená.", "admin.config.oauth.oidc-role-general-access.description": "Požadovaná role pro všeobecný přístup. Musí být přítomna v uživatelských rolích, aby se mohli přihlásit." + "Ponechte prázdné, pokud nevíte, co tato konfigurace znamená.",
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access", "admin.config.oauth.oidc-role-admin-access": "OpenID Connect role pro přístup správce.",
"admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a users roles for them to access the admin panel. " + "Ponechte prázdné, pokud nevíte, co tato konfigurace znamená.", "admin.config.oauth.oidc-role-admin-access.description": "Požadovaná role pro přístup správce. Musí být přítomna v uživatelských rolích, pro přístup do panelu správce." + "Ponechte prázdné, pokud nevíte, co tato konfigurace znamená.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID", "admin.config.oauth.oidc-client-id": "OpenID Connect ID klienta",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app", "admin.config.oauth.oidc-client-id.description": "ID klienta OpenID Connect OAuth aplikace",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret", "admin.config.oauth.oidc-client-secret": "OpenID Connect secret klienta",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app", "admin.config.oauth.oidc-client-secret.description": "Secret klienta OpenID Connect OAuth aplikace",
"admin.config.category.ldap": "LDAP", "admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP", "admin.config.ldap.enabled": "Povolit LDAP",
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login", "admin.config.ldap.enabled.description": "Použít LDAP ověření pro přihlášení uživatele",
"admin.config.ldap.url": "URL serveru", "admin.config.ldap.url": "URL serveru",
"admin.config.ldap.url.description": "URL of the LDAP server", "admin.config.ldap.url.description": "Adresa LDAP serveru",
"admin.config.ldap.bind-dn": "Bind DN", "admin.config.ldap.bind-dn": "Propojit DN",
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search", "admin.config.ldap.bind-dn.description": "Výchozí uživatel pro vyhledávání uživatelů",
"admin.config.ldap.bind-password": "Bind password", "admin.config.ldap.bind-password": "Propojit heslo",
"admin.config.ldap.bind-password.description": "Password used to perform the user search", "admin.config.ldap.bind-password.description": "Heslo pro vyhledávání uživatelů",
"admin.config.ldap.search-base": "User base", "admin.config.ldap.search-base": "Uživatelská větev",
"admin.config.ldap.search-base.description": "Základní umístění, kde budou prováděna hledání uživatelů", "admin.config.ldap.search-base.description": "Základní umístění, kde budou prováděna hledání uživatelů",
"admin.config.ldap.search-query": "User query", "admin.config.ldap.search-query": "Dotaz na uživatele",
"admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.", "admin.config.ldap.search-query.description": "Dotaz na uživatele pro vyhledání 'Uživatelské větve' pro LDAP uživatele. %username% může být použit jako zástupce pro hodnotu zadanou uživatelem.",
"admin.config.ldap.admin-groups": "Admin group", "admin.config.ldap.admin-groups": "Skupina správců",
"admin.config.ldap.admin-groups.description": "Skupina potřebná pro administrativní přístup.", "admin.config.ldap.admin-groups.description": "Skupina potřebná pro administrativní přístup.",
"admin.config.ldap.field-name-member-of": "User groups attribute name", "admin.config.ldap.field-name-member-of": "Název atributu skupin uživatelů",
"admin.config.ldap.field-name-member-of.description": "LDAP attribute name for the groups, an user is a member of. This is used when checking for the admin group.", "admin.config.ldap.field-name-member-of.description": "LDAP název atributu pro skupiny, jejichž členem je uživatel. Používá se při kontrole skupiny správců.",
"admin.config.ldap.field-name-email": "User email attribute name", "admin.config.ldap.field-name-email": "Název atributu e-mailu uživatele",
"admin.config.ldap.field-name-email.description": "LDAP attribute name for the email of an user.", "admin.config.ldap.field-name-email.description": "Název atributu LDAP pro e-mail uživatele.",
"admin.config.notify.success": "Configuration updated successfully.", "admin.config.notify.success": "Konfigurace byla úspěšně aktualizována!",
"admin.config.notify.logo-success": "Logo updated successfully. It may take a few minutes to update on the website.", "admin.config.notify.logo-success": "Logo bylo úspěšně aktualizováno. Zobrazení změny může několik minut trvat.",
"admin.config.notify.no-changes": "No changes to save.", "admin.config.notify.no-changes": "Žádné změny k uložení.",
"admin.config.category.s3": "S3", "admin.config.category.s3": "S3",
"admin.config.s3.enabled": "Enabled", "admin.config.s3.enabled": "Povoleno",
"admin.config.s3.enabled.description": "Whether S3 should be used to store the shared files instead of the local file system.", "admin.config.s3.enabled.description": "Zda má být S3 použito k ukládání sdílených souborů namísto lokálního souborového systému.",
"admin.config.s3.endpoint": "Endpoint", "admin.config.s3.endpoint": "Koncový bod",
"admin.config.s3.endpoint.description": "The URL of the S3 bucket.", "admin.config.s3.endpoint.description": "URL bloku S3.",
"admin.config.s3.region": "Region", "admin.config.s3.region": "Oblast",
"admin.config.s3.region.description": "The region of the S3 bucket.", "admin.config.s3.region.description": "Oblast bloku S3.",
"admin.config.s3.bucket-name": "Bucket name", "admin.config.s3.bucket-name": "Název bloku",
"admin.config.s3.bucket-name.description": "The name of the S3 bucket.", "admin.config.s3.bucket-name.description": "Název bloku S3.",
"admin.config.s3.bucket-path": "Path", "admin.config.s3.bucket-path": "Cesta",
"admin.config.s3.bucket-path.description": "The default path which should be used to store the files in the S3 bucket.", "admin.config.s3.bucket-path.description": "Výchozí cesta, která by měla být použita pro ukládání souborů do bloku S3.",
"admin.config.s3.key": "Key", "admin.config.s3.key": "Klíč",
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "Klíč, který vám umožňuje přístup k bloku S3.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Tajný klíč (Secret)",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "Tajný kód, který vám umožňuje přístup do bloku S3.",
"admin.config.category.legal": "Legal", "admin.config.s3.use-checksum": "Použít checksum",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.s3.use-checksum.description": "Vypněte pro backendy které nepodporují checksum (např. B2)",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.category.legal": "Právní ustanovení",
"admin.config.legal.imprint-text": "Imprint text", "admin.config.legal.enabled": "Povolit právní oznámení",
"admin.config.legal.imprint-text.description": "The text which should be shown in the imprint. Supports Markdown. Leave blank to link to an external imprint page.", "admin.config.legal.enabled.description": "Zda v zápatí zobrazit odkaz na tiráž a zásady ochrany osobních údajů.",
"admin.config.legal.imprint-url": "Imprint URL", "admin.config.legal.imprint-text": "Text tiráže",
"admin.config.legal.imprint-url.description": "If you already have an imprint page you can link it here instead of using the text field.", "admin.config.legal.imprint-text.description": "Text, který by měl být zobrazen v tiráži. Podporuje Markdown. Ponechte prázdné pro odkaz na stránku s externí tiráží.",
"admin.config.legal.privacy-policy-text": "Privacy policy text", "admin.config.legal.imprint-url": "Adresa tiráže",
"admin.config.legal.privacy-policy-text.description": "The text which should be shown in the privacy policy. Supports Markdown. Leave blank to link to an external privacy policy page.", "admin.config.legal.imprint-url.description": "Pokud již máte stránku s tiráží, můžete ji propojit zde místo použití textového pole.",
"admin.config.legal.privacy-policy-url": "Privacy policy URL", "admin.config.legal.privacy-policy-text": "Text zásad ochrany osobních údajů",
"admin.config.legal.privacy-policy-url.description": "If you already have a privacy policy page you can link it here instead of using the text field.", "admin.config.legal.privacy-policy-text.description": "Text, který by měl být zobrazen v zásadách ochrany osobních údajů. Podporuje Markdown. Ponechte prázdné pro odkaz na stránku s externími zásadami ochrany osobních údajů.",
"admin.config.legal.privacy-policy-url": "Adresa zásad ochrany soukromí",
"admin.config.legal.privacy-policy-url.description": "Pokud již máte stránku o zásadách ochrany osobních údajů, můžete ji propojit zde místo použití textového pole.",
// 404 // 404
"404.description": "Jejda, tato stránka neexistuje.", "404.description": "Jejda, tato stránka neexistuje.",
"404.button.home": "Bring me back home", "404.button.home": "Návrat na hlavní stránku",
// error // error
"error.title": "Chyba", "error.title": "Chyba",
"error.description": "Jejda!", "error.description": "Jejda!",
@@ -490,10 +502,10 @@ export default {
"error.msg.no_user": "Uživatel propojený s tímto účtem {0} neexistuje.", "error.msg.no_user": "Uživatel propojený s tímto účtem {0} neexistuje.",
"error.msg.no_email": "Z tohoto účtu {0} nelze získat e-mailovou adresu.", "error.msg.no_email": "Z tohoto účtu {0} nelze získat e-mailovou adresu.",
"error.msg.already_linked": "Tento účet {0} je již propojen s jiným účtem.", "error.msg.already_linked": "Tento účet {0} je již propojen s jiným účtem.",
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.", "error.msg.not_linked": "Tento účet {0} ještě nebyl propojen s žádným účtem.",
"error.msg.unverified_account": "Tento účet {0} není ověřen, zkuste to prosím znovu po ověření.", "error.msg.unverified_account": "Tento účet {0} není ověřen, zkuste to prosím znovu po ověření.",
"error.msg.user_not_allowed": "Nemáte oprávnění k přihlášení.", "error.msg.user_not_allowed": "Nemáte oprávnění k přihlášení.",
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.", "error.msg.cannot_get_user_info": "Nelze získat informace o uživateli z tohoto účtu {0}.",
"error.param.provider_github": "GitHub", "error.param.provider_github": "GitHub",
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
@@ -511,9 +523,9 @@ export default {
"common.button.generate": "Generovat", "common.button.generate": "Generovat",
"common.button.done": "Hotovo", "common.button.done": "Hotovo",
"common.text.link": "Odkaz", "common.text.link": "Odkaz",
"common.text.navigate-to-link": "Visit link", "common.text.navigate-to-link": "Navštívit odkaz",
"common.text.or": "nebo", "common.text.or": "nebo",
"common.text.redirecting": "Redirecting...", "common.text.redirecting": "Přesměrování...",
"common.button.go-back": "Vrátit se zpět", "common.button.go-back": "Vrátit se zpět",
"common.button.go-home": "Jít domů", "common.button.go-home": "Jít domů",
"common.notify.copied": "Váš odkaz byl zkopírován do schránky", "common.notify.copied": "Váš odkaz byl zkopírován do schránky",
@@ -521,11 +533,11 @@ export default {
"common.success": "Úspěch", "common.success": "Úspěch",
"common.error": "Chyba", "common.error": "Chyba",
"common.error.unknown": "Došlo k neznámé chybě", "common.error.unknown": "Došlo k neznámé chybě",
"common.error.invalid-email": "Invalid email address", "common.error.invalid-email": "Neplatná e-mailová adresa",
"common.error.too-short": "Musí mít alespoň {length} znaků", "common.error.too-short": "Musí mít alespoň {length} znaků",
"common.error.too-long": "Musí mít maximálně {length} znaků", "common.error.too-long": "Musí mít maximálně {length} znaků",
"common.error.number-too-small": "Must be at least {min}", "common.error.number-too-small": "Musí být minimálně {min}",
"common.error.number-too-large": "Must be at most {max}", "common.error.number-too-large": "Musí být nejvýše {max}",
"common.error.exact-length": "Musí mít přesně {length} znaků", "common.error.exact-length": "Musí mít přesně {length} znaků",
"common.error.invalid-number": "Musí být číslo", "common.error.invalid-number": "Musí být číslo",
"common.error.field-required": "Toto pole je povinné" "common.error.field-required": "Toto pole je povinné"

View File

@@ -158,7 +158,7 @@ export default {
"account.reverseShares.modal.simplified": "Simple mode", "account.reverseShares.modal.simplified": "Simple mode",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
"account.reverseShares.modal.public-access": "Offentlig adgang", "account.reverseShares.modal.public-access": "Offentlig adgang",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "Lav filerne i denne omvendte deling offentlige. Hvis deaktiveret kan kun dig og delingens ejer have adgang til filerne.",
"account.reverseShares.modal.max-use.label": "Maksimal anvendelser", "account.reverseShares.modal.max-use.label": "Maksimal anvendelser",
"account.reverseShares.modal.max-use.description": "Det maksimale antal gange, denne URL kan bruges til at oprette en deling.", "account.reverseShares.modal.max-use.description": "Det maksimale antal gange, denne URL kan bruges til at oprette en deling.",
"account.reverseShare.never-expires": "Denne omvendte deling udløber aldrig.", "account.reverseShare.never-expires": "Denne omvendte deling udløber aldrig.",
@@ -207,9 +207,9 @@ export default {
// /admin/shares // /admin/shares
"admin.shares.title": "Share management", "admin.shares.title": "Share management",
"admin.shares.table.id": "Share ID", "admin.shares.table.id": "Share ID",
"admin.shares.table.username": "Creator", "admin.shares.table.username": "Ejer",
"admin.shares.table.visitors": "Besøgende", "admin.shares.table.visitors": "Besøgende",
"admin.shares.table.expires": "Expires on", "admin.shares.table.expires": "Udløber",
"admin.shares.edit.delete.title": "Delete share: {id}", "admin.shares.edit.delete.title": "Delete share: {id}",
"admin.shares.edit.delete.description": "Do you really want to delete this share?", "admin.shares.edit.delete.description": "Do you really want to delete this share?",
// END /admin/shares // END /admin/shares
@@ -263,13 +263,14 @@ export default {
"upload.modal.accordion.security.max-views.placeholder": "Ingen begrænsning", "upload.modal.accordion.security.max-views.placeholder": "Ingen begrænsning",
// showCompletedUploadModal.tsx // showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "Denne deling vil aldrig udløbe.", "upload.modal.completed.never-expires": "Denne deling vil aldrig udløbe.",
"upload.modal.completed.expires-on": "Denne omvendte deling udløber den {expiration}.", "upload.modal.completed.expires-on": "Denne deling udløber den {expiration}.",
"upload.modal.completed.share-ready": "Delingen er klar", "upload.modal.completed.share-ready": "Delingen er klar",
"upload.modal.completed.notified-reverse-share-creator": "We have notified the creator of the reverse share. You can also manually share this link with them through other means.", "upload.modal.completed.notified-reverse-share-creator": "We have notified the creator of the reverse share. You can also manually share this link with them through other means.",
// END /upload // END /upload
// /share/[id] // /share/[id]
"share.title": "Del {shareId}", "share.title": "Del {shareId}",
"share.description": "Se hvad jeg har delt med dig!", "share.description": "Se hvad jeg har delt med dig!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Grænsen for besøgende overskredet", "share.error.visitor-limit-exceeded.title": "Grænsen for besøgende overskredet",
"share.error.visitor-limit-exceeded.description": "Besøgsgrænsen for denne deling er blevet overskredet.", "share.error.visitor-limit-exceeded.description": "Besøgsgrænsen for denne deling er blevet overskredet.",
"share.error.removed.title": "Deling fjernet", "share.error.removed.title": "Deling fjernet",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Konfiguration", "admin.config.title": "Konfiguration",
"admin.config.category.general": "Generelt", "admin.config.category.general": "Generelt",
"admin.config.category.share": "Del", "admin.config.category.share": "Del",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "E-mail", "admin.config.category.email": "E-mail",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login", "admin.config.category.oauth": "Social Login",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Skift dit logo ved at uploade et nyt billede. Billedet skal være PNG og skal have formatet 1:1.", "admin.config.general.logo.description": "Skift dit logo ved at uploade et nyt billede. Billedet skal være PNG og skal have formatet 1:1.",
"admin.config.general.logo.placeholder": "Vælg billede", "admin.config.general.logo.placeholder": "Vælg billede",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "Share recipients subject", "admin.config.email.share-recipients-subject": "Share recipients subject",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "Porten til SMTP serveren", "admin.config.smtp.port.description": "Porten til SMTP serveren",
"admin.config.smtp.email": "E-mail", "admin.config.smtp.email": "E-mail",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Brugernavn", "admin.config.smtp.username": "Brugernavn",
"admin.config.smtp.username.description": "Brugernavnet til SMTP serveren", "admin.config.smtp.username.description": "Brugernavnet til SMTP serveren",
"admin.config.smtp.password": "Adgangskode", "admin.config.smtp.password": "Adgangskode",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Freigabe {shareId}", "share.title": "Freigabe {shareId}",
"share.description": "Schau, was ich mit dir geteilt habe!", "share.description": "Schau, was ich mit dir geteilt habe!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Besucher Limit erreicht", "share.error.visitor-limit-exceeded.title": "Besucher Limit erreicht",
"share.error.visitor-limit-exceeded.description": "Die maximale Besucheranzahl für diese Freigabe ist überschritten.", "share.error.visitor-limit-exceeded.description": "Die maximale Besucheranzahl für diese Freigabe ist überschritten.",
"share.error.removed.title": "Freigabe entfernt", "share.error.removed.title": "Freigabe entfernt",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Einstellungen", "admin.config.title": "Einstellungen",
"admin.config.category.general": "Allgemein", "admin.config.category.general": "Allgemein",
"admin.config.category.share": "Freigabe", "admin.config.category.share": "Freigabe",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "E-Mail", "admin.config.category.email": "E-Mail",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Anmeldung über soziale Netzwerke", "admin.config.category.oauth": "Anmeldung über soziale Netzwerke",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Ändere dein Logo durch Hochladen eines Bildes. Das Bild muss im PNG-Format vorliegen und sollte mit Seitenverhältnis 1:1 sein.", "admin.config.general.logo.description": "Ändere dein Logo durch Hochladen eines Bildes. Das Bild muss im PNG-Format vorliegen und sollte mit Seitenverhältnis 1:1 sein.",
"admin.config.general.logo.placeholder": "Bild auswählen", "admin.config.general.logo.placeholder": "Bild auswählen",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Erlaube das Teilen der Freigabe via E-Mail", "admin.config.email.enable-share-email-recipients": "Erlaube das Teilen der Freigabe via E-Mail",
"admin.config.email.enable-share-email-recipients.description": "Gibt an, ob das Teilen von E-Mails mit Empfängern erlaubt werden soll. Aktiviere dies nur, wenn SMTP aktiviert ist.", "admin.config.email.enable-share-email-recipients.description": "Gibt an, ob das Teilen von E-Mails mit Empfängern erlaubt werden soll. Aktiviere dies nur, wenn SMTP aktiviert ist.",
"admin.config.email.share-recipients-subject": "Betreff für Freigabe-Empfänger", "admin.config.email.share-recipients-subject": "Betreff für Freigabe-Empfänger",
@@ -414,8 +424,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery-URL der OpenID OAuth App", "admin.config.oauth.oidc-discovery-uri.description": "Discovery-URL der OpenID OAuth App",
"admin.config.oauth.oidc-sign-out": "Abmelden von OpenID Connect", "admin.config.oauth.oidc-sign-out": "Abmelden von OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Wenn aktiviert, wird der Benutzer mit der „Abmelden“-Schaltfläche vom OpenID-Connect-Provider abgemeldet.", "admin.config.oauth.oidc-sign-out.description": "Wenn aktiviert, wird der Benutzer mit der „Abmelden“-Schaltfläche vom OpenID-Connect-Provider abgemeldet.",
"admin.config.oauth.oidc-scope": "OpenID Connect scope", "admin.config.oauth.oidc-scope": "OpenID Connect",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.", "admin.config.oauth.oidc-scope.description": "Scopes, die vom OpenID Connect Provider angefordert werden sollen.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect Benutzername anfordern", "admin.config.oauth.oidc-username-claim": "OpenID Connect Benutzername anfordern",
"admin.config.oauth.oidc-username-claim.description": "Benutzername im OpenID Token. Leer lassen, wenn du nicht weißt, was diese Konfiguration bedeutet.", "admin.config.oauth.oidc-username-claim.description": "Benutzername im OpenID Token. Leer lassen, wenn du nicht weißt, was diese Konfiguration bedeutet.",
"admin.config.oauth.oidc-role-path": "Pfad zu den Rollen im OpenID Verbindungs-Token", "admin.config.oauth.oidc-role-path": "Pfad zu den Rollen im OpenID Verbindungs-Token",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "Der Schlüssel, der den Zugriff auf den S3-Bucket ermöglicht.", "admin.config.s3.key.description": "Der Schlüssel, der den Zugriff auf den S3-Bucket ermöglicht.",
"admin.config.s3.secret": "Geheimnis", "admin.config.s3.secret": "Geheimnis",
"admin.config.s3.secret.description": "Das Geheimnis, das den Zugriff auf den S3-Bucket ermöglicht.", "admin.config.s3.secret.description": "Das Geheimnis, das den Zugriff auf den S3-Bucket ermöglicht.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Rechtliches", "admin.config.category.legal": "Rechtliches",
"admin.config.legal.enabled": "Impressum und Datenschutz aktivieren", "admin.config.legal.enabled": "Impressum und Datenschutz aktivieren",
"admin.config.legal.enabled.description": "Gibt an, ob die Links zum Impressum und zur Datenschutzerklärung im Footer angezeigt werden sollen.", "admin.config.legal.enabled.description": "Gibt an, ob die Links zum Impressum und zur Datenschutzerklärung im Footer angezeigt werden sollen.",
@@ -523,7 +535,7 @@ export default {
"common.error.unknown": "Ein unbekannter Fehler ist aufgetreten", "common.error.unknown": "Ein unbekannter Fehler ist aufgetreten",
"common.error.invalid-email": "Ungültige E-Mail-Adresse", "common.error.invalid-email": "Ungültige E-Mail-Adresse",
"common.error.too-short": "Muss mindestens {length} Zeichen enthalten", "common.error.too-short": "Muss mindestens {length} Zeichen enthalten",
"common.error.too-long": "Muss maximal {length} Zeichen enthalten", "common.error.too-long": "Darf maximal {length} Zeichen enthalten",
"common.error.number-too-small": "Darf mindestens {min} sein", "common.error.number-too-small": "Darf mindestens {min} sein",
"common.error.number-too-large": "Darf höchstens {max} sein", "common.error.number-too-large": "Darf höchstens {max} sein",
"common.error.exact-length": "Muss genau {length} Zeichen lang sein", "common.error.exact-length": "Muss genau {length} Zeichen lang sein",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Διαμοιρασμός {shareId}", "share.title": "Διαμοιρασμός {shareId}",
"share.description": "Σας προωθώ αρχεία προς κοινοποίηση.", "share.description": "Σας προωθώ αρχεία προς κοινοποίηση.",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Υπέρβαση ορίου επισκέπτη", "share.error.visitor-limit-exceeded.title": "Υπέρβαση ορίου επισκέπτη",
"share.error.visitor-limit-exceeded.description": "Ξεπεράστηκε το όριο επισκεπτών σε αυτή την κοινοποίηση.", "share.error.visitor-limit-exceeded.description": "Ξεπεράστηκε το όριο επισκεπτών σε αυτή την κοινοποίηση.",
"share.error.removed.title": "Κοινοποίηση αφαιρέθηκε", "share.error.removed.title": "Κοινοποίηση αφαιρέθηκε",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Διαμόρφωση", "admin.config.title": "Διαμόρφωση",
"admin.config.category.general": "Γενικά", "admin.config.category.general": "Γενικά",
"admin.config.category.share": "Διαμοιρασμός", "admin.config.category.share": "Διαμοιρασμός",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Email", "admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Σύνδεση με λογαριασμό μέσων κοινωνικού δικτύου", "admin.config.category.oauth": "Σύνδεση με λογαριασμό μέσων κοινωνικού δικτύου",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Λογότυπο", "admin.config.general.logo": "Λογότυπο",
"admin.config.general.logo.description": "Αλλάξτε το λογότυπό σας ανεβάζοντας μια νέα εικόνα. Η εικόνα πρέπει να είναι PNG και αναλογία 1:1.", "admin.config.general.logo.description": "Αλλάξτε το λογότυπό σας ανεβάζοντας μια νέα εικόνα. Η εικόνα πρέπει να είναι PNG και αναλογία 1:1.",
"admin.config.general.logo.placeholder": "Επιλέξτε εικόνα", "admin.config.general.logo.placeholder": "Επιλέξτε εικόνα",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "Θέμα στο email διαμοιρασμού", "admin.config.email.share-recipients-subject": "Θέμα στο email διαμοιρασμού",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Θύρα", "admin.config.smtp.port": "Θύρα",
"admin.config.smtp.port.description": "SMTP θύρα", "admin.config.smtp.port.description": "SMTP θύρα",
"admin.config.smtp.email": "Email", "admin.config.smtp.email": "Email",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Όνομα χρήστη", "admin.config.smtp.username": "Όνομα χρήστη",
"admin.config.smtp.username.description": "Όνομα χρήστη στον SMTP εξυπηρετητή", "admin.config.smtp.username.description": "Όνομα χρήστη στον SMTP εξυπηρετητή",
"admin.config.smtp.password": "Κωδικός πρόσβασης", "admin.config.smtp.password": "Κωδικός πρόσβασης",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -366,6 +366,8 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Share {shareId}", "share.title": "Share {shareId}",
"share.description": "Look what I've shared with you!", "share.description": "Look what I've shared with you!",
"share.fileCount":
"{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded",
"share.error.visitor-limit-exceeded.description": "share.error.visitor-limit-exceeded.description":
"The visitor limit from this share has been exceeded.", "The visitor limit from this share has been exceeded.",
@@ -408,18 +410,20 @@ export default {
// /imprint // /imprint
"imprint.title": "Imprint", "imprint.title": "Imprint",
// END /imprint // END /imprint
// /privacy // /privacy
"privacy.title": "Privacy Policy", "privacy.title": "Privacy Policy",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Configuration file present",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description":
"As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.",
"admin.config.title": "Configuration", "admin.config.title": "Configuration",
"admin.config.category.general": "General", "admin.config.category.general": "General",
"admin.config.category.share": "Share", "admin.config.category.share": "Share",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Email", "admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login", "admin.config.category.oauth": "Social Login",
@@ -443,6 +447,19 @@ export default {
"Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.",
"admin.config.general.logo.placeholder": "Pick image", "admin.config.general.logo.placeholder": "Pick image",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description":
"Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description":
"Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description":
"Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description":
"Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "admin.config.email.enable-share-email-recipients":
"Enable email recipient sharing", "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "admin.config.email.enable-share-email-recipients.description":
@@ -506,7 +523,7 @@ export default {
"admin.config.smtp.port.description": "Port of the SMTP server", "admin.config.smtp.port.description": "Port of the SMTP server",
"admin.config.smtp.email": "Email", "admin.config.smtp.email": "Email",
"admin.config.smtp.email.description": "admin.config.smtp.email.description":
"Email address from wich the emails get sent", "Email address from which the emails get sent",
"admin.config.smtp.username": "Username", "admin.config.smtp.username": "Username",
"admin.config.smtp.username.description": "Username of the SMTP server", "admin.config.smtp.username.description": "Username of the SMTP server",
"admin.config.smtp.password": "Password", "admin.config.smtp.password": "Password",
@@ -642,7 +659,8 @@ export default {
"admin.config.category.s3": "S3", "admin.config.category.s3": "S3",
"admin.config.s3.enabled": "Enabled", "admin.config.s3.enabled": "Enabled",
"admin.config.s3.enabled.description": "Whether S3 should be used to store the shared files instead of the local file system.", "admin.config.s3.enabled.description":
"Whether S3 should be used to store the shared files instead of the local file system.",
"admin.config.s3.endpoint": "Endpoint", "admin.config.s3.endpoint": "Endpoint",
"admin.config.s3.endpoint.description": "The URL of the S3 bucket.", "admin.config.s3.endpoint.description": "The URL of the S3 bucket.",
"admin.config.s3.region": "Region", "admin.config.s3.region": "Region",
@@ -650,23 +668,34 @@ export default {
"admin.config.s3.bucket-name": "Bucket name", "admin.config.s3.bucket-name": "Bucket name",
"admin.config.s3.bucket-name.description": "The name of the S3 bucket.", "admin.config.s3.bucket-name.description": "The name of the S3 bucket.",
"admin.config.s3.bucket-path": "Path", "admin.config.s3.bucket-path": "Path",
"admin.config.s3.bucket-path.description": "The default path which should be used to store the files in the S3 bucket.", "admin.config.s3.bucket-path.description":
"The default path which should be used to store the files in the S3 bucket.",
"admin.config.s3.key": "Key", "admin.config.s3.key": "Key",
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description":
"The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description":
"The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description":
"Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description":
"Whether to show a link to imprint and privacy policy in the footer.",
"admin.config.legal.imprint-text": "Imprint text", "admin.config.legal.imprint-text": "Imprint text",
"admin.config.legal.imprint-text.description": "The text which should be shown in the imprint. Supports Markdown. Leave blank to link to an external imprint page.", "admin.config.legal.imprint-text.description":
"The text which should be shown in the imprint. Supports Markdown. Leave blank to link to an external imprint page.",
"admin.config.legal.imprint-url": "Imprint URL", "admin.config.legal.imprint-url": "Imprint URL",
"admin.config.legal.imprint-url.description": "If you already have an imprint page you can link it here instead of using the text field.", "admin.config.legal.imprint-url.description":
"If you already have an imprint page you can link it here instead of using the text field.",
"admin.config.legal.privacy-policy-text": "Privacy policy text", "admin.config.legal.privacy-policy-text": "Privacy policy text",
"admin.config.legal.privacy-policy-text.description": "The text which should be shown in the privacy policy. Supports Markdown. Leave blank to link to an external privacy policy page.", "admin.config.legal.privacy-policy-text.description":
"The text which should be shown in the privacy policy. Supports Markdown. Leave blank to link to an external privacy policy page.",
"admin.config.legal.privacy-policy-url": "Privacy policy URL", "admin.config.legal.privacy-policy-url": "Privacy policy URL",
"admin.config.legal.privacy-policy-url.description": "If you already have a privacy policy page you can link it here instead of using the text field.", "admin.config.legal.privacy-policy-url.description":
"If you already have a privacy policy page you can link it here instead of using the text field.",
// 404 // 404
"404.description": "Oops this page doesn't exist.", "404.description": "Oops this page doesn't exist.",

View File

@@ -104,7 +104,7 @@ export default {
"account.card.language.description": "El proyecto ha sido traducido por la comunidad. Algunos idiomas pueden estar incompletos.", "account.card.language.description": "El proyecto ha sido traducido por la comunidad. Algunos idiomas pueden estar incompletos.",
"account.card.color.title": "Esquema de colores", "account.card.color.title": "Esquema de colores",
// ThemeSwitcher.tsx // ThemeSwitcher.tsx
"account.theme.dark": "Oscuro", "account.theme.dark": "Obscuro",
"account.theme.light": "Claro", "account.theme.light": "Claro",
"account.theme.system": "Sistema", "account.theme.system": "Sistema",
"account.button.delete": "Eliminar Cuenta", "account.button.delete": "Eliminar Cuenta",
@@ -192,7 +192,7 @@ export default {
"admin.users.edit.update.change-password.field": "Nueva contraseña", "admin.users.edit.update.change-password.field": "Nueva contraseña",
"admin.users.edit.update.change-password.button": "Guardar nueva contraseña", "admin.users.edit.update.change-password.button": "Guardar nueva contraseña",
"admin.users.edit.update.notify.password.success": "Contraseña cambiada correctamente", "admin.users.edit.update.notify.password.success": "Contraseña cambiada correctamente",
"admin.users.edit.delete.title": "Eliminar usuario: {username} ?", "admin.users.edit.delete.title": "¿Eliminar usuario: {username} ?",
"admin.users.edit.delete.description": "¿Realmente deseas eliminar a este usuario y todos sus enlaces compartidos?", "admin.users.edit.delete.description": "¿Realmente deseas eliminar a este usuario y todos sus enlaces compartidos?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Crear usuario", "admin.users.modal.create.title": "Crear usuario",
@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Compartido {shareId}", "share.title": "Compartido {shareId}",
"share.description": "¡Mira lo que he compartido contigo!", "share.description": "¡Mira lo que he compartido contigo!",
"share.fileCount": "{count, plural, one {}=1 {# archivo} other {# archivos}} · {size} (el archivo comprimido (zip, 7z) puede ser más pequeño debido a la compresión)",
"share.error.visitor-limit-exceeded.title": "Se excedió el límite de visitas", "share.error.visitor-limit-exceeded.title": "Se excedió el límite de visitas",
"share.error.visitor-limit-exceeded.description": "Se ha excedido el límite de visitas para este compartido.", "share.error.visitor-limit-exceeded.description": "Se ha excedido el límite de visitas para este compartido.",
"share.error.removed.title": "Compartido eliminado", "share.error.removed.title": "Compartido eliminado",
@@ -278,7 +279,7 @@ export default {
"share.error.access-denied.title": "Compartición privada", "share.error.access-denied.title": "Compartición privada",
"share.error.access-denied.description": "La cuenta actual no tiene permiso para acceder a este compartido", "share.error.access-denied.description": "La cuenta actual no tiene permiso para acceder a este compartido",
"share.modal.password.title": "Se requiere contraseña", "share.modal.password.title": "Se requiere contraseña",
"share.modal.password.description": "Please enter the password to access this share.", "share.modal.password.description": "Por favor, ingresa la contraseña para acceder a este recurso compartido.",
"share.modal.password": "Contraseña", "share.modal.password": "Contraseña",
"share.modal.error.invalid-password": "Contraseña inválida", "share.modal.error.invalid-password": "Contraseña inválida",
"share.button.download-all": "Descargar todo", "share.button.download-all": "Descargar todo",
@@ -302,11 +303,12 @@ export default {
"privacy.title": "Política de privacidad", "privacy.title": "Política de privacidad",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Archivo de configuración presente",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Como tienes configurado Pingvin Share con un archivo de configuración, no puedes cambiar la configuración a través de la interfaz gráfica.",
"admin.config.title": "Configuración", "admin.config.title": "Configuración",
"admin.config.category.general": "General", "admin.config.category.general": "General",
"admin.config.category.share": "Compartido", "admin.config.category.share": "Compartido",
"admin.config.category.cache": "Caché",
"admin.config.category.email": "Correo", "admin.config.category.email": "Correo",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Inicio de sesión social", "admin.config.category.oauth": "Inicio de sesión social",
@@ -319,10 +321,18 @@ export default {
"admin.config.general.show-home-page": "Mostrar página de inicio", "admin.config.general.show-home-page": "Mostrar página de inicio",
"admin.config.general.show-home-page.description": "Mostrar o no la página de inicio", "admin.config.general.show-home-page.description": "Mostrar o no la página de inicio",
"admin.config.general.session-duration": "Duración de la sesión", "admin.config.general.session-duration": "Duración de la sesión",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "Tiempo después del cual un usuario debe volver a iniciar sesión (por defecto: 3 meses).",
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Cambia tu logo subiendo una nueva imagen. La imagen debe ser un PNG y debe estar en formato 1:1.", "admin.config.general.logo.description": "Cambia tu logo subiendo una nueva imagen. La imagen debe ser un PNG y debe estar en formato 1:1.",
"admin.config.general.logo.placeholder": "Elegir imagen", "admin.config.general.logo.placeholder": "Elegir imagen",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Habilitar compartir por correo electrónico", "admin.config.email.enable-share-email-recipients": "Habilitar compartir por correo electrónico",
"admin.config.email.enable-share-email-recipients.description": "Si desea permitir compartir por correo electrónico. Solo habilita esto si SMTP está activado.", "admin.config.email.enable-share-email-recipients.description": "Si desea permitir compartir por correo electrónico. Solo habilita esto si SMTP está activado.",
"admin.config.email.share-recipients-subject": "Asunto destinatario", "admin.config.email.share-recipients-subject": "Asunto destinatario",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Puerto", "admin.config.smtp.port": "Puerto",
"admin.config.smtp.port.description": "Puerto del servidor SMTP", "admin.config.smtp.port.description": "Puerto del servidor SMTP",
"admin.config.smtp.email": "Correo", "admin.config.smtp.email": "Correo",
"admin.config.smtp.email.description": "Dirección desde la cual se envían los correos electrónicos", "admin.config.smtp.email.description": "Dirección de correo electrónico desde la cual se envían los correos electrónicos",
"admin.config.smtp.username": "Usuario", "admin.config.smtp.username": "Usuario",
"admin.config.smtp.username.description": "Usuario del servidor SMTP", "admin.config.smtp.username.description": "Usuario del servidor SMTP",
"admin.config.smtp.password": "Contraseña", "admin.config.smtp.password": "Contraseña",
@@ -433,9 +443,9 @@ export default {
"admin.config.ldap.enabled.description": "Usar autenticación LDAP para el inicio de sesión de usuarios", "admin.config.ldap.enabled.description": "Usar autenticación LDAP para el inicio de sesión de usuarios",
"admin.config.ldap.url": "URL del servidor", "admin.config.ldap.url": "URL del servidor",
"admin.config.ldap.url.description": "URL del servidor LDAP", "admin.config.ldap.url.description": "URL del servidor LDAP",
"admin.config.ldap.bind-dn": "Bind DN", "admin.config.ldap.bind-dn": "Usuario LDAP",
"admin.config.ldap.bind-dn.description": "Usuario predeterminado utilizado para realizar la búsqueda de usuarios", "admin.config.ldap.bind-dn.description": "Usuario predeterminado utilizado para realizar la búsqueda de usuarios",
"admin.config.ldap.bind-password": "Bind password", "admin.config.ldap.bind-password": "Contraseña LDAP",
"admin.config.ldap.bind-password.description": "Contraseña utilizada para realizar la búsqueda de usuarios", "admin.config.ldap.bind-password.description": "Contraseña utilizada para realizar la búsqueda de usuarios",
"admin.config.ldap.search-base": "Base de usuarios", "admin.config.ldap.search-base": "Base de usuarios",
"admin.config.ldap.search-base.description": "Ubicación base, donde se llevará a cabo la búsqueda de usuarios", "admin.config.ldap.search-base.description": "Ubicación base, donde se llevará a cabo la búsqueda de usuarios",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "La clave que permite el acceso al bucket S3.", "admin.config.s3.key.description": "La clave que permite el acceso al bucket S3.",
"admin.config.s3.secret": "Secreto", "admin.config.s3.secret": "Secreto",
"admin.config.s3.secret.description": "El secreto que permite acceder al bucket S3.", "admin.config.s3.secret.description": "El secreto que permite acceder al bucket S3.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Apagar para los backends que no soporten checksums (ej: B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Habilitar avisos legales", "admin.config.legal.enabled": "Habilitar avisos legales",
"admin.config.legal.enabled.description": "Mostrar un enlace al aviso legal y a la política de privacidad en el pie de página.", "admin.config.legal.enabled.description": "Mostrar un enlace al aviso legal y a la política de privacidad en el pie de página.",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Jagamine {shareId}", "share.title": "Jagamine {shareId}",
"share.description": "Vaata, mida ma sinuga jagasin!", "share.description": "Vaata, mida ma sinuga jagasin!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Külastajate limiit ületatud", "share.error.visitor-limit-exceeded.title": "Külastajate limiit ületatud",
"share.error.visitor-limit-exceeded.description": "Selle jagamise külastajate limiit on ületatud.", "share.error.visitor-limit-exceeded.description": "Selle jagamise külastajate limiit on ületatud.",
"share.error.removed.title": "Jagamine eemaldatud", "share.error.removed.title": "Jagamine eemaldatud",
@@ -302,11 +303,12 @@ export default {
"privacy.title": "Privaatsuspoliitika", "privacy.title": "Privaatsuspoliitika",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Konfiguratsioonifail olemas",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Kuna teil on konfigureeritud Pingvin Share konfiguratsioonifailiga, ei saa te muuta konfiguratsiooni kasutajaliidest kasutades.",
"admin.config.title": "Seaded", "admin.config.title": "Seaded",
"admin.config.category.general": "Üldine", "admin.config.category.general": "Üldine",
"admin.config.category.share": "Jagamine", "admin.config.category.share": "Jagamine",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "E-post", "admin.config.category.email": "E-post",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Sotsiaalmeediaga sisselogimine", "admin.config.category.oauth": "Sotsiaalmeediaga sisselogimine",
@@ -319,10 +321,18 @@ export default {
"admin.config.general.show-home-page": "Kuva avaleht", "admin.config.general.show-home-page": "Kuva avaleht",
"admin.config.general.show-home-page.description": "Kas kuvada avalehte", "admin.config.general.show-home-page.description": "Kas kuvada avalehte",
"admin.config.general.session-duration": "Seansi kestus", "admin.config.general.session-duration": "Seansi kestus",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "Aeg, mille pärast kasutaja peab uuesti sisse logima (vaikeväärtus: 3 kuud).",
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Muuda oma logo laadides üles uus pilt. Pildi formaat peab olema PNG ja kuju 1:1.", "admin.config.general.logo.description": "Muuda oma logo laadides üles uus pilt. Pildi formaat peab olema PNG ja kuju 1:1.",
"admin.config.general.logo.placeholder": "Vali pilt", "admin.config.general.logo.placeholder": "Vali pilt",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Luba e-posti teavitused jagamise saajatele", "admin.config.email.enable-share-email-recipients": "Luba e-posti teavitused jagamise saajatele",
"admin.config.email.enable-share-email-recipients.description": "Kas lubada e-posti teavitusi jagamise saajatele. Lubage ainult, kui SMTP on aktiveeritud.", "admin.config.email.enable-share-email-recipients.description": "Kas lubada e-posti teavitusi jagamise saajatele. Lubage ainult, kui SMTP on aktiveeritud.",
"admin.config.email.share-recipients-subject": "Jagamise saajate pealkiri", "admin.config.email.share-recipients-subject": "Jagamise saajate pealkiri",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "SMTP serveri port", "admin.config.smtp.port.description": "SMTP serveri port",
"admin.config.smtp.email": "E-post", "admin.config.smtp.email": "E-post",
"admin.config.smtp.email.description": "E-posti aadress kust kirjad saadetakse", "admin.config.smtp.email.description": "E-posti aadress, millelt e-kirjad saadetakse",
"admin.config.smtp.username": "Kasutajanimi", "admin.config.smtp.username": "Kasutajanimi",
"admin.config.smtp.username.description": "SMTP serveri kasutajanimi", "admin.config.smtp.username.description": "SMTP serveri kasutajanimi",
"admin.config.smtp.password": "Parool", "admin.config.smtp.password": "Parool",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "S3 ämbri võti.", "admin.config.s3.key.description": "S3 ämbri võti.",
"admin.config.s3.secret": "Saladus", "admin.config.s3.secret": "Saladus",
"admin.config.s3.secret.description": "S3 ämbri saladus.", "admin.config.s3.secret.description": "S3 ämbri saladus.",
"admin.config.s3.use-checksum": "Kasuta kontrollsummat",
"admin.config.s3.use-checksum.description": "Lülita välja, kui tagaliides ei toeta kontrollsummasid (nt B2).",
"admin.config.category.legal": "Juriidiline", "admin.config.category.legal": "Juriidiline",
"admin.config.legal.enabled": "Luba juriidilised teated", "admin.config.legal.enabled": "Luba juriidilised teated",
"admin.config.legal.enabled.description": "Kas kuvada linki kontaktandmetele ja privaatsuspoliitikale jaluses.", "admin.config.legal.enabled.description": "Kas kuvada linki kontaktandmetele ja privaatsuspoliitikale jaluses.",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "Pilvetä", "navbar.upload": "Pilvetä",
"navbar.signin": "Kirjaudu Sisään", "navbar.signin": "Kirjaudu Sisään",
"navbar.home": "Koti", "navbar.home": "Koti",
"navbar.signup": "Sign up", "navbar.signup": "Rekisteröidy",
"navbar.links.shares": "Minun jakaukset", "navbar.links.shares": "Minun jakaukset",
"navbar.links.reverse": "Takaperin jaetut", "navbar.links.reverse": "Takaperin jaetut",
"navbar.avatar.account": "Oma tIli", "navbar.avatar.account": "Oma tIli",
@@ -33,13 +33,13 @@ export default {
"signin.button.submit": "Kirjaudu sisään", "signin.button.submit": "Kirjaudu sisään",
"signIn.notify.totp-required.title": "Kaksivaiheinen tunnistautuminen vaadittu", "signIn.notify.totp-required.title": "Kaksivaiheinen tunnistautuminen vaadittu",
"signIn.notify.totp-required.description": "Syötä kaksivaiheisen tunnistautumisen koodi tähän", "signIn.notify.totp-required.description": "Syötä kaksivaiheisen tunnistautumisen koodi tähän",
"signIn.oauth.or": "OR", "signIn.oauth.or": "TAI",
"signIn.oauth.signInWith": "Sign in with", "signIn.oauth.signInWith": "Kirjaudu käyttäen",
"signIn.oauth.github": "GitHub", "signIn.oauth.github": "GitHubia",
"signIn.oauth.google": "Google", "signIn.oauth.google": "Googlea",
"signIn.oauth.microsoft": "Microsoft", "signIn.oauth.microsoft": "Microsofta",
"signIn.oauth.discord": "Discord", "signIn.oauth.discord": "Discordia",
"signIn.oauth.oidc": "OpenID", "signIn.oauth.oidc": "OpenID",
// END /auth/signin // END /auth/signin
// /auth/signup // /auth/signup
"signup.title": "Rekisteröidy", "signup.title": "Rekisteröidy",
@@ -53,7 +53,7 @@ export default {
// END /auth/signup // END /auth/signup
// /auth/totp // /auth/totp
"totp.title": "TOTP Authentication", "totp.title": "TOTP Authentication",
"totp.button.signIn": "Sign in", "totp.button.signIn": "Kirjaudu sisään",
// END /auth/totp // END /auth/totp
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Unohditko salasanan?", "resetPassword.title": "Unohditko salasanan?",
@@ -235,7 +235,7 @@ export default {
"upload.modal.not-signed-in-description": "Et voi poistaa jakoasi manuaalisesti ja tarkastella kävijöiden määrää.", "upload.modal.not-signed-in-description": "Et voi poistaa jakoasi manuaalisesti ja tarkastella kävijöiden määrää.",
"upload.modal.expires.never": "ei koskaan", "upload.modal.expires.never": "ei koskaan",
"upload.modal.expires.never-long": "Permanent share", "upload.modal.expires.never-long": "Permanent share",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.", "upload.modal.expires.error.too-long": "Viimeinen voimassaolopäivä ylittää enimmäisarvon {max}.",
"upload.modal.link.label": "Linkki", "upload.modal.link.label": "Linkki",
"upload.modal.expires.label": "Vanhentuminen", "upload.modal.expires.label": "Vanhentuminen",
"upload.modal.expires.minute-singular": "Minuutti", "upload.modal.expires.minute-singular": "Minuutti",
@@ -250,9 +250,9 @@ export default {
"upload.modal.expires.month-plural": "Kuukautta", "upload.modal.expires.month-plural": "Kuukautta",
"upload.modal.expires.year-singular": "Vuosi", "upload.modal.expires.year-singular": "Vuosi",
"upload.modal.expires.year-plural": "Vuotta", "upload.modal.expires.year-plural": "Vuotta",
"upload.modal.accordion.name-and-description.title": "Name and description", "upload.modal.accordion.name-and-description.title": "Nimi ja kuvaus",
"upload.modal.accordion.name-and-description.name.placeholder": "Name", "upload.modal.accordion.name-and-description.name.placeholder": "Nimi",
"upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share", "upload.modal.accordion.name-and-description.description.placeholder": "Huomautus tämän jaon vastaanottajille",
"upload.modal.accordion.email.title": "Sähköpostin vastaanottajat", "upload.modal.accordion.email.title": "Sähköpostin vastaanottajat",
"upload.modal.accordion.email.placeholder": "Syötä sähköpostin vastaanottajat", "upload.modal.accordion.email.placeholder": "Syötä sähköpostin vastaanottajat",
"upload.modal.accordion.email.invalid-email": "Virheellinen sähköpostiosoite", "upload.modal.accordion.email.invalid-email": "Virheellinen sähköpostiosoite",
@@ -270,30 +270,31 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Jaa {shareId}", "share.title": "Jaa {shareId}",
"share.description": "Katso, mitä olen jakanut kanssasi!", "share.description": "Katso, mitä olen jakanut kanssasi!",
"share.fileCount": "{count, plural, one {}=1 {# tiedosto} other {# tiedostoa}} · {size} (zip tiedosto voi olla pienempi pakkauksesta)",
"share.error.visitor-limit-exceeded.title": "Vierailijoiden raja ylitetty", "share.error.visitor-limit-exceeded.title": "Vierailijoiden raja ylitetty",
"share.error.visitor-limit-exceeded.description": "Tämän jaon kävijäraja on ylittynyt.", "share.error.visitor-limit-exceeded.description": "Tämän jaon kävijäraja on ylittynyt.",
"share.error.removed.title": "Jako poistettu", "share.error.removed.title": "Jako poistettu",
"share.error.not-found.title": "Jakoa ei löydetty", "share.error.not-found.title": "Jakoa ei löydetty",
"share.error.not-found.description": "Etsimääsi sivua ei ole olemassa.", "share.error.not-found.description": "Etsimääsi sivua ei ole olemassa.",
"share.error.access-denied.title": "Private share", "share.error.access-denied.title": "Yksityinen jako",
"share.error.access-denied.description": "The current account does not have permission to access this share", "share.error.access-denied.description": "The current account does not have permission to access this share",
"share.modal.password.title": "Salasana vaaditaan", "share.modal.password.title": "Salasana vaaditaan",
"share.modal.password.description": "Please enter the password to access this share.", "share.modal.password.description": "Please enter the password to access this share.",
"share.modal.password": "Salasana", "share.modal.password": "Salasana",
"share.modal.error.invalid-password": "Virheellinen salasana", "share.modal.error.invalid-password": "Virheellinen salasana",
"share.button.download-all": "Lataa kaikki", "share.button.download-all": "Lataa kaikki",
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.", "share.notify.download-all-preparing": "Jako on valmistumassa. Yritä uudelleen muutaman minuutin kuluttua.",
"share.modal.file-link": "Tiedoston linkki", "share.modal.file-link": "Tiedoston linkki",
"share.table.name": "Nimi", "share.table.name": "Nimi",
"share.table.size": "Koko", "share.table.size": "Koko",
"share.modal.file-preview.error.not-supported.title": "Esikatselua ei tuettu", "share.modal.file-preview.error.not-supported.title": "Esikatselua ei tuettu",
"share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.", "share.modal.file-preview.error.not-supported.description": "Esikatselua ei tueta tämäntyyppisille tiedostoille. Ole hyvä ja lataa tiedosto nähdäksesi sen.",
// END /share/[id] // END /share/[id]
// /share/[id]/edit // /share/[id]/edit
"share.edit.title": "Edit {shareId}", "share.edit.title": "Muokkaa {shareId}",
"share.edit.append-upload": "Append file", "share.edit.append-upload": "Lisää tiedosto",
"share.edit.notify.generic-error": "An error occurred while finishing your share.", "share.edit.notify.generic-error": "Odottamaton virhe jaon luomisessa.",
"share.edit.notify.save-success": "Share updated successfully", "share.edit.notify.save-success": "Jako päivitetty onnistuneesti",
// END /share/[id]/edit // END /share/[id]/edit
// /imprint // /imprint
"imprint.title": "Imprint", "imprint.title": "Imprint",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Asetukset", "admin.config.title": "Asetukset",
"admin.config.category.general": "Yleiset", "admin.config.category.general": "Yleiset",
"admin.config.category.share": "Jako", "admin.config.category.share": "Jako",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Sähköposti", "admin.config.category.email": "Sähköposti",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login", "admin.config.category.oauth": "Social Login",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Muuta logoa lataamalla uusi kuva. Kuvan on oltava PNG ja sen on oltava formaatti 1:1.", "admin.config.general.logo.description": "Muuta logoa lataamalla uusi kuva. Kuvan on oltava PNG ja sen on oltava formaatti 1:1.",
"admin.config.general.logo.placeholder": "Valitse kuva", "admin.config.general.logo.placeholder": "Valitse kuva",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "Sähköpostijaon otsikko", "admin.config.email.share-recipients-subject": "Sähköpostijaon otsikko",
@@ -353,18 +363,18 @@ export default {
"admin.config.share.max-size.description": "Jaon enimmäiskoko tavuissa", "admin.config.share.max-size.description": "Jaon enimmäiskoko tavuissa",
"admin.config.share.zip-compression-level": "Zip puristustaso", "admin.config.share.zip-compression-level": "Zip puristustaso",
"admin.config.share.zip-compression-level.description": "Säädä tasoa tiedoston koon ja pakkausnopeuden välillä. Kelvolliset arvot vaihtelevat 09, 0 ei puristusta ja 9 on suurin puristusvoima. ", "admin.config.share.zip-compression-level.description": "Säädä tasoa tiedoston koon ja pakkausnopeuden välillä. Kelvolliset arvot vaihtelevat 09, 0 ei puristusta ja 9 on suurin puristusvoima. ",
"admin.config.share.chunk-size": "Chunk size", "admin.config.share.chunk-size": "Lohkojen koko",
"admin.config.share.chunk-size.description": "Adjust the chunk size for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.", "admin.config.share.chunk-size.description": "Adjust the chunk size for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.",
"admin.config.share.auto-open-share-modal": "Auto open create share modal", "admin.config.share.auto-open-share-modal": "Avaa automaattisesti jakomodaali",
"admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.", "admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "Käytä",
"admin.config.smtp.enabled.description": "Onko SMTP käytössä. Aseta tämä todeksi vain, jos olet syöttänyt SMTP-palvelimen isäntän, portin, sähköpostin, käyttäjän ja salasanan.", "admin.config.smtp.enabled.description": "Onko SMTP käytössä. Aseta tämä todeksi vain, jos olet syöttänyt SMTP-palvelimen isäntän, portin, sähköpostin, käyttäjän ja salasanan.",
"admin.config.smtp.host": "Isäntä", "admin.config.smtp.host": "Isäntä",
"admin.config.smtp.host.description": "SMTP palvelimen isäntä", "admin.config.smtp.host.description": "SMTP palvelimen isäntä",
"admin.config.smtp.port": "Portti", "admin.config.smtp.port": "Portti",
"admin.config.smtp.port.description": "SMTP palvelimen portti", "admin.config.smtp.port.description": "SMTP palvelimen portti",
"admin.config.smtp.email": "Sähköposti", "admin.config.smtp.email": "Sähköposti",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Sähköpostiosoite, josta sähköpostit lähetetään",
"admin.config.smtp.username": "Käyttäjätunnus", "admin.config.smtp.username": "Käyttäjätunnus",
"admin.config.smtp.username.description": "SMTP palvelimen käyttäjänimi", "admin.config.smtp.username.description": "SMTP palvelimen käyttäjänimi",
"admin.config.smtp.password": "Salasana", "admin.config.smtp.password": "Salasana",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",
@@ -480,20 +492,20 @@ export default {
"404.description": "Hups tätä sivua ei ole olemassa.", "404.description": "Hups tätä sivua ei ole olemassa.",
"404.button.home": "Tuo minut takaisin kotiin", "404.button.home": "Tuo minut takaisin kotiin",
// error // error
"error.title": "Error", "error.title": "Virhe",
"error.description": "Oops!", "error.description": "Hups!",
"error.button.back": "Go back", "error.button.back": "Takaisin",
"error.msg.default": "Something went wrong.", "error.msg.default": "Jokin meni pieleen.",
"error.msg.access_denied": "You canceled the authentication process, please try again.", "error.msg.access_denied": "Peruutit tunnistautumisprosessin, ole hyvä ja yritä uudelleen.",
"error.msg.expired_token": "The authentication process took too long, please try again.", "error.msg.expired_token": "Todennusprosessi kesti liian kauan, yritä uudelleen.",
"error.msg.invalid_token": "Internal Error", "error.msg.invalid_token": "Sisäinen virhe",
"error.msg.no_user": "User linked to this {0} account doesn't exist.", "error.msg.no_user": "Käyttäjä linkitetty tähän {0} tiliin ei ole olemassa.",
"error.msg.no_email": "Can't get email address from this {0} account.", "error.msg.no_email": "Sähköpostiosoitetta ei saada tältä {0} -tililtä.",
"error.msg.already_linked": "This {0} account is already linked to another account.", "error.msg.already_linked": "Tämä {0} -tili on jo linkitetty toiseen tiliin.",
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.", "error.msg.not_linked": "Tätä {0} -tiliä ei ole vielä linkitetty mihinkään tiliin.",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.", "error.msg.unverified_account": "Tätä {0} -tiliä ei ole vahvistettu, yritä uudelleen vahvistuksen jälkeen.",
"error.msg.user_not_allowed": "You are not allowed to sign in.", "error.msg.user_not_allowed": "Sinulla ei ole oikeutta kirjautua sisään.",
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.", "error.msg.cannot_get_user_info": "Käyttäjätietojasi ei voi saada tältä {0} -tililtä.",
"error.param.provider_github": "GitHub", "error.param.provider_github": "GitHub",
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
@@ -513,9 +525,9 @@ export default {
"common.text.link": "Linkki", "common.text.link": "Linkki",
"common.text.navigate-to-link": "Visit link", "common.text.navigate-to-link": "Visit link",
"common.text.or": "tai", "common.text.or": "tai",
"common.text.redirecting": "Redirecting...", "common.text.redirecting": "Uudelleen ohjataan...",
"common.button.go-back": "Takaisin", "common.button.go-back": "Takaisin",
"common.button.go-home": "Go home", "common.button.go-home": "Palaa kotinäkymään",
"common.notify.copied": "Linkki kopioitiin leikepöydälle", "common.notify.copied": "Linkki kopioitiin leikepöydälle",
"common.notify.copied-link": "Linkki kopioitiin leikepöydälle", "common.notify.copied-link": "Linkki kopioitiin leikepöydälle",
"common.success": "Suoritettu", "common.success": "Suoritettu",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Partage {shareId}", "share.title": "Partage {shareId}",
"share.description": "Regardez ce que jai partagé !", "share.description": "Regardez ce que jai partagé !",
"share.fileCount": "{count, plural, =1 {# fichier} other {# fichiers}} · {size} (le fichier compressé peut être plus petit)",
"share.error.visitor-limit-exceeded.title": "Limite de visiteurs dépassée", "share.error.visitor-limit-exceeded.title": "Limite de visiteurs dépassée",
"share.error.visitor-limit-exceeded.description": "La limite de visiteurs de ce partage a été dépassée.", "share.error.visitor-limit-exceeded.description": "La limite de visiteurs de ce partage a été dépassée.",
"share.error.removed.title": "Partage supprimé", "share.error.removed.title": "Partage supprimé",
@@ -302,11 +303,12 @@ export default {
"privacy.title": "Politique de confidentialité", "privacy.title": "Politique de confidentialité",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Fichier de configuration présent",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Puisque vous avez configuré Pingvin Share avec un fichier de configuration, vous ne pouvez pas modifier la configuration via l'interface utilisateur.",
"admin.config.title": "Paramètres", "admin.config.title": "Paramètres",
"admin.config.category.general": "Général", "admin.config.category.general": "Général",
"admin.config.category.share": "Partage", "admin.config.category.share": "Partage",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Courriel", "admin.config.category.email": "Courriel",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Identifiant social", "admin.config.category.oauth": "Identifiant social",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Changez de logo en envoyant une nouvelle image. Limage doit être au format PNG et doit avoir un ratio 1:1.", "admin.config.general.logo.description": "Changez de logo en envoyant une nouvelle image. Limage doit être au format PNG et doit avoir un ratio 1:1.",
"admin.config.general.logo.placeholder": "Sélectionner une image", "admin.config.general.logo.placeholder": "Sélectionner une image",
"admin.config.cache.ttl": "DDV",
"admin.config.cache.ttl.description": "Durée de vie des informations conservées en cache.",
"admin.config.cache.max-items": "Maximum d'éléments",
"admin.config.cache.max-items.description": "Nombre maximum d'éléments conservés en cache.",
"admin.config.cache.redis-enabled": "Redis activé",
"admin.config.cache.redis-enabled.description": "Usuellement, Pingvin Share conserve les informations en mémoire vive. Si vous exécutez plusieurs instances de Pingvin Share, vous devez activer la mise en cache Redis pour partager le cache entre ces instances.",
"admin.config.cache.redis-url": "URL de Redis",
"admin.config.cache.redis-url.description": "URL de connexion à linstance de Redis pour servir de cache.",
"admin.config.email.enable-share-email-recipients": "Activer le partage par courriel", "admin.config.email.enable-share-email-recipients": "Activer le partage par courriel",
"admin.config.email.enable-share-email-recipients.description": "Autoriser ou non le partage de courriels avec les destinataires. N'activer cette option que si SMTP est activé.", "admin.config.email.enable-share-email-recipients.description": "Autoriser ou non le partage de courriels avec les destinataires. N'activer cette option que si SMTP est activé.",
"admin.config.email.share-recipients-subject": "Sujet dun partage", "admin.config.email.share-recipients-subject": "Sujet dun partage",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "Port du serveur SMTP", "admin.config.smtp.port.description": "Port du serveur SMTP",
"admin.config.smtp.email": "Courriel", "admin.config.smtp.email": "Courriel",
"admin.config.smtp.email.description": "Adresse à partir de laquelle les courriels sont envoyés", "admin.config.smtp.email.description": "Adresse email à partir de laquelle les courriels sont envoyés",
"admin.config.smtp.username": "Nom dutilisateur", "admin.config.smtp.username": "Nom dutilisateur",
"admin.config.smtp.username.description": "Nom dutilisateur du serveur SMTP", "admin.config.smtp.username.description": "Nom dutilisateur du serveur SMTP",
"admin.config.smtp.password": "Mot de passe", "admin.config.smtp.password": "Mot de passe",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "La clé qui vous permet d'accéder au bucket S3.", "admin.config.s3.key.description": "La clé qui vous permet d'accéder au bucket S3.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "Le secret qui vous permet d'accéder au bucket S3.", "admin.config.s3.secret.description": "Le secret qui vous permet d'accéder au bucket S3.",
"admin.config.s3.use-checksum": "Utiliser la somme de contrôle",
"admin.config.s3.use-checksum.description": "Désactivez cette option pour les backends qui ne prennent pas en charge la somme de contrôle (ex. B2).",
"admin.config.category.legal": "Juridique", "admin.config.category.legal": "Juridique",
"admin.config.legal.enabled": "Activer les mentions légales", "admin.config.legal.enabled": "Activer les mentions légales",
"admin.config.legal.enabled.description": "Afficher/Masquer dans le pied de page un lien vers les mentions légales et la politique de confidentialité.", "admin.config.legal.enabled.description": "Afficher/Masquer dans le pied de page un lien vers les mentions légales et la politique de confidentialité.",

View File

@@ -124,9 +124,9 @@ export default {
"account.shares.table.expiresAt": "Istječe", "account.shares.table.expiresAt": "Istječe",
"account.shares.table.createdAt": "Kreirano", "account.shares.table.createdAt": "Kreirano",
"account.shares.table.size": "Veličina", "account.shares.table.size": "Veličina",
"account.shares.table.password-protected": "Password protected", "account.shares.table.password-protected": "Zaštićeno lozinkom",
"account.shares.table.visitor-count": "{count} of {max}", "account.shares.table.visitor-count": "{count} of {max}",
"account.shares.table.expiry-never": "Never", "account.shares.table.expiry-never": "Nikad",
"account.shares.modal.share-informations": "Informacije o dijeljenju", "account.shares.modal.share-informations": "Informacije o dijeljenju",
"account.shares.modal.share-link": "Podijelite poveznicu", "account.shares.modal.share-link": "Podijelite poveznicu",
"account.shares.modal.delete.title": "Izbriši dijeljenje {share}", "account.shares.modal.delete.title": "Izbriši dijeljenje {share}",
@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Dijeljenje {shareId}", "share.title": "Dijeljenje {shareId}",
"share.description": "Pogledajte što sam podijelio s vama!", "share.description": "Pogledajte što sam podijelio s vama!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Prekoračeno ograničenje posjetitelja", "share.error.visitor-limit-exceeded.title": "Prekoračeno ograničenje posjetitelja",
"share.error.visitor-limit-exceeded.description": "Ograničenje broja posjetitelja za ovo dijeljenje je premašeno.", "share.error.visitor-limit-exceeded.description": "Ograničenje broja posjetitelja za ovo dijeljenje je premašeno.",
"share.error.removed.title": "Dijeljenje je uklonjeno", "share.error.removed.title": "Dijeljenje je uklonjeno",
@@ -278,7 +279,7 @@ export default {
"share.error.access-denied.title": "Privatno dijeljenje", "share.error.access-denied.title": "Privatno dijeljenje",
"share.error.access-denied.description": "Trenutni račun nema dozvolu za pristup ovom dijeljenju.", "share.error.access-denied.description": "Trenutni račun nema dozvolu za pristup ovom dijeljenju.",
"share.modal.password.title": "Lozinka je potrebna", "share.modal.password.title": "Lozinka je potrebna",
"share.modal.password.description": "Please enter the password to access this share.", "share.modal.password.description": "Molimo unesite lozinku za pristup ovom dijeljenju.",
"share.modal.password": "Lozinka", "share.modal.password": "Lozinka",
"share.modal.error.invalid-password": "Neispravna lozinka", "share.modal.error.invalid-password": "Neispravna lozinka",
"share.button.download-all": "Preuzmi sve", "share.button.download-all": "Preuzmi sve",
@@ -296,17 +297,18 @@ export default {
"share.edit.notify.save-success": "Dijeljenje je uspješno ažurirano", "share.edit.notify.save-success": "Dijeljenje je uspješno ažurirano",
// END /share/[id]/edit // END /share/[id]/edit
// /imprint // /imprint
"imprint.title": "Imprint", "imprint.title": "Otisak",
// END /imprint // END /imprint
// /privacy // /privacy
"privacy.title": "Privacy Policy", "privacy.title": "Pravilima o zaštiti privatnosti",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Configuration file present",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "",
"admin.config.title": "Konfiguracija", "admin.config.title": "Konfiguracija",
"admin.config.category.general": "Opće", "admin.config.category.general": "Opće",
"admin.config.category.share": "Dijeljenje", "admin.config.category.share": "Dijeljenje",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Email", "admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social login", "admin.config.category.oauth": "Social login",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Promijenite svoj logotip učitavanjem nove slike. Slika mora biti PNG i imati format 1:1.", "admin.config.general.logo.description": "Promijenite svoj logotip učitavanjem nove slike. Slika mora biti PNG i imati format 1:1.",
"admin.config.general.logo.placeholder": "Odaberite sliku", "admin.config.general.logo.placeholder": "Odaberite sliku",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Omogućite dijeljenje putem emaila", "admin.config.email.enable-share-email-recipients": "Omogućite dijeljenje putem emaila",
"admin.config.email.enable-share-email-recipients.description": "Želite li omogućiti dijeljenje putem emaila. Omogućite ovo samo ako je SMTP aktiviran.", "admin.config.email.enable-share-email-recipients.description": "Želite li omogućiti dijeljenje putem emaila. Omogućite ovo samo ako je SMTP aktiviran.",
"admin.config.email.share-recipients-subject": "Naslov emaila za primatelje dijeljenja", "admin.config.email.share-recipients-subject": "Naslov emaila za primatelje dijeljenja",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "Port domaćina SMTP servera", "admin.config.smtp.port.description": "Port domaćina SMTP servera",
"admin.config.smtp.email": "Email", "admin.config.smtp.email": "Email",
"admin.config.smtp.email.description": "Email adresa s koje se poruke šalju", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Korisničko ime", "admin.config.smtp.username": "Korisničko ime",
"admin.config.smtp.username.description": "Korisničko ime SMTP servera", "admin.config.smtp.username.description": "Korisničko ime SMTP servera",
"admin.config.smtp.password": "Lozinka", "admin.config.smtp.password": "Lozinka",
@@ -451,7 +461,7 @@ export default {
"admin.config.notify.logo-success": "Logo je uspješno ažuriran. Može potrajati nekoliko minuta dok se promjena ne prikaže na web stranici.", "admin.config.notify.logo-success": "Logo je uspješno ažuriran. Može potrajati nekoliko minuta dok se promjena ne prikaže na web stranici.",
"admin.config.notify.no-changes": "Nema promjena za spremanje.", "admin.config.notify.no-changes": "Nema promjena za spremanje.",
"admin.config.category.s3": "S3", "admin.config.category.s3": "S3",
"admin.config.s3.enabled": "Enabled", "admin.config.s3.enabled": "Omogućeno",
"admin.config.s3.enabled.description": "Whether S3 should be used to store the shared files instead of the local file system.", "admin.config.s3.enabled.description": "Whether S3 should be used to store the shared files instead of the local file system.",
"admin.config.s3.endpoint": "Endpoint", "admin.config.s3.endpoint": "Endpoint",
"admin.config.s3.endpoint.description": "The URL of the S3 bucket.", "admin.config.s3.endpoint.description": "The URL of the S3 bucket.",
@@ -459,12 +469,14 @@ export default {
"admin.config.s3.region.description": "The region of the S3 bucket.", "admin.config.s3.region.description": "The region of the S3 bucket.",
"admin.config.s3.bucket-name": "Bucket name", "admin.config.s3.bucket-name": "Bucket name",
"admin.config.s3.bucket-name.description": "The name of the S3 bucket.", "admin.config.s3.bucket-name.description": "The name of the S3 bucket.",
"admin.config.s3.bucket-path": "Path", "admin.config.s3.bucket-path": "Putanja",
"admin.config.s3.bucket-path.description": "The default path which should be used to store the files in the S3 bucket.", "admin.config.s3.bucket-path.description": "Zadana staza koja bi se trebala koristiti za pohranu datoteka u S3 spremnik.",
"admin.config.s3.key": "Key", "admin.config.s3.key": "Key",
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Megosztás: {shareId}", "share.title": "Megosztás: {shareId}",
"share.description": "Megosztottak Önnel valami fontosat!", "share.description": "Megosztottak Önnel valami fontosat!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Túl sok látogató", "share.error.visitor-limit-exceeded.title": "Túl sok látogató",
"share.error.visitor-limit-exceeded.description": "A látogatók száma elérte a megszabott korlátot.", "share.error.visitor-limit-exceeded.description": "A látogatók száma elérte a megszabott korlátot.",
"share.error.removed.title": "Korábban már eltávolított megosztás", "share.error.removed.title": "Korábban már eltávolított megosztás",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Konfiguráció", "admin.config.title": "Konfiguráció",
"admin.config.category.general": "Általános", "admin.config.category.general": "Általános",
"admin.config.category.share": "Megosztás", "admin.config.category.share": "Megosztás",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Email", "admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Közösségi bejelentkezés", "admin.config.category.oauth": "Közösségi bejelentkezés",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logó", "admin.config.general.logo": "Logó",
"admin.config.general.logo.description": "A logó személyessé tételéhez töltsön fel egy új képet. A formátum legyen PNG, az oldalarány 1:1.", "admin.config.general.logo.description": "A logó személyessé tételéhez töltsön fel egy új képet. A formátum legyen PNG, az oldalarány 1:1.",
"admin.config.general.logo.placeholder": "Kép kiválasztása", "admin.config.general.logo.placeholder": "Kép kiválasztása",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "Megosztási email tárgya", "admin.config.email.share-recipients-subject": "Megosztási email tárgya",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "Az SMTP kiszolgáló portja", "admin.config.smtp.port.description": "Az SMTP kiszolgáló portja",
"admin.config.smtp.email": "Email", "admin.config.smtp.email": "Email",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Felhasználónév", "admin.config.smtp.username": "Felhasználónév",
"admin.config.smtp.username.description": "Felhasználónév az SMTP kiszolgálón", "admin.config.smtp.username.description": "Felhasználónév az SMTP kiszolgálón",
"admin.config.smtp.password": "Jelszó", "admin.config.smtp.password": "Jelszó",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Condividi {shareId}", "share.title": "Condividi {shareId}",
"share.description": "Guarda cosa ho condiviso con te!", "share.description": "Guarda cosa ho condiviso con te!",
"share.fileCount": "{count, plural, =1 {# file} other {# file}} · {size} (il file zip potrebbe essere più piccolo a causa della compressione)",
"share.error.visitor-limit-exceeded.title": "Limite visitatori superato", "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.visitor-limit-exceeded.description": "Il limite di visitatori di questa condivisione è stato superato.",
"share.error.removed.title": "Condivisione rimossa", "share.error.removed.title": "Condivisione rimossa",
@@ -302,14 +303,15 @@ export default {
"privacy.title": "Informativa sulla privacy", "privacy.title": "Informativa sulla privacy",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "File di configurazione presente",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Poiché hai configurato Pingvin Share tramite un file di configurazione, non ti è possibile modificare la configurazione dall'interfaccia utente.",
"admin.config.title": "Configurazione", "admin.config.title": "Configurazione",
"admin.config.category.general": "Generale", "admin.config.category.general": "Generale",
"admin.config.category.share": "Condivisioni", "admin.config.category.share": "Condivisioni",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Email", "admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Effettua il login con i Social", "admin.config.category.oauth": "Login tramite Social",
"admin.config.general.app-name": "Nome dell'App", "admin.config.general.app-name": "Nome dell'App",
"admin.config.general.app-name.description": "Nome dell' applicazione", "admin.config.general.app-name.description": "Nome dell' applicazione",
"admin.config.general.app-url": "URL dell'App", "admin.config.general.app-url": "URL dell'App",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logo", "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.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.general.logo.placeholder": "Scegli un'immagine",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Tempo (in secondi) di mantenimento delle informazioni all'interno della cache.",
"admin.config.cache.max-items": "Numero massimo di elementi",
"admin.config.cache.max-items.description": "Numero massimo di elementi all'interno della cache.",
"admin.config.cache.redis-enabled": "Redis abilitato",
"admin.config.cache.redis-enabled.description": "Normalmente Pingvin Share mantiene la cache in memoria. Se si eseguono più istanze di Pingvin Share, è necessario abilitare il caching di Redis per condividere la cache tra le istanze.",
"admin.config.cache.redis-url": "Url Di Redis",
"admin.config.cache.redis-url.description": "Url per connettersi all'istanza Redis utilizzata per la cache.",
"admin.config.email.enable-share-email-recipients": "Abilita condivisione del destinatario email", "admin.config.email.enable-share-email-recipients": "Abilita condivisione del destinatario email",
"admin.config.email.enable-share-email-recipients.description": "Indica se consentire la condivisione email con i destinatari. Abilitare questa opzione solo se SMTP è attivato.", "admin.config.email.enable-share-email-recipients.description": "Indica se consentire la condivisione email con i destinatari. Abilitare questa opzione solo se SMTP è attivato.",
"admin.config.email.share-recipients-subject": "Oggetto dell'email di condivisione", "admin.config.email.share-recipients-subject": "Oggetto dell'email di condivisione",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "La chiave che consente di accedere al bucket S3.", "admin.config.s3.key.description": "La chiave che consente di accedere al bucket S3.",
"admin.config.s3.secret": "Parola chiave", "admin.config.s3.secret": "Parola chiave",
"admin.config.s3.secret.description": "La parola chiave che consente di accedere al bucket S3.", "admin.config.s3.secret.description": "La parola chiave che consente di accedere al bucket S3.",
"admin.config.s3.use-checksum": "Usa il checksum",
"admin.config.s3.use-checksum.description": "Disattiva per i backend che non supportano il checksum (ad es. B2).",
"admin.config.category.legal": "Legale", "admin.config.category.legal": "Legale",
"admin.config.legal.enabled": "Abilita le notifiche legali", "admin.config.legal.enabled": "Abilita le notifiche legali",
"admin.config.legal.enabled.description": "Indica se mostrare o meno un link alle informative legali e sulla privacy a piè di pagina.", "admin.config.legal.enabled.description": "Indica se mostrare o meno un link alle informative legali e sulla privacy a piè di pagina.",

View File

@@ -8,7 +8,7 @@ export default {
"navbar.links.reverse": "ファイルリクエスト", "navbar.links.reverse": "ファイルリクエスト",
"navbar.avatar.account": "マイアカウント", "navbar.avatar.account": "マイアカウント",
"navbar.avatar.admin": "管理画面", "navbar.avatar.admin": "管理画面",
"navbar.avatar.signout": "サインアウト", "navbar.avatar.signout": "ログアウト",
// END navbar // END navbar
// / // /
"home.title": "<h>セルフホスト</h>のファイル共有プラットフォーム。", "home.title": "<h>セルフホスト</h>のファイル共有プラットフォーム。",
@@ -25,16 +25,16 @@ export default {
// /auth/signin // /auth/signin
"signin.title": "おかえりなさい", "signin.title": "おかえりなさい",
"signin.description": "アカウントをお持ちではありませんか?", "signin.description": "アカウントをお持ちではありませんか?",
"signin.button.signup": "会員登録", "signin.button.signup": "新規登録",
"signin.input.email-or-username": "メールアドレスまたはユーザー名", "signin.input.email-or-username": "メールアドレスまたはユーザー名",
"signin.input.email-or-username.placeholder": "メールアドレスまたはユーザー名", "signin.input.email-or-username.placeholder": "メールアドレスまたはユーザー名",
"signin.input.password": "パスワード", "signin.input.password": "パスワード",
"signin.input.password.placeholder": "あなたのパスワード", "signin.input.password.placeholder": "あなたのパスワード",
"signin.button.submit": "サインイン", "signin.button.submit": "ログイン",
"signIn.notify.totp-required.title": "二段階認証が必要です", "signIn.notify.totp-required.title": "二段階認証が必要です",
"signIn.notify.totp-required.description": "二段階認証コードを入力してください", "signIn.notify.totp-required.description": "二段階認証コードを入力してください",
"signIn.oauth.or": "または", "signIn.oauth.or": "または",
"signIn.oauth.signInWith": "サインインの方法", "signIn.oauth.signInWith": "ログインの方法",
"signIn.oauth.github": "GitHub", "signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google", "signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft", "signIn.oauth.microsoft": "Microsoft",
@@ -44,7 +44,7 @@ export default {
// /auth/signup // /auth/signup
"signup.title": "アカウントを作成", "signup.title": "アカウントを作成",
"signup.description": "既にアカウントをお持ちですか?", "signup.description": "既にアカウントをお持ちですか?",
"signup.button.signin": "サインイン", "signup.button.signin": "ログイン",
"signup.input.username": "ユーザー名", "signup.input.username": "ユーザー名",
"signup.input.username.placeholder": "あなたのユーザー名", "signup.input.username.placeholder": "あなたのユーザー名",
"signup.input.email": "メールアドレス", "signup.input.email": "メールアドレス",
@@ -53,13 +53,13 @@ export default {
// END /auth/signup // END /auth/signup
// /auth/totp // /auth/totp
"totp.title": "二段階認証", "totp.title": "二段階認証",
"totp.button.signIn": "サインイン", "totp.button.signIn": "ログイン",
// END /auth/totp // END /auth/totp
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "パスワードを忘れてしまいましたか?", "resetPassword.title": "パスワードを忘れてしまいましたか?",
"resetPassword.description": "登録しているメールアドレスを入力してください。", "resetPassword.description": "登録しているメールアドレスを入力してください。",
"resetPassword.notify.success": "指定されたメールアドレスが存在する場合、パスワードをリセットするためのリンクを含むメッセージが送信されました。", "resetPassword.notify.success": "指定されたメールアドレスが存在する場合、パスワードをリセットするためのリンクを含むメッセージが送信されました。",
"resetPassword.button.back": "サインインページに戻る", "resetPassword.button.back": "ログインページに戻る",
"resetPassword.text.resetPassword": "パスワードをリセット", "resetPassword.text.resetPassword": "パスワードをリセット",
"resetPassword.text.enterNewPassword": "新規パスワードを入力", "resetPassword.text.enterNewPassword": "新規パスワードを入力",
"resetPassword.input.password": "新規パスワード", "resetPassword.input.password": "新規パスワード",
@@ -85,11 +85,11 @@ export default {
"account.card.oauth.unlink": "リンク解除", "account.card.oauth.unlink": "リンク解除",
"account.card.oauth.unlinked": "リンクされていません", "account.card.oauth.unlinked": "リンクされていません",
"account.modal.unlink.title": "アカウントのリンクを解除", "account.modal.unlink.title": "アカウントのリンクを解除",
"account.modal.unlink.description": "ソーシャルアカウントのリンクを解除すると、ログイン認証情報を忘れた場合、アカウントを失う可能性があります。", "account.modal.unlink.description": "ソーシャルアカウントのリンクを解除すると、ログイン認証情報を忘れた場合カウントへアクセスできなくなる可能性があります。",
"account.notify.oauth.unlinked.success": "リンク解除に成功しました", "account.notify.oauth.unlinked.success": "リンク解除に成功しました",
"account.card.security.title": "セキュリティ", "account.card.security.title": "セキュリティ",
"account.card.security.totp.enable.description": "2段階認証を有効にするため、現在のパスワードを入力してください", "account.card.security.totp.enable.description": "2段階認証を有効にするには、現在のパスワードを入力してください",
"account.card.security.totp.disable.description": "2段階認証を無効にするため、現在のパスワードを入力してください", "account.card.security.totp.disable.description": "2段階認証を無効にするには、現在のパスワードを入力してください",
"account.card.security.totp.button.start": "開始", "account.card.security.totp.button.start": "開始",
"account.modal.totp.title": "2段階認証を有効にする", "account.modal.totp.title": "2段階認証を有効にする",
"account.modal.totp.step1": "ステップ1: 認証アプリを追加する", "account.modal.totp.step1": "ステップ1: 認証アプリを追加する",
@@ -216,7 +216,7 @@ export default {
// /upload // /upload
"upload.title": "アップロード", "upload.title": "アップロード",
"upload.notify.confirm-leave": "このページから離れますか?アップロードはキャンセルされます。", "upload.notify.confirm-leave": "このページから離れますか?アップロードはキャンセルされます。",
"upload.notify.generic-error": "共有を仕上げている最中にエラーが発生しました。", "upload.notify.generic-error": "共有の最終処理でエラーが発生しました。",
"upload.notify.count-failed": "{count} ファイルがアップロードに失敗しました。再度お試しください。", "upload.notify.count-failed": "{count} ファイルがアップロードに失敗しました。再度お試しください。",
"upload.reverse-share.error.invalid.title": "無効なファイルリクエストリンク", "upload.reverse-share.error.invalid.title": "無効なファイルリクエストリンク",
"upload.reverse-share.error.invalid.description": "このファイルリクエストは期限が切れているか無効です。", "upload.reverse-share.error.invalid.description": "このファイルリクエストは期限が切れているか無効です。",
@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "「{shareId}」が共有されました", "share.title": "「{shareId}」が共有されました",
"share.description": "あなたと共有したファイルをご確認ください!", "share.description": "あなたと共有したファイルをご確認ください!",
"share.fileCount": "{count, plural, =1 {# ファイル} other {# ファイル}} · {size} (圧縮により ZIP ファイルはより小さくなる場合があります)",
"share.error.visitor-limit-exceeded.title": "訪問者の上限を超えました", "share.error.visitor-limit-exceeded.title": "訪問者の上限を超えました",
"share.error.visitor-limit-exceeded.description": "この共有からの訪問者の回数が制限を超えています。", "share.error.visitor-limit-exceeded.description": "この共有からの訪問者の回数が制限を超えています。",
"share.error.removed.title": "共有が削除されました", "share.error.removed.title": "共有が削除されました",
@@ -302,11 +303,12 @@ export default {
"privacy.title": "プライバシーポリシー", "privacy.title": "プライバシーポリシー",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "構成ファイルがあります",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "設定ファイル設定で済みのPingvin ShareはUI を使用して設定を変更することはできません。",
"admin.config.title": "設定", "admin.config.title": "設定",
"admin.config.category.general": "一般", "admin.config.category.general": "一般",
"admin.config.category.share": "共有", "admin.config.category.share": "共有",
"admin.config.category.cache": "キャッシュ",
"admin.config.category.email": "メール", "admin.config.category.email": "メール",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "ソーシャルログイン", "admin.config.category.oauth": "ソーシャルログイン",
@@ -319,10 +321,18 @@ export default {
"admin.config.general.show-home-page": "ホームページを表示する", "admin.config.general.show-home-page": "ホームページを表示する",
"admin.config.general.show-home-page.description": "ホームページを表示するかどうか選択", "admin.config.general.show-home-page.description": "ホームページを表示するかどうか選択",
"admin.config.general.session-duration": "セッション期間", "admin.config.general.session-duration": "セッション期間",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "ユーザーが再度ログインするまでの時間(デフォルト: 3 ヶ月)。",
"admin.config.general.logo": "ロゴ", "admin.config.general.logo": "ロゴ",
"admin.config.general.logo.description": "新しい画像をアップロードしてロゴを変更できます。画像は、PNG形式でアスペクト比が1:1である必要があります。", "admin.config.general.logo.description": "新しい画像をアップロードしてロゴを変更できます。画像は、PNG形式でアスペクト比が1:1である必要があります。",
"admin.config.general.logo.placeholder": "画像を選択", "admin.config.general.logo.placeholder": "画像を選択",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "情報をキャッシュに保存しておく時間(秒)",
"admin.config.cache.max-items": "最大アイテム数",
"admin.config.cache.max-items.description": "キャッシュ内の最大アイテム数",
"admin.config.cache.redis-enabled": "Redis 有効化済み",
"admin.config.cache.redis-enabled.description": "通常、Pingvin Share は情報をメモリ内にキャッシュします。複数の Pingvin Share インスタンスを実行する場合は、インスタンス間でキャッシュを共有するために Redis キャッシュを有効にする必要があります。",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "キャッシュに使用する Redis インスタンスへの接続URL",
"admin.config.email.enable-share-email-recipients": "メール受信者の共有を有効にする", "admin.config.email.enable-share-email-recipients": "メール受信者の共有を有効にする",
"admin.config.email.enable-share-email-recipients.description": "受信者とのメール共有を許可するかどうか。SMTPが有効な場合にのみこれを有効にします。", "admin.config.email.enable-share-email-recipients.description": "受信者とのメール共有を許可するかどうか。SMTPが有効な場合にのみこれを有効にします。",
"admin.config.email.share-recipients-subject": "宛先への件名", "admin.config.email.share-recipients-subject": "宛先への件名",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "ポート番号", "admin.config.smtp.port": "ポート番号",
"admin.config.smtp.port.description": "SMTPサーバーのポート番号", "admin.config.smtp.port.description": "SMTPサーバーのポート番号",
"admin.config.smtp.email": "メールアドレス", "admin.config.smtp.email": "メールアドレス",
"admin.config.smtp.email.description": "メール送信元となるメールアドレス", "admin.config.smtp.email.description": "メール送信元メールアドレス",
"admin.config.smtp.username": "ユーザー名", "admin.config.smtp.username": "ユーザー名",
"admin.config.smtp.username.description": "SMTPサーバーのユーザー名", "admin.config.smtp.username.description": "SMTPサーバーのユーザー名",
"admin.config.smtp.password": "パスワード", "admin.config.smtp.password": "パスワード",
@@ -419,7 +429,7 @@ export default {
"admin.config.oauth.oidc-username-claim": "OpenID Connect ユーザー名の要求", "admin.config.oauth.oidc-username-claim": "OpenID Connect ユーザー名の要求",
"admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID トークンのユーザー名要求。この設定が何かわからない場合は空白のままにしてください。", "admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID トークンのユーザー名要求。この設定が何かわからない場合は空白のままにしてください。",
"admin.config.oauth.oidc-role-path": "OpenID Connectトークンのロールへのパス", "admin.config.oauth.oidc-role-path": "OpenID Connectトークンのロールへのパス",
"admin.config.oauth.oidc-role-path.description": "ロールの配列を参照する有効なJMESパスでなければなりません。" + "OpenID Connectのロールを使用してアクセス権を管理することは、他のIDプロバイダが設定されておらず、パスワードログインが無効になっている場合にのみ推奨されます。この構成がわからない場合は空白のままにしてください。" + "この設定が何であるか分からない場合は空白のままにしてください。", "admin.config.oauth.oidc-role-path.description": "ロールの配列を参照する有効なJMESパスでなければなりません。 " + "OpenID Connectのロールを使用してアクセス権を管理することは、他のIDプロバイダが設定されておらず、パスワードログインが無効になっている場合にのみ推奨されます。この構成がわからない場合は空白のままにしてください。 " + "この設定が何であるか分からない場合は空白のままにしてください。",
"admin.config.oauth.oidc-role-general-access": "一般的なアクセスのためのOpenID Connectのロール", "admin.config.oauth.oidc-role-general-access": "一般的なアクセスのためのOpenID Connectのロール",
"admin.config.oauth.oidc-role-general-access.description": "一般的なアクセスに必要なロール。ログインするユーザーのロールに存在する必要があります。 " + "この設定が何であるか分からない場合は空白のままにしてください。", "admin.config.oauth.oidc-role-general-access.description": "一般的なアクセスに必要なロール。ログインするユーザーのロールに存在する必要があります。 " + "この設定が何であるか分からない場合は空白のままにしてください。",
"admin.config.oauth.oidc-role-admin-access": "管理者アクセスのための OpenID Connectのロール", "admin.config.oauth.oidc-role-admin-access": "管理者アクセスのための OpenID Connectのロール",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "S3バケットにアクセスするためのキー。", "admin.config.s3.key.description": "S3バケットにアクセスするためのキー。",
"admin.config.s3.secret": "秘密", "admin.config.s3.secret": "秘密",
"admin.config.s3.secret.description": "S3バケットにアクセスするための秘密。", "admin.config.s3.secret.description": "S3バケットにアクセスするための秘密。",
"admin.config.s3.use-checksum": "チェックサムを使用",
"admin.config.s3.use-checksum.description": "チェックサムをサポートしていないバックエンドB2では無効にしてください。",
"admin.config.category.legal": "法的事項", "admin.config.category.legal": "法的事項",
"admin.config.legal.enabled": "法的通知を有効にする", "admin.config.legal.enabled": "法的通知を有効にする",
"admin.config.legal.enabled.description": "フッターにインプリントとプライバシーポリシーへのリンクを表示するか。", "admin.config.legal.enabled.description": "フッターにインプリントとプライバシーポリシーへのリンクを表示するか。",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "공유 {shareId}", "share.title": "공유 {shareId}",
"share.description": "내가 당신과 공유한 것을 보세요!", "share.description": "내가 당신과 공유한 것을 보세요!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "방문자 한도 초과", "share.error.visitor-limit-exceeded.title": "방문자 한도 초과",
"share.error.visitor-limit-exceeded.description": "이 공유의 방문자 한도를 초과했습니다.", "share.error.visitor-limit-exceeded.description": "이 공유의 방문자 한도를 초과했습니다.",
"share.error.removed.title": "공유가 삭제됨", "share.error.removed.title": "공유가 삭제됨",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "구성", "admin.config.title": "구성",
"admin.config.category.general": "일반", "admin.config.category.general": "일반",
"admin.config.category.share": "공유", "admin.config.category.share": "공유",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "이메일", "admin.config.category.email": "이메일",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "소셜 로그인", "admin.config.category.oauth": "소셜 로그인",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "로고", "admin.config.general.logo": "로고",
"admin.config.general.logo.description": "새 이미지를 업로드하여 로고를 변경하십시오. 이미지는 PNG여야 하며 1:1 비율이어야 합니다.", "admin.config.general.logo.description": "새 이미지를 업로드하여 로고를 변경하십시오. 이미지는 PNG여야 하며 1:1 비율이어야 합니다.",
"admin.config.general.logo.placeholder": "이미지 선택", "admin.config.general.logo.placeholder": "이미지 선택",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "공유 제목", "admin.config.email.share-recipients-subject": "공유 제목",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "포트", "admin.config.smtp.port": "포트",
"admin.config.smtp.port.description": "SMTP 서버 포트", "admin.config.smtp.port.description": "SMTP 서버 포트",
"admin.config.smtp.email": "이메일", "admin.config.smtp.email": "이메일",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "사용자 이름", "admin.config.smtp.username": "사용자 이름",
"admin.config.smtp.username.description": "SMTP 사용자 이름, 서버 비밀번호", "admin.config.smtp.username.description": "SMTP 사용자 이름, 서버 비밀번호",
"admin.config.smtp.password": "비밀번호", "admin.config.smtp.password": "비밀번호",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Share {shareId}", "share.title": "Share {shareId}",
"share.description": "Kijk eens wat ik met je heb gedeeld!", "share.description": "Kijk eens wat ik met je heb gedeeld!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Bezoekerslimiet overschreden", "share.error.visitor-limit-exceeded.title": "Bezoekerslimiet overschreden",
"share.error.visitor-limit-exceeded.description": "De bezoekerslimiet van deze share is overschreden.", "share.error.visitor-limit-exceeded.description": "De bezoekerslimiet van deze share is overschreden.",
"share.error.removed.title": "Share was verwijderd", "share.error.removed.title": "Share was verwijderd",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Configuratie", "admin.config.title": "Configuratie",
"admin.config.category.general": "Algemeen", "admin.config.category.general": "Algemeen",
"admin.config.category.share": "Delen", "admin.config.category.share": "Delen",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "E-mail", "admin.config.category.email": "E-mail",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social login", "admin.config.category.oauth": "Social login",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logo", "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.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.general.logo.placeholder": "Afbeelding kiezen",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "Onderwerp van ontvangers' share", "admin.config.email.share-recipients-subject": "Onderwerp van ontvangers' share",
@@ -357,14 +367,14 @@ export default {
"admin.config.share.chunk-size.description": "Adjust the chunk size for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.", "admin.config.share.chunk-size.description": "Adjust the chunk size for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.",
"admin.config.share.auto-open-share-modal": "Auto open create share modal", "admin.config.share.auto-open-share-modal": "Auto open create share modal",
"admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.", "admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "",
"admin.config.smtp.enabled.description": "Of SMTP is ingeschakeld. Stel dit alleen in op true als u de host hebt ingevoerd, poort, e-mail, gebruiker en wachtwoord van uw SMTP-server.", "admin.config.smtp.enabled.description": "Of SMTP is ingeschakeld. Stel dit alleen in op true als u de host hebt ingevoerd, poort, e-mail, gebruiker en wachtwoord van uw SMTP-server.",
"admin.config.smtp.host": "Host", "admin.config.smtp.host": "Host",
"admin.config.smtp.host.description": "Host van de SMTP-server", "admin.config.smtp.host.description": "Host van de SMTP-server",
"admin.config.smtp.port": "Poort", "admin.config.smtp.port": "Poort",
"admin.config.smtp.port.description": "Poort van de SMTP-server", "admin.config.smtp.port.description": "Poort van de SMTP-server",
"admin.config.smtp.email": "E-mail", "admin.config.smtp.email": "E-mail",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Gebruikersnaam", "admin.config.smtp.username": "Gebruikersnaam",
"admin.config.smtp.username.description": "Gebruikersnaam van de SMTP-server", "admin.config.smtp.username.description": "Gebruikersnaam van de SMTP-server",
"admin.config.smtp.password": "Wachtwoord", "admin.config.smtp.password": "Wachtwoord",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -58,7 +58,7 @@ export default {
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Nie pamiętasz hasła?", "resetPassword.title": "Nie pamiętasz hasła?",
"resetPassword.description": "Wprowadź swój e-mail, aby zresetować swoje hasło.", "resetPassword.description": "Wprowadź swój e-mail, aby zresetować swoje hasło.",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.", "resetPassword.notify.success": "Jeśli podany adres e-mail istnieje, wiadomość z linkiem umożliwiającym zresetowanie hasła została wysłana.",
"resetPassword.button.back": "Powrót do strony logowania", "resetPassword.button.back": "Powrót do strony logowania",
"resetPassword.text.resetPassword": "Resetuj hasło", "resetPassword.text.resetPassword": "Resetuj hasło",
"resetPassword.text.enterNewPassword": "Wprowadź nowe hasło", "resetPassword.text.enterNewPassword": "Wprowadź nowe hasło",
@@ -129,7 +129,7 @@ export default {
"account.shares.table.expiry-never": "Never", "account.shares.table.expiry-never": "Never",
"account.shares.modal.share-informations": "Informacje udziału", "account.shares.modal.share-informations": "Informacje udziału",
"account.shares.modal.share-link": "Udostępnij link", "account.shares.modal.share-link": "Udostępnij link",
"account.shares.modal.delete.title": "Delete share: {share}", "account.shares.modal.delete.title": "Usuń udostępnianie: {share}",
"account.shares.modal.delete.description": "Czy na pewno chcesz usunąć to udostępnianie?", "account.shares.modal.delete.description": "Czy na pewno chcesz usunąć to udostępnianie?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
@@ -156,7 +156,7 @@ export default {
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "Send email notifications",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
"account.reverseShares.modal.simplified": "Tryb uproszczony", "account.reverseShares.modal.simplified": "Tryb uproszczony",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "",
"account.reverseShares.modal.public-access": "Dostęp publiczny", "account.reverseShares.modal.public-access": "Dostęp publiczny",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.",
"account.reverseShares.modal.max-use.label": "Limit użyć", "account.reverseShares.modal.max-use.label": "Limit użyć",
@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Udostępnij {shareId}", "share.title": "Udostępnij {shareId}",
"share.description": "Spójrz, co ci udostępniłem!", "share.description": "Spójrz, co ci udostępniłem!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Przekroczono limit odwiedzających", "share.error.visitor-limit-exceeded.title": "Przekroczono limit odwiedzających",
"share.error.visitor-limit-exceeded.description": "Limit odwiedzających dla tego udziału został przekroczony.", "share.error.visitor-limit-exceeded.description": "Limit odwiedzających dla tego udziału został przekroczony.",
"share.error.removed.title": "Udostępnianie usunięte", "share.error.removed.title": "Udostępnianie usunięte",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Konfiguracja", "admin.config.title": "Konfiguracja",
"admin.config.category.general": "Ogólne", "admin.config.category.general": "Ogólne",
"admin.config.category.share": "Udostępnij", "admin.config.category.share": "Udostępnij",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Adres e-mail", "admin.config.category.email": "Adres e-mail",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Logowanie za pomocą konta społecznościowego", "admin.config.category.oauth": "Logowanie za pomocą konta społecznościowego",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Zmień logo, przesyłając nowy obraz. Obraz musi być plikiem PNG i mieć proporcje 1:1.", "admin.config.general.logo.description": "Zmień logo, przesyłając nowy obraz. Obraz musi być plikiem PNG i mieć proporcje 1:1.",
"admin.config.general.logo.placeholder": "Wybierz obraz", "admin.config.general.logo.placeholder": "Wybierz obraz",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "Temat dla odbiorców udziału", "admin.config.email.share-recipients-subject": "Temat dla odbiorców udziału",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Numer portu", "admin.config.smtp.port": "Numer portu",
"admin.config.smtp.port.description": "Numer portu serwera SMTP", "admin.config.smtp.port.description": "Numer portu serwera SMTP",
"admin.config.smtp.email": "Adres e-mail", "admin.config.smtp.email": "Adres e-mail",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Nazwa użytkownika", "admin.config.smtp.username": "Nazwa użytkownika",
"admin.config.smtp.username.description": "Nazwa użytkownika serwera SMTP", "admin.config.smtp.username.description": "Nazwa użytkownika serwera SMTP",
"admin.config.smtp.password": "Hasło", "admin.config.smtp.password": "Hasło",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Compartilhar {shareId}", "share.title": "Compartilhar {shareId}",
"share.description": "Veja o que eu compartilhei com você!", "share.description": "Veja o que eu compartilhei com você!",
"share.fileCount": "{count, plural, one {}=1 {# arquivo} other {# arquivos}} · {size} (arquivo zip pode ser menor devido à compressão)",
"share.error.visitor-limit-exceeded.title": "Limite de visitantes excedido", "share.error.visitor-limit-exceeded.title": "Limite de visitantes excedido",
"share.error.visitor-limit-exceeded.description": "O limite de visitantes deste compartilhamento foi excedido.", "share.error.visitor-limit-exceeded.description": "O limite de visitantes deste compartilhamento foi excedido.",
"share.error.removed.title": "Compartilhamento removido", "share.error.removed.title": "Compartilhamento removido",
@@ -302,11 +303,12 @@ export default {
"privacy.title": "Política de Privacidade", "privacy.title": "Política de Privacidade",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Arquivo de configuração presente",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Como você tem um Pingvin Share configurado com um arquivo de configuração, você não pode alterar a configuração através da UI.",
"admin.config.title": "Configuração", "admin.config.title": "Configuração",
"admin.config.category.general": "Geral", "admin.config.category.general": "Geral",
"admin.config.category.share": "Compartilhamento", "admin.config.category.share": "Compartilhamento",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "E-mail", "admin.config.category.email": "E-mail",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Login com Redes Sociais", "admin.config.category.oauth": "Login com Redes Sociais",
@@ -319,10 +321,18 @@ export default {
"admin.config.general.show-home-page": "Mostrar a página inicial", "admin.config.general.show-home-page": "Mostrar a página inicial",
"admin.config.general.show-home-page.description": "Mostrar ou não a página inicial", "admin.config.general.show-home-page.description": "Mostrar ou não a página inicial",
"admin.config.general.session-duration": "Duração de sessão", "admin.config.general.session-duration": "Duração de sessão",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "Tempo após o qual um usuário deve iniciar a sessão novamente (padrão: 3 meses).",
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Alterar o seu logo carregando uma nova imagem. A imagem deve ser PNG e deve ter o formato 1:1.", "admin.config.general.logo.description": "Alterar o seu logo carregando uma nova imagem. A imagem deve ser PNG e deve ter o formato 1:1.",
"admin.config.general.logo.placeholder": "Escolhe uma imagem", "admin.config.general.logo.placeholder": "Escolhe uma imagem",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Tempo em segundo para manter a informação dentro do cache.",
"admin.config.cache.max-items": "Máximo de itens",
"admin.config.cache.max-items.description": "Número máximo de itens dentro do cache.",
"admin.config.cache.redis-enabled": "Redis habilitado",
"admin.config.cache.redis-enabled.description": "Normalmente informações de caches Pingvin Share na memória. Se você executar várias instâncias do Pingvin Share, você precisa habilitar o cache do Redis para compartilhar o cache entre as instâncias.",
"admin.config.cache.redis-url": "URL do Redis",
"admin.config.cache.redis-url.description": "Url para conectar à instância de Redis usada para cache.",
"admin.config.email.enable-share-email-recipients": "Ativar compartilhamento por email", "admin.config.email.enable-share-email-recipients": "Ativar compartilhamento por email",
"admin.config.email.enable-share-email-recipients.description": "Se deseja permitir o compartilhamento por e-mail com destinatários. Só ative isto se o SMTP estiver ativado.", "admin.config.email.enable-share-email-recipients.description": "Se deseja permitir o compartilhamento por e-mail com destinatários. Só ative isto se o SMTP estiver ativado.",
"admin.config.email.share-recipients-subject": "Assunto dos destinatários do compartilhamento", "admin.config.email.share-recipients-subject": "Assunto dos destinatários do compartilhamento",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Porta", "admin.config.smtp.port": "Porta",
"admin.config.smtp.port.description": "Porta do Servidor SMTP", "admin.config.smtp.port.description": "Porta do Servidor SMTP",
"admin.config.smtp.email": "E-mail", "admin.config.smtp.email": "E-mail",
"admin.config.smtp.email.description": "Endereço de e-mail do qual os e-mails são enviados", "admin.config.smtp.email.description": "Endereço de e-mail de onde os e-mails são enviados",
"admin.config.smtp.username": "Nome de usuário", "admin.config.smtp.username": "Nome de usuário",
"admin.config.smtp.username.description": "Nome de usuário do servidor SMTP", "admin.config.smtp.username.description": "Nome de usuário do servidor SMTP",
"admin.config.smtp.password": "Senha", "admin.config.smtp.password": "Senha",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "A chave que permite a você acessar o bucket S3.", "admin.config.s3.key.description": "A chave que permite a você acessar o bucket S3.",
"admin.config.s3.secret": "Segredo", "admin.config.s3.secret": "Segredo",
"admin.config.s3.secret.description": "O segredo que permite a você acessar o bucket S3.", "admin.config.s3.secret.description": "O segredo que permite a você acessar o bucket S3.",
"admin.config.s3.use-checksum": "Usar Checksum",
"admin.config.s3.use-checksum.description": "Desligar para backends que não suportem checksum (por exemplo, B2).",
"admin.config.category.legal": "Aviso legal", "admin.config.category.legal": "Aviso legal",
"admin.config.legal.enabled": "Habilitar avisos legais", "admin.config.legal.enabled": "Habilitar avisos legais",
"admin.config.legal.enabled.description": "Exibir um link para imprimir e política de privacidade no rodapé.", "admin.config.legal.enabled.description": "Exibir um link para imprimir e política de privacidade no rodapé.",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Загрузка {shareId}", "share.title": "Загрузка {shareId}",
"share.description": "Посмотрите, чем я поделился с вами!", "share.description": "Посмотрите, чем я поделился с вами!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Превышен лимит посетителей", "share.error.visitor-limit-exceeded.title": "Превышен лимит посетителей",
"share.error.visitor-limit-exceeded.description": "Превышен лимит посетителей.", "share.error.visitor-limit-exceeded.description": "Превышен лимит посетителей.",
"share.error.removed.title": "Загрузка удалена", "share.error.removed.title": "Загрузка удалена",
@@ -278,7 +279,7 @@ export default {
"share.error.access-denied.title": "Приватное доступ", "share.error.access-denied.title": "Приватное доступ",
"share.error.access-denied.description": "У текущей учетной записи нет разрешения на доступ к этому ресурсу", "share.error.access-denied.description": "У текущей учетной записи нет разрешения на доступ к этому ресурсу",
"share.modal.password.title": "Требуется пароль", "share.modal.password.title": "Требуется пароль",
"share.modal.password.description": "Please enter the password to access this share.", "share.modal.password.description": "Пожалуйста, введите пароль для доступа к этому ресурсу.",
"share.modal.password": "Пароль", "share.modal.password": "Пароль",
"share.modal.error.invalid-password": "Неверный пароль", "share.modal.error.invalid-password": "Неверный пароль",
"share.button.download-all": "Скачать все", "share.button.download-all": "Скачать все",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Конфигурация", "admin.config.title": "Конфигурация",
"admin.config.category.general": "Общее", "admin.config.category.general": "Общее",
"admin.config.category.share": "Загрузки", "admin.config.category.share": "Загрузки",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Электронная почта", "admin.config.category.email": "Электронная почта",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Авторизация через социальные сети", "admin.config.category.oauth": "Авторизация через социальные сети",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Логотип", "admin.config.general.logo": "Логотип",
"admin.config.general.logo.description": "Измените свой логотип, загрузив новое изображение. Изображение должно быть PNG и должно иметь формат 1:1.", "admin.config.general.logo.description": "Измените свой логотип, загрузив новое изображение. Изображение должно быть PNG и должно иметь формат 1:1.",
"admin.config.general.logo.placeholder": "Выберите изображение", "admin.config.general.logo.placeholder": "Выберите изображение",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Включить отправку email получателю", "admin.config.email.enable-share-email-recipients": "Включить отправку email получателю",
"admin.config.email.enable-share-email-recipients.description": "Разрешить ли обмен электронной почтой с получателями. Включите, только если включен SMTP.", "admin.config.email.enable-share-email-recipients.description": "Разрешить ли обмен электронной почтой с получателями. Включите, только если включен SMTP.",
"admin.config.email.share-recipients-subject": "Заголовок письма (загрузка)", "admin.config.email.share-recipients-subject": "Заголовок письма (загрузка)",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Порт", "admin.config.smtp.port": "Порт",
"admin.config.smtp.port.description": "Порт SMTP сервера", "admin.config.smtp.port.description": "Порт SMTP сервера",
"admin.config.smtp.email": "Электронная почта", "admin.config.smtp.email": "Электронная почта",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Логин", "admin.config.smtp.username": "Логин",
"admin.config.smtp.username.description": "Имя пользователя SMTP сервера", "admin.config.smtp.username.description": "Имя пользователя SMTP сервера",
"admin.config.smtp.password": "Пароль", "admin.config.smtp.password": "Пароль",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Deli {shareId}", "share.title": "Deli {shareId}",
"share.description": "Poglej kaj sem delil s taboj!", "share.description": "Poglej kaj sem delil s taboj!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Število ogledov je prekoračena", "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.visitor-limit-exceeded.description": "Število ogledov za to delitev je bila prekoračena.",
"share.error.removed.title": "Delitev je odstranjena", "share.error.removed.title": "Delitev je odstranjena",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Nastavitve", "admin.config.title": "Nastavitve",
"admin.config.category.general": "Splošno", "admin.config.category.general": "Splošno",
"admin.config.category.share": "Delitev", "admin.config.category.share": "Delitev",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "E-pošta", "admin.config.category.email": "E-pošta",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Prijava z računi družbenih omrežij", "admin.config.category.oauth": "Prijava z računi družbenih omrežij",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logotip", "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.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.general.logo.placeholder": "Izberite sliko",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "Zadeva poslane delitve", "admin.config.email.share-recipients-subject": "Zadeva poslane delitve",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Vrata", "admin.config.smtp.port": "Vrata",
"admin.config.smtp.port.description": "Vrata SMTP strežnika", "admin.config.smtp.port.description": "Vrata SMTP strežnika",
"admin.config.smtp.email": "E-pošta", "admin.config.smtp.email": "E-pošta",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Uporabniško ime", "admin.config.smtp.username": "Uporabniško ime",
"admin.config.smtp.username.description": "Uporabniško ime SMTP strežnika", "admin.config.smtp.username.description": "Uporabniško ime SMTP strežnika",
"admin.config.smtp.password": "Geslo", "admin.config.smtp.password": "Geslo",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -124,9 +124,9 @@ export default {
"account.shares.table.expiresAt": "Ističe", "account.shares.table.expiresAt": "Ističe",
"account.shares.table.createdAt": "Napravljeno", "account.shares.table.createdAt": "Napravljeno",
"account.shares.table.size": "Veličina", "account.shares.table.size": "Veličina",
"account.shares.table.password-protected": "Password protected", "account.shares.table.password-protected": "Zaštićeno lozinkom",
"account.shares.table.visitor-count": "{count} of {max}", "account.shares.table.visitor-count": "{count} od {max}",
"account.shares.table.expiry-never": "Never", "account.shares.table.expiry-never": "Nikad",
"account.shares.modal.share-informations": "Delite informacije", "account.shares.modal.share-informations": "Delite informacije",
"account.shares.modal.share-link": "Deli vezu", "account.shares.modal.share-link": "Deli vezu",
"account.shares.modal.delete.title": "Izbriši deljenje {share}", "account.shares.modal.delete.title": "Izbriši deljenje {share}",
@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Deljenje {shareId}", "share.title": "Deljenje {shareId}",
"share.description": "Pogledajte šta sam podelio sa vama!", "share.description": "Pogledajte šta sam podelio sa vama!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (ZIP fajl može biti manji zbog kompresije)",
"share.error.visitor-limit-exceeded.title": "Prekoračeno je ograničenje posetilaca", "share.error.visitor-limit-exceeded.title": "Prekoračeno je ograničenje posetilaca",
"share.error.visitor-limit-exceeded.description": "Ograničenje posetilaca iz ovog deljenja je premašeno.", "share.error.visitor-limit-exceeded.description": "Ograničenje posetilaca iz ovog deljenja je premašeno.",
"share.error.removed.title": "Deljenje je uklonjeno", "share.error.removed.title": "Deljenje je uklonjeno",
@@ -278,7 +279,7 @@ export default {
"share.error.access-denied.title": "Privatno deljenje", "share.error.access-denied.title": "Privatno deljenje",
"share.error.access-denied.description": "Trenutni nalog nema dozvolu za pristup ovom deljenju", "share.error.access-denied.description": "Trenutni nalog nema dozvolu za pristup ovom deljenju",
"share.modal.password.title": "Obavezna lozinka", "share.modal.password.title": "Obavezna lozinka",
"share.modal.password.description": "Please enter the password to access this share.", "share.modal.password.description": "Molimo unesite lozinku za pristup ovom deljenju.",
"share.modal.password": "Lozinka", "share.modal.password": "Lozinka",
"share.modal.error.invalid-password": "Neispravna lozinka", "share.modal.error.invalid-password": "Neispravna lozinka",
"share.button.download-all": "Preuzmi sve", "share.button.download-all": "Preuzmi sve",
@@ -299,14 +300,15 @@ export default {
"imprint.title": "Imprint", "imprint.title": "Imprint",
// END /imprint // END /imprint
// /privacy // /privacy
"privacy.title": "Privacy Policy", "privacy.title": "Politika privatnosti",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Konfiguracioni fajl je prisutan",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Pošto ste konfigurisali Pingvin Share pomoću konfiguracionog fajla, ne možete menjati konfiguraciju putem korisničkog interfejsa (UI).",
"admin.config.title": "Konfiguracija", "admin.config.title": "Konfiguracija",
"admin.config.category.general": "Opšte", "admin.config.category.general": "Opšte",
"admin.config.category.share": "Deljenje", "admin.config.category.share": "Deljenje",
"admin.config.category.cache": "Keš",
"admin.config.category.email": "Imejl", "admin.config.category.email": "Imejl",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social login", "admin.config.category.oauth": "Social login",
@@ -319,10 +321,18 @@ export default {
"admin.config.general.show-home-page": "Prikaži početnu stranicu", "admin.config.general.show-home-page": "Prikaži početnu stranicu",
"admin.config.general.show-home-page.description": "Da li da se prikaže početna stranica", "admin.config.general.show-home-page.description": "Da li da se prikaže početna stranica",
"admin.config.general.session-duration": "Trajanje sesije", "admin.config.general.session-duration": "Trajanje sesije",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "Vreme nakon kog se korisnik mora ponovo prijaviti (podrazumevano: 3 meseca).",
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Promenite svoj logotip tako što ćete otpremiti novu sliku. Slika mora da bude PNG i treba da ima format 1:1.", "admin.config.general.logo.description": "Promenite svoj logotip tako što ćete otpremiti novu sliku. Slika mora da bude PNG i treba da ima format 1:1.",
"admin.config.general.logo.placeholder": "Izaberi sliku", "admin.config.general.logo.placeholder": "Izaberi sliku",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Vreme u sekundama za čuvanje informacija u kešu.",
"admin.config.cache.max-items": "Maksimalan broj stavki",
"admin.config.cache.max-items.description": "Maksimalan broj stavki u kešu.",
"admin.config.cache.redis-enabled": "Redis omogućen",
"admin.config.cache.redis-enabled.description": "Pingvin Share obično kešira informacije u memoriji. Ako pokrećete više instanci Pingvin Share-a, potrebno je da omogućite Redis keširanje kako bi se keš delio između instanci.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "URL za povezivanje sa Redis instancom koja se koristi za keširanje.",
"admin.config.email.enable-share-email-recipients": "Omogući deljenje sa primaocima imejlom", "admin.config.email.enable-share-email-recipients": "Omogući deljenje sa primaocima imejlom",
"admin.config.email.enable-share-email-recipients.description": "Da li dozvoliti deljenje sa primaocima putem imejla. Omogućite ovo samo ako je SMTP aktiviran.", "admin.config.email.enable-share-email-recipients.description": "Da li dozvoliti deljenje sa primaocima putem imejla. Omogućite ovo samo ako je SMTP aktiviran.",
"admin.config.email.share-recipients-subject": "Podelite naslov primaoca", "admin.config.email.share-recipients-subject": "Podelite naslov primaoca",
@@ -346,7 +356,7 @@ export default {
"admin.config.share.allow-unauthenticated-shares": "Dozvoli deljenje bez autentifikacije", "admin.config.share.allow-unauthenticated-shares": "Dozvoli deljenje bez autentifikacije",
"admin.config.share.allow-unauthenticated-shares.description": "Da li korisnici bez autentifikacije mogu da kreiraju deljenja", "admin.config.share.allow-unauthenticated-shares.description": "Da li korisnici bez autentifikacije mogu da kreiraju deljenja",
"admin.config.share.max-expiration": "Maksimalni rok trajanja", "admin.config.share.max-expiration": "Maksimalni rok trajanja",
"admin.config.share.max-expiration.description": "Maximum share expiration. Set to 0 to allow unlimited expiration.", "admin.config.share.max-expiration.description": "Maksimalno trajanje deljenja. Podesite na 0 da biste omogućili neograničeno trajanje.",
"admin.config.share.share-id-length": "Dužina podrazumevanog ID-a za deljenje", "admin.config.share.share-id-length": "Dužina podrazumevanog ID-a za deljenje",
"admin.config.share.share-id-length.description": "Podrazumevana dužina generisanog ID-a za deljenje. Ova vrednost se takođe koristi za generisanje linkova za obrnuto deljenje. Vrednost ispod 8 se ne smatra bezbednom.", "admin.config.share.share-id-length.description": "Podrazumevana dužina generisanog ID-a za deljenje. Ova vrednost se takođe koristi za generisanje linkova za obrnuto deljenje. Vrednost ispod 8 se ne smatra bezbednom.",
"admin.config.share.max-size": "Maksimalna veličina", "admin.config.share.max-size": "Maksimalna veličina",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "Port domaćina SMTP servera", "admin.config.smtp.port.description": "Port domaćina SMTP servera",
"admin.config.smtp.email": "Imejl", "admin.config.smtp.email": "Imejl",
"admin.config.smtp.email.description": "Adresa imejla sa kojeg se poruke šalju", "admin.config.smtp.email.description": "Mejl adresa sa koje se šalju mejlovi",
"admin.config.smtp.username": "Korisničko ime", "admin.config.smtp.username": "Korisničko ime",
"admin.config.smtp.username.description": "Korisničko ime SMTP servera", "admin.config.smtp.username.description": "Korisničko ime SMTP servera",
"admin.config.smtp.password": "Lozinka", "admin.config.smtp.password": "Lozinka",
@@ -408,7 +418,7 @@ export default {
"admin.config.oauth.discord-client-id.description": "ID klijenta Discord OAuth aplikacije", "admin.config.oauth.discord-client-id.description": "ID klijenta Discord OAuth aplikacije",
"admin.config.oauth.discord-client-secret": "Discord klijent tajna", "admin.config.oauth.discord-client-secret": "Discord klijent tajna",
"admin.config.oauth.discord-client-secret.description": "Tajna klijenta Discord OAuth aplikacije", "admin.config.oauth.discord-client-secret.description": "Tajna klijenta Discord OAuth aplikacije",
"admin.config.oauth.oidc-enabled": "OpenId Connect", "admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Omogućiti prijavu OpenID Connect-om ili ne", "admin.config.oauth.oidc-enabled.description": "Omogućiti prijavu OpenID Connect-om ili ne",
"admin.config.oauth.oidc-discovery-uri": "URI za OpenID Connect Discovery", "admin.config.oauth.oidc-discovery-uri": "URI za OpenID Connect Discovery",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI za otkrivanje OpenID Connect OAuth aplikacije", "admin.config.oauth.oidc-discovery-uri.description": "Discovery URI za otkrivanje OpenID Connect OAuth aplikacije",
@@ -451,33 +461,35 @@ export default {
"admin.config.notify.logo-success": "Logo je uspešno ažuriran. Može biti potrebno nekoliko minuta da se ažurira na vebsajtu.", "admin.config.notify.logo-success": "Logo je uspešno ažuriran. Može biti potrebno nekoliko minuta da se ažurira na vebsajtu.",
"admin.config.notify.no-changes": "Nema promena za čuvanje.", "admin.config.notify.no-changes": "Nema promena za čuvanje.",
"admin.config.category.s3": "S3", "admin.config.category.s3": "S3",
"admin.config.s3.enabled": "Enabled", "admin.config.s3.enabled": "Omogućen",
"admin.config.s3.enabled.description": "Whether S3 should be used to store the shared files instead of the local file system.", "admin.config.s3.enabled.description": "Da li treba koristiti S3 za čuvanje deljenih fajlova umesto lokalnog sistema datoteka.",
"admin.config.s3.endpoint": "Endpoint", "admin.config.s3.endpoint": "Endpoint",
"admin.config.s3.endpoint.description": "The URL of the S3 bucket.", "admin.config.s3.endpoint.description": "URL S3 bucket-a.",
"admin.config.s3.region": "Region", "admin.config.s3.region": "Region",
"admin.config.s3.region.description": "The region of the S3 bucket.", "admin.config.s3.region.description": "Region S3 bucket-a.",
"admin.config.s3.bucket-name": "Bucket name", "admin.config.s3.bucket-name": "Ime bucket-a",
"admin.config.s3.bucket-name.description": "The name of the S3 bucket.", "admin.config.s3.bucket-name.description": "Ime S3 bucket-a.",
"admin.config.s3.bucket-path": "Path", "admin.config.s3.bucket-path": "Putanja",
"admin.config.s3.bucket-path.description": "The default path which should be used to store the files in the S3 bucket.", "admin.config.s3.bucket-path.description": "Podrazumevana putanja koja bi trebalo da se koristi za čuvanje datoteka u S3 bucket-u.",
"admin.config.s3.key": "Key", "admin.config.s3.key": "Ključ",
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "Ključ koji vam omogućava pristup S3 bucket-u.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Tajna",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "Tajna koja vam omogućava pristup S3 bucket-u.",
"admin.config.category.legal": "Legal", "admin.config.s3.use-checksum": "Koristi kontrolnu sumu",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.s3.use-checksum.description": "Isključi za bekende koji ne podržavaju kontrolnu sumu (npr. B2).",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.category.legal": "Pravno",
"admin.config.legal.imprint-text": "Imprint text", "admin.config.legal.enabled": "Omogući pravna obaveštenja",
"admin.config.legal.imprint-text.description": "The text which should be shown in the imprint. Supports Markdown. Leave blank to link to an external imprint page.", "admin.config.legal.enabled.description": "Da li prikazati link do impresuma i politike privatnosti u podnožju.",
"admin.config.legal.imprint-url": "Imprint URL", "admin.config.legal.imprint-text": "Impresum tekst",
"admin.config.legal.imprint-url.description": "If you already have an imprint page you can link it here instead of using the text field.", "admin.config.legal.imprint-text.description": "Tekst koji bi trebalo da bude prikazan u impresumu. Podržava Markdown. Ostavite prazno za linkovanje ka eksternoj stranici impresuma.",
"admin.config.legal.privacy-policy-text": "Privacy policy text", "admin.config.legal.imprint-url": "URL impresuma",
"admin.config.legal.privacy-policy-text.description": "The text which should be shown in the privacy policy. Supports Markdown. Leave blank to link to an external privacy policy page.", "admin.config.legal.imprint-url.description": "Ako već imate stranicu sa impresumom, možete je ovde linkovati umesto korišćenja tekstualnog polja.",
"admin.config.legal.privacy-policy-url": "Privacy policy URL", "admin.config.legal.privacy-policy-text": "Tekst politike privatnosti",
"admin.config.legal.privacy-policy-url.description": "If you already have a privacy policy page you can link it here instead of using the text field.", "admin.config.legal.privacy-policy-text.description": "Tekst koji treba da bude prikazan u politici privatnosti. Podržava Markdown. Ostavite prazno ako želite da povežete eksternu stranicu sa politikom privatnosti.",
"admin.config.legal.privacy-policy-url": "URL politike privatnosti",
"admin.config.legal.privacy-policy-url.description": "Ako već imate stranicu sa politikom privatnosti, možete je povezati ovde umesto da koristite tekstualno polje.",
// 404 // 404
"404.description": "Opa - Ova strana ne postoji.", "404.description": "Ups - Ova strana ne postoji.",
"404.button.home": "Vrati me na početak", "404.button.home": "Vrati me na početak",
// error // error
"error.title": "Greška", "error.title": "Greška",
@@ -498,7 +510,7 @@ export default {
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord", "error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenId Connect", "error.param.provider_oidc": "OpenID Connect",
// Common translations // Common translations
"common.button.save": "Sačuvaj", "common.button.save": "Sačuvaj",
"common.button.create": "Napravi", "common.button.create": "Napravi",
@@ -517,7 +529,7 @@ export default {
"common.button.go-back": "Idi nazad", "common.button.go-back": "Idi nazad",
"common.button.go-home": "Početna stranica", "common.button.go-home": "Početna stranica",
"common.notify.copied": "Vaša veza je kopirana u međuspremnik", "common.notify.copied": "Vaša veza je kopirana u međuspremnik",
"common.notify.copied-link": "Vaša veza je kopirana u međuspremnik", "common.notify.copied-link": "Vaš link je kopiran u međumemoriju (clipboard)",
"common.success": "Uspešno", "common.success": "Uspešno",
"common.error": "Greška", "common.error": "Greška",
"common.error.unknown": "Došlo je do nepoznate greške", "common.error.unknown": "Došlo je do nepoznate greške",

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Дељење {shareId}", "share.title": "Дељење {shareId}",
"share.description": "Погледајте шта сам поделио са вама!", "share.description": "Погледајте шта сам поделио са вама!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Прекорачено је ограничење посетилаца", "share.error.visitor-limit-exceeded.title": "Прекорачено је ограничење посетилаца",
"share.error.visitor-limit-exceeded.description": "Ограничење посетилаца из овог дељења је премашено.", "share.error.visitor-limit-exceeded.description": "Ограничење посетилаца из овог дељења је премашено.",
"share.error.removed.title": "Дељење је уклоњено", "share.error.removed.title": "Дељење је уклоњено",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Конфигурација", "admin.config.title": "Конфигурација",
"admin.config.category.general": "Опште", "admin.config.category.general": "Опште",
"admin.config.category.share": "Дељење", "admin.config.category.share": "Дељење",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Имејл", "admin.config.category.email": "Имејл",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login", "admin.config.category.oauth": "Social Login",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Лого", "admin.config.general.logo": "Лого",
"admin.config.general.logo.description": "Промените свој логотип тако што ћете отпремити нову слику. Слика мора да буде PNG и треба да има формат 1:1.", "admin.config.general.logo.description": "Промените свој логотип тако што ћете отпремити нову слику. Слика мора да буде PNG и треба да има формат 1:1.",
"admin.config.general.logo.placeholder": "Изабери слику", "admin.config.general.logo.placeholder": "Изабери слику",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Омогући дељење са примаоцима имејлом", "admin.config.email.enable-share-email-recipients": "Омогући дељење са примаоцима имејлом",
"admin.config.email.enable-share-email-recipients.description": "Да ли дозволити дељење са примаоцима путем имејла. Омогућите ово само ако је SMTP активиран.", "admin.config.email.enable-share-email-recipients.description": "Да ли дозволити дељење са примаоцима путем имејла. Омогућите ово само ако је SMTP активиран.",
"admin.config.email.share-recipients-subject": "Поделите наслов примаоца", "admin.config.email.share-recipients-subject": "Поделите наслов примаоца",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Порт", "admin.config.smtp.port": "Порт",
"admin.config.smtp.port.description": "Порт домаћина SMTP сервера", "admin.config.smtp.port.description": "Порт домаћина SMTP сервера",
"admin.config.smtp.email": "Имејл", "admin.config.smtp.email": "Имејл",
"admin.config.smtp.email.description": "Адреса имејла са којег се поруке шаљу", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Корисничко име", "admin.config.smtp.username": "Корисничко име",
"admin.config.smtp.username.description": "Корисничко име SMTP сервера", "admin.config.smtp.username.description": "Корисничко име SMTP сервера",
"admin.config.smtp.password": "Лозинка", "admin.config.smtp.password": "Лозинка",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "Ladda upp", "navbar.upload": "Ladda upp",
"navbar.signin": "Logga in", "navbar.signin": "Logga in",
"navbar.home": "Startsida", "navbar.home": "Startsida",
"navbar.signup": "Sign up", "navbar.signup": "Registrera dig",
"navbar.links.shares": "Mina delningar", "navbar.links.shares": "Mina delningar",
"navbar.links.reverse": "Omvända delningar", "navbar.links.reverse": "Omvända delningar",
"navbar.avatar.account": "Mitt konto", "navbar.avatar.account": "Mitt konto",
@@ -16,9 +16,9 @@ export default {
"home.bullet.a.name": "Lokalt installerad", "home.bullet.a.name": "Lokalt installerad",
"home.bullet.a.description": "Hosta Pingvin Share på din egen maskin.", "home.bullet.a.description": "Hosta Pingvin Share på din egen maskin.",
"home.bullet.b.name": "Sekretess", "home.bullet.b.name": "Sekretess",
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.", "home.bullet.b.description": "Dina filer är dina och kommer aldrig att nås av tredje part.",
"home.bullet.c.name": "Ingen irriterande filstorleksbegränsning", "home.bullet.c.name": "Ingen irriterande filstorleksbegränsning",
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.", "home.bullet.c.description": "Ladda upp filer så stora du vill. Endast hårddisken kommer vara din begränsning.",
"home.button.start": "Kom igång", "home.button.start": "Kom igång",
"home.button.source": "Källkod", "home.button.source": "Källkod",
// END / // END /
@@ -34,7 +34,7 @@ export default {
"signIn.notify.totp-required.title": "Tvåfaktorsautentisering krävs", "signIn.notify.totp-required.title": "Tvåfaktorsautentisering krävs",
"signIn.notify.totp-required.description": "Vänligen ange din tvåfaktorsautentiseringskod", "signIn.notify.totp-required.description": "Vänligen ange din tvåfaktorsautentiseringskod",
"signIn.oauth.or": "ELLER", "signIn.oauth.or": "ELLER",
"signIn.oauth.signInWith": "Sign in with", "signIn.oauth.signInWith": "Logga in med",
"signIn.oauth.github": "GitHub", "signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google", "signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft", "signIn.oauth.microsoft": "Microsoft",
@@ -58,12 +58,12 @@ export default {
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Glömt ditt lösenord?", "resetPassword.title": "Glömt ditt lösenord?",
"resetPassword.description": "Ange din e-postadress för att återställa ditt lösenord.", "resetPassword.description": "Ange din e-postadress för att återställa ditt lösenord.",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.", "resetPassword.notify.success": "Ett meddelande med en länk för att återställa ditt lösenord har skickats om den angivna e-postadressen finns registrerad.",
"resetPassword.button.back": "Tillbaka till inloggningssidan", "resetPassword.button.back": "Tillbaka till inloggningssidan",
"resetPassword.text.resetPassword": "Återställ lösenord", "resetPassword.text.resetPassword": "Återställ lösenord",
"resetPassword.text.enterNewPassword": "Ange ditt nya lösenord", "resetPassword.text.enterNewPassword": "Ange ditt nya lösenord",
"resetPassword.input.password": "Nytt lösenord", "resetPassword.input.password": "Nytt lösenord",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.", "resetPassword.notify.passwordReset": "Ditt lösenord har återställts.",
// /account // /account
"account.title": "Mitt konto", "account.title": "Mitt konto",
"account.card.info.title": "Kontoinformation", "account.card.info.title": "Kontoinformation",
@@ -73,7 +73,7 @@ export default {
"account.card.password.title": "Lösenord", "account.card.password.title": "Lösenord",
"account.card.password.old": "Gammalt lösenord", "account.card.password.old": "Gammalt lösenord",
"account.card.password.new": "Nytt lösenord", "account.card.password.new": "Nytt lösenord",
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.", "account.card.password.noPasswordSet": "Du har inget lösenord. För att logga in med din e-postadress och lösenord måste du skapa ett lösenord.",
"account.notify.password.success": "Lösenordet har ändrats", "account.notify.password.success": "Lösenordet har ändrats",
"account.card.oauth.title": "Inloggning via sociala nätverk", "account.card.oauth.title": "Inloggning via sociala nätverk",
"account.card.oauth.github": "GitHub", "account.card.oauth.github": "GitHub",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "Avlänka", "account.card.oauth.unlink": "Avlänka",
"account.card.oauth.unlinked": "Avlänkad", "account.card.oauth.unlinked": "Avlänkad",
"account.modal.unlink.title": "Avlänka konto", "account.modal.unlink.title": "Avlänka konto",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials", "account.modal.unlink.description": "Om du kopplar bort dina sociala konton kan det leda till att du förlorar ditt konto om du inte kommer ihåg dina inloggningsuppgifter",
"account.notify.oauth.unlinked.success": "Avlänkning utförd", "account.notify.oauth.unlinked.success": "Avlänkning utförd",
"account.card.security.title": "Säkerhet", "account.card.security.title": "Säkerhet",
"account.card.security.totp.enable.description": "Ange ditt nuvarande lösenord för att aktivera TOTP", "account.card.security.totp.enable.description": "Ange ditt nuvarande lösenord för att aktivera TOTP",
@@ -121,15 +121,15 @@ export default {
"account.shares.table.name": "Namn", "account.shares.table.name": "Namn",
"account.shares.table.description": "Beskrivning", "account.shares.table.description": "Beskrivning",
"account.shares.table.visitors": "Besökare", "account.shares.table.visitors": "Besökare",
"account.shares.table.expiresAt": "Expires on", "account.shares.table.expiresAt": "Förfaller",
"account.shares.table.createdAt": "Created on", "account.shares.table.createdAt": "Skapad",
"account.shares.table.size": "Storlek", "account.shares.table.size": "Storlek",
"account.shares.table.password-protected": "Password protected", "account.shares.table.password-protected": "Lösenordsskyddad",
"account.shares.table.visitor-count": "{count} of {max}", "account.shares.table.visitor-count": "{count} av {max}",
"account.shares.table.expiry-never": "Never", "account.shares.table.expiry-never": "Aldrig",
"account.shares.modal.share-informations": "Information om delning", "account.shares.modal.share-informations": "Information om delning",
"account.shares.modal.share-link": "Delningslänk", "account.shares.modal.share-link": "Delningslänk",
"account.shares.modal.delete.title": "Delete share: {share}", "account.shares.modal.delete.title": "Ta bort delning: {share}",
"account.shares.modal.delete.description": "Vill du verkligen ta bort denna delning?", "account.shares.modal.delete.description": "Vill du verkligen ta bort denna delning?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
@@ -153,12 +153,12 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "År", "account.reverseShares.modal.expiration.year-singular": "År",
"account.reverseShares.modal.expiration.year-plural": "År", "account.reverseShares.modal.expiration.year-plural": "År",
"account.reverseShares.modal.max-size.label": "Max storlek på delning", "account.reverseShares.modal.max-size.label": "Max storlek på delning",
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "Skicka e-postaviseringar",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.send-email.description": "Skicka ett e-postavisering när en delning skapas med denna länk för omvänd delning.",
"account.reverseShares.modal.simplified": "Simple mode", "account.reverseShares.modal.simplified": "Enkelt läge",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "Gör det enkelt för den som laddar upp filen att dela den med dig. De kommer bara att kunna anpassa namn och beskrivning av delningen.",
"account.reverseShares.modal.public-access": "Public access", "account.reverseShares.modal.public-access": "Allmän åtkomst",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "Gör delningar skapade med denna länk för omvänd delning publik. Om inaktiverad, kommer endast du och delningsskaparen att ha tillgång till den.",
"account.reverseShares.modal.max-use.label": "Maxanvändningar", "account.reverseShares.modal.max-use.label": "Maxanvändningar",
"account.reverseShares.modal.max-use.description": "Den maximala mängden gånger denna URL kan användas för att skapa en delning.", "account.reverseShares.modal.max-use.description": "Den maximala mängden gånger denna URL kan användas för att skapa en delning.",
"account.reverseShare.never-expires": "Denna omvända delning kommer aldrig att förfalla.", "account.reverseShare.never-expires": "Denna omvända delning kommer aldrig att förfalla.",
@@ -177,7 +177,7 @@ export default {
// /admin // /admin
"admin.title": "Administration", "admin.title": "Administration",
"admin.button.users": "Användarhantering", "admin.button.users": "Användarhantering",
"admin.button.shares": "Share management", "admin.button.shares": "Delningshantering",
"admin.button.config": "Konfiguration", "admin.button.config": "Konfiguration",
"admin.version": "Version", "admin.version": "Version",
// END /admin // END /admin
@@ -186,14 +186,14 @@ export default {
"admin.users.table.username": "Användarnamn", "admin.users.table.username": "Användarnamn",
"admin.users.table.email": "E-post", "admin.users.table.email": "E-post",
"admin.users.table.admin": "Administratör", "admin.users.table.admin": "Administratör",
"admin.users.edit.update.title": "Edit user: {username}", "admin.users.edit.update.title": "Redigera användare: {username}",
"admin.users.edit.update.admin-privileges": "Administratörsbehörigheter", "admin.users.edit.update.admin-privileges": "Administratörsbehörigheter",
"admin.users.edit.update.change-password.title": "Ändra lösenord", "admin.users.edit.update.change-password.title": "Ändra lösenord",
"admin.users.edit.update.change-password.field": "Nytt lösenord", "admin.users.edit.update.change-password.field": "Nytt lösenord",
"admin.users.edit.update.change-password.button": "Spara nytt lösenord", "admin.users.edit.update.change-password.button": "Spara nytt lösenord",
"admin.users.edit.update.notify.password.success": "Lösenordet har ändrats", "admin.users.edit.update.notify.password.success": "Lösenordet har ändrats",
"admin.users.edit.delete.title": "Delete user: {username} ?", "admin.users.edit.delete.title": "Ta bort användare: {username} ?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?", "admin.users.edit.delete.description": "Vill du verkligen ta bort denna användare och alla deras delningar?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Skapa användare", "admin.users.modal.create.title": "Skapa användare",
"admin.users.modal.create.username": "Användarnamn", "admin.users.modal.create.username": "Användarnamn",
@@ -205,24 +205,24 @@ export default {
"admin.users.modal.create.admin.description": "Om detta markeras kommer användaren att kunna komma åt administratörspanelen.", "admin.users.modal.create.admin.description": "Om detta markeras kommer användaren att kunna komma åt administratörspanelen.",
// END /admin/users // END /admin/users
// /admin/shares // /admin/shares
"admin.shares.title": "Share management", "admin.shares.title": "Delningshantering",
"admin.shares.table.id": "Share ID", "admin.shares.table.id": "Delnings ID",
"admin.shares.table.username": "Creator", "admin.shares.table.username": "Skapare",
"admin.shares.table.visitors": "Visitors", "admin.shares.table.visitors": "Besökare",
"admin.shares.table.expires": "Expires on", "admin.shares.table.expires": "Förfaller",
"admin.shares.edit.delete.title": "Delete share: {id}", "admin.shares.edit.delete.title": "Ta bort delning: {id}",
"admin.shares.edit.delete.description": "Do you really want to delete this share?", "admin.shares.edit.delete.description": "Vill du verkligen ta bort denna delning?",
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Ladda upp", "upload.title": "Ladda upp",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.", "upload.notify.confirm-leave": "Är du säker på att du vill lämna denna sida? Din uppladdning kommer att avbrytas.",
"upload.notify.generic-error": "Ett fel uppstod när din delning skulle slutföras.", "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.", "upload.notify.count-failed": "{count} filer kunde inte laddas upp. Försöker igen.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link", "upload.reverse-share.error.invalid.title": "Ogiltig länk för omvänd delning",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.", "upload.reverse-share.error.invalid.description": "Denna omvänd delning har gått ut eller är ogiltig.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Ladda upp filer", "upload.dropzone.title": "Ladda upp filer",
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.", "upload.dropzone.description": "Dra 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}.", "upload.dropzone.notify.file-too-big": "Dina filer överskrider den maximala storleken på {maxSize}.",
// FileList.tsx // FileList.tsx
"upload.filelist.name": "Namn", "upload.filelist.name": "Namn",
@@ -234,8 +234,8 @@ export default {
"upload.modal.not-signed-in": "Du är inte inloggad", "upload.modal.not-signed-in": "Du är inte inloggad",
"upload.modal.not-signed-in-description": "Du kommer inte att kunna ta bort din delning manuellt och visa antalet besökare.", "upload.modal.not-signed-in-description": "Du kommer inte att kunna ta bort din delning manuellt och visa antalet besökare.",
"upload.modal.expires.never": "aldrig", "upload.modal.expires.never": "aldrig",
"upload.modal.expires.never-long": "Permanent share", "upload.modal.expires.never-long": "Permanent delning",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.", "upload.modal.expires.error.too-long": "Förfallodatum överskrider maximalt av {max}.",
"upload.modal.link.label": "Länk", "upload.modal.link.label": "Länk",
"upload.modal.expires.label": "Förfaller", "upload.modal.expires.label": "Förfaller",
"upload.modal.expires.minute-singular": "Minut", "upload.modal.expires.minute-singular": "Minut",
@@ -250,9 +250,9 @@ export default {
"upload.modal.expires.month-plural": "Månader", "upload.modal.expires.month-plural": "Månader",
"upload.modal.expires.year-singular": "År", "upload.modal.expires.year-singular": "År",
"upload.modal.expires.year-plural": "År", "upload.modal.expires.year-plural": "År",
"upload.modal.accordion.name-and-description.title": "Name and description", "upload.modal.accordion.name-and-description.title": "Namn och beskrivning",
"upload.modal.accordion.name-and-description.name.placeholder": "Name", "upload.modal.accordion.name-and-description.name.placeholder": "Namn",
"upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share", "upload.modal.accordion.name-and-description.description.placeholder": "Anteckning till mottagare av denna delning",
"upload.modal.accordion.email.title": "E-postmottagare", "upload.modal.accordion.email.title": "E-postmottagare",
"upload.modal.accordion.email.placeholder": "Ange e-postmottagare", "upload.modal.accordion.email.placeholder": "Ange e-postmottagare",
"upload.modal.accordion.email.invalid-email": "Ogiltig e-postadress", "upload.modal.accordion.email.invalid-email": "Ogiltig e-postadress",
@@ -265,29 +265,30 @@ export default {
"upload.modal.completed.never-expires": "Denna delning kommer aldrig att upphöra.", "upload.modal.completed.never-expires": "Denna delning kommer aldrig att upphöra.",
"upload.modal.completed.expires-on": "Denna delning upphör att gälla {expiration}.", "upload.modal.completed.expires-on": "Denna delning upphör att gälla {expiration}.",
"upload.modal.completed.share-ready": "Delning redo", "upload.modal.completed.share-ready": "Delning redo",
"upload.modal.completed.notified-reverse-share-creator": "We have notified the creator of the reverse share. You can also manually share this link with them through other means.", "upload.modal.completed.notified-reverse-share-creator": "Vi har meddelat skaparen av omvänd delning. Du kan också manuellt dela denna länk med dem på andra sätt.",
// END /upload // END /upload
// /share/[id] // /share/[id]
"share.title": "Delning {shareId}", "share.title": "Delning {shareId}",
"share.description": "Titta vad jag har delat med dig!", "share.description": "Titta vad jag har delat med dig!",
"share.fileCount": "{count, plural, =1 {# fil} other {# filer}} · {size} (zip-filen kan vara mindre på grund av komprimering)",
"share.error.visitor-limit-exceeded.title": "Besökargränsen överskriden", "share.error.visitor-limit-exceeded.title": "Besökargränsen överskriden",
"share.error.visitor-limit-exceeded.description": "Gränsen för antalet besökare för denna delning har överskridits.", "share.error.visitor-limit-exceeded.description": "Gränsen för antalet besökare för denna delning har överskridits.",
"share.error.removed.title": "Delning borttagen", "share.error.removed.title": "Delning borttagen",
"share.error.not-found.title": "Delningen hittades inte", "share.error.not-found.title": "Delningen hittades inte",
"share.error.not-found.description": "Delningen du letar efter existerar inte.", "share.error.not-found.description": "Delningen du letar efter existerar inte.",
"share.error.access-denied.title": "Private share", "share.error.access-denied.title": "Privat delning",
"share.error.access-denied.description": "The current account does not have permission to access this share", "share.error.access-denied.description": "Det aktuella kontot har inte behörighet att komma åt denna delning",
"share.modal.password.title": "Lösenord krävs", "share.modal.password.title": "Lösenord krävs",
"share.modal.password.description": "Please enter the password to access this share.", "share.modal.password.description": "Ange lösenordet för att komma åt denna delning.",
"share.modal.password": "Lösenord", "share.modal.password": "Lösenord",
"share.modal.error.invalid-password": "Ogiltigt lösenord", "share.modal.error.invalid-password": "Ogiltigt lösenord",
"share.button.download-all": "Ladda ner allt", "share.button.download-all": "Ladda ner allt",
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.", "share.notify.download-all-preparing": "Delningen förbereds. Försök igen om några minuter.",
"share.modal.file-link": "Fillänk", "share.modal.file-link": "Fillänk",
"share.table.name": "Namn", "share.table.name": "Namn",
"share.table.size": "Storlek", "share.table.size": "Storlek",
"share.modal.file-preview.error.not-supported.title": "Förhandsgranskning stöds ej", "share.modal.file-preview.error.not-supported.title": "Förhandsgranskning stöds ej",
"share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.", "share.modal.file-preview.error.not-supported.description": "Förhandsvisningar stöds inte för denna typ av filer. Ladda ner filen för att se den.",
// END /share/[id] // END /share/[id]
// /share/[id]/edit // /share/[id]/edit
"share.edit.title": "Redigera {shareId}", "share.edit.title": "Redigera {shareId}",
@@ -296,17 +297,18 @@ export default {
"share.edit.notify.save-success": "Delningen har uppdaterats", "share.edit.notify.save-success": "Delningen har uppdaterats",
// END /share/[id]/edit // END /share/[id]/edit
// /imprint // /imprint
"imprint.title": "Imprint", "imprint.title": "Avtryck",
// END /imprint // END /imprint
// /privacy // /privacy
"privacy.title": "Privacy Policy", "privacy.title": "Integritetspolicy",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Konfigurationsfil finns",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Eftersom du har en konfigurerad Pingvin Share med en konfigurationsfil kan du inte ändra konfigurationen genom UI.",
"admin.config.title": "Konfiguration", "admin.config.title": "Konfiguration",
"admin.config.category.general": "Allmänt", "admin.config.category.general": "Allmänt",
"admin.config.category.share": "Delning", "admin.config.category.share": "Delning",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "E-post", "admin.config.category.email": "E-post",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Inloggning via sociala nätverk", "admin.config.category.oauth": "Inloggning via sociala nätverk",
@@ -314,70 +316,78 @@ export default {
"admin.config.general.app-name.description": "Namn på applikationen", "admin.config.general.app-name.description": "Namn på applikationen",
"admin.config.general.app-url": "Appens URL", "admin.config.general.app-url": "Appens URL",
"admin.config.general.app-url.description": "På vilken URL Pingvin Share finns", "admin.config.general.app-url.description": "På vilken URL Pingvin Share finns",
"admin.config.general.secure-cookies": "Secure cookies", "admin.config.general.secure-cookies": "Skydda kakor",
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.", "admin.config.general.secure-cookies.description": "Om du vill ställa in den säkra flaggan på kakor. Om aktiverad, kommer webbplatsen inte att fungera när den används via HTTP.",
"admin.config.general.show-home-page": "Visa startsidan", "admin.config.general.show-home-page": "Visa startsidan",
"admin.config.general.show-home-page.description": "Om du vill visa startsidan", "admin.config.general.show-home-page.description": "Om du vill visa startsidan",
"admin.config.general.session-duration": "Session Duration", "admin.config.general.session-duration": "Sessionsvaraktighet",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "Tid efter vilken en användare måste logga in igen (standard: 3 månader).",
"admin.config.general.logo": "Logotyp", "admin.config.general.logo": "Logotyp",
"admin.config.general.logo.description": "Ändra din logotyp genom att ladda upp en ny bild. Bilden måste vara en PNG och bör ha formatet 1:1.", "admin.config.general.logo.description": "Ändra din logotyp genom att ladda upp en ny bild. Bilden måste vara en PNG och bör ha formatet 1:1.",
"admin.config.general.logo.placeholder": "Välj bild", "admin.config.general.logo.placeholder": "Välj bild",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.cache.ttl": "TTL",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Aktivera delning av e-postmottagare",
"admin.config.email.enable-share-email-recipients.description": "Om du vill tillåta e-postdelning med mottagare. Aktivera endast detta om SMTP är aktiverat.",
"admin.config.email.share-recipients-subject": "Delning ämne", "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-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": "Delning meddelande",
"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 {creatorEmail} - The email 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 These variables will be replaced with the actual value.", "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 {creatorEmail} - E-postadressen 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": "Omvänd delning ämne",
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.", "admin.config.email.reverse-share-subject.description": "Ämne för det skickade e-postmeddelandet 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": "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.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": "Återställ lösenord ämne",
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.", "admin.config.email.reset-password-subject.description": "Ämne för det skickade e-postmeddelandet när en användare begär en återställning av lösenordet.",
"admin.config.email.reset-password-message": "Återställ lösenord meddelande", "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.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", "admin.config.email.invite-subject": "Inbjudan ämne",
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.", "admin.config.email.invite-subject.description": "Ämne för det skickade e-postmeddelandet när en administratör bjuder in en användare.",
"admin.config.email.invite-message": "Inbjudningsmeddelanden", "admin.config.email.invite-message": "Inbjudningsmeddelanden",
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.", "admin.config.email.invite-message.description": "Meddelande som skickas när en administratör bjuder in en användare. {url} kommer att ersättas med inbjudningsadressen och {password} med lösenordet.",
"admin.config.share.allow-registration": "Tillåt registrering", "admin.config.share.allow-registration": "Tillåt registrering",
"admin.config.share.allow-registration.description": "Om registrering är tillåten", "admin.config.share.allow-registration.description": "Om registrering är tillåten",
"admin.config.share.allow-unauthenticated-shares": "Tillåt oautentiserade delningar", "admin.config.share.allow-unauthenticated-shares": "Tillåt oautentiserade delningar",
"admin.config.share.allow-unauthenticated-shares.description": "Om oautentiserade användare kan skapa delningar", "admin.config.share.allow-unauthenticated-shares.description": "Om oautentiserade användare kan skapa delningar",
"admin.config.share.max-expiration": "Max utgångsdatum", "admin.config.share.max-expiration": "Max utgångsdatum",
"admin.config.share.max-expiration.description": "Maximum share expiration. Set to 0 to allow unlimited expiration.", "admin.config.share.max-expiration.description": "Max längd innan en delning förfaller. Sätt till 0 för att tillåta obegränsad förfallotid.",
"admin.config.share.share-id-length": "Default share ID length", "admin.config.share.share-id-length": "Standardlängd på delnings-ID",
"admin.config.share.share-id-length.description": "Default length for the generated ID of a share. This value is also used to generate links for reverse shares. A value below 8 is not considered secure.", "admin.config.share.share-id-length.description": "Standardlängd för genererat ID för en delning. Detta värde används också för att generera länkar för omvända delningar. Ett värde under 8 anses inte vara säkert.",
"admin.config.share.max-size": "Max storlek", "admin.config.share.max-size": "Max storlek",
"admin.config.share.max-size.description": "Maximal storlek för delning", "admin.config.share.max-size.description": "Maximal storlek för delning",
"admin.config.share.zip-compression-level": "Komprimeringsnivå för zip", "admin.config.share.zip-compression-level": "Komprimeringsnivå för zip",
"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.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.share.chunk-size": "Bitstorleken", "admin.config.share.chunk-size": "Bitstorleken",
"admin.config.share.chunk-size.description": "Adjust the chunk size for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.", "admin.config.share.chunk-size.description": "Justera bitstorleken för dina uppladdningar för att balansera effektivitet och tillförlitlighet enligt din internetanslutning. Mindre bitar kan öka framgångsgraden för instabila anslutningar, medan större bitar snabbar upp uppladdningar för stabila anslutningar.",
"admin.config.share.auto-open-share-modal": "Auto open create share modal", "admin.config.share.auto-open-share-modal": "Öppna automatiskt skapa delningsmodal",
"admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.", "admin.config.share.auto-open-share-modal.description": "Modalen för att skapa delning visas automatiskt när en användare väljer filer, vilket tar bort behovet av att manuellt klicka på knappen.",
"admin.config.smtp.enabled": "Enable", "admin.config.smtp.enabled": "Aktivera",
"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.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": "Adress",
"admin.config.smtp.host.description": "Adress för SMTP-servern", "admin.config.smtp.host.description": "Adress för SMTP-servern",
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "Port för SMTP-servern", "admin.config.smtp.port.description": "Port för SMTP-servern",
"admin.config.smtp.email": "E-post", "admin.config.smtp.email": "E-post",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "E-postadress som e-postmeddelanden skickas från",
"admin.config.smtp.username": "Användarnamn", "admin.config.smtp.username": "Användarnamn",
"admin.config.smtp.username.description": "Användarnamn för SMTP-servern", "admin.config.smtp.username.description": "Användarnamn för SMTP-servern",
"admin.config.smtp.password": "Lösenord", "admin.config.smtp.password": "Lösenord",
"admin.config.smtp.password.description": "Lösenord för SMTP-servern", "admin.config.smtp.password.description": "Lösenord för SMTP-servern",
"admin.config.smtp.button.test": "Skicka testmeddelande", "admin.config.smtp.button.test": "Skicka testmeddelande",
"admin.config.smtp.allow-unauthorized-certificates": "Trust unauthorized SMTP server certificates", "admin.config.smtp.allow-unauthorized-certificates": "Lita på obehöriga SMTP-servercertifikat",
"admin.config.smtp.allow-unauthorized-certificates.description": "Only set this to true if you need to trust self signed certificates.", "admin.config.smtp.allow-unauthorized-certificates.description": "Sätt endast detta till sant om du behöver lita på självsignerade certifikat.",
"admin.config.oauth.allow-registration": "Tillåt registrering", "admin.config.oauth.allow-registration": "Tillåt registrering",
"admin.config.oauth.allow-registration.description": "Tillåt användare att registrera sig via social inloggning", "admin.config.oauth.allow-registration.description": "Tillåt användare att registrera sig via social inloggning",
"admin.config.oauth.ignore-totp": "Ignorera TOTP", "admin.config.oauth.ignore-totp": "Ignorera TOTP",
"admin.config.oauth.ignore-totp.description": "Om du vill ignorera TOTP när användaren använder social inloggning", "admin.config.oauth.ignore-totp.description": "Om du vill ignorera TOTP när användaren använder social inloggning",
"admin.config.oauth.disable-password": "Disable password login", "admin.config.oauth.disable-password": "Inaktivera lösenordsinloggning",
"admin.config.oauth.disable-password.description": "Whether to disable password login\nMake sure that an OAuth provider is properly configured before activating this configuration to avoid being locked out.", "admin.config.oauth.disable-password.description": "Om du vill inaktivera lösenordsinloggning\nSe till att en OAuth leverantör är korrekt konfigurerad innan du aktiverar denna konfiguration för att undvika att bli låst.",
"admin.config.oauth.github-enabled": "GitHub", "admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Om GitHub-inloggning är aktiverad", "admin.config.oauth.github-enabled.description": "Om GitHub-inloggning är aktiverad",
"admin.config.oauth.github-client-id": "GitHub Client ID", "admin.config.oauth.github-client-id": "GitHub Client ID",
@@ -400,8 +410,8 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Client secret för Microsoft OAuth", "admin.config.oauth.microsoft-client-secret.description": "Client secret för Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Om inloggning via Discord är aktiverat", "admin.config.oauth.discord-enabled.description": "Om inloggning via Discord är aktiverat",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "Discord begränsade användare",
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.", "admin.config.oauth.discord-limited-users.description": "Begränsa inloggning till specifika användare genom deras Discord-ID. Lämna det tomt för att inaktivera.",
"admin.config.oauth.discord-limited-guild": "Discord begränsa till server ID", "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-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": "Discord Client ID",
@@ -412,70 +422,72 @@ export default {
"admin.config.oauth.oidc-enabled.description": "Om OpenID-inloggning är aktiverat", "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": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI för OpenID Connect OAuth appen", "admin.config.oauth.oidc-discovery-uri.description": "Discovery URI för OpenID Connect OAuth appen",
"admin.config.oauth.oidc-sign-out": "Sign out from OpenID Connect", "admin.config.oauth.oidc-sign-out": "Logga ut från OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Whether the “Sign out” button will sign out from the OpenID Connect provider", "admin.config.oauth.oidc-sign-out.description": "Om \"Logga ut\" knappen kommer att logga ut från OpenID Connect leverantör",
"admin.config.oauth.oidc-scope": "OpenID Connect scope", "admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.", "admin.config.oauth.oidc-scope.description": "Scopes som ska begäras från OpenID Connect-provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect användarnamnsanspråk", "admin.config.oauth.oidc-username-claim": "OpenID Connect användarnamn claim",
"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-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-role-path": "Path to roles in OpenID Connect token", "admin.config.oauth.oidc-role-path": "Sökväg till roller i OpenID Connect token",
"admin.config.oauth.oidc-role-path.description": "Must be a valid JMES path referencing an array of roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "Leave it blank if you don't know what this config is.", "admin.config.oauth.oidc-role-path.description": "Måste vara en giltig JMES-sökväg som refererar till en lista med roller. " + "Hantera åtkomsträttigheter med OpenID Connect-roller rekommenderas endast om ingen annan identitetsleverantör är konfigurerad och lösenord inloggning är inaktiverad. " + "Lämna det tomt om du inte vet vad denna konfiguration är.",
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access", "admin.config.oauth.oidc-role-general-access": "OpenID Connect-roll för allmän åtkomst",
"admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a users roles for them to log in. " + "Leave it blank if you don't know what this config is.", "admin.config.oauth.oidc-role-general-access.description": "Roll som krävs för allmän åtkomst. Måste finnas i en användares roller för att de ska kunna logga in. " + "Lämna det tomt om du inte vet vad denna konfiguration är.",
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access", "admin.config.oauth.oidc-role-admin-access": "OpenID Connect roll för administratörsåtkomst",
"admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a users roles for them to access the admin panel. " + "Leave it blank if you don't know what this config is.", "admin.config.oauth.oidc-role-admin-access.description": "Roll som krävs för administratörsåtkomst. Måste finnas i en användares roller för att de ska kunna komma ät administratörspanelen. " + "Lämna det 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": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID för OpenID OAuth", "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": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret för OpenID OAuth", "admin.config.oauth.oidc-client-secret.description": "Client secret för OpenID OAuth",
"admin.config.category.ldap": "LDAP", "admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP", "admin.config.ldap.enabled": "Aktivera LDAP",
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login", "admin.config.ldap.enabled.description": "Använd LDAP-autentisering för användarinloggning",
"admin.config.ldap.url": "Server URL", "admin.config.ldap.url": "Server-URL",
"admin.config.ldap.url.description": "URL of the LDAP server", "admin.config.ldap.url.description": "URL till LDAP-servern",
"admin.config.ldap.bind-dn": "Bind DN", "admin.config.ldap.bind-dn": "Bind DN",
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search", "admin.config.ldap.bind-dn.description": "Standardanvändaren som används för att utföra användarens sökning",
"admin.config.ldap.bind-password": "Bind password", "admin.config.ldap.bind-password": "Bind lösenord",
"admin.config.ldap.bind-password.description": "Password used to perform the user search", "admin.config.ldap.bind-password.description": "Lösenord som används för att utföra användarsökningen",
"admin.config.ldap.search-base": "User base", "admin.config.ldap.search-base": "Användarbas",
"admin.config.ldap.search-base.description": "Base location, where the user search will be performed", "admin.config.ldap.search-base.description": "Bas plats, där användarsökningen kommer att utföras",
"admin.config.ldap.search-query": "User query", "admin.config.ldap.search-query": "Användar fråga",
"admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.", "admin.config.ldap.search-query.description": "Användarfrågan kommer att användas för att söka i 'Användarbasen' för LDAP-användaren. %username% kan användas som platshållare för användaren angiven indata.",
"admin.config.ldap.admin-groups": "Admin group", "admin.config.ldap.admin-groups": "Administratörsgrupp",
"admin.config.ldap.admin-groups.description": "Group required for administrative access.", "admin.config.ldap.admin-groups.description": "Grupp krävs för administrativ åtkomst.",
"admin.config.ldap.field-name-member-of": "User groups attribute name", "admin.config.ldap.field-name-member-of": "Attributnamn för användargrupper",
"admin.config.ldap.field-name-member-of.description": "LDAP attribute name for the groups, an user is a member of. This is used when checking for the admin group.", "admin.config.ldap.field-name-member-of.description": "LDAP-attributnamn för grupperna, en användare är medlem av. Detta används när du söker efter administratörsgruppen.",
"admin.config.ldap.field-name-email": "User email attribute name", "admin.config.ldap.field-name-email": "Attributnamn för e-postadress",
"admin.config.ldap.field-name-email.description": "LDAP attribute name for the email of an user.", "admin.config.ldap.field-name-email.description": "LDAP-attributnamn för e-postadress till en användare.",
"admin.config.notify.success": "Configuration updated successfully.", "admin.config.notify.success": "Konfigurationen har uppdaterats.",
"admin.config.notify.logo-success": "Logo updated successfully. It may take a few minutes to update on the website.", "admin.config.notify.logo-success": "Logotypen har uppdaterats. Det kan ta några minuter att uppdatera på webbplatsen.",
"admin.config.notify.no-changes": "No changes to save.", "admin.config.notify.no-changes": "Inga ändringar att spara.",
"admin.config.category.s3": "S3", "admin.config.category.s3": "S3",
"admin.config.s3.enabled": "Enabled", "admin.config.s3.enabled": "Aktiverad",
"admin.config.s3.enabled.description": "Whether S3 should be used to store the shared files instead of the local file system.", "admin.config.s3.enabled.description": "Om S3 ska användas för att lagra de delade filerna istället för det lokala filsystemet.",
"admin.config.s3.endpoint": "Endpoint", "admin.config.s3.endpoint": "Endpoint",
"admin.config.s3.endpoint.description": "The URL of the S3 bucket.", "admin.config.s3.endpoint.description": "Webbadressen till S3 bucket.",
"admin.config.s3.region": "Region", "admin.config.s3.region": "Region",
"admin.config.s3.region.description": "The region of the S3 bucket.", "admin.config.s3.region.description": "Regionen av S3 bucket.",
"admin.config.s3.bucket-name": "Bucket name", "admin.config.s3.bucket-name": "Bucket namn",
"admin.config.s3.bucket-name.description": "The name of the S3 bucket.", "admin.config.s3.bucket-name.description": "Namnet på S3 bucket.",
"admin.config.s3.bucket-path": "Path", "admin.config.s3.bucket-path": "Sökväg",
"admin.config.s3.bucket-path.description": "The default path which should be used to store the files in the S3 bucket.", "admin.config.s3.bucket-path.description": "Standardsökvägen som ska användas för att lagra filerna i S3 bucket.",
"admin.config.s3.key": "Key", "admin.config.s3.key": "Nyckel",
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "Nyckeln som gör att du kan komma åt S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Hemlighet",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "Hemligheten som gör att du kan komma åt S3 bucket.",
"admin.config.category.legal": "Legal", "admin.config.s3.use-checksum": "Använd kontrollsumma",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.s3.use-checksum.description": "Stäng av för backends som inte stöder kontrollsumma (t.ex. B2).",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.category.legal": "Juridisk",
"admin.config.legal.imprint-text": "Imprint text", "admin.config.legal.enabled": "Aktivera juridiska meddelanden",
"admin.config.legal.imprint-text.description": "The text which should be shown in the imprint. Supports Markdown. Leave blank to link to an external imprint page.", "admin.config.legal.enabled.description": "Om en länk till utgivarinformation och integritetspolicy ska visas i sidfoten.",
"admin.config.legal.imprint-url": "Imprint URL", "admin.config.legal.imprint-text": "Utgivarinformationstext",
"admin.config.legal.imprint-url.description": "If you already have an imprint page you can link it here instead of using the text field.", "admin.config.legal.imprint-text.description": "Texten som ska visas i utgivarinformationen. Stödjer Markdown. Lämna tomt för att länka till en extern sida för utgivarinformation.",
"admin.config.legal.privacy-policy-text": "Privacy policy text", "admin.config.legal.imprint-url": "Länk till utgivarinformation",
"admin.config.legal.privacy-policy-text.description": "The text which should be shown in the privacy policy. Supports Markdown. Leave blank to link to an external privacy policy page.", "admin.config.legal.imprint-url.description": "Om du redan har en sida för utgivarinformation kan du länka till den här istället för att använda textfältet.",
"admin.config.legal.privacy-policy-url": "Privacy policy URL", "admin.config.legal.privacy-policy-text": "Integritetspolicytext",
"admin.config.legal.privacy-policy-url.description": "If you already have a privacy policy page you can link it here instead of using the text field.", "admin.config.legal.privacy-policy-text.description": "Texten som ska visas i integritetspolicy. Stödjer Markdown. Lämna tomt för att länka till en extern sida för integritetspolicy.",
"admin.config.legal.privacy-policy-url": "Länk till integritetspolicy",
"admin.config.legal.privacy-policy-url.description": "Om du redan har en sida för integritetspolicy kan du länka till den här istället för att använda textfältet.",
// 404 // 404
"404.description": "Hoppsan den här sidan finns inte.", "404.description": "Hoppsan den här sidan finns inte.",
"404.button.home": "Ta mig tillbaka hem", "404.button.home": "Ta mig tillbaka hem",
@@ -490,10 +502,10 @@ export default {
"error.msg.no_user": "Användare som är länkad till detta {0} konto finns inte.", "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.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.already_linked": "Detta {0} konto är redan länkat till ett annat konto.",
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.", "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.unverified_account": "Detta {0} -konto är overifierat, försök igen efter verifiering.",
"error.msg.user_not_allowed": "Du är inte tillåten att logga in.", "error.msg.user_not_allowed": "Du är inte tillåten att logga in.",
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.", "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_github": "GitHub",
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
@@ -511,9 +523,9 @@ export default {
"common.button.generate": "Generera", "common.button.generate": "Generera",
"common.button.done": "Klar", "common.button.done": "Klar",
"common.text.link": "Länk", "common.text.link": "Länk",
"common.text.navigate-to-link": "Visit link", "common.text.navigate-to-link": "Besök länk",
"common.text.or": "eller", "common.text.or": "eller",
"common.text.redirecting": "Redirecting...", "common.text.redirecting": "Omdirigerar...",
"common.button.go-back": "Gå tillbaka", "common.button.go-back": "Gå tillbaka",
"common.button.go-home": "Gå hem", "common.button.go-home": "Gå hem",
"common.notify.copied": "Din länk har kopierats till urklipp", "common.notify.copied": "Din länk har kopierats till urklipp",
@@ -524,8 +536,8 @@ export default {
"common.error.invalid-email": "Ogiltig e-postadress", "common.error.invalid-email": "Ogiltig e-postadress",
"common.error.too-short": "Måste minst vara {length} tecken långt", "common.error.too-short": "Måste minst vara {length} tecken långt",
"common.error.too-long": "Får högst innehålla {length} tecken", "common.error.too-long": "Får högst innehålla {length} tecken",
"common.error.number-too-small": "Must be at least {min}", "common.error.number-too-small": "Måste vara minst {min}",
"common.error.number-too-large": "Must be at most {max}", "common.error.number-too-large": "Måste vara som mest {max}",
"common.error.exact-length": "Måste vara exakt {length} tecken långt", "common.error.exact-length": "Måste vara exakt {length} tecken långt",
"common.error.invalid-number": "Måste vara ett tal", "common.error.invalid-number": "Måste vara ett tal",
"common.error.field-required": "Obligatoriskt fält" "common.error.field-required": "Obligatoriskt fält"

View File

@@ -33,7 +33,7 @@ export default {
"signin.button.submit": "เข้าสู่ระบบ", "signin.button.submit": "เข้าสู่ระบบ",
"signIn.notify.totp-required.title": "ยืนยันตรวจสอบสิทธิ์สองปัจจัย", "signIn.notify.totp-required.title": "ยืนยันตรวจสอบสิทธิ์สองปัจจัย",
"signIn.notify.totp-required.description": "กรุณาใส่รหัสยืนยันตัวตนสองปัจจัย", "signIn.notify.totp-required.description": "กรุณาใส่รหัสยืนยันตัวตนสองปัจจัย",
"signIn.oauth.or": "OR", "signIn.oauth.or": "หรือ",
"signIn.oauth.signInWith": "Sign in with", "signIn.oauth.signInWith": "Sign in with",
"signIn.oauth.github": "GitHub", "signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google", "signIn.oauth.google": "Google",
@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "แชร์ {shareId}", "share.title": "แชร์ {shareId}",
"share.description": "ดูสิ่งที่ฉันแชร์กับคุณ!", "share.description": "ดูสิ่งที่ฉันแชร์กับคุณ!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "เกินขีดจำกัดผู้เข้าชม", "share.error.visitor-limit-exceeded.title": "เกินขีดจำกัดผู้เข้าชม",
"share.error.visitor-limit-exceeded.description": "การแชร์นี้ได้เกินขีดจำกัดผู้เข้าชมแล้ว", "share.error.visitor-limit-exceeded.description": "การแชร์นี้ได้เกินขีดจำกัดผู้เข้าชมแล้ว",
"share.error.removed.title": "การแชร์ถูกลบ", "share.error.removed.title": "การแชร์ถูกลบ",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "การตั้งค่า", "admin.config.title": "การตั้งค่า",
"admin.config.category.general": "ทั่วไป", "admin.config.category.general": "ทั่วไป",
"admin.config.category.share": "การแชร์", "admin.config.category.share": "การแชร์",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "อีเมล", "admin.config.category.email": "อีเมล",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login", "admin.config.category.oauth": "Social Login",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "โลโก้", "admin.config.general.logo": "โลโก้",
"admin.config.general.logo.description": "เปลี่ยนโลโก้โดยอัปโหลดรูปภาพใหม่ รูปภาพต้องเป็น PNG และควรมีขนาดอัตราส่วน 1:1", "admin.config.general.logo.description": "เปลี่ยนโลโก้โดยอัปโหลดรูปภาพใหม่ รูปภาพต้องเป็น PNG และควรมีขนาดอัตราส่วน 1:1",
"admin.config.general.logo.placeholder": "คลิกที่นี่หรือลากไฟล์มา", "admin.config.general.logo.placeholder": "คลิกที่นี่หรือลากไฟล์มา",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "หัวเรื่องผู้รับอีเมลของการแชร์", "admin.config.email.share-recipients-subject": "หัวเรื่องผู้รับอีเมลของการแชร์",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "พอร์ต", "admin.config.smtp.port": "พอร์ต",
"admin.config.smtp.port.description": "พอร์ตของเซิร์ฟเวอร์ SMTP", "admin.config.smtp.port.description": "พอร์ตของเซิร์ฟเวอร์ SMTP",
"admin.config.smtp.email": "อีเมล", "admin.config.smtp.email": "อีเมล",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "ชื่อผู้ใช้", "admin.config.smtp.username": "ชื่อผู้ใช้",
"admin.config.smtp.username.description": "ชื่อผู้ใช้ของเซิร์ฟเวอร์ SMTP", "admin.config.smtp.username.description": "ชื่อผู้ใช้ของเซิร์ฟเวอร์ SMTP",
"admin.config.smtp.password": "รหัสผ่าน", "admin.config.smtp.password": "รหัสผ่าน",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",
@@ -483,7 +495,7 @@ export default {
"error.title": "Error", "error.title": "Error",
"error.description": "Oops!", "error.description": "Oops!",
"error.button.back": "Go back", "error.button.back": "Go back",
"error.msg.default": "Something went wrong.", "error.msg.default": "มีบางอย่างผิดพลาด",
"error.msg.access_denied": "You canceled the authentication process, please try again.", "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.expired_token": "The authentication process took too long, please try again.",
"error.msg.invalid_token": "Internal Error", "error.msg.invalid_token": "Internal Error",

View File

@@ -1,36 +1,36 @@
export default { export default {
// Navbar // Navbar
"navbar.upload": "Yükle", "navbar.upload": "Yükle",
"navbar.signin": "Giriş yap", "navbar.signin": "Giriş Yap",
"navbar.home": "Ana Sayfa", "navbar.home": "Anasayfa",
"navbar.signup": "Kaydol", "navbar.signup": "Kayıt Ol",
"navbar.links.shares": "Paylaşımlarım", "navbar.links.shares": "Paylaşımlarım",
"navbar.links.reverse": "Ters paylaşımlar", "navbar.links.reverse": "Karşı Paylaşımlar",
"navbar.avatar.account": "Hesabım", "navbar.avatar.account": "Hesabım",
"navbar.avatar.admin": "Yönetim", "navbar.avatar.admin": "Yönetim",
"navbar.avatar.signout": ıkış yap", "navbar.avatar.signout": ıkış Yap",
// END navbar // END navbar
// / // /
"home.title": "Kendi <h>kendine barındırılan</h> bir dosya paylaşım platformu.", "home.title": "Kendi sunucunuzda <h>barındırabileceğiniz</h> bir dosya paylaşım platformu.",
"home.description": "Kişisel dosyalarınızı WeTransfer gibi üçüncü tarafların eline gerçekten vermek ister misiniz?", "home.description": "Kişisel dosyalarınızı gerçekten WeTransfer gibi üçüncü taraf hizmetlere emanet etmek istiyor musunuz?",
"home.bullet.a.name": "Kendi Kendine Barındırılan", "home.bullet.a.name": "Kendi Sunucunda Barındır",
"home.bullet.a.description": "Pingvin Share'i kendi cihazınızda barındırın.", "home.bullet.a.description": "Pingvin Share'i kendi sunucunuzda barındırın.",
"home.bullet.b.name": "Gizlilik", "home.bullet.b.name": "Gizlilik",
"home.bullet.b.description": "Dosyalarınız size aittir ve asla üçüncü taraflar tarafından erişilemez.", "home.bullet.b.description": "Dosyalarınız size aittir ve asla üçüncü taraflarca erişilemez.",
"home.bullet.c.name": "Can sıkıcı boyut sınırı yok", "home.bullet.c.name": "Can Sıkıcı Dosya Boyutu Limiti Yok",
"home.bullet.c.description": "İstediğiniz kadar büyük dosyaları yükleyin. Sadece sabit diskiniz sınırınız olacak.", "home.bullet.c.description": "İstediğiniz kadar büyük dosyalar yükleyin. Tek limitiniz sabit diskiniz olacak.",
"home.button.start": "Başlayın", "home.button.start": "Hemen Başlayın",
"home.button.source": "Kaynak kodu", "home.button.source": "Kaynak Kodu",
// END / // END /
// /auth/signin // /auth/signin
"signin.title": "Tekrar hoş geldiniz", "signin.title": "Tekrar hoş geldiniz",
"signin.description": "Henüz bir hesabınız yok mu?", "signin.description": "Henüz bir hesabınız yok mu?",
"signin.button.signup": "Kaydol", "signin.button.signup": "Kayıt Ol",
"signin.input.email-or-username": "E-posta veya kullanıcı adı", "signin.input.email-or-username": "E-posta veya kullanıcı adı",
"signin.input.email-or-username.placeholder": "E-posta adresiniz veya kullanıcı adınız", "signin.input.email-or-username.placeholder": "E-postanız veya kullanıcı adınız",
"signin.input.password": "Şifre", "signin.input.password": "Şifre",
"signin.input.password.placeholder": "Şifreniz", "signin.input.password.placeholder": "Şifreniz",
"signin.button.submit": "Giriş yap", "signin.button.submit": "Giriş Yap",
"signIn.notify.totp-required.title": "İki faktörlü kimlik doğrulama gerekli", "signIn.notify.totp-required.title": "İki faktörlü kimlik doğrulama gerekli",
"signIn.notify.totp-required.description": "Lütfen iki faktörlü kimlik doğrulama kodunuzu girin", "signIn.notify.totp-required.description": "Lütfen iki faktörlü kimlik doğrulama kodunuzu girin",
"signIn.oauth.or": "VEYA", "signIn.oauth.or": "VEYA",
@@ -42,24 +42,24 @@ export default {
"signIn.oauth.oidc": "OpenID", "signIn.oauth.oidc": "OpenID",
// END /auth/signin // END /auth/signin
// /auth/signup // /auth/signup
"signup.title": "Bir hesap oluşturun", "signup.title": "Hesap oluştur",
"signup.description": "Zaten bir hesabınız var mı?", "signup.description": "Zaten bir hesabınız var mı?",
"signup.button.signin": "Giriş yap", "signup.button.signin": "Giriş Yap",
"signup.input.username": "Kullanıcı adı", "signup.input.username": "Kullanıcı adı",
"signup.input.username.placeholder": "Kullanıcı adınız", "signup.input.username.placeholder": "Kullanıcı adınız",
"signup.input.email": "E-posta", "signup.input.email": "E-posta",
"signup.input.email.placeholder": "E-posta adresiniz", "signup.input.email.placeholder": "E-postanız",
"signup.button.submit": "Başlayalım", "signup.button.submit": "Hadi başlayalım",
// END /auth/signup // END /auth/signup
// /auth/totp // /auth/totp
"totp.title": "TOTP Doğrulama", "totp.title": "TOTP ile Kimlik Doğrulama",
"totp.button.signIn": "Giriş yap", "totp.button.signIn": "Giriş Yap",
// END /auth/totp // END /auth/totp
// /auth/reset-password // /auth/reset-password
"resetPassword.title": "Şifrenizi mi unuttunuz?", "resetPassword.title": "Şifrenizi mi unuttunuz?",
"resetPassword.description": "Şifrenizi sıfırlamak için e-postanızı girin.", "resetPassword.description": "Şifrenizi sıfırlamak için e-postanızı girin.",
"resetPassword.notify.success": "Sağlanan e-posta adresi mevcutsa, şifrenizi sıfırlamanız için bir bağlantı gönderildi.", "resetPassword.notify.success": "Girilen e-posta adresi mevcutsa, şifrenizi sıfırlamanız için bir bağlantı içeren bir mesaj gönderilmiştir.",
"resetPassword.button.back": "Giriş sayfasına geri dön", "resetPassword.button.back": "Giriş yapma sayfasına geri dön",
"resetPassword.text.resetPassword": "Şifreyi sıfırla", "resetPassword.text.resetPassword": "Şifreyi sıfırla",
"resetPassword.text.enterNewPassword": "Yeni şifrenizi girin", "resetPassword.text.enterNewPassword": "Yeni şifrenizi girin",
"resetPassword.input.password": "Yeni şifre", "resetPassword.input.password": "Yeni şifre",
@@ -73,9 +73,9 @@ export default {
"account.card.password.title": "Şifre", "account.card.password.title": "Şifre",
"account.card.password.old": "Eski şifre", "account.card.password.old": "Eski şifre",
"account.card.password.new": "Yeni şifre", "account.card.password.new": "Yeni şifre",
"account.card.password.noPasswordSet": "Şifreniz ayarlanmadı. E-posta ve şifre kullanarak giriş yapmak için bir şifre oluşturmanız gerekiyor.", "account.card.password.noPasswordSet": "Henüz bir şifre belirlemediniz. E-posta ve şifrenizle giriş yapabilmek için bir şifre oluşturmanız gerekmektedir.",
"account.notify.password.success": "Şifre başarıyla değiştirildi", "account.notify.password.success": "Şifre başarıyla değiştirildi",
"account.card.oauth.title": "Sosyal giriş", "account.card.oauth.title": "Sosyal medya ile giriş",
"account.card.oauth.github": "GitHub", "account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google", "account.card.oauth.google": "Google",
"account.card.oauth.microsoft": "Microsoft", "account.card.oauth.microsoft": "Microsoft",
@@ -84,24 +84,24 @@ export default {
"account.card.oauth.link": "Bağla", "account.card.oauth.link": "Bağla",
"account.card.oauth.unlink": "Bağlantıyı kaldır", "account.card.oauth.unlink": "Bağlantıyı kaldır",
"account.card.oauth.unlinked": "Bağlantı kaldırıldı", "account.card.oauth.unlinked": "Bağlantı kaldırıldı",
"account.modal.unlink.title": "Hesabın bağlantısını kaldır", "account.modal.unlink.title": "Hesap bağlantısını kaldır",
"account.modal.unlink.description": "Sosyal hesaplarınızın bağlantısını kaldırmanız giriş bilgilerinizi hatırlamıyorsanız hesabınızı kaybetmenize neden olabilir", "account.modal.unlink.description": "Sosyal medya hesaplarınızın bağlantısını kaldırmak, giriş bilgilerinizi hatırlamıyorsanız hesabınıza erişiminizi kaybetmenize neden olabilir.",
"account.notify.oauth.unlinked.success": "Başarıyla bağlantı kaldırıldı", "account.notify.oauth.unlinked.success": "Bağlantı başarıyla kaldırıldı",
"account.card.security.title": "Güvenlik", "account.card.security.title": "Güvenlik",
"account.card.security.totp.enable.description": "TOTP'yi etkinleştirmek için mevcut şifrenizi girin", "account.card.security.totp.enable.description": "TOTP'yi etkinleştirmeye başlamak için mevcut şifrenizi girin.",
"account.card.security.totp.disable.description": "TOTP'yi devre dışı bırakmak için mevcut şifrenizi girin", "account.card.security.totp.disable.description": "TOTP'yi devre dışı bırakmak için mevcut şifrenizi girin.",
"account.card.security.totp.button.start": "Başlat", "account.card.security.totp.button.start": "Başlat",
"account.modal.totp.title": "TOTP'yi Etkinleştir", "account.modal.totp.title": "TOTP'yi etkinleştir",
"account.modal.totp.step1": "1. Adım: Kimlik doğrulayıcınızı ekleyin", "account.modal.totp.step1": "Adım 1: Kimlik doğrulayıcınızı ekleyin",
"account.modal.totp.step2": "2. Adım: Kodunuzu doğrulayın", "account.modal.totp.step2": "Adım 2: Kodunuzu doğrulayın",
"account.modal.totp.enterManually": "Manuel olarak girin", "account.modal.totp.enterManually": "Manuel olarak gir",
"account.modal.totp.code": "Kod", "account.modal.totp.code": "Kod",
"common.button.clickToCopy": "Kopyalamak için tıklayın", "common.button.clickToCopy": "Kopyalamak için tıkla",
"account.modal.totp.verify": "Doğrula", "account.modal.totp.verify": "Doğrula",
"account.notify.totp.disable": "TOTP başarıyla devre dışı bırakıldı", "account.notify.totp.disable": "TOTP başarıyla devre dışı bırakıldı",
"account.notify.totp.enable": "TOTP başarıyla etkinleştirildi", "account.notify.totp.enable": "TOTP başarıyla etkinleştirildi",
"account.card.language.title": "Dil", "account.card.language.title": "Dil",
"account.card.language.description": "Proje topluluk tarafından çevrilmiştir. Bazı diller eksik olabilir.", "account.card.language.description": "Proje topluluk tarafından çevrilmektedir. Bazı diller eksik olabilir.",
"account.card.color.title": "Renk şeması", "account.card.color.title": "Renk şeması",
// ThemeSwitcher.tsx // ThemeSwitcher.tsx
"account.theme.dark": "Karanlık", "account.theme.dark": "Karanlık",
@@ -109,37 +109,37 @@ export default {
"account.theme.system": "Sistem", "account.theme.system": "Sistem",
"account.button.delete": "Hesabı Sil", "account.button.delete": "Hesabı Sil",
"account.modal.delete.title": "Hesabı Sil", "account.modal.delete.title": "Hesabı Sil",
"account.modal.delete.description": "Tüm aktif paylaşımlarınız dahil hesabınızı gerçekten silmek istiyor musunuz?", "account.modal.delete.description": "Tüm aktif paylaşımlarınızla birlikte hesabınızı gerçekten silmek istiyor musunuz?",
// END /account // END /account
// /account/shares // /account/shares
"account.shares.title": "Paylaşımlarım", "account.shares.title": "Paylaşımlarım",
"account.shares.title.empty": "Burası boş 👀", "account.shares.title.empty": "Buralar boş 👀",
"account.shares.description.empty": "Hiç paylaşımınız yok.", "account.shares.description.empty": "Henüz hiç paylaşımınız yok.",
"account.shares.button.create": "Bir tane oluştur", "account.shares.button.create": "Bir tane oluştur",
"account.shares.info.title": "Paylaşım Bilgileri", "account.shares.info.title": "Paylaşım bilgileri",
"account.shares.table.id": "ID", "account.shares.table.id": "ID",
"account.shares.table.name": "Adı", "account.shares.table.name": "İsim",
"account.shares.table.description": "Açıklama", "account.shares.table.description": "Açıklama",
"account.shares.table.visitors": "Ziyaretçiler", "account.shares.table.visitors": "Ziyaretçi Sayısı",
"account.shares.table.expiresAt": "Bitiş Tarihi", "account.shares.table.expiresAt": "Bitiş Tarihi",
"account.shares.table.createdAt": "Oluşturulma Tarihi", "account.shares.table.createdAt": "Oluşturulma Tarihi",
"account.shares.table.size": "Boyut", "account.shares.table.size": "Boyut",
"account.shares.table.password-protected": "Şifre Koruması", "account.shares.table.password-protected": "Şifre korumalı",
"account.shares.table.visitor-count": "{count} / {max}", "account.shares.table.visitor-count": "{max} üzerinden {count}",
"account.shares.table.expiry-never": "Hiçbir Zaman", "account.shares.table.expiry-never": "Asla",
"account.shares.modal.share-informations": "Paylaşım Bilgileri", "account.shares.modal.share-informations": "Paylaşım bilgileri",
"account.shares.modal.share-link": "Paylaşım Bağlantısı", "account.shares.modal.share-link": "Paylaşım bağlantısı",
"account.shares.modal.delete.title": "Paylaşımı Sil: {share}", "account.shares.modal.delete.title": "Paylaşımı sil: {share}",
"account.shares.modal.delete.description": "Bu paylaşımı silmek istediğinize emin misiniz?", "account.shares.modal.delete.description": "Bu paylaşımı gerçekten silmek istiyor musunuz?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
"account.reverseShares.title": "Ters Paylaşımlar", "account.reverseShares.title": "Karşı Paylaşımlar",
"account.reverseShares.description": "Ters paylaşım, harici kullanıcıların paylaşım oluşturmasını sağlayan benzersiz bir URL oluşturmanıza olanak tanır.", "account.reverseShares.description": "Bir karşı paylaşım, dış kullanıcıların bir paylaşım oluşturmasına olanak tanıyan benzersiz bir URL oluşturmanızı sağlar.",
"account.reverseShares.title.empty": "Burası boş 👀", "account.reverseShares.title.empty": "Buralar boş 👀",
"account.reverseShares.description.empty": "Hiç ters paylaşımınız yok.", "account.reverseShares.description.empty": "Henüz hiç karşı paylaşımınız yok.",
// showCreateReverseShareModal.tsx // showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Ters Paylaşım Oluştur", "account.reverseShares.modal.title": "Karşı Paylaşım Oluştur",
"account.reverseShares.modal.expiration.label": "Son Kullanım Süresi", "account.reverseShares.modal.expiration.label": "Geçerlilik Süresi",
"account.reverseShares.modal.expiration.minute-singular": "Dakika", "account.reverseShares.modal.expiration.minute-singular": "Dakika",
"account.reverseShares.modal.expiration.minute-plural": "Dakika", "account.reverseShares.modal.expiration.minute-plural": "Dakika",
"account.reverseShares.modal.expiration.hour-singular": "Saat", "account.reverseShares.modal.expiration.hour-singular": "Saat",
@@ -152,27 +152,27 @@ export default {
"account.reverseShares.modal.expiration.month-plural": "Ay", "account.reverseShares.modal.expiration.month-plural": "Ay",
"account.reverseShares.modal.expiration.year-singular": "Yıl", "account.reverseShares.modal.expiration.year-singular": "Yıl",
"account.reverseShares.modal.expiration.year-plural": "Yıl", "account.reverseShares.modal.expiration.year-plural": "Yıl",
"account.reverseShares.modal.max-size.label": "Maksimum Paylaşım Boyutu", "account.reverseShares.modal.max-size.label": "Maksimum paylaşım boyutu",
"account.reverseShares.modal.send-email": "E-posta Bildirimleri Gönder", "account.reverseShares.modal.send-email": "E-posta bildirimleri gönder",
"account.reverseShares.modal.send-email.description": "Bu ters paylaşım bağlantısıyla bir paylaşım oluşturulduğunda size e-posta bildirimi gönderir.", "account.reverseShares.modal.send-email.description": "Bu karşı paylaşım bağlantısıyla bir paylaşım oluşturulduğunda size bir e-posta bildirimi gönderir.",
"account.reverseShares.modal.simplified": "Basit Mod", "account.reverseShares.modal.simplified": "Basit mod",
"account.reverseShares.modal.simplified.description": "Dosya yükleyen kişinin, paylaşımı sizinle paylaşmasını kolaylaştırır. Yalnızca paylaşımın adını ve açıklamasını özelleştirebilirler.", "account.reverseShares.modal.simplified.description": "Dosyayı yükleyen kişinin sizinle paylaşmasını kolaylaştırın. Sadece paylaşımın adını ve açıklamasını özelleştirebileceklerdir.",
"account.reverseShares.modal.public-access": "Genel Erişim", "account.reverseShares.modal.public-access": "Herkese açık erişim",
"account.reverseShares.modal.public-access.description": "Bu ters paylaşım ile oluşturulan paylaşımları genel yapın. Devre dışı bırakılırsa, yalnızca siz ve paylaşımı oluşturan kişi bunu görüntüleyebilir.", "account.reverseShares.modal.public-access.description": "Bu karşı paylaşım bağlantısıyla oluşturulan paylaşımları herkese açık yapın. Devre dışı bırakılırsa, yalnızca siz ve paylaşımı oluşturan kişi görüntüleyebilir.",
"account.reverseShares.modal.max-use.label": "Maksimum Kullanım", "account.reverseShares.modal.max-use.label": "Maksimum kullanım sayısı",
"account.reverseShares.modal.max-use.description": "Bu URL'nin paylaşım oluşturmak için kaç kez kullanılabileceğinin maksimum sayısı.", "account.reverseShares.modal.max-use.description": "Bu URL'nin bir paylaşım oluşturmak için kullanılabileceği maksimum sayı.",
"account.reverseShare.never-expires": "Bu ters paylaşım asla sona ermeyecek.", "account.reverseShare.never-expires": "Bu karşı paylaşımın süresi asla dolmayacak.",
"account.reverseShare.expires-on": "Bu ters paylaşım {expiration} tarihinde sona erecek.", "account.reverseShare.expires-on": "Bu karşı paylaşımın süresi {expiration} tarihinde dolacak.",
"account.reverseShares.table.no-shares": "Henüz bir paylaşım oluşturulmadı", "account.reverseShares.table.no-shares": "Henüz paylaşım oluşturulmadı",
"account.reverseShares.table.count.singular": "paylaşım", "account.reverseShares.table.count.singular": "paylaşım",
"account.reverseShares.table.count.plural": "paylaşımlar", "account.reverseShares.table.count.plural": "paylaşım",
"account.reverseShares.table.shares": "Paylaşımlar", "account.reverseShares.table.shares": "Paylaşımlar",
"account.reverseShares.table.remaining": "Kalan Kullanım", "account.reverseShares.table.remaining": "Kalan kullanım hakkı",
"account.reverseShares.table.max-size": "Maksimum Paylaşım Boyutu", "account.reverseShares.table.max-size": "Maksimum paylaşım boyutu",
"account.reverseShares.table.expires": "Son Kullanım Tarihi", "account.reverseShares.table.expires": "Bitiş tarihi",
"account.reverseShares.modal.reverse-share-link": "Ters Paylaşım Bağlantısı", "account.reverseShares.modal.reverse-share-link": "Karşı paylaşım bağlantısı",
"account.reverseShares.modal.delete.title": "Ters Paylaşımı Sil", "account.reverseShares.modal.delete.title": "Karşı paylaşımı sil",
"account.reverseShares.modal.delete.description": "Bu ters paylaşımı silmek istediğinize emin misiniz? Eğer silerseniz, ilişkili paylaşımlar da silinecektir.", "account.reverseShares.modal.delete.description": "Bu karşı paylaşımı gerçekten silmek istiyor musunuz? Eğer silerseniz, ilişkili paylaşımlar da silinecektir.",
// END /account/reverseShares // END /account/reverseShares
// /admin // /admin
"admin.title": "Yönetim", "admin.title": "Yönetim",
@@ -183,61 +183,61 @@ export default {
// END /admin // END /admin
// /admin/users // /admin/users
"admin.users.title": "Kullanıcı Yönetimi", "admin.users.title": "Kullanıcı Yönetimi",
"admin.users.table.username": "Kullanıcı Adı", "admin.users.table.username": "Kullanıcı adı",
"admin.users.table.email": "E-posta", "admin.users.table.email": "E-posta",
"admin.users.table.admin": "Yönetici", "admin.users.table.admin": "Yönetici",
"admin.users.edit.update.title": "Kullanıcıyı Düzenle: {username}", "admin.users.edit.update.title": "Kullanıcıyı düzenle: {username}",
"admin.users.edit.update.admin-privileges": "Yönetici Yetkileri", "admin.users.edit.update.admin-privileges": "Yönetici yetkileri",
"admin.users.edit.update.change-password.title": "Şifreyi Değiştir", "admin.users.edit.update.change-password.title": "Şifre değiştir",
"admin.users.edit.update.change-password.field": "Yeni Şifre", "admin.users.edit.update.change-password.field": "Yeni şifre",
"admin.users.edit.update.change-password.button": "Yeni Şifreyi Kaydet", "admin.users.edit.update.change-password.button": "Yeni şifreyi kaydet",
"admin.users.edit.update.notify.password.success": "Şifre başarıyla değiştirildi", "admin.users.edit.update.notify.password.success": "Şifre başarıyla değiştirildi",
"admin.users.edit.delete.title": "Kullanıcıyı Sil: {username} ?", "admin.users.edit.delete.title": "Kullanıcıyı sil: {username} ?",
"admin.users.edit.delete.description": "Bu kullanıcıyı ve tüm paylaşımlarını gerçekten silmek istiyor musunuz?", "admin.users.edit.delete.description": "Bu kullanıcıyı ve tüm paylaşımlarını gerçekten silmek istiyor musunuz?",
// showCreateUserModal.tsx // showCreateUserModal.tsx
"admin.users.modal.create.title": "Kullanıcı Oluştur", "admin.users.modal.create.title": "Kullanıcı Oluştur",
"admin.users.modal.create.username": "Kullanıcı Adı", "admin.users.modal.create.username": "Kullanıcı adı",
"admin.users.modal.create.email": "E-posta", "admin.users.modal.create.email": "E-posta",
"admin.users.modal.create.password": "Şifre", "admin.users.modal.create.password": "Şifre",
"admin.users.modal.create.manual-password": "Şifreyi Elle Ayarla", "admin.users.modal.create.manual-password": "Şifreyi manuel olarak ayarla",
"admin.users.modal.create.manual-password.description": "İşaretlenmezse, kullanıcıya şifresini ayarlayabileceği bir bağlantı içeren e-posta gönderilir.", "admin.users.modal.create.manual-password.description": "İşaretlenmezse, kullanıcı şifresini ayarlaması için bir bağlantı içeren bir e-posta alacaktır.",
"admin.users.modal.create.admin": "Yönetici Yetkileri", "admin.users.modal.create.admin": "Yönetici yetkileri",
"admin.users.modal.create.admin.description": "İşaretlenirse, kullanıcı yönetim paneline erişebilir.", "admin.users.modal.create.admin.description": "İşaretlenirse, kullanıcı yönetim paneline erişebilecektir.",
// END /admin/users // END /admin/users
// /admin/shares // /admin/shares
"admin.shares.title": "Paylaşım Yönetimi", "admin.shares.title": "Paylaşım Yönetimi",
"admin.shares.table.id": "Paylaşım ID", "admin.shares.table.id": "Paylaşım ID",
"admin.shares.table.username": "Oluşturan", "admin.shares.table.username": "Oluşturan",
"admin.shares.table.visitors": "Ziyaretçiler", "admin.shares.table.visitors": "Ziyaretçi Sayısı",
"admin.shares.table.expires": "Bitiş Tarihi", "admin.shares.table.expires": "Bitiş Tarihi",
"admin.shares.edit.delete.title": "Paylaşımı Sil: {id}", "admin.shares.edit.delete.title": "Paylaşımı sil: {id}",
"admin.shares.edit.delete.description": "Bu paylaşımı gerçekten silmek istiyor musunuz?", "admin.shares.edit.delete.description": "Bu paylaşımı gerçekten silmek istiyor musunuz?",
// END /admin/shares // END /admin/shares
// /upload // /upload
"upload.title": "Yükle", "upload.title": "Yükle",
"upload.notify.confirm-leave": "Bu sayfadan ayrılmak istediğinize emin misiniz? Yükleme iptal edilecek.", "upload.notify.confirm-leave": "Bu sayfadan ayrılmak istediğinizden emin misiniz? Yüklemeniz iptal edilecek.",
"upload.notify.generic-error": "Paylaşım tamamlanırken bir hata oluştu.", "upload.notify.generic-error": "Paylaşımınız tamamlanırken bir hata oluştu.",
"upload.notify.count-failed": "{count} dosya yüklenemedi. Tekrar deneniyor.", "upload.notify.count-failed": "{count} dosya yüklenemedi. Tekrar deneniyor.",
"upload.reverse-share.error.invalid.title": "Geçersiz Ters Paylaşım Bağlantısı", "upload.reverse-share.error.invalid.title": "Geçersiz karşı paylaşım bağlantısı",
"upload.reverse-share.error.invalid.description": "Bu ters paylaşım süresi dolmuş veya geçersiz.", "upload.reverse-share.error.invalid.description": "Bu karşı paylaşımın süresi dolmuş veya geçersiz.",
// Dropzone.tsx // Dropzone.tsx
"upload.dropzone.title": "Dosyaları Yükle", "upload.dropzone.title": "Dosyaları Yükle",
"upload.dropzone.description": "Paylaşımınızı başlatmak için dosyaları buraya sürükleyip bırakın. Toplamda en fazla {maxSize} boyutunda dosyaları kabul ediyoruz.", "upload.dropzone.description": "Paylaşımınızı başlatmak için dosyaları buraya sürükleyip bırakın. Toplamda en fazla {maxSize} boyutunda dosya kabul ediyoruz.",
"upload.dropzone.notify.file-too-big": "Dosyalarınız maksimum paylaşım boyutunu ({maxSize})ıyor.", "upload.dropzone.notify.file-too-big": "Dosyalarınız maksimum paylaşım boyutu olan {maxSize} değeriniıyor.",
// FileList.tsx // FileList.tsx
"upload.filelist.name": "Ad", "upload.filelist.name": "İsim",
"upload.filelist.size": "Boyut", "upload.filelist.size": "Boyut",
// showCreateUploadModal.tsx // showCreateUploadModal.tsx
"upload.modal.title": "Paylaşım Oluştur", "upload.modal.title": "Paylaşım Oluştur",
"upload.modal.link.error.invalid": "Sadece harf, rakam, alt çizgi ve kısa çizgi içerebilir.", "upload.modal.link.error.invalid": "Sadece harf, rakam, alt çizgi ve tire içerebilir",
"upload.modal.link.error.taken": "Bu bağlantı zaten kullanımda.", "upload.modal.link.error.taken": "Bu bağlantı zaten kullanılıyor",
"upload.modal.not-signed-in": "Giriş yapmadınız.", "upload.modal.not-signed-in": "Giriş yapmadınız",
"upload.modal.not-signed-in-description": "Paylaşımınızı manuel olarak silemez ve ziyaretçi sayısını göremezsiniz.", "upload.modal.not-signed-in-description": "Paylaşımınızı manuel olarak silemez ve ziyaretçi sayısını göremezsiniz.",
"upload.modal.expires.never": "Hiçbir zaman", "upload.modal.expires.never": "asla",
"upload.modal.expires.never-long": "Kalıcı paylaşım", "upload.modal.expires.never-long": "Kalıcı paylaşım",
"upload.modal.expires.error.too-long": "Son kullanma tarihi maksimum {max} sınırınııyor.", "upload.modal.expires.error.too-long": "Geçerlilik süresi maksimum {max} değeriniıyor.",
"upload.modal.link.label": "Bağlantı", "upload.modal.link.label": "Bağlantı",
"upload.modal.expires.label": "Bitiş Tarihi", "upload.modal.expires.label": "Geçerlilik Süresi",
"upload.modal.expires.minute-singular": "Dakika", "upload.modal.expires.minute-singular": "Dakika",
"upload.modal.expires.minute-plural": "Dakika", "upload.modal.expires.minute-plural": "Dakika",
"upload.modal.expires.hour-singular": "Saat", "upload.modal.expires.hour-singular": "Saat",
@@ -250,26 +250,27 @@ export default {
"upload.modal.expires.month-plural": "Ay", "upload.modal.expires.month-plural": "Ay",
"upload.modal.expires.year-singular": "Yıl", "upload.modal.expires.year-singular": "Yıl",
"upload.modal.expires.year-plural": "Yıl", "upload.modal.expires.year-plural": "Yıl",
"upload.modal.accordion.name-and-description.title": "Ad ve Açıklama", "upload.modal.accordion.name-and-description.title": "İsim ve açıklama",
"upload.modal.accordion.name-and-description.name.placeholder": "Ad", "upload.modal.accordion.name-and-description.name.placeholder": "İsim",
"upload.modal.accordion.name-and-description.description.placeholder": "Bu paylaşımın alıcıları için bir not", "upload.modal.accordion.name-and-description.description.placeholder": "Bu paylaşımın alıcıları için not",
"upload.modal.accordion.email.title": "E-posta Alıcıları", "upload.modal.accordion.email.title": "E-posta alıcıları",
"upload.modal.accordion.email.placeholder": "E-posta alıcılarını girin", "upload.modal.accordion.email.placeholder": "E-posta alıcılarını girin",
"upload.modal.accordion.email.invalid-email": "Geçersiz e-posta adresi", "upload.modal.accordion.email.invalid-email": "Geçersiz e-posta adresi",
"upload.modal.accordion.security.title": "Güvenlik Seçenekleri", "upload.modal.accordion.security.title": "Güvenlik seçenekleri",
"upload.modal.accordion.security.password.label": "Şifre Koruması", "upload.modal.accordion.security.password.label": "Şifre koruması",
"upload.modal.accordion.security.password.placeholder": "Şifre Yok", "upload.modal.accordion.security.password.placeholder": "Şifre yok",
"upload.modal.accordion.security.max-views.label": "Maksimum Görüntüleme", "upload.modal.accordion.security.max-views.label": "Maksimum görüntüleme sayısı",
"upload.modal.accordion.security.max-views.placeholder": "Sınırsız", "upload.modal.accordion.security.max-views.placeholder": "Limit yok",
// showCompletedUploadModal.tsx // showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "Bu paylaşımın süresi hiçbir zaman dolmayacak.", "upload.modal.completed.never-expires": "Bu paylaşımın süresi asla dolmayacak.",
"upload.modal.completed.expires-on": "Bu paylaşım {expiration} tarihinde sona erecek.", "upload.modal.completed.expires-on": "Bu paylaşımın süresi {expiration} tarihinde dolacak.",
"upload.modal.completed.share-ready": "Paylaşım hazır.", "upload.modal.completed.share-ready": "Paylaşım hazır",
"upload.modal.completed.notified-reverse-share-creator": "Ters paylaşımın yaratıcısını bilgilendirdik. Bu bağlantıyı diğer yollarla manuel olarak da paylaşabilirsiniz.", "upload.modal.completed.notified-reverse-share-creator": "Karşı paylaşımı oluşturan kişiyi bilgilendirdik. Bu bağlantıyı onlarla başka yollarla da manuel olarak paylaşabilirsiniz.",
// END /upload // END /upload
// /share/[id] // /share/[id]
"share.title": "{shareId} Paylaşımı", "share.title": "Paylaşım {shareId}",
"share.description": "Sizinle paylaştıklarımı bir göz atın!", "share.description": "Bak sana ne paylaştım!",
"share.fileCount": "{count, plural, =1 {# dosya} other {# dosya}} · {size} (zip dosyası sıkıştırma nedeniyle daha küçük olabilir)",
"share.error.visitor-limit-exceeded.title": "Ziyaretçi limiti aşıldı", "share.error.visitor-limit-exceeded.title": "Ziyaretçi limiti aşıldı",
"share.error.visitor-limit-exceeded.description": "Bu paylaşımın ziyaretçi limiti aşıldı.", "share.error.visitor-limit-exceeded.description": "Bu paylaşımın ziyaretçi limiti aşıldı.",
"share.error.removed.title": "Paylaşım kaldırıldı", "share.error.removed.title": "Paylaşım kaldırıldı",
@@ -282,17 +283,17 @@ export default {
"share.modal.password": "Şifre", "share.modal.password": "Şifre",
"share.modal.error.invalid-password": "Geçersiz şifre", "share.modal.error.invalid-password": "Geçersiz şifre",
"share.button.download-all": "Tümünü indir", "share.button.download-all": "Tümünü indir",
"share.notify.download-all-preparing": "Paylaşım hazırlanıyor. Lütfen birkaç dakika sonra tekrar deneyin.", "share.notify.download-all-preparing": "Paylaşım hazırlanıyor. Lütfen birkaç dakika içinde tekrar deneyin.",
"share.modal.file-link": "Dosya bağlantısı", "share.modal.file-link": "Dosya bağlantısı",
"share.table.name": "Ad", "share.table.name": "İsim",
"share.table.size": "Boyut", "share.table.size": "Boyut",
"share.modal.file-preview.error.not-supported.title": "Önizleme desteklenmiyor", "share.modal.file-preview.error.not-supported.title": "Önizleme desteklenmiyor",
"share.modal.file-preview.error.not-supported.description": "Bu dosya türü için önizleme desteklenmiyor. Lütfen dosyayı görüntülemek için indirin.", "share.modal.file-preview.error.not-supported.description": "Bu dosya türü için önizleme desteklenmemektedir. Görüntülemek için lütfen dosyayı indirin.",
// END /share/[id] // END /share/[id]
// /share/[id]/edit // /share/[id]/edit
"share.edit.title": "{shareId} Paylaşımını Düzenle", "share.edit.title": "Düzenle {shareId}",
"share.edit.append-upload": "Dosya ekle", "share.edit.append-upload": "Dosya ekle",
"share.edit.notify.generic-error": "Paylaşımınızı tamamlarken bir hata oluştu.", "share.edit.notify.generic-error": "Paylaşımınız tamamlanırken bir hata oluştu.",
"share.edit.notify.save-success": "Paylaşım başarıyla güncellendi", "share.edit.notify.save-success": "Paylaşım başarıyla güncellendi",
// END /share/[id]/edit // END /share/[id]/edit
// /imprint // /imprint
@@ -302,65 +303,74 @@ export default {
"privacy.title": "Gizlilik Politikası", "privacy.title": "Gizlilik Politikası",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Yapılandırma dosyası mevcut",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Pingvin Share'i bir yapılandırma dosyası ile kurduğunuz için, yapılandırmayı arayüz üzerinden değiştiremezsiniz.",
"admin.config.title": "Yapılandırma", "admin.config.title": "Yapılandırma",
"admin.config.category.general": "Genel", "admin.config.category.general": "Genel",
"admin.config.category.share": "Paylaş", "admin.config.category.share": "Paylaşım",
"admin.config.category.cache": "Önbellek",
"admin.config.category.email": "E-posta", "admin.config.category.email": "E-posta",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Sosyal Giriş", "admin.config.category.oauth": "Sosyal Medya ile Giriş",
"admin.config.general.app-name": "Uygulama adı", "admin.config.general.app-name": "Uygulama adı",
"admin.config.general.app-name.description": "Uygulamanın adı", "admin.config.general.app-name.description": "Uygulamanın adı",
"admin.config.general.app-url": "Uygulama URL'si", "admin.config.general.app-url": "Uygulama URL'si",
"admin.config.general.app-url.description": "Pingvin Share hangi URL üzerinden kullanılabilir", "admin.config.general.app-url.description": "Pingvin Share'in erişilebilir olduğu URL",
"admin.config.general.secure-cookies": "Güvenli çerezler", "admin.config.general.secure-cookies": "Güvenli çerezler",
"admin.config.general.secure-cookies.description": "Çerezlere güvenli bayrağı koyulup koyulmayacağı. Etkinleştirildiğinde, site HTTP üzerinden erişildiğinde çalışmaz.", "admin.config.general.secure-cookies.description": "Çerezlerde güvenli bayrağının ayarlanıp ayarlanmayacağı. Etkinleştirilirse, site HTTP üzerinden erişildiğinde çalışmaz.",
"admin.config.general.show-home-page": "Ana sayfayı göster", "admin.config.general.show-home-page": "Anasayfayı göster",
"admin.config.general.show-home-page.description": "Ana sayfanın gösterilip gösterilmeyeceği", "admin.config.general.show-home-page.description": "Anasayfanın gösterilip gösterilmeyeceği",
"admin.config.general.session-duration": "Oturum Süresi", "admin.config.general.session-duration": "Oturum Süresi",
"admin.config.general.session-duration.description": "Kullanıcının tekrar oturum açması için gereken süre (varsayılan süre: 3 ay).", "admin.config.general.session-duration.description": "Bir kullanıcının tekrar giriş yapması gereken süre (varsayılan: 3 ay).",
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Yeni bir resim yükleyerek logonuzu değiştirin. Resim PNG formatında olmalı ve 1:1 oranında olmalıdır.", "admin.config.general.logo.description": "Yeni bir resim yükleyerek logonuzu değiştirin. Resim PNG formatında ve 1:1 oranında olmalıdır.",
"admin.config.general.logo.placeholder": "Resim seç", "admin.config.general.logo.placeholder": "Resim seç",
"admin.config.email.enable-share-email-recipients": "E-posta alıcılarının paylaşımını etkinleştir", "admin.config.cache.ttl": "TTL (Yaşam Süresi)",
"admin.config.email.enable-share-email-recipients.description": "E-postaların alıcılarla paylaşılmasına izin verilip verilmeyeceği. Sadece SMTP etkinleştirildiğinde bunu etkinleştirin.", "admin.config.cache.ttl.description": "Bilgilerin önbellekte tutulacağı saniye cinsinden süre.",
"admin.config.email.share-recipients-subject": "Paylaşım alıcılarının konusu", "admin.config.cache.max-items": "Maksimum öğe sayısı",
"admin.config.cache.max-items.description": "Önbellekteki maksimum öğe sayısı.",
"admin.config.cache.redis-enabled": "Redis etkin",
"admin.config.cache.redis-enabled.description": "Normalde Pingvin Share bilgileri bellekte önbellekler. Birden fazla Pingvin Share örneği çalıştırıyorsanız, örnekler arasında önbelleği paylaşmak için Redis önbelleklemesini etkinleştirmeniz gerekir.",
"admin.config.cache.redis-url": "Redis URL'si",
"admin.config.cache.redis-url.description": "Önbellekleme için kullanılan Redis örneğine bağlanmak için URL.",
"admin.config.email.enable-share-email-recipients": "E-posta alıcılarıyla paylaşımı etkinleştir",
"admin.config.email.enable-share-email-recipients.description": "Alıcılarla e-posta paylaşımına izin verilip verilmeyeceği. Yalnızca SMTP etkinse bunu etkinleştirin.",
"admin.config.email.share-recipients-subject": "Paylaşım alıcıları e-posta konusu",
"admin.config.email.share-recipients-subject.description": "Paylaşım alıcılarına gönderilen e-postanın konusu.", "admin.config.email.share-recipients-subject.description": "Paylaşım alıcılarına gönderilen e-postanın konusu.",
"admin.config.email.share-recipients-message": "Paylaşım alıcılarına mesaj", "admin.config.email.share-recipients-message": "Paylaşım alıcıları e-posta mesajı",
"admin.config.email.share-recipients-message.description": "Paylaşım alıcılarına gönderilen mesaj. Kullanılabilir değişkenler:\n {creator} - Paylaşımı oluşturanın kullanıcı adı\n {creatorEmail} - Paylaşımı oluşturanın e-posta adresi\n {shareUrl} - Paylaşım URL'si\n {desc} - Paylaşım açıklaması\n {expires} - Paylaşımın son kullanma tarihi\n Bu değişkenler gerçek değerlerle değiştirilecektir.", "admin.config.email.share-recipients-message.description": "Paylaşım alıcılarına gönderilen mesaj. Mevcut değişkenler:\n {creator} - Paylaşımı oluşturanın kullanıcı adı\n {creatorEmail} - Paylaşımı oluşturanın e-postası\n {shareUrl} - Paylaşımın URL'si\n {desc} - Paylaşımınıklaması\n {expires} - Paylaşımın son kullanma tarihi\n Bu değişkenler gerçek değerle değiştirilecektir.",
"admin.config.email.reverse-share-subject": "Ters paylaşım konusu", "admin.config.email.reverse-share-subject": "Karşı paylaşım e-posta konusu",
"admin.config.email.reverse-share-subject.description": "Birisi ters paylaşım bağlantınızla bir paylaşım oluşturduğunda gönderilen e-postanın konusu.", "admin.config.email.reverse-share-subject.description": "Birisi karşı paylaşım bağlantınızla bir paylaşım oluşturduğunda gönderilen e-postanın konusu.",
"admin.config.email.reverse-share-message": "Ters paylaşım mesajı", "admin.config.email.reverse-share-message": "Karşı paylaşım e-posta mesajı",
"admin.config.email.reverse-share-message.description": "Birisi ters paylaşım bağlantınızla bir paylaşım oluşturduğunda gönderilen mesaj. {shareUrl}, paylaşımı oluşturan kişinin adı ve paylaşım URL'si ile değiştirilecektir.", "admin.config.email.reverse-share-message.description": "Birisi karşı paylaşım bağlantınızla bir paylaşım oluşturduğunda gönderilen mesaj. {shareUrl}, oluşturanın adı ve paylaşım URL'si ile değiştirilecektir.",
"admin.config.email.reset-password-subject": "Şifre sıfırlama konusu", "admin.config.email.reset-password-subject": "Şifre sıfırlama e-posta konusu",
"admin.config.email.reset-password-subject.description": "Bir kullanıcı şifre sıfırlama talebinde bulunduğunda gönderilen e-postanın konusu.", "admin.config.email.reset-password-subject.description": "Bir kullanıcı şifre sıfırlama talebinde bulunduğunda gönderilen e-postanın konusu.",
"admin.config.email.reset-password-message": "Şifre sıfırlama mesajı", "admin.config.email.reset-password-message": "Şifre sıfırlama e-posta mesajı",
"admin.config.email.reset-password-message.description": "Bir kullanıcı şifre sıfırlama talebinde bulunduğunda gönderilen mesaj. {url}, şifre sıfırlama URL'si ile değiştirilecektir.", "admin.config.email.reset-password-message.description": "Bir kullanıcı şifre sıfırlama talebinde bulunduğunda gönderilen mesaj. {url}, şifre sıfırlama URL'si ile değiştirilecektir.",
"admin.config.email.invite-subject": "Davet konusu", "admin.config.email.invite-subject": "Davetiye e-posta konusu",
"admin.config.email.invite-subject.description": "Bir yönetici bir kullanıcıyı davet ettiğinde gönderilen e-postanın konusu.", "admin.config.email.invite-subject.description": "Bir yönetici bir kullanıcıyı davet ettiğinde gönderilen e-postanın konusu.",
"admin.config.email.invite-message": "Davet mesajı", "admin.config.email.invite-message": "Davetiye e-posta mesajı",
"admin.config.email.invite-message.description": "Bir yönetici bir kullanıcıyı davet ettiğinde gönderilen mesaj. {url}, davet URL'si ile; {email}, e-posta adresi ile ve {password}, kullanıcının şifresi ile değiştirilecektir.", "admin.config.email.invite-message.description": "Bir yönetici bir kullanıcıyı davet ettiğinde gönderilen mesaj. {url} davet URL'si, {email} e-posta ve {password} kullanıcının şifresi ile değiştirilecektir.",
"admin.config.share.allow-registration": "Kayıta izin ver", "admin.config.share.allow-registration": "Kayıt olmaya izin ver",
"admin.config.share.allow-registration.description": "Kaydın izinli olup olmadığı", "admin.config.share.allow-registration.description": "Kayıt olmaya izin verilip verilmeyeceği",
"admin.config.share.allow-unauthenticated-shares": "Doğrulanmamış paylaşımlara izin ver", "admin.config.share.allow-unauthenticated-shares": "Kimliği doğrulanmamış paylaşımlara izin ver",
"admin.config.share.allow-unauthenticated-shares.description": "Doğrulanmamış kullanıcıların paylaşım oluşturmasına izin verilip verilmeyeceği", "admin.config.share.allow-unauthenticated-shares.description": "Kimliği doğrulanmamış kullanıcıların paylaşım oluşturup oluşturamayacağı",
"admin.config.share.max-expiration": "Maksimum son kullanma süresi", "admin.config.share.max-expiration": "Maksimum geçerlilik süresi",
"admin.config.share.max-expiration.description": "Maksimum paylaşım süresi. Sınırsız süreye izin vermek için 0 olarak ayarlayın.", "admin.config.share.max-expiration.description": "Maksimum paylaşım geçerlilik süresi. Sınırsız geçerlilik süresine izin vermek için 0 olarak ayarlayın.",
"admin.config.share.share-id-length": "Varsayılan paylaşım ID uzunluğu", "admin.config.share.share-id-length": "Varsayılan paylaşım ID uzunluğu",
"admin.config.share.share-id-length.description": "Bir paylaşım için oluşturulan varsayılan ID uzunluğu. Bu değer, ters paylaşımlar için bağlantı oluştururken de kullanılır. 8'in altındaki bir değer güvenli olarak kabul edilmez.", "admin.config.share.share-id-length.description": "Bir paylaşımın oluşturulan ID'si için varsayılan uzunluk. Bu değer aynı zamanda karşı paylaşımlar için bağlantı oluşturmak için de kullanılır. 8'in altındaki bir değer güvenli kabul edilmez.",
"admin.config.share.max-size": "Maksimum boyut", "admin.config.share.max-size": "Maksimum boyut",
"admin.config.share.max-size.description": "Maksimum paylaşım boyutu", "admin.config.share.max-size.description": "Maksimum paylaşım boyutu",
"admin.config.share.zip-compression-level": "ZIP sıkıştırma seviyesi", "admin.config.share.zip-compression-level": "Zip sıkıştırma seviyesi",
"admin.config.share.zip-compression-level.description": "Dosya boyutu ve sıkıştırma hızı arasındaki dengeyi ayarlayın. Geçerli değerler 0 ile 9 arasındadır; 0 sıkıştırma yok, 9 maksimum sıkıştırma anlamına gelir.", "admin.config.share.zip-compression-level.description": "Dosya boyutu ve sıkıştırma hızı arasında denge kurmak için seviyeyi ayarlayın. Geçerli değerler 0 ile 9 arasındadır; 0 sıkıştırma yok, 9 ise maksimum sıkıştırma anlamına gelir.",
"admin.config.share.chunk-size": "Parça boyutu", "admin.config.share.chunk-size": "Parça boyutu",
"admin.config.share.chunk-size.description": "Yüklemeleriniz için verimlilik ve güvenilirliği internet bağlantınıza göre dengelemek için parça boyutunu ayarlayın. Daha küçük parçalar, dengesiz bağlantılar için başarı oranını artırabilirken, daha büyük parçalar sabit bağlantılar için yükleme hızını artırır.", "admin.config.share.chunk-size.description": "İnternet bağlantınıza göre verimlilik ve güvenilirlik arasında denge kurmak için yüklemeleriniz için parça boyutunu ayarlayın. Daha küçük parçalar, kararsız bağlantılarda başarı oranlarını artırabilirken, daha büyük parçalar kararlı bağlantılarda yüklemeleri hızlandırır.",
"admin.config.share.auto-open-share-modal": "Paylaşım oluşturma penceresini otomatik aç", "admin.config.share.auto-open-share-modal": "Paylaşım oluşturma penceresini otomatik aç",
"admin.config.share.auto-open-share-modal.description": "Kullanıcı dosya seçtiğinde paylaşım oluşturma penceresi otomatik olarak görünür, manuel olarak düğmeye tıklamaya gerek kalmaz.", "admin.config.share.auto-open-share-modal.description": "Bir kullanıcı dosya seçtiğinde paylaşım oluşturma penceresi otomatik olarak ılır, böylece düğmeye manuel olarak tıklama ihtiyacı ortadan kalkar.",
"admin.config.smtp.enabled": "Etkinleştir", "admin.config.smtp.enabled": "Etkinleştir",
"admin.config.smtp.enabled.description": "SMTP'nin etkin olup olmadığı. Sadece ana bilgisayar, port, e-posta, kullanıcı ve SMTP sunucunuzun şifresini girdiyseniz bunu true olarak ayarlayın.", "admin.config.smtp.enabled.description": "SMTP'nin etkin olup olmadığı. Yalnızca SMTP sunucunuzun ana bilgisayarını, bağlantı noktasını, e-postasını, kullanıcısını ve şifresini girdiyseniz bunu true olarak ayarlayın.",
"admin.config.smtp.host": "Sunucu", "admin.config.smtp.host": "Sunucu",
"admin.config.smtp.host.description": "SMTP sunucusunun ana bilgisayarı", "admin.config.smtp.host.description": "SMTP sunucusunun adresi",
"admin.config.smtp.port": "Port", "admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "SMTP sunucusunun portu", "admin.config.smtp.port.description": "SMTP sunucusunun portu",
"admin.config.smtp.email": "E-posta", "admin.config.smtp.email": "E-posta",
@@ -371,129 +381,131 @@ export default {
"admin.config.smtp.password.description": "SMTP sunucusunun şifresi", "admin.config.smtp.password.description": "SMTP sunucusunun şifresi",
"admin.config.smtp.button.test": "Test e-postası gönder", "admin.config.smtp.button.test": "Test e-postası gönder",
"admin.config.smtp.allow-unauthorized-certificates": "Yetkisiz SMTP sunucu sertifikalarına güven", "admin.config.smtp.allow-unauthorized-certificates": "Yetkisiz SMTP sunucu sertifikalarına güven",
"admin.config.smtp.allow-unauthorized-certificates.description": "Sadece kendi imzaladığınız sertifikalara güvenmeniz gerekiyorsa bunu true olarak ayarlayın.", "admin.config.smtp.allow-unauthorized-certificates.description": "Yalnızca kendinden imzalı sertifikalara güvenmeniz gerekiyorsa bunu true olarak ayarlayın.",
"admin.config.oauth.allow-registration": "Kayıt olmayı etkinleştir", "admin.config.oauth.allow-registration": "Kayıt olmaya izin ver",
"admin.config.oauth.allow-registration.description": "Kullanıcıların sosyal giriş yoluyla kayıt olmasına izin ver", "admin.config.oauth.allow-registration.description": "Kullanıcıların sosyal medya ile giriş yaparak kayıt olmalarına izin ver",
"admin.config.oauth.ignore-totp": "TOTP'yi yoksay", "admin.config.oauth.ignore-totp": "TOTP'yi yoksay",
"admin.config.oauth.ignore-totp.description": "Kullanıcı sosyal giriş yaparken TOTP'nin yoksayılıp yoksayılmayacağı", "admin.config.oauth.ignore-totp.description": "Kullanıcı sosyal medya ile giriş yaptığında TOTP'yi yoksayıp yoksaymayacağı",
"admin.config.oauth.disable-password": "Şifre girişini devre dışı bırak", "admin.config.oauth.disable-password": "Şifre ile girişi devre dışı bırak",
"admin.config.oauth.disable-password.description": "Şifre girişinin devre dışı bırakılıp bırakılmayacağı\nBu yapılandırmayı etkinleştirmeden önce bir OAuth sağlayıcısının doğru şekilde yapılandırıldığından emin olun, aksi takdirde hesaba erişiminiz engellenebilir.", "admin.config.oauth.disable-password.description": "Şifre ile girişi devre dışı bırakıp bırakmayacağı.\nHesabınıza erişimi kaybetmemek için bu yapılandırmayı etkinleştirmeden önce bir OAuth sağlayıcısının doğru şekilde yapılandırıldığından emin olun.",
"admin.config.oauth.github-enabled": "GitHub", "admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "GitHub girişinin etkin olup olmadığı", "admin.config.oauth.github-enabled.description": "GitHub ile girişin etkin olup olmadığı",
"admin.config.oauth.github-client-id": "GitHub İstemci Kimliği", "admin.config.oauth.github-client-id": "GitHub İstemci ID",
"admin.config.oauth.github-client-id.description": "GitHub OAuth uygulamasının İstemci Kimliği", "admin.config.oauth.github-client-id.description": "GitHub OAuth uygulamasının İstemci ID'si",
"admin.config.oauth.github-client-secret": "GitHub İstemci Gizli Anahtarı", "admin.config.oauth.github-client-secret": "GitHub İstemci Sırrı",
"admin.config.oauth.github-client-secret.description": "GitHub OAuth uygulamasının İstemci Gizli Anahtarı", "admin.config.oauth.github-client-secret.description": "GitHub OAuth uygulamasının İstemci Sırrı",
"admin.config.oauth.google-enabled": "Google", "admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Google girişinin etkin olup olmadığı", "admin.config.oauth.google-enabled.description": "Google ile girişin etkin olup olmadığı",
"admin.config.oauth.google-client-id": "Google İstemci Kimliği", "admin.config.oauth.google-client-id": "Google İstemci ID",
"admin.config.oauth.google-client-id.description": "Google OAuth uygulamasının İstemci Kimliği", "admin.config.oauth.google-client-id.description": "Google OAuth uygulamasının İstemci ID'si",
"admin.config.oauth.google-client-secret": "Google İstemci Gizli Anahtarı", "admin.config.oauth.google-client-secret": "Google İstemci Sırrı",
"admin.config.oauth.google-client-secret.description": "Google OAuth uygulamasının İstemci Gizli Anahtarı", "admin.config.oauth.google-client-secret.description": "Google OAuth uygulamasının İstemci Sırrı",
"admin.config.oauth.microsoft-enabled": "Microsoft", "admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Microsoft girişinin etkin olup olmadığı", "admin.config.oauth.microsoft-enabled.description": "Microsoft ile girişin etkin olup olmadığı",
"admin.config.oauth.microsoft-tenant": "Microsoft Kiracı", "admin.config.oauth.microsoft-tenant": "Microsoft Kiracı ID",
"admin.config.oauth.microsoft-tenant.description": "Microsoft OAuth uygulamasının Kiracı Kimliği\ncommon: Hem kişisel Microsoft hesaplarına hem de Microsoft Entra ID'den iş veya okul hesaplarına sahip kullanıcılar uygulamaya giriş yapabilir.\norganizations: Sadece Microsoft Entra ID'den iş veya okul hesaplarına sahip kullanıcılar uygulamaya giriş yapabilir.\nconsumers: Sadece kişisel Microsoft hesabı olan kullanıcılar uygulamaya giriş yapabilir.\nMicrosoft Entra kiracısının alan adı veya GUID formatındaki kiracı kimliği: Sadece belirli bir Microsoft Entra kiracısındaki kullanıcılar (iş veya okul hesapları olan dizin üyeleri veya kişisel Microsoft hesabı olan dizin konukları) uygulamaya giriş yapabilir.", "admin.config.oauth.microsoft-tenant.description": "Microsoft OAuth uygulamasının Kiracı ID'si\ncommon: Hem kişisel Microsoft hesabı hem de Microsoft Entra ID'den iş veya okul hesabı olan kullanıcılar uygulamaya giriş yapabilir. organizations: Yalnızca Microsoft Entra ID'den iş veya okul hesabı olan kullanıcılar uygulamaya giriş yapabilir.\nconsumers: Yalnızca kişisel Microsoft hesabı olan kullanıcılar uygulamaya giriş yapabilir.\nMicrosoft Entra kiracısının alan adı veya GUID formatındaki kiracı ID'si: Yalnızca belirli bir Microsoft Entra kiracısından kullanıcılar (iş veya okul hesabına sahip dizin üyeleri veya kişisel Microsoft hesabına sahip dizin misafirleri) uygulamaya giriş yapabilir.",
"admin.config.oauth.microsoft-client-id": "Microsoft İstemci Kimliği", "admin.config.oauth.microsoft-client-id": "Microsoft İstemci ID",
"admin.config.oauth.microsoft-client-id.description": "Microsoft OAuth uygulamasının İstemci Kimliği", "admin.config.oauth.microsoft-client-id.description": "Microsoft OAuth uygulamasının İstemci ID'si",
"admin.config.oauth.microsoft-client-secret": "Microsoft İstemci Gizli Anahtarı", "admin.config.oauth.microsoft-client-secret": "Microsoft İstemci Sırrı",
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth uygulamasının İstemci Gizli Anahtarı", "admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth uygulamasının İstemci Sırrı",
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Discord girişinin etkin olup olmadığı", "admin.config.oauth.discord-enabled.description": "Discord ile girişin etkin olup olmadığı",
"admin.config.oauth.discord-limited-users": "Discord ile sınırlı kullanıcılar", "admin.config.oauth.discord-limited-users": "Discord sınırlı kullanıcılar",
"admin.config.oauth.discord-limited-users.description": "Belirli kullanıcıların Discord ID'leri ile giriş yapmasını sınırla. Devre dışı bırakmak için boş bırakın.", "admin.config.oauth.discord-limited-users.description": "Giriş yapmayı Discord ID'lerine göre belirli kullanıcılarla sınırlayın. Devre dışı bırakmak için boş bırakın.",
"admin.config.oauth.discord-limited-guild": "Discord ile sınırlı sunucu ID'si", "admin.config.oauth.discord-limited-guild": "Discord sınırlı sunucu ID'si",
"admin.config.oauth.discord-limited-guild.description": "Belirli bir sunucudaki kullanıcıların giriş yapmasını sınırla. Devre dışı bırakmak için boş bırakın.", "admin.config.oauth.discord-limited-guild.description": "Giriş yapmayı belirli bir sunucudaki kullanıcılarla sınırlayın. Devre dışı bırakmak için boş bırakın.",
"admin.config.oauth.discord-client-id": "Discord İstemci Kimliği", "admin.config.oauth.discord-client-id": "Discord İstemci ID",
"admin.config.oauth.discord-client-id.description": "Discord OAuth uygulamasının İstemci Kimliği", "admin.config.oauth.discord-client-id.description": "Discord OAuth uygulamasının İstemci ID'si",
"admin.config.oauth.discord-client-secret": "Discord İstemci Gizli Anahtarı", "admin.config.oauth.discord-client-secret": "Discord İstemci Sırrı",
"admin.config.oauth.discord-client-secret.description": "Discord OAuth uygulamasının İstemci Gizli Anahtarı", "admin.config.oauth.discord-client-secret.description": "Discord OAuth uygulamasının İstemci Sırrı",
"admin.config.oauth.oidc-enabled": "OpenID Connect", "admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "OpenID Connect girişinin etkin olup olmadığı", "admin.config.oauth.oidc-enabled.description": "OpenID Connect ile girişin etkin olup olmadığı",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Keşif URI'si", "admin.config.oauth.oidc-discovery-uri": "OpenID Connect Keşif URI'si",
"admin.config.oauth.oidc-discovery-uri.description": "OpenID Connect OAuth uygulamasının Keşif URI'si", "admin.config.oauth.oidc-discovery-uri.description": "OpenID Connect OAuth uygulamasının Keşif URI'si",
"admin.config.oauth.oidc-sign-out": "OpenID Connect'ten çıkış yap", "admin.config.oauth.oidc-sign-out": "OpenID Connect'ten çıkış yap",
"admin.config.oauth.oidc-sign-out.description": "“Çıkış yap” düğmesinin OpenID Connect sağlayıcısından çıkış yapıp yapmayacağı", "admin.config.oauth.oidc-sign-out.description": "“Çıkış Yap” düğmesinin OpenID Connect sağlayıcısından da çıkış yapıp yapmayacağı",
"admin.config.oauth.oidc-scope": "OpenID Connect kapsamı", "admin.config.oauth.oidc-scope": "OpenID Connect kapsamı",
"admin.config.oauth.oidc-scope.description": "OpenID Connect sağlayıcısından talep edilmesi gereken kapsamlar.", "admin.config.oauth.oidc-scope.description": "OpenID Connect sağlayıcısından istenmesi gereken kapsamlar.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect kullanıcı adı alanı", "admin.config.oauth.oidc-username-claim": "OpenID Connect kullanıcı adı talebi",
"admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID tokenindeki kullanıcı adı alanı. Bu yapılandırmanın ne olduğunu bilmiyorsanız boş bırakın.", "admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID jetonundaki kullanıcı adı talebi. Bu yapılandırmanın ne olduğunu bilmiyorsanız boş bırakın.",
"admin.config.oauth.oidc-role-path": "OpenID Connect tokenindeki rollerin yolu", "admin.config.oauth.oidc-role-path": "OpenID Connect jetonundaki rollerin yolu",
"admin.config.oauth.oidc-role-path.description": "Bir dizi rolü referans alan geçerli bir JMES yolu olmalıdır. " + "Erişim haklarını OpenID Connect rolleri kullanarak yönetmek, başka bir kimlik sağlayıcı yapılandırılmamışsa ve şifreli giriş devre dışıysa önerilir. " + "Bu yapılandırmanın ne olduğunu bilmiyorsanız boş bırakın.", "admin.config.oauth.oidc-role-path.description": "Bir rol dizisine başvuran geçerli bir JMES yolu olmalıdır. " + "OpenID Connect rollerini kullanarak erişim haklarını yönetmek, yalnızca başka bir kimlik sağlayıcısı yapılandırılmamışsa ve şifre ile giriş devre dışı bırakılmışsa önerilir. " + "Bu yapılandırmanın ne olduğunu bilmiyorsanız boş bırakın.",
"admin.config.oauth.oidc-role-general-access": "Genel erişim için OpenID Connect rolü", "admin.config.oauth.oidc-role-general-access": "Genel erişim için OpenID Connect rolü",
"admin.config.oauth.oidc-role-general-access.description": "Genel erişim için gerekli rol. Kullanıcıların giriş yapabilmesi için rollerinde bulunması gerekir. " + "Bu yapılandırmanın ne olduğunu bilmiyorsanız boş bırakın.", "admin.config.oauth.oidc-role-general-access.description": "Genel erişim için gereken rol. Bir kullanıcının giriş yapabilmesi için rollerinde bulunmalıdır. " + "Bu yapılandırmanın ne olduğunu bilmiyorsanız boş bırakın.",
"admin.config.oauth.oidc-role-admin-access": "Yönetici erişimi için OpenID Connect rolü", "admin.config.oauth.oidc-role-admin-access": "Yönetici erişimi için OpenID Connect rolü",
"admin.config.oauth.oidc-role-admin-access.description": "Yönetici paneline erişim için gerekli rol. Kullanıcıların yönetici paneline erişebilmesi için rollerinde bulunması gerekir. " + "Bu yapılandırmanın ne olduğunu bilmiyorsanız boş bırakın.", "admin.config.oauth.oidc-role-admin-access.description": "Yönetici erişimi için gereken rol. Bir kullanıcının yönetici paneline erişebilmesi için rollerinde bulunmalıdır. " + "Bu yapılandırmanın ne olduğunu bilmiyorsanız boş bırakın.",
"admin.config.oauth.oidc-client-id": "OpenID Connect İstemci Kimliği", "admin.config.oauth.oidc-client-id": "OpenID Connect İstemci ID",
"admin.config.oauth.oidc-client-id.description": "OpenID Connect OAuth uygulamasının İstemci Kimliği", "admin.config.oauth.oidc-client-id.description": "OpenID Connect OAuth uygulamasının İstemci ID'si",
"admin.config.oauth.oidc-client-secret": "OpenID Connect İstemci Gizli Anahtarı", "admin.config.oauth.oidc-client-secret": "OpenID Connect İstemci Sırrı",
"admin.config.oauth.oidc-client-secret.description": "OpenID Connect OAuth uygulamasının İstemci Gizli Anahtarı", "admin.config.oauth.oidc-client-secret.description": "OpenID Connect OAuth uygulamasının İstemci Sırrı",
"admin.config.category.ldap": "LDAP", "admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "LDAP'ı etkinleştir", "admin.config.ldap.enabled": "LDAP'ı Etkinleştir",
"admin.config.ldap.enabled.description": "Kullanıcı girişinde LDAP kimlik doğrulamasını kullan", "admin.config.ldap.enabled.description": "Kullanıcı girişi için LDAP kimlik doğrulamasını kullan",
"admin.config.ldap.url": "Sunucu URL'si", "admin.config.ldap.url": "Sunucu URL'si",
"admin.config.ldap.url.description": "LDAP sunucusunun URL'si", "admin.config.ldap.url.description": "LDAP sunucusunun URL'si",
"admin.config.ldap.bind-dn": "Bind DN", "admin.config.ldap.bind-dn": "Bind DN",
"admin.config.ldap.bind-dn.description": "Kullanıcı aramasını gerçekleştirmek için kullanılan varsayılan kullanıcı", "admin.config.ldap.bind-dn.description": "Kullanıcı aramasını gerçekleştirmek için kullanılan varsayılan kullanıcı",
"admin.config.ldap.bind-password": "Bağlantı şifresi", "admin.config.ldap.bind-password": "Bind şifresi",
"admin.config.ldap.bind-password.description": "Kullanıcı aramasını gerçekleştirmek için kullanılan şifre", "admin.config.ldap.bind-password.description": "Kullanıcı aramasını gerçekleştirmek için kullanılan şifre",
"admin.config.ldap.search-base": "Kullanıcı temeli", "admin.config.ldap.search-base": "Kullanıcı tabanı",
"admin.config.ldap.search-base.description": "Kullanıcı aramasının yapılacağı temel konum", "admin.config.ldap.search-base.description": "Kullanıcı aramasının yapılacağı temel konum",
"admin.config.ldap.search-query": "Kullanıcı sorgusu", "admin.config.ldap.search-query": "Kullanıcı sorgusu",
"admin.config.ldap.search-query.description": "Kullanıcı sorgusu, LDAP kullanıcısını aramak için 'Kullanıcı temeli' üzerinde kullanılacaktır. Kullanıcı girişine karşılık gelen %username% yer tutucusu kullanılabilir.", "admin.config.ldap.search-query.description": "Kullanıcı sorgusu, 'Kullanıcı tabanı'nda LDAP kullanıcısını aramak için kullanılacaktır. %username%, kullanıcının girdiği değer için yer tutucu olarak kullanılabilir.",
"admin.config.ldap.admin-groups": "Yönetici grubu", "admin.config.ldap.admin-groups": "Yönetici grubu",
"admin.config.ldap.admin-groups.description": "Yönetimsel erişim için gerekli grup.", "admin.config.ldap.admin-groups.description": "Yönetici erişimi için gereken grup.",
"admin.config.ldap.field-name-member-of": "Kullanıcı grupları nitelik adı", "admin.config.ldap.field-name-member-of": "Kullanıcı grupları öznitelik adı",
"admin.config.ldap.field-name-member-of.description": "Kullanıcının üye olduğu gruplar için LDAP nitelik adı. Bu, yönetici grubunu kontrol ederken kullanılır.", "admin.config.ldap.field-name-member-of.description": "Bir kullanıcının üye olduğu gruplar için LDAP öznitelik adı. Bu, yönetici grubunu kontrol ederken kullanılır.",
"admin.config.ldap.field-name-email": "Kullanıcı e-posta nitelik adı", "admin.config.ldap.field-name-email": "Kullanıcı e-posta öznitelik adı",
"admin.config.ldap.field-name-email.description": "Kullanıcının e-posta adresi için LDAP nitelik adı.", "admin.config.ldap.field-name-email.description": "Bir kullanıcının e-postası için LDAP öznitelik adı.",
"admin.config.notify.success": "Yapılandırma başarıyla güncellendi.", "admin.config.notify.success": "Yapılandırma başarıyla güncellendi.",
"admin.config.notify.logo-success": "Logo başarıyla güncellendi. Web sitesinde güncellenmesi birkaç dakika sürebilir.", "admin.config.notify.logo-success": "Logo başarıyla güncellendi. Web sitesinde güncellenmesi birkaç dakika sürebilir.",
"admin.config.notify.no-changes": "Kaydedilecek bir değişiklik yok.", "admin.config.notify.no-changes": "Kaydedilecek değişiklik yok.",
"admin.config.category.s3": "S3", "admin.config.category.s3": "S3",
"admin.config.s3.enabled": "Etkin", "admin.config.s3.enabled": "Etkin",
"admin.config.s3.enabled.description": "Paylaşılan dosyaların yerel dosya sistemi yerine S3 üzerinde depolanıp depolanmayacağını belirtir.", "admin.config.s3.enabled.description": "Paylaşılan dosyaları yerel dosya sistemi yerine depolamak için S3'ün kullanılıp kullanılmayacağı.",
"admin.config.s3.endpoint": "Bağlantı Noktası", "admin.config.s3.endpoint": "Uç Nokta (Endpoint)",
"admin.config.s3.endpoint.description": "S3 kovasının URL'si.", "admin.config.s3.endpoint.description": "S3 bucket'ının URL'si.",
"admin.config.s3.region": "Bölge", "admin.config.s3.region": "Bölge (Region)",
"admin.config.s3.region.description": "S3 kovasının bulunduğu bölge.", "admin.config.s3.region.description": "S3 bucket'ının bölgesi.",
"admin.config.s3.bucket-name": "Kova Adı", "admin.config.s3.bucket-name": "Bucket Adı",
"admin.config.s3.bucket-name.description": "S3 kovasının adı.", "admin.config.s3.bucket-name.description": "S3 bucket'ının adı.",
"admin.config.s3.bucket-path": "Yol", "admin.config.s3.bucket-path": "Yol (Path)",
"admin.config.s3.bucket-path.description": "Dosyaların S3 kovasında depolanması için varsayılan yol.", "admin.config.s3.bucket-path.description": "Dosyaları S3 bucket'ında depolamak için kullanılacak varsayılan yol.",
"admin.config.s3.key": "Anahtar", "admin.config.s3.key": "Anahtar (Key)",
"admin.config.s3.key.description": "S3 kovasına erişmenizi sağlayan anahtar.", "admin.config.s3.key.description": "S3 bucket'ına erişmenizi sağlayan anahtar.",
"admin.config.s3.secret": "Gizli", "admin.config.s3.secret": "Sır (Secret)",
"admin.config.s3.secret.description": "S3 kovasına erişmenizi sağlayan gizli anahtar.", "admin.config.s3.secret.description": "S3 bucket'ına erişmenizi sağlayan sır.",
"admin.config.s3.use-checksum": "Sağlama toplamı (checksum) kullan",
"admin.config.s3.use-checksum.description": "Sağlama toplamını desteklemeyen (ör. B2) arka uçlar için kapatın.",
"admin.config.category.legal": "Yasal", "admin.config.category.legal": "Yasal",
"admin.config.legal.enabled": "Yasal Bildirimleri Etkinleştir", "admin.config.legal.enabled": "Yasal bildirimleri etkinleştir",
"admin.config.legal.enabled.description": "Alt bilgi kısmında künyeye ve gizlilik politikasına bir bağlantı gösterilip gösterilmeyeceğini belirtir.", "admin.config.legal.enabled.description": "Altbilgide künye ve gizlilik politikası bağlantısı gösterilip gösterilmeyeceği.",
"admin.config.legal.imprint-text": "Künye Metni", "admin.config.legal.imprint-text": "Künye metni",
"admin.config.legal.imprint-text.description": "Künyede gösterilecek metin. Markdown destekler. Dış bir künye sayfasına bağlanmak için boş bırakın.", "admin.config.legal.imprint-text.description": "Künyede gösterilmesi gereken metin. Markdown destekler. Harici bir künye sayfasına bağlantı vermek için boş bırakın.",
"admin.config.legal.imprint-url": "Künye URL'si", "admin.config.legal.imprint-url": "Künye URL'si",
"admin.config.legal.imprint-url.description": "Halihazırda bir künye sayfanız varsa, buraya bağlantı verebilirsiniz.", "admin.config.legal.imprint-url.description": "Zaten bir künye sayfanız varsa, metin alanı yerine buraya bağlantı verebilirsiniz.",
"admin.config.legal.privacy-policy-text": "Gizlilik Politikası Metni", "admin.config.legal.privacy-policy-text": "Gizlilik politikası metni",
"admin.config.legal.privacy-policy-text.description": "Gizlilik politikasında gösterilecek metin. Markdown destekler. Dış bir gizlilik politikası sayfasına bağlanmak için boş bırakın.", "admin.config.legal.privacy-policy-text.description": "Gizlilik politikasında gösterilmesi gereken metin. Markdown destekler. Harici bir gizlilik politikası sayfasına bağlantı vermek için boş bırakın.",
"admin.config.legal.privacy-policy-url": "Gizlilik Politikası URL'si", "admin.config.legal.privacy-policy-url": "Gizlilik politikası URL'si",
"admin.config.legal.privacy-policy-url.description": "Halihazırda bir gizlilik politikası sayfanız varsa, buraya bağlantı verebilirsiniz.", "admin.config.legal.privacy-policy-url.description": "Zaten bir gizlilik politikası sayfanız varsa, metin alanı yerine buraya bağlantı verebilirsiniz.",
// 404 // 404
"404.description": "Hata! Bu sayfa mevcut değil.", "404.description": "Hay aksi, bu sayfa mevcut değil.",
"404.button.home": "Beni anasayfaya götür", "404.button.home": "Beni anasayfaya götür",
// error // error
"error.title": "Hata", "error.title": "Hata",
"error.description": "Oops!", "error.description": "Hay aksi!",
"error.button.back": "Geri dön", "error.button.back": "Geri dön",
"error.msg.default": "Bir şeyler ters gitti.", "error.msg.default": "Bir şeyler ters gitti.",
"error.msg.access_denied": "Kimlik doğrulama işlemini iptal ettiniz, lütfen tekrar deneyin.", "error.msg.access_denied": "Kimlik doğrulama işlemini iptal ettiniz, lütfen tekrar deneyin.",
"error.msg.expired_token": "Kimlik doğrulama işlemi çok uzun sürdü, lütfen tekrar deneyin.", "error.msg.expired_token": "Kimlik doğrulama işlemi çok uzun sürdü, lütfen tekrar deneyin.",
"error.msg.invalid_token": "Dahili Hata", "error.msg.invalid_token": "İç Hata",
"error.msg.no_user": "Bu {0} hesabıyla bağlantılı bir kullanıcı mevcut değil.", "error.msg.no_user": "Bu {0} hesabına bağlı kullanıcı mevcut değil.",
"error.msg.no_email": "Bu {0} hesabından e-posta adresi alınamıyor.", "error.msg.no_email": "Bu {0} hesabından e-posta adresi alınamıyor.",
"error.msg.already_linked": "Bu {0} hesabı zaten başka bir hesapla bağlantılı.", "error.msg.already_linked": "Bu {0} hesabı zaten başka bir hesaba bağlı.",
"error.msg.not_linked": "Bu {0} hesabı henüz hiçbir hesapla bağlantılı değil.", "error.msg.not_linked": "Bu {0} hesabı henüz hiçbir hesaba bağlanmamış.",
"error.msg.unverified_account": "Bu {0} hesabı doğrulanmamış, lütfen doğrulamadan sonra tekrar deneyin.", "error.msg.unverified_account": "Bu {0} hesabı doğrulanmamış, lütfen doğruladıktan sonra tekrar deneyin.",
"error.msg.user_not_allowed": "Giriş yapma izniniz yok.", "error.msg.user_not_allowed": "Giriş yapmanıza izin verilmiyor.",
"error.msg.cannot_get_user_info": "Bu {0} hesabından kullanıcı bilgilerinize ulaşılamıyor.", "error.msg.cannot_get_user_info": "Bu {0} hesabından kullanıcı bilgileriniz alınamıyor.",
"error.param.provider_github": "GitHub", "error.param.provider_github": "GitHub",
"error.param.provider_google": "Google", "error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft", "error.param.provider_microsoft": "Microsoft",
@@ -509,7 +521,7 @@ export default {
"common.button.disable": "Devre Dışı Bırak", "common.button.disable": "Devre Dışı Bırak",
"common.button.share": "Paylaş", "common.button.share": "Paylaş",
"common.button.generate": "Oluştur", "common.button.generate": "Oluştur",
"common.button.done": "Tamamlandı", "common.button.done": "Bitti",
"common.text.link": "Bağlantı", "common.text.link": "Bağlantı",
"common.text.navigate-to-link": "Bağlantıya git", "common.text.navigate-to-link": "Bağlantıya git",
"common.text.or": "veya", "common.text.or": "veya",
@@ -523,10 +535,10 @@ export default {
"common.error.unknown": "Bilinmeyen bir hata oluştu", "common.error.unknown": "Bilinmeyen bir hata oluştu",
"common.error.invalid-email": "Geçersiz e-posta adresi", "common.error.invalid-email": "Geçersiz e-posta adresi",
"common.error.too-short": "En az {length} karakter olmalıdır", "common.error.too-short": "En az {length} karakter olmalıdır",
"common.error.too-long": "En fazla {length} karakter olmalıdır", "common.error.too-long": "En fazla {length} karakter olabilir",
"common.error.number-too-small": "En az {min} olmalıdır", "common.error.number-too-small": "En az {min} olmalıdır",
"common.error.number-too-large": "En fazla {max} olmalıdır", "common.error.number-too-large": "En fazla {max} olabilir",
"common.error.exact-length": "Tam olarak {length} karakter olmalıdır", "common.error.exact-length": "Tam olarak {length} karakter olmalıdır",
"common.error.invalid-number": "Bir sayı olmalıdır", "common.error.invalid-number": "Bir sayı olmalıdır",
"common.error.field-required": "Bu alan gereklidir" "common.error.field-required": "Bu alan zorunludur"
}; };

View File

@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Завантаження {shareId}", "share.title": "Завантаження {shareId}",
"share.description": "Подивіться, чим я поділився з вами!", "share.description": "Подивіться, чим я поділився з вами!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Перевищено ліміт відвідувачів", "share.error.visitor-limit-exceeded.title": "Перевищено ліміт відвідувачів",
"share.error.visitor-limit-exceeded.description": "Перевищено ліміт відвідувачів.", "share.error.visitor-limit-exceeded.description": "Перевищено ліміт відвідувачів.",
"share.error.removed.title": "Завантаження видалено", "share.error.removed.title": "Завантаження видалено",
@@ -302,11 +303,12 @@ export default {
"privacy.title": "Політика конфіденційності", "privacy.title": "Політика конфіденційності",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Файл конфігурації присутній",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "Оскільки у вас налаштовано Pingvin Share за допомогою конфігураційного файлу, ви не можете змінювати конфігурацію через інтерфейс користувача.",
"admin.config.title": "Конфігурація", "admin.config.title": "Конфігурація",
"admin.config.category.general": "Загальне", "admin.config.category.general": "Загальне",
"admin.config.category.share": "Завантаження", "admin.config.category.share": "Завантаження",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Електронна пошта", "admin.config.category.email": "Електронна пошта",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Вхід через соцмережі", "admin.config.category.oauth": "Вхід через соцмережі",
@@ -319,10 +321,18 @@ export default {
"admin.config.general.show-home-page": "Показувати домашню сторінку", "admin.config.general.show-home-page": "Показувати домашню сторінку",
"admin.config.general.show-home-page.description": "Показувати домашню сторінку чи ні", "admin.config.general.show-home-page.description": "Показувати домашню сторінку чи ні",
"admin.config.general.session-duration": "Тривалість сеансу", "admin.config.general.session-duration": "Тривалість сеансу",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "Час, після якого користувач повинен увійти в систему знову (за замовчуванням: 3 місяці).",
"admin.config.general.logo": "Логотип", "admin.config.general.logo": "Логотип",
"admin.config.general.logo.description": "Змініть свій логотип, завантаживши нове зображення. Зображення має бути PNG і повинно мати формат 1:1.", "admin.config.general.logo.description": "Змініть свій логотип, завантаживши нове зображення. Зображення має бути PNG і повинно мати формат 1:1.",
"admin.config.general.logo.placeholder": "Виберіть зображення", "admin.config.general.logo.placeholder": "Виберіть зображення",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Увімкнути спільний доступ для отримувачів через ел. пошту", "admin.config.email.enable-share-email-recipients": "Увімкнути спільний доступ для отримувачів через ел. пошту",
"admin.config.email.enable-share-email-recipients.description": "Чи дозволяти спільний доступ через ел. пошту для отримувачів. Увімкніть це тільки, якщо SMTP активовано.", "admin.config.email.enable-share-email-recipients.description": "Чи дозволяти спільний доступ через ел. пошту для отримувачів. Увімкніть це тільки, якщо SMTP активовано.",
"admin.config.email.share-recipients-subject": "Заголовок листа (завантаження)", "admin.config.email.share-recipients-subject": "Заголовок листа (завантаження)",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Порт", "admin.config.smtp.port": "Порт",
"admin.config.smtp.port.description": "Порт SMTP сервера", "admin.config.smtp.port.description": "Порт SMTP сервера",
"admin.config.smtp.email": "Електронна пошта", "admin.config.smtp.email": "Електронна пошта",
"admin.config.smtp.email.description": "Ел. пошта, з якої надсилаються листи", "admin.config.smtp.email.description": "Адреса ел. пошти, з якої надсилаються листи",
"admin.config.smtp.username": "Логін", "admin.config.smtp.username": "Логін",
"admin.config.smtp.username.description": "Ім'я користувача SMTP-сервера", "admin.config.smtp.username.description": "Ім'я користувача SMTP-сервера",
"admin.config.smtp.password": "Пароль", "admin.config.smtp.password": "Пароль",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "Ключ, який дозволяє отримати доступ до S3 бакету.", "admin.config.s3.key.description": "Ключ, який дозволяє отримати доступ до S3 бакету.",
"admin.config.s3.secret": "Секрет", "admin.config.s3.secret": "Секрет",
"admin.config.s3.secret.description": "Секрет, який дозволяє отримати доступ до S3 бакету.", "admin.config.s3.secret.description": "Секрет, який дозволяє отримати доступ до S3 бакету.",
"admin.config.s3.use-checksum": "Використовувати контрольну суму",
"admin.config.s3.use-checksum.description": "Вимкніть для непідтримуваних контрольних сум (напр. B2).",
"admin.config.category.legal": "Юридична інформація", "admin.config.category.legal": "Юридична інформація",
"admin.config.legal.enabled": "Увімкнути правові сповіщення", "admin.config.legal.enabled": "Увімкнути правові сповіщення",
"admin.config.legal.enabled.description": "Чи відображати посилання на вихідні дані та політику конфіденційності у нижньому колонтитулі.", "admin.config.legal.enabled.description": "Чи відображати посилання на вихідні дані та політику конфіденційності у нижньому колонтитулі.",

View File

@@ -5,7 +5,7 @@ export default {
"navbar.home": "Trang chủ", "navbar.home": "Trang chủ",
"navbar.signup": "Đăng ký", "navbar.signup": "Đăng ký",
"navbar.links.shares": "Chia sẻ của tôi", "navbar.links.shares": "Chia sẻ của tôi",
"navbar.links.reverse": "Reverse shares", "navbar.links.reverse": "Chia sẻ ngược",
"navbar.avatar.account": "Tài khoản", "navbar.avatar.account": "Tài khoản",
"navbar.avatar.admin": "Quản trị viên", "navbar.avatar.admin": "Quản trị viên",
"navbar.avatar.signout": "Đăng xuất", "navbar.avatar.signout": "Đăng xuất",
@@ -133,12 +133,12 @@ export default {
"account.shares.modal.delete.description": "Do you really want to delete this share?", "account.shares.modal.delete.description": "Do you really want to delete this share?",
// END /account/shares // END /account/shares
// /account/reverseShares // /account/reverseShares
"account.reverseShares.title": "Reverse shares", "account.reverseShares.title": "Chia sẻ ngược",
"account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.", "account.reverseShares.description": "Chia sẻ ngược cho phép bạn tạo một liên kết duy nhất để người ngoài có thể tải tệp lên cho bạn.",
"account.reverseShares.title.empty": "It's empty here 👀", "account.reverseShares.title.empty": "Chỗ này đang trống 👀",
"account.reverseShares.description.empty": "You don't have any reverse shares.", "account.reverseShares.description.empty": "Bạn chưa có chia sẻ ngược nào.",
// showCreateReverseShareModal.tsx // showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Create reverse share", "account.reverseShares.modal.title": "Tạo chia sẻ ngược",
"account.reverseShares.modal.expiration.label": "Thời hạn", "account.reverseShares.modal.expiration.label": "Thời hạn",
"account.reverseShares.modal.expiration.minute-singular": "Phút", "account.reverseShares.modal.expiration.minute-singular": "Phút",
"account.reverseShares.modal.expiration.minute-plural": "Phút", "account.reverseShares.modal.expiration.minute-plural": "Phút",
@@ -152,13 +152,13 @@ export default {
"account.reverseShares.modal.expiration.month-plural": "Tháng", "account.reverseShares.modal.expiration.month-plural": "Tháng",
"account.reverseShares.modal.expiration.year-singular": "Năm", "account.reverseShares.modal.expiration.year-singular": "Năm",
"account.reverseShares.modal.expiration.year-plural": "Năm", "account.reverseShares.modal.expiration.year-plural": "Năm",
"account.reverseShares.modal.max-size.label": "Max share size", "account.reverseShares.modal.max-size.label": "Kích thước chia sẻ tối đa",
"account.reverseShares.modal.send-email": "Send email notifications", "account.reverseShares.modal.send-email": "Gửi thông báo qua email",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.", "account.reverseShares.modal.send-email.description": "Gửi thông báo qua email cho bạn khi có chia sẻ được tạo bằng liên kết chia sẻ ngược này.",
"account.reverseShares.modal.simplified": "Chế độ đơn giản", "account.reverseShares.modal.simplified": "Chế độ đơn giản",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.", "account.reverseShares.modal.simplified.description": "Giúp người gửi tệp dễ dàng chia sẻ với bạn.\nHọ chỉ có thể chỉnh sửa tên và mô tả của lượt chia sẻ.",
"account.reverseShares.modal.public-access": "Public access", "account.reverseShares.modal.public-access": "Truy cập công khai",
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.", "account.reverseShares.modal.public-access.description": "Cho phép bất kỳ ai cũng có thể xem các tệp được gửi qua liên kết chia sẻ ngược này. Nếu tắt, chỉ bạn với người gửi mới có thể xem được.",
"account.reverseShares.modal.max-use.label": "Max uses", "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.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.never-expires": "This reverse share will never expire.",
@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "Share {shareId}", "share.title": "Share {shareId}",
"share.description": "Look what I've shared with you!", "share.description": "Look what I've shared with you!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "Visitor limit exceeded", "share.error.visitor-limit-exceeded.title": "Visitor limit exceeded",
"share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.", "share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.",
"share.error.removed.title": "Share removed", "share.error.removed.title": "Share removed",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "Configuration", "admin.config.title": "Configuration",
"admin.config.category.general": "Tổng quan", "admin.config.category.general": "Tổng quan",
"admin.config.category.share": "Share", "admin.config.category.share": "Share",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "Email", "admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login", "admin.config.category.oauth": "Social Login",
@@ -323,6 +325,14 @@ export default {
"admin.config.general.logo": "Logo", "admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.", "admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.",
"admin.config.general.logo.placeholder": "Chọn ảnh", "admin.config.general.logo.placeholder": "Chọn ảnh",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing", "admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.", "admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
"admin.config.email.share-recipients-subject": "Share recipients subject", "admin.config.email.share-recipients-subject": "Share recipients subject",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "Cổng", "admin.config.smtp.port": "Cổng",
"admin.config.smtp.port.description": "Port of the SMTP server", "admin.config.smtp.port.description": "Port of the SMTP server",
"admin.config.smtp.email": "Email", "admin.config.smtp.email": "Email",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "Email address from which the emails get sent",
"admin.config.smtp.username": "Username", "admin.config.smtp.username": "Username",
"admin.config.smtp.username.description": "Username of the SMTP server", "admin.config.smtp.username.description": "Username of the SMTP server",
"admin.config.smtp.password": "Mật khẩu", "admin.config.smtp.password": "Mật khẩu",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "Legal", "admin.config.category.legal": "Legal",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.legal.enabled": "Enable legal notices",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.",

View File

@@ -125,7 +125,7 @@ export default {
"account.shares.table.createdAt": "创建于", "account.shares.table.createdAt": "创建于",
"account.shares.table.size": "文件大小", "account.shares.table.size": "文件大小",
"account.shares.table.password-protected": "密码保护", "account.shares.table.password-protected": "密码保护",
"account.shares.table.visitor-count": "{count} of {max}", "account.shares.table.visitor-count": "{count}/{max}",
"account.shares.table.expiry-never": "永不", "account.shares.table.expiry-never": "永不",
"account.shares.modal.share-informations": "共享信息", "account.shares.modal.share-informations": "共享信息",
"account.shares.modal.share-link": "共享链接", "account.shares.modal.share-link": "共享链接",
@@ -270,6 +270,7 @@ export default {
// /share/[id] // /share/[id]
"share.title": "共享 {shareId}", "share.title": "共享 {shareId}",
"share.description": "瞧瞧我给你共享了些什么!", "share.description": "瞧瞧我给你共享了些什么!",
"share.fileCount": "{count, plural, =1 {# file} other {# files}} · {size} (zip file may be smaller due to compression)",
"share.error.visitor-limit-exceeded.title": "访问次数达到上限", "share.error.visitor-limit-exceeded.title": "访问次数达到上限",
"share.error.visitor-limit-exceeded.description": "访问次数达到上限", "share.error.visitor-limit-exceeded.description": "访问次数达到上限",
"share.error.removed.title": "共享已删除", "share.error.removed.title": "共享已删除",
@@ -302,11 +303,12 @@ export default {
"privacy.title": "隐私政策", "privacy.title": "隐私政策",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "配置文件已存在",
"admin.config.config-file-warning.description": "As you have a configured Pingvin Share with a configuration file, you can't change the configuration through the UI.", "admin.config.config-file-warning.description": "由于您已配置了Pingvin 共享的配置文件您无法通过UI更改配置。",
"admin.config.title": "配置管理", "admin.config.title": "配置管理",
"admin.config.category.general": "通用", "admin.config.category.general": "通用",
"admin.config.category.share": "共享", "admin.config.category.share": "共享",
"admin.config.category.cache": "Cache",
"admin.config.category.email": "电子邮件", "admin.config.category.email": "电子邮件",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "社交账号登录", "admin.config.category.oauth": "社交账号登录",
@@ -314,15 +316,23 @@ export default {
"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": "App 的地址",
"admin.config.general.app-url.description": "Pingvin Share 的 URL 地址", "admin.config.general.app-url.description": "Pingvin Share 的 URL 地址",
"admin.config.general.secure-cookies": "Secure cookies", "admin.config.general.secure-cookies": "安全 Cookie",
"admin.config.general.secure-cookies.description": "是否为 cookie 设置安全标志。如果启用,当通过 HTTP 访问时站点将无法运行。", "admin.config.general.secure-cookies.description": "是否为 cookie 设置安全标志。如果启用,当通过 HTTP 访问时站点将无法运行。",
"admin.config.general.show-home-page": "显示首页", "admin.config.general.show-home-page": "显示首页",
"admin.config.general.show-home-page.description": "是否显示首页", "admin.config.general.show-home-page.description": "是否显示首页",
"admin.config.general.session-duration": "会话时长", "admin.config.general.session-duration": "会话时长",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "用户必须重新登录的时间 (默认3 个月)。",
"admin.config.general.logo": "Logo", "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.general.logo.placeholder": "选择图片",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "启用邮件收件人共享", "admin.config.email.enable-share-email-recipients": "启用邮件收件人共享",
"admin.config.email.enable-share-email-recipients.description": "是否允许与收件人分享电子邮件。只有在SMTP被激活时才启用此功能。", "admin.config.email.enable-share-email-recipients.description": "是否允许与收件人分享电子邮件。只有在SMTP被激活时才启用此功能。",
"admin.config.email.share-recipients-subject": "共享邮件通知主题", "admin.config.email.share-recipients-subject": "共享邮件通知主题",
@@ -364,7 +374,7 @@ export default {
"admin.config.smtp.port": "端口", "admin.config.smtp.port": "端口",
"admin.config.smtp.port.description": "SMTP 主机端口", "admin.config.smtp.port.description": "SMTP 主机端口",
"admin.config.smtp.email": "发送邮箱", "admin.config.smtp.email": "发送邮箱",
"admin.config.smtp.email.description": "Email address from wich the emails get sent", "admin.config.smtp.email.description": "发件人电子邮件地址",
"admin.config.smtp.username": "用户名", "admin.config.smtp.username": "用户名",
"admin.config.smtp.username.description": "SMTP 主机用户名", "admin.config.smtp.username.description": "SMTP 主机用户名",
"admin.config.smtp.password": "密码", "admin.config.smtp.password": "密码",
@@ -400,7 +410,7 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth App 的 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": "Discord",
"admin.config.oauth.discord-enabled.description": "是否启用 Discord 账号登录", "admin.config.oauth.discord-enabled.description": "是否启用 Discord 账号登录",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "Discord 受限用户",
"admin.config.oauth.discord-limited-users.description": "使用Discord ID限制登录到特定的用户。留空以禁用。", "admin.config.oauth.discord-limited-users.description": "使用Discord ID限制登录到特定的用户。留空以禁用。",
"admin.config.oauth.discord-limited-guild": "Discord 的 limited server ID", "admin.config.oauth.discord-limited-guild": "Discord 的 limited server ID",
"admin.config.oauth.discord-limited-guild.description": "限制特定服务器中的用户登录。留空来禁用。", "admin.config.oauth.discord-limited-guild.description": "限制特定服务器中的用户登录。留空来禁用。",
@@ -435,7 +445,7 @@ export default {
"admin.config.ldap.url.description": "LDAP 服务器的 URL", "admin.config.ldap.url.description": "LDAP 服务器的 URL",
"admin.config.ldap.bind-dn": "Bind DN", "admin.config.ldap.bind-dn": "Bind DN",
"admin.config.ldap.bind-dn.description": "用于执行用户搜索的默认用户", "admin.config.ldap.bind-dn.description": "用于执行用户搜索的默认用户",
"admin.config.ldap.bind-password": "Bind password", "admin.config.ldap.bind-password": "绑定密码",
"admin.config.ldap.bind-password.description": "用于执行用户搜索的密码", "admin.config.ldap.bind-password.description": "用于执行用户搜索的密码",
"admin.config.ldap.search-base": "User base", "admin.config.ldap.search-base": "User base",
"admin.config.ldap.search-base.description": "进行用户搜索的基本位置", "admin.config.ldap.search-base.description": "进行用户搜索的基本位置",
@@ -465,6 +475,8 @@ export default {
"admin.config.s3.key.description": "允许您访问 S3 桶的密钥。", "admin.config.s3.key.description": "允许您访问 S3 桶的密钥。",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "允许您访问 S3 桶的密钥。", "admin.config.s3.secret.description": "允许您访问 S3 桶的密钥。",
"admin.config.s3.use-checksum": "Use checksum",
"admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.category.legal": "合规", "admin.config.category.legal": "合规",
"admin.config.legal.enabled": "启用合规提醒", "admin.config.legal.enabled": "启用合规提醒",
"admin.config.legal.enabled.description": "是否在页脚中显示版权信息和隐私政策。", "admin.config.legal.enabled.description": "是否在页脚中显示版权信息和隐私政策。",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "上傳", "navbar.upload": "上傳",
"navbar.signin": "登入", "navbar.signin": "登入",
"navbar.home": "首頁", "navbar.home": "首頁",
"navbar.signup": "登入", "navbar.signup": "註冊",
"navbar.links.shares": "我的分享", "navbar.links.shares": "我的分享",
"navbar.links.reverse": "檔案請求", "navbar.links.reverse": "檔案請求",
"navbar.avatar.account": "帳號設定", "navbar.avatar.account": "帳號設定",
@@ -81,12 +81,12 @@ export default {
"account.card.oauth.microsoft": "Microsoft", "account.card.oauth.microsoft": "Microsoft",
"account.card.oauth.discord": "Discord", "account.card.oauth.discord": "Discord",
"account.card.oauth.oidc": "OpenID", "account.card.oauth.oidc": "OpenID",
"account.card.oauth.link": "聯結", "account.card.oauth.link": "綁定",
"account.card.oauth.unlink": "取消聯結", "account.card.oauth.unlink": "取消綁定",
"account.card.oauth.unlinked": "已取消聯結", "account.card.oauth.unlinked": "已取消綁定",
"account.modal.unlink.title": "取消聯結第三方登入", "account.modal.unlink.title": "取消綁定第三方登入",
"account.modal.unlink.description": "若不記得使用者名稱與密碼,取消聯結第三方登入可能會使您無法登入", "account.modal.unlink.description": "若不記得使用者名稱與密碼,取消綁定第三方登入可能會使您無法登入",
"account.notify.oauth.unlinked.success": "已完成取消聯結", "account.notify.oauth.unlinked.success": "已完成取消綁定",
"account.card.security.title": "安控", "account.card.security.title": "安控",
"account.card.security.totp.enable.description": "請輸入當前密碼開啟兩步驗證", "account.card.security.totp.enable.description": "請輸入當前密碼開啟兩步驗證",
"account.card.security.totp.disable.description": "請輸入當前密碼關閉兩步驗證", "account.card.security.totp.disable.description": "請輸入當前密碼關閉兩步驗證",
@@ -124,9 +124,9 @@ export default {
"account.shares.table.expiresAt": "失效於", "account.shares.table.expiresAt": "失效於",
"account.shares.table.createdAt": "創建於", "account.shares.table.createdAt": "創建於",
"account.shares.table.size": "檔案大小", "account.shares.table.size": "檔案大小",
"account.shares.table.password-protected": "Password protected", "account.shares.table.password-protected": "密碼保護",
"account.shares.table.visitor-count": "{count} of {max}", "account.shares.table.visitor-count": "{count} / {max}",
"account.shares.table.expiry-never": "Never", "account.shares.table.expiry-never": "永不",
"account.shares.modal.share-informations": "分享資訊", "account.shares.modal.share-informations": "分享資訊",
"account.shares.modal.share-link": "分享連結", "account.shares.modal.share-link": "分享連結",
"account.shares.modal.delete.title": "刪除: {share}", "account.shares.modal.delete.title": "刪除: {share}",
@@ -135,7 +135,7 @@ export default {
// /account/reverseShares // /account/reverseShares
"account.reverseShares.title": "檔案請求", "account.reverseShares.title": "檔案請求",
"account.reverseShares.description": "檔案請求允許您建立一個特定的上傳畫面,以便外部使用者與您分享檔案", "account.reverseShares.description": "檔案請求允許您建立一個特定的上傳畫面,以便外部使用者與您分享檔案",
"account.reverseShares.title.empty": "這空空如也 👀", "account.reverseShares.title.empty": "這空空如也 👀",
"account.reverseShares.description.empty": "您沒有建立任何檔案請求", "account.reverseShares.description.empty": "您沒有建立任何檔案請求",
// showCreateReverseShareModal.tsx // showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "建立檔案請求", "account.reverseShares.modal.title": "建立檔案請求",
@@ -162,7 +162,7 @@ export default {
"account.reverseShares.modal.max-use.label": "最大使用次數", "account.reverseShares.modal.max-use.label": "最大使用次數",
"account.reverseShares.modal.max-use.description": "這個檔案請求連結可被用於建立分享的最大使用次數", "account.reverseShares.modal.max-use.description": "這個檔案請求連結可被用於建立分享的最大使用次數",
"account.reverseShare.never-expires": "這個檔案請求永不過期", "account.reverseShare.never-expires": "這個檔案請求永不過期",
"account.reverseShare.expires-on": "這個檔案請求將過期於 {expiration}", "account.reverseShare.expires-on": "這個檔案請求將於 {expiration} 過期。",
"account.reverseShares.table.no-shares": "當前沒有建立任何分享", "account.reverseShares.table.no-shares": "當前沒有建立任何分享",
"account.reverseShares.table.count.singular": "分享", "account.reverseShares.table.count.singular": "分享",
"account.reverseShares.table.count.plural": "分享", "account.reverseShares.table.count.plural": "分享",
@@ -263,13 +263,14 @@ export default {
"upload.modal.accordion.security.max-views.placeholder": "無限", "upload.modal.accordion.security.max-views.placeholder": "無限",
// showCompletedUploadModal.tsx // showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "這個分享永不過期", "upload.modal.completed.never-expires": "這個分享永不過期",
"upload.modal.completed.expires-on": "這個分享將過期於 {expiration}。", "upload.modal.completed.expires-on": "這個分享將於 {expiration} 過期。",
"upload.modal.completed.share-ready": "分享建立完畢", "upload.modal.completed.share-ready": "分享建立完畢",
"upload.modal.completed.notified-reverse-share-creator": "我們已經通知檔案請求連結的擁有者,你也可以手動分享此連結給他們。", "upload.modal.completed.notified-reverse-share-creator": "我們已經通知檔案請求連結的擁有者,你也可以手動分享此連結給他們。",
// END /upload // END /upload
// /share/[id] // /share/[id]
"share.title": "分享 {shareId}", "share.title": "分享 {shareId}",
"share.description": "瞧瞧我給您分享了些什麽!", "share.description": "瞧瞧我給您分享了些什麽!",
"share.fileCount": "{count, plural, =1 {# 個檔案} other {# 個檔案}} · {size} (壓縮檔可能比原檔小)",
"share.error.visitor-limit-exceeded.title": "查看次數達到上限", "share.error.visitor-limit-exceeded.title": "查看次數達到上限",
"share.error.visitor-limit-exceeded.description": "查看次數達到上限", "share.error.visitor-limit-exceeded.description": "查看次數達到上限",
"share.error.removed.title": "分享已刪除", "share.error.removed.title": "分享已刪除",
@@ -278,7 +279,7 @@ export default {
"share.error.access-denied.title": "私人分享", "share.error.access-denied.title": "私人分享",
"share.error.access-denied.description": "您沒有權限存取此檔案", "share.error.access-denied.description": "您沒有權限存取此檔案",
"share.modal.password.title": "需要密碼", "share.modal.password.title": "需要密碼",
"share.modal.password.description": "Please enter the password to access this share.", "share.modal.password.description": "請輸入密碼取得此分享。",
"share.modal.password": "密碼", "share.modal.password": "密碼",
"share.modal.error.invalid-password": "密碼錯誤", "share.modal.error.invalid-password": "密碼錯誤",
"share.button.download-all": "全部下載", "share.button.download-all": "全部下載",
@@ -296,10 +297,10 @@ export default {
"share.edit.notify.save-success": "分享已更新成功", "share.edit.notify.save-success": "分享已更新成功",
// END /share/[id]/edit // END /share/[id]/edit
// /imprint // /imprint
"imprint.title": "Imprint", "imprint.title": "版權宣告",
// END /imprint // END /imprint
// /privacy // /privacy
"privacy.title": "Privacy Policy", "privacy.title": "隱私權政策",
// END /privacy // END /privacy
// /admin/config // /admin/config
"admin.config.config-file-warning.title": "Configuration file present", "admin.config.config-file-warning.title": "Configuration file present",
@@ -307,6 +308,7 @@ export default {
"admin.config.title": "配置管理", "admin.config.title": "配置管理",
"admin.config.category.general": "通用", "admin.config.category.general": "通用",
"admin.config.category.share": "分享", "admin.config.category.share": "分享",
"admin.config.category.cache": "快取",
"admin.config.category.email": "Email", "admin.config.category.email": "Email",
"admin.config.category.smtp": "SMTP", "admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "第三方登入", "admin.config.category.oauth": "第三方登入",
@@ -319,10 +321,18 @@ export default {
"admin.config.general.show-home-page": "顯示首頁", "admin.config.general.show-home-page": "顯示首頁",
"admin.config.general.show-home-page.description": "是否顯示首頁", "admin.config.general.show-home-page.description": "是否顯示首頁",
"admin.config.general.session-duration": "工作階段持續時間", "admin.config.general.session-duration": "工作階段持續時間",
"admin.config.general.session-duration.description": "Time after which a user must log in again (default: 3 months).", "admin.config.general.session-duration.description": "使用者多久後須重登入(預設3個月)。",
"admin.config.general.logo": "Logo", "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.general.logo.placeholder": "選擇圖片",
"admin.config.cache.ttl": "TTL",
"admin.config.cache.ttl.description": "Time in second to keep information inside the cache.",
"admin.config.cache.max-items": "Maximum items",
"admin.config.cache.max-items.description": "Maximum number of items inside the cache.",
"admin.config.cache.redis-enabled": "Redis enabled",
"admin.config.cache.redis-enabled.description": "Normally Pingvin Share caches information in memory. If you run multiple instances of Pingvin Share, you need to enable Redis caching to share the cache between the instances.",
"admin.config.cache.redis-url": "Redis URL",
"admin.config.cache.redis-url.description": "Url to connect to the Redis instance used for caching.",
"admin.config.email.enable-share-email-recipients": "啟用電子郵件收件者分享", "admin.config.email.enable-share-email-recipients": "啟用電子郵件收件者分享",
"admin.config.email.enable-share-email-recipients.description": "是否允許與收件者分享電子郵件。僅當 SMTP 已啟用時才啟用此功能。", "admin.config.email.enable-share-email-recipients.description": "是否允許與收件者分享電子郵件。僅當 SMTP 已啟用時才啟用此功能。",
"admin.config.email.share-recipients-subject": "分享Email通知主題", "admin.config.email.share-recipients-subject": "分享Email通知主題",
@@ -346,13 +356,13 @@ export default {
"admin.config.share.allow-unauthenticated-shares": "是否允許未登入進行分享", "admin.config.share.allow-unauthenticated-shares": "是否允許未登入進行分享",
"admin.config.share.allow-unauthenticated-shares.description": "是否允許未登入的使用者建立分享", "admin.config.share.allow-unauthenticated-shares.description": "是否允許未登入的使用者建立分享",
"admin.config.share.max-expiration": "最大過期時間", "admin.config.share.max-expiration": "最大過期時間",
"admin.config.share.max-expiration.description": "Maximum share expiration. Set to 0 to allow unlimited expiration.", "admin.config.share.max-expiration.description": "最長分享期限若設定為0則為永不過期。",
"admin.config.share.share-id-length": "預設分享ID長度", "admin.config.share.share-id-length": "預設分享ID長度",
"admin.config.share.share-id-length.description": "預設的自動生成分享ID長度。這個設定同時用於生成檔案請求連結。小於 8 被認為是不安全的。", "admin.config.share.share-id-length.description": "預設的自動生成分享ID長度。這個設定同時用於生成檔案請求連結。小於 8 被認為是不安全的。",
"admin.config.share.max-size": "最大檔案上限", "admin.config.share.max-size": "最大檔案上限",
"admin.config.share.max-size.description": "最大檔案上限", "admin.config.share.max-size.description": "最大檔案上限",
"admin.config.share.zip-compression-level": "Zip 壓縮等級", "admin.config.share.zip-compression-level": "Zip 壓縮等級",
"admin.config.share.zip-compression-level.description": "調整壓縮等級以平衡檔案大小和壓縮速度。 有效值範圍從 0 到 9其中 0 表示無壓縮9 表示最大壓縮", "admin.config.share.zip-compression-level.description": "調整壓縮等級以平衡檔案大小和壓縮速度。 有效值範圍從 0 到 9其中 0 表示無壓縮9 表示最大壓縮",
"admin.config.share.chunk-size": "分塊大小", "admin.config.share.chunk-size": "分塊大小",
"admin.config.share.chunk-size.description": "調整分塊大小 以平衡上傳的效率與可靠度。更小的分塊大小在不穩定的網路環境中可以提升成功率,更大的分塊大小可以在穩定的網路環境中提高上傳速度。", "admin.config.share.chunk-size.description": "調整分塊大小 以平衡上傳的效率與可靠度。更小的分塊大小在不穩定的網路環境中可以提升成功率,更大的分塊大小可以在穩定的網路環境中提高上傳速度。",
"admin.config.share.auto-open-share-modal": "自動開啟分享設定", "admin.config.share.auto-open-share-modal": "自動開啟分享設定",
@@ -400,13 +410,13 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth 的客戶端權杖", "admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth 的客戶端權杖",
"admin.config.oauth.discord-enabled": "Discord", "admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "啟用 Discord 登入", "admin.config.oauth.discord-enabled.description": "啟用 Discord 登入",
"admin.config.oauth.discord-limited-users": "Discord limited users", "admin.config.oauth.discord-limited-users": "僅限指定 Discord 使用者",
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.", "admin.config.oauth.discord-limited-users.description": "僅限指定 ID 的 Discord 使用者登入,留空來禁用。",
"admin.config.oauth.discord-limited-guild": "Discord limited server ID", "admin.config.oauth.discord-limited-guild": "僅限指定 Discord 伺服器",
"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-limited-guild.description": "僅限指定 Id 的 Discord 伺服器內的使用者可以登入,留空來禁用。",
"admin.config.oauth.discord-client-id": "Discord Client ID", "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-id.description": "Discord OAuth 的 Client ID",
"admin.config.oauth.discord-client-secret": "Discord Client secret", "admin.config.oauth.discord-client-secret": "Discord Client 密鑰",
"admin.config.oauth.discord-client-secret.description": "Discord OAuth 的 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": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled", "admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
@@ -419,20 +429,20 @@ export default {
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim", "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-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-role-path": "Path to roles in OpenID Connect token", "admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",
"admin.config.oauth.oidc-role-path.description": "Must be a valid JMES path referencing an array of roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "Leave it blank if you don't know what this config is.", "admin.config.oauth.oidc-role-path.description": "Must be a valid JMES path referencing an array of roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "若不知道此配置是什麼請留空。",
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access", "admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access",
"admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a users roles for them to log in. " + "Leave it blank if you don't know what this config is.", "admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a users roles for them to log in. " + "若不知道此配置是什麼請留空。",
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access", "admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access",
"admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a users roles for them to access the admin panel. " + "Leave it blank if you don't know what this config is.", "admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a users roles for them to access the admin panel. " + "若不知道此配置是什麼請留空。",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID", "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-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": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app", "admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
"admin.config.category.ldap": "LDAP", "admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP", "admin.config.ldap.enabled": "啟用 LDAP",
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login", "admin.config.ldap.enabled.description": "使用 LDAP 進行使用者登入",
"admin.config.ldap.url": "Server URL", "admin.config.ldap.url": "伺服器 URL",
"admin.config.ldap.url.description": "URL of the LDAP server", "admin.config.ldap.url.description": "LDAP 伺服器的 URL",
"admin.config.ldap.bind-dn": "Bind DN", "admin.config.ldap.bind-dn": "Bind DN",
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search", "admin.config.ldap.bind-dn.description": "Default user used to perform the user search",
"admin.config.ldap.bind-password": "Bind password", "admin.config.ldap.bind-password": "Bind password",
@@ -451,31 +461,33 @@ export default {
"admin.config.notify.logo-success": "Logo updated successfully. It may take a few minutes to update on the website.", "admin.config.notify.logo-success": "Logo updated successfully. It may take a few minutes to update on the website.",
"admin.config.notify.no-changes": "No changes to save.", "admin.config.notify.no-changes": "No changes to save.",
"admin.config.category.s3": "S3", "admin.config.category.s3": "S3",
"admin.config.s3.enabled": "Enabled", "admin.config.s3.enabled": "啟用",
"admin.config.s3.enabled.description": "Whether S3 should be used to store the shared files instead of the local file system.", "admin.config.s3.enabled.description": "使用S3儲存檔案。",
"admin.config.s3.endpoint": "Endpoint", "admin.config.s3.endpoint": "Endpoint",
"admin.config.s3.endpoint.description": "The URL of the S3 bucket.", "admin.config.s3.endpoint.description": "S3 bucket 的 URL。",
"admin.config.s3.region": "Region", "admin.config.s3.region": "Region",
"admin.config.s3.region.description": "The region of the S3 bucket.", "admin.config.s3.region.description": "S3 bucket 所在區域。",
"admin.config.s3.bucket-name": "Bucket name", "admin.config.s3.bucket-name": "Bucket 名字",
"admin.config.s3.bucket-name.description": "The name of the S3 bucket.", "admin.config.s3.bucket-name.description": "S3 bucket 的名字。",
"admin.config.s3.bucket-path": "Path", "admin.config.s3.bucket-path": "Path",
"admin.config.s3.bucket-path.description": "The default path which should be used to store the files in the S3 bucket.", "admin.config.s3.bucket-path.description": "The default path which should be used to store the files in the S3 bucket.",
"admin.config.s3.key": "Key", "admin.config.s3.key": "Key",
"admin.config.s3.key.description": "The key which allows you to access the S3 bucket.", "admin.config.s3.key.description": "The key which allows you to access the S3 bucket.",
"admin.config.s3.secret": "Secret", "admin.config.s3.secret": "Secret",
"admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.", "admin.config.s3.secret.description": "The secret which allows you to access the S3 bucket.",
"admin.config.category.legal": "Legal", "admin.config.s3.use-checksum": "Use checksum",
"admin.config.legal.enabled": "Enable legal notices", "admin.config.s3.use-checksum.description": "Turn off for backends that do not support checksum (e.g. B2).",
"admin.config.legal.enabled.description": "Whether to show a link to imprint and privacy policy in the footer.", "admin.config.category.legal": "法律",
"admin.config.legal.imprint-text": "Imprint text", "admin.config.legal.enabled": "啟用法律提醒",
"admin.config.legal.imprint-text.description": "The text which should be shown in the imprint. Supports Markdown. Leave blank to link to an external imprint page.", "admin.config.legal.enabled.description": "是否在 footer 顯示版權宣告及隱私權政策。",
"admin.config.legal.imprint-url": "Imprint URL", "admin.config.legal.imprint-text": "版權宣告",
"admin.config.legal.imprint-url.description": "If you already have an imprint page you can link it here instead of using the text field.", "admin.config.legal.imprint-text.description": "文字將顯示在版權宣告中。支持Markdown。空白以使用外部連結。",
"admin.config.legal.privacy-policy-text": "Privacy policy text", "admin.config.legal.imprint-url": "版權宣告 URL",
"admin.config.legal.privacy-policy-text.description": "The text which should be shown in the privacy policy. Supports Markdown. Leave blank to link to an external privacy policy page.", "admin.config.legal.imprint-url.description": "在此輸入 URL 以使用外部版權宣告頁。",
"admin.config.legal.privacy-policy-url": "Privacy policy URL", "admin.config.legal.privacy-policy-text": "隱私權政策文字",
"admin.config.legal.privacy-policy-url.description": "If you already have a privacy policy page you can link it here instead of using the text field.", "admin.config.legal.privacy-policy-text.description": "文字將顯示在隱私權政策中。支持Markdown。空白以使用外部連結。",
"admin.config.legal.privacy-policy-url": "隱私權政策 URL",
"admin.config.legal.privacy-policy-url.description": "在此輸入 URL 以使用外部隱私權政策頁。",
// 404 // 404
"404.description": "查無此頁", "404.description": "查無此頁",
"404.button.home": "返回主頁", "404.button.home": "返回主頁",
@@ -510,7 +522,7 @@ export default {
"common.button.share": "分享", "common.button.share": "分享",
"common.button.generate": "自動產生", "common.button.generate": "自動產生",
"common.button.done": "完成", "common.button.done": "完成",
"common.text.link": "結", "common.text.link": "結",
"common.text.navigate-to-link": "瀏覽連結", "common.text.navigate-to-link": "瀏覽連結",
"common.text.or": "或", "common.text.or": "或",
"common.text.redirecting": "正在跳轉中...", "common.text.redirecting": "正在跳轉中...",

View File

@@ -413,7 +413,7 @@ const Account = () => {
onConfirm: async () => { onConfirm: async () => {
await userService await userService
.removeCurrentUser() .removeCurrentUser()
.then(()=> window.location.reload()) .then(() => window.location.reload())
.catch(toast.axiosError); .catch(toast.axiosError);
}, },
}) })

View File

@@ -54,19 +54,22 @@ const Admin = () => {
]); ]);
useEffect(() => { useEffect(() => {
configService.isNewReleaseAvailable().then((isNewReleaseAvailable) => { configService
if (isNewReleaseAvailable) { .isNewReleaseAvailable()
setManagementOptions([ .then((isNewReleaseAvailable) => {
...managementOptions, if (isNewReleaseAvailable) {
{ setManagementOptions([
title: "Update", ...managementOptions,
icon: TbRefresh, {
route: title: "Update",
"https://github.com/stonith404/pingvin-share/releases/latest", icon: TbRefresh,
}, route:
]); "https://github.com/stonith404/pingvin-share/releases/latest",
} },
}).catch(); ]);
}
})
.catch();
}, []); }, []);
return ( return (

View File

@@ -2,6 +2,7 @@ import { Box, Group, Text, Title } from "@mantine/core";
import { useModals } from "@mantine/modals"; import { useModals } from "@mantine/modals";
import { GetServerSidePropsContext } from "next"; import { GetServerSidePropsContext } from "next";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
import { FormattedMessage } from "react-intl";
import Meta from "../../../components/Meta"; import Meta from "../../../components/Meta";
import DownloadAllButton from "../../../components/share/DownloadAllButton"; import DownloadAllButton from "../../../components/share/DownloadAllButton";
import FileList from "../../../components/share/FileList"; import FileList from "../../../components/share/FileList";
@@ -11,6 +12,7 @@ import useTranslate from "../../../hooks/useTranslate.hook";
import shareService from "../../../services/share.service"; import shareService from "../../../services/share.service";
import { Share as ShareType } from "../../../types/share.type"; import { Share as ShareType } from "../../../types/share.type";
import toast from "../../../utils/toast.util"; import toast from "../../../utils/toast.util";
import { byteToHumanSizeString } from "../../../utils/fileSize.util";
export function getServerSideProps(context: GetServerSidePropsContext) { export function getServerSideProps(context: GetServerSidePropsContext) {
return { return {
@@ -107,7 +109,25 @@ const Share = ({ shareId }: { shareId: string }) => {
<Box style={{ maxWidth: "70%" }}> <Box style={{ maxWidth: "70%" }}>
<Title order={3}>{share?.name || share?.id}</Title> <Title order={3}>{share?.name || share?.id}</Title>
<Text size="sm">{share?.description}</Text> <Text size="sm">{share?.description}</Text>
{share?.files?.length > 0 && (
<Text size="sm" color="dimmed" mt={5}>
<FormattedMessage
id="share.fileCount"
values={{
count: share?.files?.length || 0,
size: byteToHumanSizeString(
share?.files?.reduce(
(total: number, file: { size: string }) =>
total + parseInt(file.size),
0,
) || 0,
),
}}
/>
</Text>
)}
</Box> </Box>
{share?.files.length > 1 && <DownloadAllButton shareId={shareId} />} {share?.files.length > 1 && <DownloadAllButton shareId={shareId} />}
</Group> </Group>

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "pingvin-share", "name": "pingvin-share",
"version": "1.10.0", "version": "1.13.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "pingvin-share", "name": "pingvin-share",
"version": "1.10.0", "version": "1.13.0",
"devDependencies": { "devDependencies": {
"conventional-changelog-cli": "^3.0.0" "conventional-changelog-cli": "^3.0.0"
} }

View File

@@ -1,6 +1,6 @@
{ {
"name": "pingvin-share", "name": "pingvin-share",
"version": "1.10.0", "version": "1.13.0",
"scripts": { "scripts": {
"format": "cd frontend && npm run format && cd ../backend && npm run format", "format": "cd frontend && npm run format && cd ../backend && npm run format",
"lint": "cd frontend && npm run lint && cd ../backend && npm run lint", "lint": "cd frontend && npm run lint && cd ../backend && npm run lint",
@@ -11,5 +11,9 @@
}, },
"devDependencies": { "devDependencies": {
"conventional-changelog-cli": "^3.0.0" "conventional-changelog-cli": "^3.0.0"
},
"prettier": {
"singleQuote": false,
"trailingComma": "all"
} }
} }

View File

@@ -3,11 +3,16 @@
# Copy default logo to the frontend public folder if it doesn't exist # Copy default logo to the frontend public folder if it doesn't exist
cp -rn /tmp/img/* /opt/app/frontend/public/img cp -rn /tmp/img/* /opt/app/frontend/public/img
# Start Caddy if [ "$CADDY_DISABLED" != "true" ]; then
if [ "$TRUST_PROXY" = "true" ]; then # Start Caddy
caddy start --adapter caddyfile --config /opt/app/reverse-proxy/Caddyfile.trust-proxy & echo "Starting Caddy..."
if [ "$TRUST_PROXY" = "true" ]; then
caddy start --adapter caddyfile --config /opt/app/reverse-proxy/Caddyfile.trust-proxy &
else
caddy start --adapter caddyfile --config /opt/app/reverse-proxy/Caddyfile &
fi
else else
caddy start --adapter caddyfile --config /opt/app/reverse-proxy/Caddyfile & echo "Caddy is disabled. Skipping..."
fi fi
# Run the frontend server # Run the frontend server