Compare commits
36 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8efb9f54b | ||
|
|
013b9886af | ||
|
|
43bff91db2 | ||
|
|
1aa3d8e5e8 | ||
|
|
4dae7e250a | ||
|
|
7e91d83f9a | ||
|
|
e11dbfe893 | ||
|
|
ea83cf3876 | ||
|
|
5ca0bffc0a | ||
|
|
64515d77cf | ||
|
|
6058dca273 | ||
|
|
d01cba4a06 | ||
|
|
98aa9f97ea | ||
|
|
9c734ec439 | ||
|
|
e663da45b1 | ||
|
|
f52dffdaac | ||
|
|
e572506d4f | ||
|
|
416eba6ae6 | ||
|
|
3880854240 | ||
|
|
43d186a370 | ||
|
|
76df6f66d9 | ||
|
|
c189cd97a5 | ||
|
|
d83e28a1c3 | ||
|
|
3299f767d3 | ||
|
|
16a9724693 | ||
|
|
0ccb836444 | ||
|
|
067652aa80 | ||
|
|
1523d1b5b2 | ||
|
|
ea14e28dd8 | ||
|
|
d7750086b5 | ||
|
|
eb7216b4b1 | ||
|
|
1d62225019 | ||
|
|
bf5250c4a7 | ||
|
|
cdd0a864d1 | ||
|
|
692c1bef25 | ||
|
|
fe09d0e25f |
23
.github/workflows/close_inactive_issues.yml
vendored
23
.github/workflows/close_inactive_issues.yml
vendored
@@ -1,23 +0,0 @@
|
|||||||
name: Close inactive issues
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: "00 00 * * *"
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
close-issues:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
issues: write
|
|
||||||
pull-requests: write
|
|
||||||
steps:
|
|
||||||
- uses: actions/stale@v4
|
|
||||||
with:
|
|
||||||
days-before-issue-stale: 30
|
|
||||||
days-before-issue-close: 14
|
|
||||||
exempt-issue-labels: "feature"
|
|
||||||
stale-issue-label: "stale"
|
|
||||||
stale-issue-message: "This issue is stale because it has been open for 30 days with no activity."
|
|
||||||
close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale."
|
|
||||||
days-before-pr-stale: -1
|
|
||||||
days-before-pr-close: -1
|
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
48
CHANGELOG.md
48
CHANGELOG.md
@@ -1,3 +1,51 @@
|
|||||||
|
## [0.22.2](https://github.com/stonith404/pingvin-share/compare/v0.22.1...v0.22.2) (2024-02-29)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* extend access token cookie expiration ([013b988](https://github.com/stonith404/pingvin-share/commit/013b9886af5629b2ead6000b962267afc761c612))
|
||||||
|
* reduce refresh access token calls ([1aa3d8e](https://github.com/stonith404/pingvin-share/commit/1aa3d8e5e89b3696cc9554f41e9ce13806dde406))
|
||||||
|
* replace Nginx with Caddy to fix "premature close" error while downloading larger files ([43bff91](https://github.com/stonith404/pingvin-share/commit/43bff91db2ba4ec68d76e601f7bc42cb7a506bc5))
|
||||||
|
|
||||||
|
## [0.22.1](https://github.com/stonith404/pingvin-share/compare/v0.22.0...v0.22.1) (2024-02-18)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* back links on error modals ([f52dffd](https://github.com/stonith404/pingvin-share/commit/f52dffdaac5a893804525913943f3f4f99b7c55a))
|
||||||
|
* prevent zoom on input field click on mobile ([9c734ec](https://github.com/stonith404/pingvin-share/commit/9c734ec439aeaeebe172caa41bf531e6d8b3fac3))
|
||||||
|
* replace middleware backend url with local backend url ([76df6f6](https://github.com/stonith404/pingvin-share/commit/76df6f66d965dd751146468abfafb0c6acd46310))
|
||||||
|
* user `id` and `totpVerified` can't be changed by user ([e663da4](https://github.com/stonith404/pingvin-share/commit/e663da45b1d15f5e6e33118e6a28e1504688034c))
|
||||||
|
* user enumaration on forgot password page ([64515d7](https://github.com/stonith404/pingvin-share/commit/64515d77cfc116a243d78610395ccc383ba62940))
|
||||||
|
|
||||||
|
## [0.22.0](https://github.com/stonith404/pingvin-share/compare/v0.21.5...v0.22.0) (2024-02-04)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **translations:** typo in string ([c189cd9](https://github.com/stonith404/pingvin-share/commit/c189cd97a502cee8ea79e5187d9288d636d4983c))
|
||||||
|
|
||||||
|
## [0.21.5](https://github.com/stonith404/pingvin-share/compare/v0.21.4...v0.21.5) (2024-01-14)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* password can be changed with wrong password ([0ccb836](https://github.com/stonith404/pingvin-share/commit/0ccb8364448d27ea07c8b11972ff454d610893c6))
|
||||||
|
|
||||||
|
## [0.21.4](https://github.com/stonith404/pingvin-share/compare/v0.21.3...v0.21.4) (2024-01-09)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **frontend:** add navigateToLink button for CopyTextField. close [#372](https://github.com/stonith404/pingvin-share/issues/372). ([#376](https://github.com/stonith404/pingvin-share/issues/376)) ([d775008](https://github.com/stonith404/pingvin-share/commit/d7750086b5b796cfc70d8dc0c7d0ab4bd1996ca0))
|
||||||
|
|
||||||
|
## [0.21.3](https://github.com/stonith404/pingvin-share/compare/v0.21.2...v0.21.3) (2024-01-02)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* don't show validation error on upload modal if password or max views are empty ([fe09d0e](https://github.com/stonith404/pingvin-share/commit/fe09d0e25f6fbfc4e1c9302054d3387fe8b1f0ea))
|
||||||
|
|
||||||
## [0.21.2](https://github.com/stonith404/pingvin-share/compare/v0.21.1...v0.21.2) (2023-12-29)
|
## [0.21.2](https://github.com/stonith404/pingvin-share/compare/v0.21.1...v0.21.2) (2023-12-29)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
15
Caddyfile
Normal file
15
Caddyfile
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
:3000 {
|
||||||
|
# Reverse proxy for /api
|
||||||
|
reverse_proxy /api/* http://localhost:8080 {
|
||||||
|
header_up X-Forwarded-Host {host}:{server_port}
|
||||||
|
header_up X-Forwarded-For {remote_host}
|
||||||
|
header_up X-Forwarded-Proto {scheme}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Reverse proxy for all other requests
|
||||||
|
reverse_proxy http://localhost:3333 {
|
||||||
|
header_up X-Forwarded-Host {host}:{server_port}
|
||||||
|
header_up X-Forwarded-For {remote_host}
|
||||||
|
header_up X-Forwarded-Proto {scheme}
|
||||||
|
}
|
||||||
|
}
|
||||||
17
Dockerfile
17
Dockerfile
@@ -30,12 +30,12 @@ RUN npm run build && npm prune --production
|
|||||||
FROM node:20-alpine AS runner
|
FROM node:20-alpine AS runner
|
||||||
ENV NODE_ENV=docker
|
ENV NODE_ENV=docker
|
||||||
|
|
||||||
# Alpine specific dependencies
|
# Install Caddy
|
||||||
RUN apk update --no-cache
|
RUN apk update --no-cache \
|
||||||
RUN apk upgrade --no-cache
|
&& apk upgrade --no-cache \
|
||||||
RUN apk add --no-cache curl nginx
|
&& apk add --no-cache curl caddy
|
||||||
|
|
||||||
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
|
COPY ./Caddyfile /etc/caddy/Caddyfile
|
||||||
|
|
||||||
WORKDIR /opt/app/frontend
|
WORKDIR /opt/app/frontend
|
||||||
COPY --from=frontend-builder /opt/app/public ./public
|
COPY --from=frontend-builder /opt/app/public ./public
|
||||||
@@ -53,9 +53,8 @@ WORKDIR /opt/app
|
|||||||
|
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
# Add a health check to ensure the container is healthy
|
# Health check remains unchanged
|
||||||
HEALTHCHECK --interval=10s --timeout=3s CMD curl -f http://localhost:3000/api/health || exit 1
|
HEALTHCHECK --interval=10s --timeout=3s CMD curl -f http://localhost:3000/api/health || exit 1
|
||||||
|
|
||||||
# Application startup
|
# Application startup updated for Caddy
|
||||||
# HOSTNAME=0.0.0.0 fixes https://github.com/vercel/next.js/issues/51684. It can be removed as soon as the issue is fixed
|
CMD cp -rn /tmp/img/* /opt/app/frontend/public/img && caddy run --config /etc/caddy/Caddyfile & PORT=3333 HOSTNAME=0.0.0.0 node frontend/server.js & cd backend && npm run prod
|
||||||
CMD cp -rn /tmp/img/* /opt/app/frontend/public/img && nginx && PORT=3333 HOSTNAME=0.0.0.0 node frontend/server.js & cd backend && npm run prod
|
|
||||||
@@ -60,10 +60,11 @@ pm2 start --name="pingvin-share-backend" npm -- run prod
|
|||||||
cd ../frontend
|
cd ../frontend
|
||||||
npm install
|
npm install
|
||||||
npm run build
|
npm run build
|
||||||
|
API_URL=http://localhost:8080 # Set the URL of the backend, default: http://localhost:8080
|
||||||
pm2 start --name="pingvin-share-frontend" npm -- run start
|
pm2 start --name="pingvin-share-frontend" npm -- run start
|
||||||
```
|
```
|
||||||
|
|
||||||
**Uploading Large Files**: By default, Pingvin Share uses a built-in reverse proxy to reduce the installation steps. However, this reverse proxy is not optimized for uploading large files. If you wish to upload larger files, you can either use the Docker installation or set up your own reverse proxy. An example configuration for Nginx can be found in `/nginx/nginx.conf`.
|
**Uploading Large Files**: By default, Pingvin Share uses a built-in reverse proxy to reduce the installation steps. However, this reverse proxy is not optimized for uploading large files. If you wish to upload larger files, you can either use the Docker installation or set up your own reverse proxy. An example configuration for Caddy can be found in `./Caddyfile`.
|
||||||
|
|
||||||
The website is now listening on `http://localhost:3000`, have fun with Pingvin Share 🐧!
|
The website is now listening on `http://localhost:3000`, have fun with Pingvin Share 🐧!
|
||||||
|
|
||||||
@@ -120,12 +121,13 @@ docker compose up -d
|
|||||||
# Start the frontend
|
# Start the frontend
|
||||||
cd ../frontend
|
cd ../frontend
|
||||||
npm run build
|
npm run build
|
||||||
|
API_URL=http://localhost:8080 # Set the URL of the backend, default: http://localhost:8080
|
||||||
pm2 restart pingvin-share-frontend
|
pm2 restart pingvin-share-frontend
|
||||||
```
|
```
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
|
||||||
You can customize Pingvin Share by going to the configuration page in your admin dashboard.
|
You can customize Pingvin Share like changing your domain by going to the configuration page in your admin dashboard `/admin/config`.
|
||||||
|
|
||||||
#### Environment variables
|
#### Environment variables
|
||||||
|
|
||||||
|
|||||||
4
backend/package-lock.json
generated
4
backend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-backend",
|
"name": "pingvin-share-backend",
|
||||||
"version": "0.21.2",
|
"version": "0.22.2",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pingvin-share-backend",
|
"name": "pingvin-share-backend",
|
||||||
"version": "0.21.2",
|
"version": "0.22.2",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nestjs/cache-manager": "^2.1.0",
|
"@nestjs/cache-manager": "^2.1.0",
|
||||||
"@nestjs/common": "^10.1.2",
|
"@nestjs/common": "^10.1.2",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-backend",
|
"name": "pingvin-share-backend",
|
||||||
"version": "0.21.2",
|
"version": "0.22.2",
|
||||||
"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",
|
||||||
|
|||||||
@@ -96,9 +96,9 @@ export class AuthController {
|
|||||||
|
|
||||||
@Post("resetPassword/:email")
|
@Post("resetPassword/:email")
|
||||||
@Throttle(5, 5 * 60)
|
@Throttle(5, 5 * 60)
|
||||||
@HttpCode(204)
|
@HttpCode(202)
|
||||||
async requestResetPassword(@Param("email") email: string) {
|
async requestResetPassword(@Param("email") email: string) {
|
||||||
return await this.authService.requestResetPassword(email);
|
this.authService.requestResetPassword(email);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post("resetPassword")
|
@Post("resetPassword")
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ export class AuthService {
|
|||||||
|
|
||||||
async updatePassword(user: User, newPassword: string, oldPassword?: string) {
|
async updatePassword(user: User, newPassword: string, oldPassword?: string) {
|
||||||
const isPasswordValid =
|
const isPasswordValid =
|
||||||
!user.password || !(await argon.verify(user.password, oldPassword));
|
!user.password || (await argon.verify(user.password, oldPassword));
|
||||||
|
|
||||||
if (!isPasswordValid) throw new ForbiddenException("Invalid password");
|
if (!isPasswordValid) throw new ForbiddenException("Invalid password");
|
||||||
|
|
||||||
@@ -227,13 +227,16 @@ export class AuthService {
|
|||||||
accessToken?: string,
|
accessToken?: string,
|
||||||
) {
|
) {
|
||||||
if (accessToken)
|
if (accessToken)
|
||||||
response.cookie("access_token", accessToken, { sameSite: "lax" });
|
response.cookie("access_token", accessToken, {
|
||||||
|
sameSite: "lax",
|
||||||
|
maxAge: 1000 * 60 * 60 * 24 * 30 * 3, // 3 months
|
||||||
|
});
|
||||||
if (refreshToken)
|
if (refreshToken)
|
||||||
response.cookie("refresh_token", refreshToken, {
|
response.cookie("refresh_token", refreshToken, {
|
||||||
path: "/api/auth/token",
|
path: "/api/auth/token",
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
sameSite: "strict",
|
sameSite: "strict",
|
||||||
maxAge: 1000 * 60 * 60 * 24 * 30 * 3,
|
maxAge: 1000 * 60 * 60 * 24 * 30 * 3, // 3 months
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { OmitType, PartialType } from "@nestjs/swagger";
|
import { PartialType, PickType } from "@nestjs/swagger";
|
||||||
import { UserDTO } from "./user.dto";
|
import { UserDTO } from "./user.dto";
|
||||||
|
|
||||||
export class UpdateOwnUserDTO extends PartialType(
|
export class UpdateOwnUserDTO extends PartialType(
|
||||||
OmitType(UserDTO, ["isAdmin", "password"] as const),
|
PickType(UserDTO, ["username", "email"] as const),
|
||||||
) {}
|
) {}
|
||||||
|
|||||||
22
frontend/package-lock.json
generated
22
frontend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-frontend",
|
"name": "pingvin-share-frontend",
|
||||||
"version": "0.21.2",
|
"version": "0.22.2",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pingvin-share-frontend",
|
"name": "pingvin-share-frontend",
|
||||||
"version": "0.21.2",
|
"version": "0.22.2",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.11.1",
|
"@emotion/react": "^11.11.1",
|
||||||
"@emotion/server": "^11.11.0",
|
"@emotion/server": "^11.11.0",
|
||||||
@@ -22,6 +22,7 @@
|
|||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
"jose": "^4.14.4",
|
"jose": "^4.14.4",
|
||||||
"jwt-decode": "^3.1.2",
|
"jwt-decode": "^3.1.2",
|
||||||
|
"markdown-to-jsx": "^7.4.1",
|
||||||
"mime-types": "^2.1.35",
|
"mime-types": "^2.1.35",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"next": "^13.4.12",
|
"next": "^13.4.12",
|
||||||
@@ -6100,6 +6101,17 @@
|
|||||||
"semver": "bin/semver.js"
|
"semver": "bin/semver.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/markdown-to-jsx": {
|
||||||
|
"version": "7.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.1.tgz",
|
||||||
|
"integrity": "sha512-GbrbkTnHp9u6+HqbPRFJbObi369AgJNXi/sGqq5HRsoZW063xR1XDCaConqq+whfEIAlzB1YPnOgsPc7B7bc/A==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 10"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">= 0.14.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/merge-stream": {
|
"node_modules/merge-stream": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
|
||||||
@@ -13250,6 +13262,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"markdown-to-jsx": {
|
||||||
|
"version": "7.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.1.tgz",
|
||||||
|
"integrity": "sha512-GbrbkTnHp9u6+HqbPRFJbObi369AgJNXi/sGqq5HRsoZW063xR1XDCaConqq+whfEIAlzB1YPnOgsPc7B7bc/A==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"merge-stream": {
|
"merge-stream": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-frontend",
|
"name": "pingvin-share-frontend",
|
||||||
"version": "0.21.2",
|
"version": "0.22.2",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
@@ -23,6 +23,7 @@
|
|||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
"jose": "^4.14.4",
|
"jose": "^4.14.4",
|
||||||
"jwt-decode": "^3.1.2",
|
"jwt-decode": "^3.1.2",
|
||||||
|
"markdown-to-jsx": "^7.4.1",
|
||||||
"mime-types": "^2.1.35",
|
"mime-types": "^2.1.35",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
"next": "^13.4.12",
|
"next": "^13.4.12",
|
||||||
|
|||||||
@@ -1,9 +1,17 @@
|
|||||||
import { Button, Center, Stack, Text, Title } from "@mantine/core";
|
import {
|
||||||
|
Button,
|
||||||
|
Center,
|
||||||
|
Stack,
|
||||||
|
Text,
|
||||||
|
Title,
|
||||||
|
useMantineTheme,
|
||||||
|
} from "@mantine/core";
|
||||||
import { modals } from "@mantine/modals";
|
import { modals } from "@mantine/modals";
|
||||||
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;
|
||||||
@@ -115,23 +123,38 @@ const ImagePreview = () => {
|
|||||||
|
|
||||||
const TextPreview = () => {
|
const TextPreview = () => {
|
||||||
const { shareId, fileId } = React.useContext(FilePreviewContext);
|
const { shareId, fileId } = React.useContext(FilePreviewContext);
|
||||||
const [text, setText] = useState<string | null>(null);
|
const [text, setText] = useState<string>("");
|
||||||
|
const { colorScheme } = useMantineTheme();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
api
|
api
|
||||||
.get(`/shares/${shareId}/files/${fileId}?download=false`)
|
.get(`/shares/${shareId}/files/${fileId}?download=false`)
|
||||||
.then((res) => setText(res.data));
|
.then((res) => setText(res.data ?? "Preview couldn't be fetched."));
|
||||||
}, [shareId, fileId]);
|
}, [shareId, fileId]);
|
||||||
|
|
||||||
return (
|
const options = {
|
||||||
<Center style={{ minHeight: 200 }}>
|
overrides: {
|
||||||
<Stack align="center" spacing={10} style={{ width: "100%" }}>
|
pre: {
|
||||||
<Text sx={{ whiteSpace: "pre-wrap" }} size="sm">
|
props: {
|
||||||
{text}
|
style: {
|
||||||
</Text>
|
backgroundColor:
|
||||||
</Stack>
|
colorScheme == "dark"
|
||||||
</Center>
|
? "rgba(50, 50, 50, 0.5)"
|
||||||
);
|
: "rgba(220, 220, 220, 0.5)",
|
||||||
|
padding: "0.75em",
|
||||||
|
whiteSpace: "pre-wrap",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
table: {
|
||||||
|
props: {
|
||||||
|
className: "md",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
return <Markdown options={options}>{text}</Markdown>;
|
||||||
};
|
};
|
||||||
|
|
||||||
const PdfPreview = () => {
|
const PdfPreview = () => {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ const showErrorModal = (
|
|||||||
modals: ModalsContextProps,
|
modals: ModalsContextProps,
|
||||||
title: string,
|
title: string,
|
||||||
text: string,
|
text: string,
|
||||||
|
action: "go-back" | "go-home" = "go-back",
|
||||||
) => {
|
) => {
|
||||||
return modals.openModal({
|
return modals.openModal({
|
||||||
closeOnClickOutside: false,
|
closeOnClickOutside: false,
|
||||||
@@ -15,11 +16,17 @@ const showErrorModal = (
|
|||||||
closeOnEscape: false,
|
closeOnEscape: false,
|
||||||
title: title,
|
title: title,
|
||||||
|
|
||||||
children: <Body text={text} />,
|
children: <Body text={text} action={action} />,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const Body = ({ text }: { text: string }) => {
|
const Body = ({
|
||||||
|
text,
|
||||||
|
action,
|
||||||
|
}: {
|
||||||
|
text: string;
|
||||||
|
action: "go-back" | "go-home";
|
||||||
|
}) => {
|
||||||
const modals = useModals();
|
const modals = useModals();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
return (
|
return (
|
||||||
@@ -29,10 +36,14 @@ const Body = ({ text }: { text: string }) => {
|
|||||||
<Button
|
<Button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
modals.closeAll();
|
modals.closeAll();
|
||||||
router.back();
|
if (action === "go-back") {
|
||||||
|
router.back();
|
||||||
|
} else if (action === "go-home") {
|
||||||
|
router.push("/");
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<FormattedMessage id="common.button.go-back" />
|
<FormattedMessage id={`common.button.${action}`} />
|
||||||
</Button>
|
</Button>
|
||||||
</Stack>
|
</Stack>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
import { ActionIcon, TextInput } from "@mantine/core";
|
import { ActionIcon, TextInput, Tooltip } from "@mantine/core";
|
||||||
import { useClipboard } from "@mantine/hooks";
|
import { useClipboard } from "@mantine/hooks";
|
||||||
import { useRef, useState } from "react";
|
import { useRef, useState } from "react";
|
||||||
import { TbCheck, TbCopy } from "react-icons/tb";
|
import { TbCheck, TbCopy } from "react-icons/tb";
|
||||||
|
import { IoOpenOutline } from "react-icons/io5";
|
||||||
import useTranslate from "../../hooks/useTranslate.hook";
|
import useTranslate from "../../hooks/useTranslate.hook";
|
||||||
import toast from "../../utils/toast.util";
|
import toast from "../../utils/toast.util";
|
||||||
|
|
||||||
@@ -37,12 +38,27 @@ function CopyTextField(props: { link: string }) {
|
|||||||
setTextClicked(true);
|
setTextClicked(true);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
rightSectionWidth={62}
|
||||||
rightSection={
|
rightSection={
|
||||||
window.isSecureContext && (
|
<>
|
||||||
<ActionIcon onClick={copyLink}>
|
<Tooltip
|
||||||
{checkState ? <TbCheck /> : <TbCopy />}
|
label={t("common.text.navigate-to-link")}
|
||||||
</ActionIcon>
|
position="top"
|
||||||
)
|
offset={-2}
|
||||||
|
openDelay={200}
|
||||||
|
>
|
||||||
|
<a href={props.link}>
|
||||||
|
<ActionIcon>
|
||||||
|
<IoOpenOutline />
|
||||||
|
</ActionIcon>
|
||||||
|
</a>
|
||||||
|
</Tooltip>
|
||||||
|
{window.isSecureContext && (
|
||||||
|
<ActionIcon onClick={copyLink}>
|
||||||
|
{checkState ? <TbCheck /> : <TbCopy />}
|
||||||
|
</ActionIcon>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -92,8 +92,15 @@ const CreateUploadModalBody = ({
|
|||||||
.matches(new RegExp("^[a-zA-Z0-9_-]*$"), {
|
.matches(new RegExp("^[a-zA-Z0-9_-]*$"), {
|
||||||
message: t("upload.modal.link.error.invalid"),
|
message: t("upload.modal.link.error.invalid"),
|
||||||
}),
|
}),
|
||||||
password: yup.string().min(3).max(30),
|
password: yup
|
||||||
maxViews: yup.number().min(1),
|
.string()
|
||||||
|
.transform((value) => value || undefined)
|
||||||
|
.min(3)
|
||||||
|
.max(30),
|
||||||
|
maxViews: yup
|
||||||
|
.number()
|
||||||
|
.transform((value) => value || undefined)
|
||||||
|
.min(1),
|
||||||
});
|
});
|
||||||
|
|
||||||
const form = useForm({
|
const form = useForm({
|
||||||
@@ -151,8 +158,8 @@ const CreateUploadModalBody = ({
|
|||||||
recipients: values.recipients,
|
recipients: values.recipients,
|
||||||
description: values.description,
|
description: values.description,
|
||||||
security: {
|
security: {
|
||||||
password: values.password,
|
password: values.password || undefined,
|
||||||
maxViews: values.maxViews,
|
maxViews: values.maxViews || undefined,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
files,
|
files,
|
||||||
@@ -275,10 +282,12 @@ const CreateUploadModalBody = ({
|
|||||||
/>
|
/>
|
||||||
</Col>
|
</Col>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Checkbox
|
{options.maxExpirationInHours == 0 && (
|
||||||
label={t("upload.modal.expires.never-long")}
|
<Checkbox
|
||||||
{...form.getInputProps("never_expires")}
|
label={t("upload.modal.expires.never-long")}
|
||||||
/>
|
{...form.getInputProps("never_expires")}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
<Text
|
<Text
|
||||||
italic
|
italic
|
||||||
size="xs"
|
size="xs"
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import danish from "./translations/da-DK";
|
import danish from "./translations/da-DK";
|
||||||
import german from "./translations/de-DE";
|
import german from "./translations/de-DE";
|
||||||
|
import greek from "./translations/el-GR";
|
||||||
import english from "./translations/en-US";
|
import english from "./translations/en-US";
|
||||||
import spanish from "./translations/es-ES";
|
import spanish from "./translations/es-ES";
|
||||||
import finnish from "./translations/fi-FI";
|
import finnish from "./translations/fi-FI";
|
||||||
@@ -10,6 +11,7 @@ import dutch from "./translations/nl-BE";
|
|||||||
import polish from "./translations/pl-PL";
|
import polish from "./translations/pl-PL";
|
||||||
import portuguese from "./translations/pt-BR";
|
import portuguese from "./translations/pt-BR";
|
||||||
import russian from "./translations/ru-RU";
|
import russian from "./translations/ru-RU";
|
||||||
|
import slovenian from "./translations/sl-SI";
|
||||||
import serbian from "./translations/sr-SP";
|
import serbian from "./translations/sr-SP";
|
||||||
import swedish from "./translations/sv-SE";
|
import swedish from "./translations/sv-SE";
|
||||||
import thai from "./translations/th-TH";
|
import thai from "./translations/th-TH";
|
||||||
@@ -102,4 +104,19 @@ export const LOCALES = {
|
|||||||
code: "it-IT",
|
code: "it-IT",
|
||||||
messages: italian,
|
messages: italian,
|
||||||
},
|
},
|
||||||
|
GREEK: {
|
||||||
|
name: "Ελληνικά",
|
||||||
|
code: "el-GR",
|
||||||
|
messages: greek,
|
||||||
|
},
|
||||||
|
SLOVENIAN: {
|
||||||
|
name: "Slovenščina",
|
||||||
|
code: "sl-SI",
|
||||||
|
messages: slovenian,
|
||||||
|
},
|
||||||
|
ARABIC: {
|
||||||
|
name: "العربية",
|
||||||
|
code: "ar-EG",
|
||||||
|
messages: {},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
574
frontend/src/i18n/translations/ar-EG.ts
Normal file
574
frontend/src/i18n/translations/ar-EG.ts
Normal file
@@ -0,0 +1,574 @@
|
|||||||
|
export default {
|
||||||
|
// Navbar
|
||||||
|
"navbar.upload": "Upload",
|
||||||
|
"navbar.signin": "Sign in",
|
||||||
|
"navbar.home": "Home",
|
||||||
|
"navbar.signup": "Sign Up",
|
||||||
|
|
||||||
|
"navbar.links.shares": "My shares",
|
||||||
|
"navbar.links.reverse": "Reverse shares",
|
||||||
|
|
||||||
|
"navbar.avatar.account": "My account",
|
||||||
|
"navbar.avatar.admin": "Administration",
|
||||||
|
"navbar.avatar.signout": "Sign out",
|
||||||
|
// END navbar
|
||||||
|
|
||||||
|
// /
|
||||||
|
"home.title": "A <h>self-hosted</h> file sharing platform.",
|
||||||
|
|
||||||
|
"home.description":
|
||||||
|
"Do you really want to give your personal files in the hand of third parties like WeTransfer?",
|
||||||
|
"home.bullet.a.name": "Self-Hosted",
|
||||||
|
"home.bullet.a.description": "Host Pingvin Share on your own machine.",
|
||||||
|
"home.bullet.b.name": "Privacy",
|
||||||
|
"home.bullet.b.description":
|
||||||
|
"Your files are your files and should never get into the hands of third parties.",
|
||||||
|
"home.bullet.c.name": "No annoying file size limit",
|
||||||
|
"home.bullet.c.description":
|
||||||
|
"Upload as big files as you want. Only your hard drive will be your limit.",
|
||||||
|
|
||||||
|
"home.button.start": "Get started",
|
||||||
|
"home.button.source": "Source code",
|
||||||
|
// END /
|
||||||
|
|
||||||
|
// /auth/signin
|
||||||
|
"signin.title": "Welcome back",
|
||||||
|
"signin.description": "You don't have an account yet?",
|
||||||
|
"signin.button.signup": "Sign up",
|
||||||
|
"signin.input.email-or-username": "Email or username",
|
||||||
|
"signin.input.email-or-username.placeholder": "Your email or username",
|
||||||
|
"signin.input.password": "Password",
|
||||||
|
"signin.input.password.placeholder": "Your password",
|
||||||
|
"signin.button.submit": "Sign in",
|
||||||
|
"signIn.notify.totp-required.title": "Two-factor authentication required",
|
||||||
|
"signIn.notify.totp-required.description":
|
||||||
|
"Please enter your two-factor authentication code",
|
||||||
|
"signIn.oauth.or": "OR",
|
||||||
|
"signIn.oauth.github": "GitHub",
|
||||||
|
"signIn.oauth.google": "Google",
|
||||||
|
"signIn.oauth.microsoft": "Microsoft",
|
||||||
|
"signIn.oauth.discord": "Discord",
|
||||||
|
"signIn.oauth.oidc": "OpenID",
|
||||||
|
|
||||||
|
// END /auth/signin
|
||||||
|
|
||||||
|
// /auth/signup
|
||||||
|
"signup.title": "Create an account",
|
||||||
|
"signup.description": "Already have an account?",
|
||||||
|
"signup.button.signin": "Sign in",
|
||||||
|
"signup.input.username": "Username",
|
||||||
|
"signup.input.username.placeholder": "Your username",
|
||||||
|
"signup.input.email": "Email",
|
||||||
|
"signup.input.email.placeholder": "Your email",
|
||||||
|
"signup.button.submit": "Let's get started",
|
||||||
|
|
||||||
|
// END /auth/signup
|
||||||
|
|
||||||
|
// /auth/totp
|
||||||
|
"totp.title": "TOTP Authentication",
|
||||||
|
"totp.button.signIn": "Sign in",
|
||||||
|
|
||||||
|
// END /auth/totp
|
||||||
|
|
||||||
|
// /auth/reset-password
|
||||||
|
"resetPassword.title": "Forgot your password?",
|
||||||
|
"resetPassword.description": "Enter your email to reset your password.",
|
||||||
|
"resetPassword.notify.success":
|
||||||
|
"A message with a link to reset your password has been sent if the email exists.",
|
||||||
|
"resetPassword.button.back": "Back to sign in page",
|
||||||
|
"resetPassword.text.resetPassword": "Reset password",
|
||||||
|
"resetPassword.text.enterNewPassword": "Enter your new password",
|
||||||
|
"resetPassword.input.password": "New password",
|
||||||
|
"resetPassword.notify.passwordReset":
|
||||||
|
"Your password has been reset successfully.",
|
||||||
|
|
||||||
|
// /account
|
||||||
|
"account.title": "My account",
|
||||||
|
|
||||||
|
"account.card.info.title": "Account info",
|
||||||
|
"account.card.info.username": "Username",
|
||||||
|
"account.card.info.email": "Email",
|
||||||
|
"account.notify.info.success": "Account updated successfully",
|
||||||
|
|
||||||
|
"account.card.password.title": "Password",
|
||||||
|
"account.card.password.old": "Old password",
|
||||||
|
"account.card.password.new": "New password",
|
||||||
|
"account.card.password.noPasswordSet":
|
||||||
|
"You don't have a password set. If you want to sign in with email and password you need to set a password.",
|
||||||
|
"account.notify.password.success": "Password changed successfully",
|
||||||
|
|
||||||
|
"account.card.oauth.title": "Social login",
|
||||||
|
"account.card.oauth.github": "GitHub",
|
||||||
|
"account.card.oauth.google": "Google",
|
||||||
|
"account.card.oauth.microsoft": "Microsoft",
|
||||||
|
"account.card.oauth.discord": "Discord",
|
||||||
|
"account.card.oauth.oidc": "OpenID",
|
||||||
|
"account.card.oauth.link": "Link",
|
||||||
|
"account.card.oauth.unlink": "Unlink",
|
||||||
|
"account.card.oauth.unlinked": "Unlinked",
|
||||||
|
"account.modal.unlink.title": "Unlink account",
|
||||||
|
"account.modal.unlink.description":
|
||||||
|
"Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
|
||||||
|
"account.notify.oauth.unlinked.success": "Unlinked successfully",
|
||||||
|
|
||||||
|
"account.card.security.title": "Security",
|
||||||
|
"account.card.security.totp.enable.description":
|
||||||
|
"Enter your current password to start enabling TOTP",
|
||||||
|
"account.card.security.totp.disable.description":
|
||||||
|
"Enter your current password to disable TOTP",
|
||||||
|
"account.card.security.totp.button.start": "Start",
|
||||||
|
"account.modal.totp.title": "Enable TOTP",
|
||||||
|
"account.modal.totp.step1": "Step 1: Add your authenticator",
|
||||||
|
"account.modal.totp.step2": "Step 2: Validate your code",
|
||||||
|
"account.modal.totp.enterManually": "Enter manually",
|
||||||
|
"account.modal.totp.code": "Code",
|
||||||
|
"account.modal.totp.clickToCopy": "Click to copy",
|
||||||
|
"account.modal.totp.verify": "Verify",
|
||||||
|
"account.notify.totp.disable": "TOTP disabled successfully",
|
||||||
|
"account.notify.totp.enable": "TOTP enabled successfully",
|
||||||
|
|
||||||
|
"account.card.language.title": "Language",
|
||||||
|
"account.card.language.description":
|
||||||
|
"The project is translated by the community. Some languages might be incomplete.",
|
||||||
|
"account.card.color.title": "Color scheme",
|
||||||
|
|
||||||
|
// ThemeSwitcher.tsx
|
||||||
|
"account.theme.dark": "Dark",
|
||||||
|
"account.theme.light": "Light",
|
||||||
|
"account.theme.system": "System",
|
||||||
|
|
||||||
|
"account.button.delete": "Delete Account",
|
||||||
|
"account.modal.delete.title": "Delete Account",
|
||||||
|
"account.modal.delete.description":
|
||||||
|
"Do you really want to delete your account including all your active shares?",
|
||||||
|
// END /account
|
||||||
|
|
||||||
|
// /account/shares
|
||||||
|
"account.shares.title": "My shares",
|
||||||
|
"account.shares.title.empty": "It's empty here 👀",
|
||||||
|
"account.shares.description.empty": "You don't have any shares.",
|
||||||
|
"account.shares.button.create": "Create one",
|
||||||
|
|
||||||
|
"account.shares.info.title": "Share informations",
|
||||||
|
"account.shares.table.id": "ID",
|
||||||
|
"account.shares.table.name": "Name",
|
||||||
|
"account.shares.table.description": "Description",
|
||||||
|
"account.shares.table.visitors": "Visitors",
|
||||||
|
"account.shares.table.expiresAt": "Expires at",
|
||||||
|
"account.shares.table.createdAt": "Created at",
|
||||||
|
"account.shares.table.size": "Size",
|
||||||
|
|
||||||
|
"account.shares.modal.share-informations": "Share informations",
|
||||||
|
"account.shares.modal.share-link": "Share link",
|
||||||
|
|
||||||
|
"account.shares.modal.delete.title": "Delete share {share}",
|
||||||
|
"account.shares.modal.delete.description":
|
||||||
|
"Do you really want to delete this share?",
|
||||||
|
|
||||||
|
// END /account/shares
|
||||||
|
|
||||||
|
// /account/reverseShares
|
||||||
|
"account.reverseShares.title": "Reverse shares",
|
||||||
|
"account.reverseShares.description":
|
||||||
|
"A reverse share allows you to generate a unique URL that allows external users to create a share.",
|
||||||
|
|
||||||
|
"account.reverseShares.title.empty": "It's empty here 👀",
|
||||||
|
"account.reverseShares.description.empty":
|
||||||
|
"You don't have any reverse shares.",
|
||||||
|
|
||||||
|
// showCreateReverseShareModal.tsx
|
||||||
|
"account.reverseShares.modal.title": "Create reverse share",
|
||||||
|
"account.reverseShares.modal.expiration.label": "Expiration",
|
||||||
|
"account.reverseShares.modal.expiration.minute-singular": "Minute",
|
||||||
|
"account.reverseShares.modal.expiration.minute-plural": "Minutes",
|
||||||
|
"account.reverseShares.modal.expiration.hour-singular": "Hour",
|
||||||
|
"account.reverseShares.modal.expiration.hour-plural": "Hours",
|
||||||
|
"account.reverseShares.modal.expiration.day-singular": "Day",
|
||||||
|
"account.reverseShares.modal.expiration.day-plural": "Days",
|
||||||
|
"account.reverseShares.modal.expiration.week-singular": "Week",
|
||||||
|
"account.reverseShares.modal.expiration.week-plural": "Weeks",
|
||||||
|
"account.reverseShares.modal.expiration.month-singular": "Month",
|
||||||
|
"account.reverseShares.modal.expiration.month-plural": "Months",
|
||||||
|
"account.reverseShares.modal.expiration.year-singular": "Year",
|
||||||
|
"account.reverseShares.modal.expiration.year-plural": "Years",
|
||||||
|
|
||||||
|
"account.reverseShares.modal.max-size.label": "Max share size",
|
||||||
|
|
||||||
|
"account.reverseShares.modal.send-email": "Send email notification",
|
||||||
|
"account.reverseShares.modal.send-email.description":
|
||||||
|
"Send an email notification when a share is created with this reverse share link.",
|
||||||
|
|
||||||
|
"account.reverseShares.modal.max-use.label": "Max uses",
|
||||||
|
"account.reverseShares.modal.max-use.description":
|
||||||
|
"The maximum amount of times this URL can be used to create a share.",
|
||||||
|
"account.reverseShare.never-expires": "This reverse share will never expire.",
|
||||||
|
"account.reverseShare.expires-on":
|
||||||
|
"This reverse share will expire on {expiration}.",
|
||||||
|
|
||||||
|
"account.reverseShares.table.no-shares": "No shares created yet",
|
||||||
|
"account.reverseShares.table.count.singular": "share",
|
||||||
|
"account.reverseShares.table.count.plural": "shares",
|
||||||
|
"account.reverseShares.table.shares": "Shares",
|
||||||
|
"account.reverseShares.table.remaining": "Remaining uses",
|
||||||
|
"account.reverseShares.table.max-size": "Max share size",
|
||||||
|
"account.reverseShares.table.expires": "Expires at",
|
||||||
|
|
||||||
|
"account.reverseShares.modal.reverse-share-link": "Reverse share link",
|
||||||
|
|
||||||
|
"account.reverseShares.modal.delete.title": "Delete reverse share",
|
||||||
|
"account.reverseShares.modal.delete.description":
|
||||||
|
"Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.",
|
||||||
|
|
||||||
|
// END /account/reverseShares
|
||||||
|
|
||||||
|
// /admin
|
||||||
|
"admin.title": "Administration",
|
||||||
|
"admin.button.users": "User management",
|
||||||
|
"admin.button.config": "Configuration",
|
||||||
|
"admin.version": "Version",
|
||||||
|
// END /admin
|
||||||
|
|
||||||
|
// /admin/users
|
||||||
|
"admin.users.title": "User management",
|
||||||
|
"admin.users.table.username": "Username",
|
||||||
|
"admin.users.table.email": "Email",
|
||||||
|
"admin.users.table.admin": "Admin",
|
||||||
|
|
||||||
|
"admin.users.edit.update.title": "Update user {username}",
|
||||||
|
"admin.users.edit.update.admin-privileges": "Admin privileges",
|
||||||
|
"admin.users.edit.update.change-password.title": "Change password",
|
||||||
|
"admin.users.edit.update.change-password.field": "New password",
|
||||||
|
"admin.users.edit.update.change-password.button": "Save new password",
|
||||||
|
"admin.users.edit.update.notify.password.success":
|
||||||
|
"Password changed successfully",
|
||||||
|
|
||||||
|
"admin.users.edit.delete.title": "Delete user {username}",
|
||||||
|
"admin.users.edit.delete.description":
|
||||||
|
"Do you really want to delete this user and all his shares?",
|
||||||
|
|
||||||
|
// showCreateUserModal.tsx
|
||||||
|
"admin.users.modal.create.title": "Create user",
|
||||||
|
"admin.users.modal.create.username": "Username",
|
||||||
|
"admin.users.modal.create.email": "Email",
|
||||||
|
"admin.users.modal.create.password": "Password",
|
||||||
|
"admin.users.modal.create.manual-password": "Set password manually",
|
||||||
|
"admin.users.modal.create.manual-password.description":
|
||||||
|
"If not checked, the user will receive an email with a link to set their password.",
|
||||||
|
"admin.users.modal.create.admin": "Admin privileges",
|
||||||
|
"admin.users.modal.create.admin.description":
|
||||||
|
"If checked, the user will be able to access the admin panel.",
|
||||||
|
|
||||||
|
// END /admin/users
|
||||||
|
|
||||||
|
// /upload
|
||||||
|
"upload.title": "Upload",
|
||||||
|
|
||||||
|
"upload.notify.generic-error":
|
||||||
|
"An error occurred while finishing your share.",
|
||||||
|
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
||||||
|
|
||||||
|
// Dropzone.tsx
|
||||||
|
"upload.dropzone.title": "Upload files",
|
||||||
|
"upload.dropzone.description":
|
||||||
|
"Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.",
|
||||||
|
"upload.dropzone.notify.file-too-big":
|
||||||
|
"Your files exceed the maximum share size of {maxSize}.",
|
||||||
|
|
||||||
|
// FileList.tsx
|
||||||
|
"upload.filelist.name": "Name",
|
||||||
|
"upload.filelist.size": "Size",
|
||||||
|
|
||||||
|
// showCreateUploadModal.tsx
|
||||||
|
"upload.modal.title": "Create Share",
|
||||||
|
"upload.modal.link.error.invalid":
|
||||||
|
"Can only contain letters, numbers, underscores, and hyphens",
|
||||||
|
"upload.modal.link.error.taken": "This link is already in use",
|
||||||
|
"upload.modal.not-signed-in": "You're not signed in",
|
||||||
|
"upload.modal.not-signed-in-description":
|
||||||
|
"You will be unable to delete your share manually and view the visitor count.",
|
||||||
|
|
||||||
|
"upload.modal.expires.never": "never",
|
||||||
|
"upload.modal.expires.never-long": "Never Expires",
|
||||||
|
"upload.modal.expires.error.too-long":
|
||||||
|
"Expiration exceeds maximum expiration date of {max}.",
|
||||||
|
|
||||||
|
"upload.modal.link.label": "Link",
|
||||||
|
"upload.modal.expires.label": "Expiration",
|
||||||
|
"upload.modal.expires.minute-singular": "Minute",
|
||||||
|
"upload.modal.expires.minute-plural": "Minutes",
|
||||||
|
"upload.modal.expires.hour-singular": "Hour",
|
||||||
|
"upload.modal.expires.hour-plural": "Hours",
|
||||||
|
"upload.modal.expires.day-singular": "Day",
|
||||||
|
"upload.modal.expires.day-plural": "Days",
|
||||||
|
"upload.modal.expires.week-singular": "Week",
|
||||||
|
"upload.modal.expires.week-plural": "Weeks",
|
||||||
|
"upload.modal.expires.month-singular": "Month",
|
||||||
|
"upload.modal.expires.month-plural": "Months",
|
||||||
|
"upload.modal.expires.year-singular": "Year",
|
||||||
|
"upload.modal.expires.year-plural": "Years",
|
||||||
|
|
||||||
|
"upload.modal.accordion.description.title": "Description",
|
||||||
|
"upload.modal.accordion.description.placeholder":
|
||||||
|
"Note for the recipients of this share",
|
||||||
|
|
||||||
|
"upload.modal.accordion.email.title": "Email recipients",
|
||||||
|
"upload.modal.accordion.email.placeholder": "Enter email recipients",
|
||||||
|
"upload.modal.accordion.email.invalid-email": "Invalid email address",
|
||||||
|
|
||||||
|
"upload.modal.accordion.security.title": "Security options",
|
||||||
|
"upload.modal.accordion.security.password.label": "Password protection",
|
||||||
|
"upload.modal.accordion.security.password.placeholder": "No password",
|
||||||
|
"upload.modal.accordion.security.max-views.label": "Maximum views",
|
||||||
|
"upload.modal.accordion.security.max-views.placeholder": "No limit",
|
||||||
|
|
||||||
|
// showCompletedUploadModal.tsx
|
||||||
|
"upload.modal.completed.never-expires": "This share will never expire.",
|
||||||
|
"upload.modal.completed.expires-on":
|
||||||
|
"This share will expire on {expiration}.",
|
||||||
|
"upload.modal.completed.share-ready": "Share ready",
|
||||||
|
|
||||||
|
// END /upload
|
||||||
|
|
||||||
|
// /share/[id]
|
||||||
|
"share.title": "Share {shareId}",
|
||||||
|
"share.description": "Look what I've shared with you!",
|
||||||
|
"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.removed.title": "Share removed",
|
||||||
|
"share.error.not-found.title": "Share not found",
|
||||||
|
"share.error.not-found.description":
|
||||||
|
"The share you're looking for doesn't exist.",
|
||||||
|
|
||||||
|
"share.modal.password.title": "Password required",
|
||||||
|
"share.modal.password.description":
|
||||||
|
"To access this share please enter the password for the share.",
|
||||||
|
"share.modal.password": "Password",
|
||||||
|
"share.modal.error.invalid-password": "Invalid password",
|
||||||
|
|
||||||
|
"share.button.download-all": "Download all",
|
||||||
|
"share.notify.download-all-preparing":
|
||||||
|
"The share is preparing. Try again in a few minutes.",
|
||||||
|
|
||||||
|
"share.modal.file-link": "File link",
|
||||||
|
"share.table.name": "Name",
|
||||||
|
"share.table.size": "Size",
|
||||||
|
|
||||||
|
"share.modal.file-preview.error.not-supported.title": "Preview not supported",
|
||||||
|
"share.modal.file-preview.error.not-supported.description":
|
||||||
|
"A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
|
|
||||||
|
// END /share/[id]
|
||||||
|
|
||||||
|
// /share/[id]/edit
|
||||||
|
"share.edit.title": "Edit {shareId}",
|
||||||
|
"share.edit.append-upload": "Append file",
|
||||||
|
"share.edit.notify.generic-error":
|
||||||
|
"An error occurred while finishing your share.",
|
||||||
|
"share.edit.notify.save-success": "Share updated successfully",
|
||||||
|
// END /share/[id]/edit
|
||||||
|
|
||||||
|
// /admin/config
|
||||||
|
"admin.config.title": "Configuration",
|
||||||
|
"admin.config.category.general": "General",
|
||||||
|
"admin.config.category.share": "Share",
|
||||||
|
"admin.config.category.email": "Email",
|
||||||
|
"admin.config.category.smtp": "SMTP",
|
||||||
|
"admin.config.category.oauth": "Social Login",
|
||||||
|
|
||||||
|
"admin.config.general.app-name": "App name",
|
||||||
|
"admin.config.general.app-name.description": "Name of the application",
|
||||||
|
"admin.config.general.app-url": "App URL",
|
||||||
|
"admin.config.general.app-url.description":
|
||||||
|
"On which URL Pingvin Share is available",
|
||||||
|
"admin.config.general.show-home-page": "Show home page",
|
||||||
|
"admin.config.general.show-home-page.description":
|
||||||
|
"Whether to show the home page",
|
||||||
|
"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.placeholder": "Pick image",
|
||||||
|
|
||||||
|
"admin.config.email.enable-share-email-recipients":
|
||||||
|
"Enable share email recipients",
|
||||||
|
"admin.config.email.enable-share-email-recipients.description":
|
||||||
|
"Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.",
|
||||||
|
"admin.config.email.share-recipients-subject": "Share recipients subject",
|
||||||
|
"admin.config.email.share-recipients-subject.description":
|
||||||
|
"Subject of the email which gets sent to the share recipients.",
|
||||||
|
"admin.config.email.share-recipients-message": "Share recipients message",
|
||||||
|
"admin.config.email.share-recipients-message.description":
|
||||||
|
"Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.",
|
||||||
|
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
||||||
|
"admin.config.email.reverse-share-subject.description":
|
||||||
|
"Subject of the email which gets sent when someone created a share with your reverse share link.",
|
||||||
|
"admin.config.email.reverse-share-message": "Reverse share message",
|
||||||
|
"admin.config.email.reverse-share-message.description":
|
||||||
|
"Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.",
|
||||||
|
"admin.config.email.reset-password-subject": "Reset password subject",
|
||||||
|
"admin.config.email.reset-password-subject.description":
|
||||||
|
"Subject of the email which gets sent when a user requests a password reset.",
|
||||||
|
"admin.config.email.reset-password-message": "Reset password message",
|
||||||
|
"admin.config.email.reset-password-message.description":
|
||||||
|
"Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.",
|
||||||
|
"admin.config.email.invite-subject": "Invite subject",
|
||||||
|
"admin.config.email.invite-subject.description":
|
||||||
|
"Subject of the email which gets sent when an admin invites a user.",
|
||||||
|
"admin.config.email.invite-message": "Invite message",
|
||||||
|
"admin.config.email.invite-message.description":
|
||||||
|
"Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.",
|
||||||
|
"admin.config.share.allow-registration": "Allow registration",
|
||||||
|
"admin.config.share.allow-registration.description":
|
||||||
|
"Whether registration is allowed",
|
||||||
|
"admin.config.share.allow-unauthenticated-shares":
|
||||||
|
"Allow unauthenticated shares",
|
||||||
|
"admin.config.share.allow-unauthenticated-shares.description":
|
||||||
|
"Whether unauthenticated users can create shares",
|
||||||
|
"admin.config.share.max-expiration": "Max expiration",
|
||||||
|
"admin.config.share.max-expiration.description":
|
||||||
|
"Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
|
||||||
|
"admin.config.share.max-size": "Max size",
|
||||||
|
"admin.config.share.max-size.description": "Maximum share size in bytes",
|
||||||
|
"admin.config.share.zip-compression-level": "Zip compression level",
|
||||||
|
"admin.config.share.zip-compression-level.description":
|
||||||
|
"Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ",
|
||||||
|
|
||||||
|
"admin.config.smtp.enabled": "Enabled",
|
||||||
|
"admin.config.smtp.enabled.description":
|
||||||
|
"Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.",
|
||||||
|
"admin.config.smtp.host": "Host",
|
||||||
|
"admin.config.smtp.host.description": "Host of the SMTP server",
|
||||||
|
"admin.config.smtp.port": "Port",
|
||||||
|
"admin.config.smtp.port.description": "Port of the SMTP server",
|
||||||
|
"admin.config.smtp.email": "Email",
|
||||||
|
"admin.config.smtp.email.description":
|
||||||
|
"Email address which the emails get sent from",
|
||||||
|
"admin.config.smtp.username": "Username",
|
||||||
|
"admin.config.smtp.username.description": "Username of the SMTP server",
|
||||||
|
"admin.config.smtp.password": "Password",
|
||||||
|
"admin.config.smtp.password.description": "Password of the SMTP server",
|
||||||
|
"admin.config.smtp.button.test": "Send test email",
|
||||||
|
|
||||||
|
"admin.config.oauth.allow-registration": "Allow registration",
|
||||||
|
"admin.config.oauth.allow-registration.description":
|
||||||
|
"Allow users to register via social login",
|
||||||
|
"admin.config.oauth.ignore-totp": "Ignore TOTP",
|
||||||
|
"admin.config.oauth.ignore-totp.description":
|
||||||
|
"Whether to ignore TOTP when user using social login",
|
||||||
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
|
"admin.config.oauth.github-enabled.description":
|
||||||
|
"Whether GitHub login is enabled",
|
||||||
|
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||||
|
"admin.config.oauth.github-client-id.description":
|
||||||
|
"Client ID of the GitHub OAuth app",
|
||||||
|
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
||||||
|
"admin.config.oauth.github-client-secret.description":
|
||||||
|
"Client secret of the GitHub OAuth app",
|
||||||
|
"admin.config.oauth.google-enabled": "Google",
|
||||||
|
"admin.config.oauth.google-enabled.description":
|
||||||
|
"Whether Google login is enabled",
|
||||||
|
"admin.config.oauth.google-client-id": "Google Client ID",
|
||||||
|
"admin.config.oauth.google-client-id.description":
|
||||||
|
"Client ID of the Google OAuth app",
|
||||||
|
"admin.config.oauth.google-client-secret": "Google Client secret",
|
||||||
|
"admin.config.oauth.google-client-secret.description":
|
||||||
|
"Client secret of the Google OAuth app",
|
||||||
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
|
"admin.config.oauth.microsoft-enabled.description":
|
||||||
|
"Whether Microsoft login is enabled",
|
||||||
|
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
||||||
|
"admin.config.oauth.microsoft-tenant.description":
|
||||||
|
"Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
|
||||||
|
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
||||||
|
"admin.config.oauth.microsoft-client-id.description":
|
||||||
|
"Client ID of the Microsoft OAuth app",
|
||||||
|
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
|
||||||
|
"admin.config.oauth.microsoft-client-secret.description":
|
||||||
|
"Client secret of the Microsoft OAuth app",
|
||||||
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
|
"admin.config.oauth.discord-enabled.description":
|
||||||
|
"Whether Discord login is enabled",
|
||||||
|
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
||||||
|
"admin.config.oauth.discord-limited-guild.description":
|
||||||
|
"Limit signing in to users in a specific server. Leave it blank to disable.",
|
||||||
|
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
||||||
|
"admin.config.oauth.discord-client-id.description":
|
||||||
|
"Client ID of the Discord OAuth app",
|
||||||
|
"admin.config.oauth.discord-client-secret": "Discord Client secret",
|
||||||
|
"admin.config.oauth.discord-client-secret.description":
|
||||||
|
"Client secret of the Discord OAuth app",
|
||||||
|
"admin.config.oauth.oidc-enabled": "OpenID Connect",
|
||||||
|
"admin.config.oauth.oidc-enabled.description":
|
||||||
|
"Whether OpenID Connect login is enabled",
|
||||||
|
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
||||||
|
"admin.config.oauth.oidc-discovery-uri.description":
|
||||||
|
"Discovery URI of the OpenID Connect OAuth app",
|
||||||
|
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
||||||
|
"admin.config.oauth.oidc-username-claim.description":
|
||||||
|
"Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
|
||||||
|
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
||||||
|
"admin.config.oauth.oidc-client-id.description":
|
||||||
|
"Client ID of the OpenID Connect OAuth app",
|
||||||
|
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
|
||||||
|
"admin.config.oauth.oidc-client-secret.description":
|
||||||
|
"Client secret of the OpenID Connect OAuth app",
|
||||||
|
|
||||||
|
// 404
|
||||||
|
"404.description": "Oops this page doesn't exist.",
|
||||||
|
"404.button.home": "Bring me back home",
|
||||||
|
|
||||||
|
// error
|
||||||
|
"error.title": "Error",
|
||||||
|
"error.description": "Oops!",
|
||||||
|
"error.button.back": "Go back",
|
||||||
|
"error.msg.default": "Something went wrong.",
|
||||||
|
"error.msg.access_denied":
|
||||||
|
"You canceled the authentication process, please try again.",
|
||||||
|
"error.msg.expired_token":
|
||||||
|
"The authentication process took too long, please try again.",
|
||||||
|
"error.msg.invalid_token": "Internal Error",
|
||||||
|
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
|
||||||
|
"error.msg.no_email": "Can't get email address from this {0} account.",
|
||||||
|
"error.msg.already_linked":
|
||||||
|
"This {0} account is already linked to another account.",
|
||||||
|
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
||||||
|
"error.msg.unverified_account":
|
||||||
|
"This {0} account is unverified, please try again after verification.",
|
||||||
|
"error.msg.discord_guild_permission_denied":
|
||||||
|
"You are not allowed to sign in.",
|
||||||
|
"error.msg.cannot_get_user_info":
|
||||||
|
"Can not get your user info from this {0} account.",
|
||||||
|
"error.param.provider_github": "GitHub",
|
||||||
|
"error.param.provider_google": "Google",
|
||||||
|
"error.param.provider_microsoft": "Microsoft",
|
||||||
|
"error.param.provider_discord": "Discord",
|
||||||
|
"error.param.provider_oidc": "OpenID Connect",
|
||||||
|
|
||||||
|
// Common translations
|
||||||
|
"common.button.save": "Save",
|
||||||
|
"common.button.create": "Create",
|
||||||
|
"common.button.submit": "Submit",
|
||||||
|
"common.button.delete": "Delete",
|
||||||
|
"common.button.cancel": "Cancel",
|
||||||
|
"common.button.confirm": "Confirm",
|
||||||
|
"common.button.disable": "Disable",
|
||||||
|
"common.button.share": "Share",
|
||||||
|
"common.button.generate": "Generate",
|
||||||
|
"common.button.done": "Done",
|
||||||
|
"common.text.link": "Link",
|
||||||
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
|
"common.text.or": "or",
|
||||||
|
"common.button.go-back": "Go back",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
|
"common.notify.copied": "Your link was copied to the clipboard",
|
||||||
|
"common.success": "Success",
|
||||||
|
|
||||||
|
"common.error": "Error",
|
||||||
|
"common.error.unknown": "An unknown error occurred",
|
||||||
|
"common.error.invalid-email": "Invalid email address",
|
||||||
|
"common.error.too-short": "Must be at least {length} characters",
|
||||||
|
"common.error.too-long": "Must be at most {length} characters",
|
||||||
|
"common.error.exact-length": "Must be exactly {length} characters",
|
||||||
|
"common.error.invalid-number": "Must be a number",
|
||||||
|
"common.error.field-required": "This field is required",
|
||||||
|
};
|
||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Glemt din adgangskode?",
|
"resetPassword.title": "Glemt din adgangskode?",
|
||||||
"resetPassword.description": "Indtast din e-mail for at nulstille din adgangskode.",
|
"resetPassword.description": "Indtast din e-mail for at nulstille din adgangskode.",
|
||||||
"resetPassword.notify.success": "En e-mail er blevet sendt med et link til at nulstille din adgangskode.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "Tilbage til login",
|
"resetPassword.button.back": "Tilbage til login",
|
||||||
"resetPassword.text.resetPassword": "Nulstil adgangskode",
|
"resetPassword.text.resetPassword": "Nulstil adgangskode",
|
||||||
"resetPassword.text.enterNewPassword": "Indtast din nye adgangskode",
|
"resetPassword.text.enterNewPassword": "Indtast din nye adgangskode",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"share.table.name": "Navn",
|
"share.table.name": "Navn",
|
||||||
"share.table.size": "Størrelse",
|
"share.table.size": "Størrelse",
|
||||||
"share.modal.file-preview.error.not-supported.title": "Forhåndsvisning ikke understøttet",
|
"share.modal.file-preview.error.not-supported.title": "Forhåndsvisning ikke understøttet",
|
||||||
"share.modal.file-preview.error.not-supported.description": "En forhåndsvisning for thise filtype er ikke understøttet. Download venligst filen for at se den.",
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "Edit {shareId}",
|
||||||
@@ -373,9 +373,9 @@ export default {
|
|||||||
"404.description": "Ups! Denne side findes ikke.",
|
"404.description": "Ups! Denne side findes ikke.",
|
||||||
"404.button.home": "Gå tilbage",
|
"404.button.home": "Gå tilbage",
|
||||||
// error
|
// error
|
||||||
"error.title": "Error",
|
"error.title": "Fejl",
|
||||||
"error.description": "Oops!",
|
"error.description": "Hovsa!",
|
||||||
"error.button.back": "Go back",
|
"error.button.back": "Gå tilbage",
|
||||||
"error.msg.default": "Something went wrong.",
|
"error.msg.default": "Something went wrong.",
|
||||||
"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.",
|
||||||
@@ -385,7 +385,7 @@ export default {
|
|||||||
"error.msg.already_linked": "This {0} account is already linked to another account.",
|
"error.msg.already_linked": "This {0} account is already linked to another account.",
|
||||||
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
||||||
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
|
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
|
||||||
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
|
"error.msg.discord_guild_permission_denied": "Du har ikke tilladelse til at logge ind.",
|
||||||
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
||||||
"error.param.provider_github": "GitHub",
|
"error.param.provider_github": "GitHub",
|
||||||
"error.param.provider_google": "Google",
|
"error.param.provider_google": "Google",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Generer",
|
"common.button.generate": "Generer",
|
||||||
"common.button.done": "Færdig",
|
"common.button.done": "Færdig",
|
||||||
"common.text.link": "Link",
|
"common.text.link": "Link",
|
||||||
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
"common.text.or": "eller",
|
"common.text.or": "eller",
|
||||||
"common.button.go-back": "Gå tilbage",
|
"common.button.go-back": "Gå tilbage",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "Linket blev kopieret til udklipsholderen",
|
"common.notify.copied": "Linket blev kopieret til udklipsholderen",
|
||||||
"common.success": "Success",
|
"common.success": "Success",
|
||||||
"common.error": "Fejl",
|
"common.error": "Fejl",
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Passwort vergessen?",
|
"resetPassword.title": "Passwort vergessen?",
|
||||||
"resetPassword.description": "Gib deine Email Adresse ein, um dein Passwort zurückzusetzen.",
|
"resetPassword.description": "Gib deine Email Adresse ein, um dein Passwort zurückzusetzen.",
|
||||||
"resetPassword.notify.success": "Ein Link zum Rücksetzen des Passwortes wurde an deine Emailadresse versandt.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "Zurück zur Anmeldeseite",
|
"resetPassword.button.back": "Zurück zur Anmeldeseite",
|
||||||
"resetPassword.text.resetPassword": "Passwort zurücksetzen",
|
"resetPassword.text.resetPassword": "Passwort zurücksetzen",
|
||||||
"resetPassword.text.enterNewPassword": "Gib dein neues Passwort ein",
|
"resetPassword.text.enterNewPassword": "Gib dein neues Passwort ein",
|
||||||
@@ -72,20 +72,20 @@ export default {
|
|||||||
"account.card.password.title": "Passwort",
|
"account.card.password.title": "Passwort",
|
||||||
"account.card.password.old": "Altes Passwort",
|
"account.card.password.old": "Altes Passwort",
|
||||||
"account.card.password.new": "Neues Passwort",
|
"account.card.password.new": "Neues Passwort",
|
||||||
"account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.",
|
"account.card.password.noPasswordSet": "Du hast kein Passwort erstellt. Wenn Du Dich mit E-Mail und Passwort anmelden möchtest, musst Du ein Passwort festlegen.",
|
||||||
"account.notify.password.success": "Passwort erfolgreich geändert",
|
"account.notify.password.success": "Passwort erfolgreich geändert",
|
||||||
"account.card.oauth.title": "Social login",
|
"account.card.oauth.title": "Anmeldung über soziale Netzwerke",
|
||||||
"account.card.oauth.github": "GitHub",
|
"account.card.oauth.github": "GitHub",
|
||||||
"account.card.oauth.google": "Google",
|
"account.card.oauth.google": "Google",
|
||||||
"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": "Link",
|
"account.card.oauth.link": "Verknüpfen",
|
||||||
"account.card.oauth.unlink": "Unlink",
|
"account.card.oauth.unlink": "Verknüpfung aufheben",
|
||||||
"account.card.oauth.unlinked": "Unlinked",
|
"account.card.oauth.unlinked": "Verknüpfung aufgehoben",
|
||||||
"account.modal.unlink.title": "Unlink account",
|
"account.modal.unlink.title": "Kontoverknüpfung aufheben",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
|
"account.modal.unlink.description": "Das Entfernen der Verknüpfung mit Deinem sozialen Konten kann dazu führen, dass Du Dein Konto verlierst, wenn Du Dich nicht an Deinen Benutzernamen und Dein Passwort erinnerst.",
|
||||||
"account.notify.oauth.unlinked.success": "Unlinked successfully",
|
"account.notify.oauth.unlinked.success": "Verknüpfung erfolgreich aufgehoben",
|
||||||
"account.card.security.title": "Sicherheit",
|
"account.card.security.title": "Sicherheit",
|
||||||
"account.card.security.totp.enable.description": "Gib dein aktuelles Passwort ein, um TOTP zu aktivieren",
|
"account.card.security.totp.enable.description": "Gib dein aktuelles Passwort ein, um TOTP zu aktivieren",
|
||||||
"account.card.security.totp.disable.description": "Gib dein aktuelles Passwort ein, um TOTP zu deaktivieren",
|
"account.card.security.totp.disable.description": "Gib dein aktuelles Passwort ein, um TOTP zu deaktivieren",
|
||||||
@@ -214,7 +214,7 @@ export default {
|
|||||||
"upload.modal.not-signed-in-description": "Du wirst deine Freigabe nicht löschen können oder die Besucheranzahl sehen.",
|
"upload.modal.not-signed-in-description": "Du wirst deine Freigabe nicht löschen können oder die Besucheranzahl sehen.",
|
||||||
"upload.modal.expires.never": "niemals",
|
"upload.modal.expires.never": "niemals",
|
||||||
"upload.modal.expires.never-long": "Läuft nicht ab",
|
"upload.modal.expires.never-long": "Läuft nicht ab",
|
||||||
"upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.",
|
"upload.modal.expires.error.too-long": "Ablauf überschreitet das maximale Ablaufdatum von {max}.",
|
||||||
"upload.modal.link.label": "Link",
|
"upload.modal.link.label": "Link",
|
||||||
"upload.modal.expires.label": "Gültig bis",
|
"upload.modal.expires.label": "Gültig bis",
|
||||||
"upload.modal.expires.minute-singular": "Minute",
|
"upload.modal.expires.minute-singular": "Minute",
|
||||||
@@ -262,13 +262,13 @@ export default {
|
|||||||
"share.table.name": "Name",
|
"share.table.name": "Name",
|
||||||
"share.table.size": "Größe",
|
"share.table.size": "Größe",
|
||||||
"share.modal.file-preview.error.not-supported.title": "Vorschau wird nicht unterstützt",
|
"share.modal.file-preview.error.not-supported.title": "Vorschau wird nicht unterstützt",
|
||||||
"share.modal.file-preview.error.not-supported.description": "Eine Vorschau für diesen Dateityp wird nicht unterstützt. Bitte lade die Datei herunter, um sie anzuzeigen.",
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "{shareId} bearbeiten",
|
||||||
"share.edit.append-upload": "Append file",
|
"share.edit.append-upload": "Datei anfügen",
|
||||||
"share.edit.notify.generic-error": "An error occurred while finishing your share.",
|
"share.edit.notify.generic-error": "Während der Erstellung der Freigabe ist ein Fehler aufgetreten.",
|
||||||
"share.edit.notify.save-success": "Share updated successfully",
|
"share.edit.notify.save-success": "Freigabe erfolgreich aktualisiert",
|
||||||
// END /share/[id]/edit
|
// END /share/[id]/edit
|
||||||
// /admin/config
|
// /admin/config
|
||||||
"admin.config.title": "Einstellungen",
|
"admin.config.title": "Einstellungen",
|
||||||
@@ -276,7 +276,7 @@ export default {
|
|||||||
"admin.config.category.share": "Freigabe",
|
"admin.config.category.share": "Freigabe",
|
||||||
"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": "OAuth-Anmeldung",
|
||||||
"admin.config.general.app-name": "App-Name",
|
"admin.config.general.app-name": "App-Name",
|
||||||
"admin.config.general.app-name.description": "Name der Applikation",
|
"admin.config.general.app-name.description": "Name der Applikation",
|
||||||
"admin.config.general.app-url": "App-URL",
|
"admin.config.general.app-url": "App-URL",
|
||||||
@@ -308,8 +308,8 @@ export default {
|
|||||||
"admin.config.share.allow-registration.description": "Gibt an, ob eine Registrierung erlaubt ist",
|
"admin.config.share.allow-registration.description": "Gibt an, ob eine Registrierung erlaubt ist",
|
||||||
"admin.config.share.allow-unauthenticated-shares": "Nicht authentifizierte Freigaben erlauben",
|
"admin.config.share.allow-unauthenticated-shares": "Nicht authentifizierte Freigaben erlauben",
|
||||||
"admin.config.share.allow-unauthenticated-shares.description": "Gibt an, ob nicht authentifizierte Benutzer Freigaben erstellen können",
|
"admin.config.share.allow-unauthenticated-shares.description": "Gibt an, ob nicht authentifizierte Benutzer Freigaben erstellen können",
|
||||||
"admin.config.share.max-expiration": "Max expiration",
|
"admin.config.share.max-expiration": "Max. Ablaufdatum",
|
||||||
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
|
"admin.config.share.max-expiration.description": "Maximale Ablaufzeit in Stunden. Auf 0 setzen, um kein Ablaufdatum zu definieren.",
|
||||||
"admin.config.share.max-size": "Maximale Größe",
|
"admin.config.share.max-size": "Maximale Größe",
|
||||||
"admin.config.share.max-size.description": "Maximale Größe einer Freigabe in Bytes",
|
"admin.config.share.max-size.description": "Maximale Größe einer Freigabe in Bytes",
|
||||||
"admin.config.share.zip-compression-level": "Zip Komprimierungsstufe",
|
"admin.config.share.zip-compression-level": "Zip Komprimierungsstufe",
|
||||||
@@ -327,48 +327,48 @@ export default {
|
|||||||
"admin.config.smtp.password": "Passwort",
|
"admin.config.smtp.password": "Passwort",
|
||||||
"admin.config.smtp.password.description": "Passwort des SMTP-Servers",
|
"admin.config.smtp.password.description": "Passwort des SMTP-Servers",
|
||||||
"admin.config.smtp.button.test": "Test-E-Mail senden",
|
"admin.config.smtp.button.test": "Test-E-Mail senden",
|
||||||
"admin.config.oauth.allow-registration": "Allow registration",
|
"admin.config.oauth.allow-registration": "Registrierung erlauben",
|
||||||
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
|
"admin.config.oauth.allow-registration.description": "Benutzern erlauben, sich über Soziale Netzwerke zu registrieren",
|
||||||
"admin.config.oauth.ignore-totp": "Ignore TOTP",
|
"admin.config.oauth.ignore-totp": "TOTP ignorieren",
|
||||||
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
|
"admin.config.oauth.ignore-totp.description": "Gibt an, ob TOTP ignoriert werden soll, wenn sich der Benutzer über Soziale Netzwerke anmeldet",
|
||||||
"admin.config.oauth.github-enabled": "GitHub",
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
|
"admin.config.oauth.github-enabled.description": "GitHub Anmeldung erlaubt",
|
||||||
"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 of the GitHub OAuth app",
|
"admin.config.oauth.github-client-id.description": "Client-ID der GitHub OAuth-App",
|
||||||
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
"admin.config.oauth.github-client-secret": "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 der GitHub OAuth-App",
|
||||||
"admin.config.oauth.google-enabled": "Google",
|
"admin.config.oauth.google-enabled": "Google",
|
||||||
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
|
"admin.config.oauth.google-enabled.description": "Google Anmeldung erlaubt",
|
||||||
"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 der Google OAuth-App",
|
||||||
"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 der Google OAuth-App",
|
||||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
|
"admin.config.oauth.microsoft-enabled.description": "Microsoft Anmeldung erlaubt",
|
||||||
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
"admin.config.oauth.microsoft-tenant": "Microsoft Mandant",
|
||||||
"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": "Mandant-ID der Microsoft OAuth App\ncommon: Benutzer mit einem persönlichen Microsoft-Konto und einem Arbeits- oder Schulkonto von Microsoft Entra ID können sich in der Anwendung anmelden.\norganizations: Nur Benutzer mit Arbeits- oder Schulkonten von Microsoft Entra ID können sich in der Anwendung anmelden.\nconsumers: Nur Benutzer mit einem persönlichen Microsoft-Konto können sich in der Anwendung anmelden.\nDomänenname des Microsoft Entra Mandanten oder die Mandanten-ID im GUID-Format: Nur Benutzer eines bestimmten Microsoft Entra Mandanten (Verzeichnismitglieder mit einem Arbeits- oder Schulkonto oder Verzeichnis Gäste mit einem persönlichen Microsoft-Konto) können sich anmelden.",
|
||||||
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
"admin.config.oauth.microsoft-client-id": "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 der Microsoft OAuth-App",
|
||||||
"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 der Microsoft OAuth-App",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
|
"admin.config.oauth.discord-enabled.description": "Discord Anmeldung erlaubt",
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
|
||||||
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
"admin.config.oauth.discord-client-id": "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 der Discord OAuth-App",
|
||||||
"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 der Discord OAuth-App",
|
||||||
"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": "OpenID Connect Anmeldung erlaubt",
|
||||||
"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 of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
|
||||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
"admin.config.oauth.oidc-username-claim": "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-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 der 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 der OpenID Connect OAuth-App",
|
||||||
// 404
|
// 404
|
||||||
"404.description": "Ups, diese Seite existiert nicht.",
|
"404.description": "Ups, diese Seite existiert nicht.",
|
||||||
"404.button.home": "Zurück zur Startseite",
|
"404.button.home": "Zurück zur Startseite",
|
||||||
@@ -377,16 +377,16 @@ export default {
|
|||||||
"error.description": "Ups!",
|
"error.description": "Ups!",
|
||||||
"error.button.back": "Zurück",
|
"error.button.back": "Zurück",
|
||||||
"error.msg.default": "Etwas ist schief gelaufen.",
|
"error.msg.default": "Etwas ist schief gelaufen.",
|
||||||
"error.msg.access_denied": "You canceled the authentication process, please try again.",
|
"error.msg.access_denied": "Du hast den Authentifizierungsprozess abgebrochen, bitte versuche es erneut.",
|
||||||
"error.msg.expired_token": "The authentication process took too long, please try again.",
|
"error.msg.expired_token": "Der Authentifizierungsprozess hat zu lange gedauert, bitte versuche es erneut.",
|
||||||
"error.msg.invalid_token": "Internal Error",
|
"error.msg.invalid_token": "Interner Fehler",
|
||||||
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
|
"error.msg.no_user": "Der mit diesem {0} Konto verknüpfte Benutzer existiert nicht.",
|
||||||
"error.msg.no_email": "Can't get email address from this {0} account.",
|
"error.msg.no_email": "Kann die E-Mail-Adresse von dem Konto {0} nicht abrufen.",
|
||||||
"error.msg.already_linked": "This {0} account is already linked to another account.",
|
"error.msg.already_linked": "Das Konto {0} ist bereits mit einem anderen Konto verknüpft.",
|
||||||
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
"error.msg.not_linked": "Das Konto {0} wurde noch nicht mit einem Konto verknüpft.",
|
||||||
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
|
"error.msg.unverified_account": "Dieses Konto {0} wurde noch nicht verifiziert, bitte versuchen Sie es nach der Verifikation erneut.",
|
||||||
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
|
"error.msg.discord_guild_permission_denied": "Du bist nicht berechtigt, Dich anzumelden.",
|
||||||
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
"error.msg.cannot_get_user_info": "Deine Benutzerinformationen können nicht von diesem Konto {0} abgerufen werden.",
|
||||||
"error.param.provider_github": "GitHub",
|
"error.param.provider_github": "GitHub",
|
||||||
"error.param.provider_google": "Google",
|
"error.param.provider_google": "Google",
|
||||||
"error.param.provider_microsoft": "Microsoft",
|
"error.param.provider_microsoft": "Microsoft",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Generieren",
|
"common.button.generate": "Generieren",
|
||||||
"common.button.done": "Fertig",
|
"common.button.done": "Fertig",
|
||||||
"common.text.link": "Link",
|
"common.text.link": "Link",
|
||||||
|
"common.text.navigate-to-link": "Link öffnen",
|
||||||
"common.text.or": "oder",
|
"common.text.or": "oder",
|
||||||
"common.button.go-back": "Zurück",
|
"common.button.go-back": "Zurück",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "Dein Link wurde in die Zwischenablage kopiert",
|
"common.notify.copied": "Dein Link wurde in die Zwischenablage kopiert",
|
||||||
"common.success": "Erfolg",
|
"common.success": "Erfolg",
|
||||||
"common.error": "Fehler",
|
"common.error": "Fehler",
|
||||||
|
|||||||
421
frontend/src/i18n/translations/el-GR.ts
Normal file
421
frontend/src/i18n/translations/el-GR.ts
Normal file
@@ -0,0 +1,421 @@
|
|||||||
|
export default {
|
||||||
|
// Navbar
|
||||||
|
"navbar.upload": "Μεταφόρτωση",
|
||||||
|
"navbar.signin": "Είσοδος",
|
||||||
|
"navbar.home": "Αρχική",
|
||||||
|
"navbar.signup": "Εγγραφή",
|
||||||
|
"navbar.links.shares": "",
|
||||||
|
"navbar.links.reverse": "Αντίστροφος σύνδεσμος κοινής χρήσης",
|
||||||
|
"navbar.avatar.account": "Ο λογαριασμός μου",
|
||||||
|
"navbar.avatar.admin": "Διαχείριση",
|
||||||
|
"navbar.avatar.signout": "Αποσύνδεση",
|
||||||
|
// END navbar
|
||||||
|
// /
|
||||||
|
"home.title": "Μια πλατφόρμα κοινής χρήσης αρχείων <h>σε ιδιωτική εγκατάσταση</h>.",
|
||||||
|
"home.description": "Θέλετε πραγματικά να δώσετε τα προσωπικά σας αρχεία στο χέρι τρίτων όπως WeTransfer?",
|
||||||
|
"home.bullet.a.name": "Ιδιωτική εγκατάσταση",
|
||||||
|
"home.bullet.a.description": "Φιλοξενήστε το Pingvin Share στο δικό σας μηχάνημα.",
|
||||||
|
"home.bullet.b.name": "Απόρρητο",
|
||||||
|
"home.bullet.b.description": "Τα αρχεία σας είναι αρχεία σας και δεν πρέπει ποτέ να μπείτε στα χέρια τρίτων.",
|
||||||
|
"home.bullet.c.name": "Χωρίς όριο μεγέθους αρχείου",
|
||||||
|
"home.bullet.c.description": "Ανεβάστε όσο μεγάλα αρχεία θέλετε. Μόνο ο σκληρός σας δίσκος θα είναι το όριό σας.",
|
||||||
|
"home.button.start": "Ας αρχίσουμε",
|
||||||
|
"home.button.source": "Πηγαίος κώδικας",
|
||||||
|
// END /
|
||||||
|
// /auth/signin
|
||||||
|
"signin.title": "Καλώς ήρθατε ξανά",
|
||||||
|
"signin.description": "Δεν έχετε ακόμα λογαριασμό;",
|
||||||
|
"signin.button.signup": "Εγγραφή",
|
||||||
|
"signin.input.email-or-username": "E-mail ή όνομα χρήστη",
|
||||||
|
"signin.input.email-or-username.placeholder": "Το email ή το όνομα χρήστη",
|
||||||
|
"signin.input.password": "Κωδικόs πρόσβασης",
|
||||||
|
"signin.input.password.placeholder": "Ο κωδικός πρόσβασής σας",
|
||||||
|
"signin.button.submit": "Είσοδος",
|
||||||
|
"signIn.notify.totp-required.title": "Απαιτείται έλεγχος ταυτότητας δύο παραγόντων.",
|
||||||
|
"signIn.notify.totp-required.description": "Παρακαλώ εισάγετε τον κωδικό 2FA.",
|
||||||
|
"signIn.oauth.or": "Ή",
|
||||||
|
"signIn.oauth.github": "GitHub",
|
||||||
|
"signIn.oauth.google": "Google",
|
||||||
|
"signIn.oauth.microsoft": "Microsoft",
|
||||||
|
"signIn.oauth.discord": "Discord",
|
||||||
|
"signIn.oauth.oidc": "OpenID",
|
||||||
|
// END /auth/signin
|
||||||
|
// /auth/signup
|
||||||
|
"signup.title": "Δημιουργία λογαριασμού",
|
||||||
|
"signup.description": "Έχετε ήδη λογαριασμό;",
|
||||||
|
"signup.button.signin": "Είσοδος",
|
||||||
|
"signup.input.username": "Όνομα χρήστη",
|
||||||
|
"signup.input.username.placeholder": "Το όνομα χρήστη σας",
|
||||||
|
"signup.input.email": "E-mail",
|
||||||
|
"signup.input.email.placeholder": "Το email σας",
|
||||||
|
"signup.button.submit": "Ας ξεκινήσουμε",
|
||||||
|
// END /auth/signup
|
||||||
|
// /auth/totp
|
||||||
|
"totp.title": "Ταυτοποίηση TOTP",
|
||||||
|
"totp.button.signIn": "Είσοδος",
|
||||||
|
// END /auth/totp
|
||||||
|
// /auth/reset-password
|
||||||
|
"resetPassword.title": "Ξεχάσατε τον κωδικό σας;",
|
||||||
|
"resetPassword.description": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
|
"resetPassword.notify.success": "Εισάγετε το email σας για επαναφορά κωδικού.",
|
||||||
|
"resetPassword.button.back": "Πίσω στη σελίδα εισόδου",
|
||||||
|
"resetPassword.text.resetPassword": "Επαναφορά κωδικού πρόσβασης",
|
||||||
|
"resetPassword.text.enterNewPassword": "Εισάγετε το νέο σας κωδικό",
|
||||||
|
"resetPassword.input.password": "Νέος κωδικός",
|
||||||
|
"resetPassword.notify.passwordReset": "Η επαναφορά του κωδικού πρόσβασης σας ολοκληρώθηκε με επιτυχία!",
|
||||||
|
// /account
|
||||||
|
"account.title": "Ο λογαριασμός μου",
|
||||||
|
"account.card.info.title": "Πληροφορίες λογαριασμού",
|
||||||
|
"account.card.info.username": "Όνομα χρήστη",
|
||||||
|
"account.card.info.email": "E-mail",
|
||||||
|
"account.notify.info.success": "Ο λογαριασμός ενημερώθηκε επιτυχώς!",
|
||||||
|
"account.card.password.title": "Κωδικόs πρόσβασης",
|
||||||
|
"account.card.password.old": "Παλιός κωδικός",
|
||||||
|
"account.card.password.new": "Νέος κωδικός",
|
||||||
|
"account.card.password.noPasswordSet": "Δεν έχετε ορίσει κωδικό πρόσβασης. Αν θέλετε να συνδεθείτε με email και κωδικό πρόσβασης, πρέπει να ορίσετε έναν κωδικό πρόσβασης.",
|
||||||
|
"account.notify.password.success": "Ο κωδικός πρόσβασης άλλαξε επιτυχώς",
|
||||||
|
"account.card.oauth.title": "Σύνδεση με λογαριασμό μέσων κοινωνικού δικτύου",
|
||||||
|
"account.card.oauth.github": "GitHub",
|
||||||
|
"account.card.oauth.google": "Google",
|
||||||
|
"account.card.oauth.microsoft": "Microsoft",
|
||||||
|
"account.card.oauth.discord": "Discord",
|
||||||
|
"account.card.oauth.oidc": "OpenID",
|
||||||
|
"account.card.oauth.link": "Σύνδεσμος",
|
||||||
|
"account.card.oauth.unlink": "Αποσύνδεση",
|
||||||
|
"account.card.oauth.unlinked": "Αποσυνδεδεμένο",
|
||||||
|
"account.modal.unlink.title": "Αποσύνδεση Λογαριασμού",
|
||||||
|
"account.modal.unlink.description": "Η αποσύνδεση των κοινωνικών λογαριασμών σας μπορεί να προκαλέσει απώλεια του λογαριασμού σας αν δε θυμάστε το όνομα χρήστη και τον κωδικό πρόσβασης.",
|
||||||
|
"account.notify.oauth.unlinked.success": "Επιτυχής αποσύνδεση",
|
||||||
|
"account.card.security.title": "Ασφάλεια",
|
||||||
|
"account.card.security.totp.enable.description": "Εισάγετε τον τρέχοντα κωδικό σας για να ξεκινήσετε την ενεργοποίηση του TOTP",
|
||||||
|
"account.card.security.totp.disable.description": "Εισάγετε τον τρέχοντα κωδικό πρόσβασης για να απενεργοποιήσετε το TOTP",
|
||||||
|
"account.card.security.totp.button.start": "Έναρξη",
|
||||||
|
"account.modal.totp.title": "Ενεργοποίηση TOTP",
|
||||||
|
"account.modal.totp.step1": "Βήμα 1: Προσθέστε τον έλεγχο ταυτότητας",
|
||||||
|
"account.modal.totp.step2": "Βήμα 2: Επικυρώστε τον κωδικό σας",
|
||||||
|
"account.modal.totp.enterManually": "Χειροκίνητη εισαγωγή",
|
||||||
|
"account.modal.totp.code": "Κώδικας",
|
||||||
|
"account.modal.totp.clickToCopy": "Κάνε κλικ για αντιγραφή",
|
||||||
|
"account.modal.totp.verify": "Επαλήθευση",
|
||||||
|
"account.notify.totp.disable": "Το TOTP απενεργοποιήθηκε επιτυχώς",
|
||||||
|
"account.notify.totp.enable": "Το TOTP ενεργοποιήθηκε επιτυχώς",
|
||||||
|
"account.card.language.title": "Γλώσσα",
|
||||||
|
"account.card.language.description": "Η μετάφραση της εφαρμογής γίνεται από την εθελοντές της κοινότητας. Μερικές γλώσσες μπορεί να είναι ελλιπείς.",
|
||||||
|
"account.card.color.title": "Συνδυασμός χρωμάτων",
|
||||||
|
// ThemeSwitcher.tsx
|
||||||
|
"account.theme.dark": "Σκοτεινό",
|
||||||
|
"account.theme.light": "Φωτεινό",
|
||||||
|
"account.theme.system": "Σύστημα",
|
||||||
|
"account.button.delete": "Διαγραφή Λογαριασμού",
|
||||||
|
"account.modal.delete.title": "Διαγραφή Λογαριασμού",
|
||||||
|
"account.modal.delete.description": "Θέλετε πραγματικά να διαγράψετε το λογαριασμό σας, συμπεριλαμβανομένων όλων των ενεργών μετοχών σας?",
|
||||||
|
// END /account
|
||||||
|
// /account/shares
|
||||||
|
"account.shares.title": "Οι κοινοποιήσεις μου",
|
||||||
|
"account.shares.title.empty": "Είναι κενό εδώ 👀",
|
||||||
|
"account.shares.description.empty": "Δεν διαμοιράζεστε τίποτα.",
|
||||||
|
"account.shares.button.create": "Δημιουργία",
|
||||||
|
"account.shares.info.title": "Πληροφορίες διαμοιρασμού",
|
||||||
|
"account.shares.table.id": "Αναγνωριστικό",
|
||||||
|
"account.shares.table.name": "Όνομα",
|
||||||
|
"account.shares.table.description": "Περιγραφή",
|
||||||
|
"account.shares.table.visitors": "Επισκέπτες",
|
||||||
|
"account.shares.table.expiresAt": "Λήξη",
|
||||||
|
"account.shares.table.createdAt": "Δημιουργήθηκε",
|
||||||
|
"account.shares.table.size": "Μέγεθος",
|
||||||
|
"account.shares.modal.share-informations": "Πληροφορίες διαμοιρασμού",
|
||||||
|
"account.shares.modal.share-link": "Κοινοποίηση συνδέσμου",
|
||||||
|
"account.shares.modal.delete.title": "Διαγραφή κοινοποίησης {share}",
|
||||||
|
"account.shares.modal.delete.description": "Θέλετε πραγματικά να διαγράψετε αυτό το διαμοιρασμό;",
|
||||||
|
// END /account/shares
|
||||||
|
// /account/reverseShares
|
||||||
|
"account.reverseShares.title": "Αντίστροφες κοινοποιήσεις",
|
||||||
|
"account.reverseShares.description": "Μια αντίστροφη κοινοποίηση σάς επιτρέπει να δημιουργήσετε μια μοναδική διεύθυνση URL που επιτρέπει σε εξωτερικούς χρήστες να δημιουργήσουν μια κοινή χρήση.",
|
||||||
|
"account.reverseShares.title.empty": "Είναι κενό εδώ 👀",
|
||||||
|
"account.reverseShares.description.empty": "Δεν έχετε καμία αντίστροφη μετοχή.",
|
||||||
|
// showCreateReverseShareModal.tsx
|
||||||
|
"account.reverseShares.modal.title": "Δημιουργία αντίστροφης κοινοποίησης",
|
||||||
|
"account.reverseShares.modal.expiration.label": "Λήξη",
|
||||||
|
"account.reverseShares.modal.expiration.minute-singular": "Λεπτό",
|
||||||
|
"account.reverseShares.modal.expiration.minute-plural": "Λεπτά",
|
||||||
|
"account.reverseShares.modal.expiration.hour-singular": "Ώρα",
|
||||||
|
"account.reverseShares.modal.expiration.hour-plural": "Ώρες",
|
||||||
|
"account.reverseShares.modal.expiration.day-singular": "Ημέρα",
|
||||||
|
"account.reverseShares.modal.expiration.day-plural": "Ημέρες",
|
||||||
|
"account.reverseShares.modal.expiration.week-singular": "Εβδομάδα",
|
||||||
|
"account.reverseShares.modal.expiration.week-plural": "Εβδομάδες",
|
||||||
|
"account.reverseShares.modal.expiration.month-singular": "Μήνας",
|
||||||
|
"account.reverseShares.modal.expiration.month-plural": "Μήνες",
|
||||||
|
"account.reverseShares.modal.expiration.year-singular": "Έτος",
|
||||||
|
"account.reverseShares.modal.expiration.year-plural": "Έτη",
|
||||||
|
"account.reverseShares.modal.max-size.label": "Μέγιστο μέγεθος κοινοποίησης",
|
||||||
|
"account.reverseShares.modal.send-email": "Αποστολή ειδοποιήσεων με email",
|
||||||
|
"account.reverseShares.modal.send-email.description": "Στείλτε μια ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου όταν δημιουργείται ένας διαμοιρασμός με αυτόν τον σύνδεσμο ανάστροφης κοινοποίησης.",
|
||||||
|
"account.reverseShares.modal.max-use.label": "Μέγιστες χρήσεις",
|
||||||
|
"account.reverseShares.modal.max-use.description": "Ο μέγιστος αριθμός που μπορεί να χρησιμοποιηθεί αυτό το URL για τη δημιουργία ενός διαμοιρασμού.",
|
||||||
|
"account.reverseShare.never-expires": "Αυτός ο αντίστροφος διαμοιρασμός δε λήγει.",
|
||||||
|
"account.reverseShare.expires-on": "Αυτός ο αντίστροφος διαμοιρασμός θα λήξει {expiration}.",
|
||||||
|
"account.reverseShares.table.no-shares": "Δε δημιουργήθηκαν κοινοποιήσεις ακόμα",
|
||||||
|
"account.reverseShares.table.count.singular": "διαμοιρασμός",
|
||||||
|
"account.reverseShares.table.count.plural": "διαμοιρασμοί",
|
||||||
|
"account.reverseShares.table.shares": "Διαμοιρασμοί",
|
||||||
|
"account.reverseShares.table.remaining": "Υπόλοιπες χρήσεις",
|
||||||
|
"account.reverseShares.table.max-size": "Μέγιστο μέγεθος κοινοποίησης",
|
||||||
|
"account.reverseShares.table.expires": "Λήγει στις",
|
||||||
|
"account.reverseShares.modal.reverse-share-link": "Αντίστροφος σύνδεσμος κοινής χρήσης",
|
||||||
|
"account.reverseShares.modal.delete.title": "Διαγραφή αντίστροφης κοινοποίησης",
|
||||||
|
"account.reverseShares.modal.delete.description": "Θέλετε πραγματικά να διαγράψετε αυτή την αντίστροφη κοινοποίηση; Εάν το κάνετε, οι συνδεδεμένες κοινοποιήσεις θα διαγραφούν επίσης.",
|
||||||
|
// END /account/reverseShares
|
||||||
|
// /admin
|
||||||
|
"admin.title": "Διαχείριση",
|
||||||
|
"admin.button.users": "Διαχείριση χρηστών",
|
||||||
|
"admin.button.config": "Διαμόρφωση",
|
||||||
|
"admin.version": "Έκδοση",
|
||||||
|
// END /admin
|
||||||
|
// /admin/users
|
||||||
|
"admin.users.title": "Διαχείριση χρηστών",
|
||||||
|
"admin.users.table.username": "Όνομα χρήστη",
|
||||||
|
"admin.users.table.email": "E-mail",
|
||||||
|
"admin.users.table.admin": "Διαχειριστής",
|
||||||
|
"admin.users.edit.update.title": "Ενημέρωση χρήστη {username}",
|
||||||
|
"admin.users.edit.update.admin-privileges": "Δικαιώματα διαχειριστή",
|
||||||
|
"admin.users.edit.update.change-password.title": "Αλλαγή κωδικού πρόσβασής",
|
||||||
|
"admin.users.edit.update.change-password.field": "Νέος κωδικός πρόσβασης",
|
||||||
|
"admin.users.edit.update.change-password.button": "Αποθήκευση νέου κωδικού πρόσβασης",
|
||||||
|
"admin.users.edit.update.notify.password.success": "Ο κωδικός πρόσβασης άλλαξε επιτυχώς",
|
||||||
|
"admin.users.edit.delete.title": "Διαγραφή χρήστη {username}",
|
||||||
|
"admin.users.edit.delete.description": "Θέλετε να διαγράψετε το χρήστη και όλες τις κοινοποιήσεις του;",
|
||||||
|
// showCreateUserModal.tsx
|
||||||
|
"admin.users.modal.create.title": "Δημιουργία χρήστη",
|
||||||
|
"admin.users.modal.create.username": "Όνομα χρήστη",
|
||||||
|
"admin.users.modal.create.email": "E-mail",
|
||||||
|
"admin.users.modal.create.password": "Κωδικός πρόσβασης",
|
||||||
|
"admin.users.modal.create.manual-password": "Χειροκίνητος ορισμός κωδικού πρόσβασης",
|
||||||
|
"admin.users.modal.create.manual-password.description": "Εάν δεν είναι επιλεγμένο, ο χρήστης θα λάβει ένα email με ένα σύνδεσμο για να ορίσει τον κωδικό πρόσβασής του.",
|
||||||
|
"admin.users.modal.create.admin": "Δικαιώματα διαχειριστή",
|
||||||
|
"admin.users.modal.create.admin.description": "Αν ενεργοποιηθεί, ο χρήστης θα μπορεί να έχει πρόσβαση στον πίνακα διαχείρισης.",
|
||||||
|
// END /admin/users
|
||||||
|
// /upload
|
||||||
|
"upload.title": "Μεταφόρτωση",
|
||||||
|
"upload.notify.generic-error": "Παρουσιάστηκε σφάλμα κατά την ολοκλήρωση της κοινής χρήσης σας.",
|
||||||
|
"upload.notify.count-failed": "Τα αρχεία {count} απέτυχαν να μεταφορτώσουν. Δοκιμάστε ξανά.",
|
||||||
|
// Dropzone.tsx
|
||||||
|
"upload.dropzone.title": "Μεταφόρτωση αρχείων",
|
||||||
|
"upload.dropzone.description": "Σύρετε και αποθέστε αρχεία εδώ για να ξεκινήσει η κοινή χρήση σας. Μπορούμε να δεχτούμε μόνο αρχεία που είναι λιγότερο από {maxSize} συνολικά.",
|
||||||
|
"upload.dropzone.notify.file-too-big": "Τα αρχεία σας υπερβαίνουν το μέγιστο μέγεθος κοινής χρήσης του {maxSize}.",
|
||||||
|
// FileList.tsx
|
||||||
|
"upload.filelist.name": "Όνομα",
|
||||||
|
"upload.filelist.size": "Μέγεθος",
|
||||||
|
// showCreateUploadModal.tsx
|
||||||
|
"upload.modal.title": "Δημιουργία Κοινοποίησης",
|
||||||
|
"upload.modal.link.error.invalid": "Μπορεί να περιέχει μόνο γράμματα, αριθμούς, κάτω παύλες και παύλες",
|
||||||
|
"upload.modal.link.error.taken": "Αυτός ο σύνδεσμος χρησιμοποιείται ήδη",
|
||||||
|
"upload.modal.not-signed-in": "Δεν είστε συνδεδεμένος/η",
|
||||||
|
"upload.modal.not-signed-in-description": "Δεν θα μπορείτε να διαγράψετε την κοινή χρήση σας χειροκίνητα και να δείτε την αρίθμηση επισκεπτών.",
|
||||||
|
"upload.modal.expires.never": "ποτέ",
|
||||||
|
"upload.modal.expires.never-long": "Χωρίς λήξη",
|
||||||
|
"upload.modal.expires.error.too-long": "Η λήξη υπερβαίνει τη μέγιστη ημερομηνία λήξης {max}.",
|
||||||
|
"upload.modal.link.label": "Σύνδεσμος",
|
||||||
|
"upload.modal.expires.label": "Λήξη",
|
||||||
|
"upload.modal.expires.minute-singular": "Λεπτό",
|
||||||
|
"upload.modal.expires.minute-plural": "Λεπτά",
|
||||||
|
"upload.modal.expires.hour-singular": "Ώρα",
|
||||||
|
"upload.modal.expires.hour-plural": "Ώρες",
|
||||||
|
"upload.modal.expires.day-singular": "Ημέρα",
|
||||||
|
"upload.modal.expires.day-plural": "Ημέρες",
|
||||||
|
"upload.modal.expires.week-singular": "Εβδομάδα",
|
||||||
|
"upload.modal.expires.week-plural": "Εβδομάδες",
|
||||||
|
"upload.modal.expires.month-singular": "Μήνας",
|
||||||
|
"upload.modal.expires.month-plural": "Μήνες",
|
||||||
|
"upload.modal.expires.year-singular": "Έτος",
|
||||||
|
"upload.modal.expires.year-plural": "Έτη",
|
||||||
|
"upload.modal.accordion.description.title": "Περιγραφή",
|
||||||
|
"upload.modal.accordion.description.placeholder": "Σημείωση για τους παραλήπτες αυτής της κοινοποίησης",
|
||||||
|
"upload.modal.accordion.email.title": "Αποδέκτες email",
|
||||||
|
"upload.modal.accordion.email.placeholder": "Εισάγετε αποδέκτες email",
|
||||||
|
"upload.modal.accordion.email.invalid-email": "Μη έγκυρη διεύθυνση e-mail",
|
||||||
|
"upload.modal.accordion.security.title": "Επιλογές ασφαλείας",
|
||||||
|
"upload.modal.accordion.security.password.label": "Προστασία με κωδικό πρόσβασης",
|
||||||
|
"upload.modal.accordion.security.password.placeholder": "Χωρίς Κωδικό",
|
||||||
|
"upload.modal.accordion.security.max-views.label": "Μέγιστος αριθμός εμφανίσεων",
|
||||||
|
"upload.modal.accordion.security.max-views.placeholder": "Χωρίς όριο",
|
||||||
|
// showCompletedUploadModal.tsx
|
||||||
|
"upload.modal.completed.never-expires": "Αυτός ο διαμοιρασμός δεν λήγει.",
|
||||||
|
"upload.modal.completed.expires-on": "Αυτός ο διαμοιρασμός θα λήξει {expiration}.",
|
||||||
|
"upload.modal.completed.share-ready": "Κοινοποίηση έτοιμου",
|
||||||
|
// END /upload
|
||||||
|
// /share/[id]
|
||||||
|
"share.title": "Διαμοιρασμός {shareId}",
|
||||||
|
"share.description": "Σας προωθώ αρχεία προς κοινοποίηση.",
|
||||||
|
"share.error.visitor-limit-exceeded.title": "Υπέρβαση ορίου επισκέπτη",
|
||||||
|
"share.error.visitor-limit-exceeded.description": "Ξεπεράστηκε το όριο επισκεπτών σε αυτή την κοινοποίηση.",
|
||||||
|
"share.error.removed.title": "Κοινοποίηση αφαιρέθηκε",
|
||||||
|
"share.error.not-found.title": "Η κοινοποίηση δε βρέθηκε",
|
||||||
|
"share.error.not-found.description": "Η κοινοποίηση που ψάχνετε δεν υπάρχει.",
|
||||||
|
"share.modal.password.title": "Απαιτείται κωδικός",
|
||||||
|
"share.modal.password.description": "Για να αποκτήσετε πρόσβαση σε αυτή την κοινοποίηση εισάγετε τον κωδικό πρόσβασης.",
|
||||||
|
"share.modal.password": "Κωδικός πρόσβασης",
|
||||||
|
"share.modal.error.invalid-password": "Μη έγκυρος κωδικός πρόσβασης",
|
||||||
|
"share.button.download-all": "Λήψη όλων",
|
||||||
|
"share.notify.download-all-preparing": "Αυτός ο διαμοιρασμός βρίσκεται σε επεξεργασία. Προσπαθήστε ξανά σε λίγο.",
|
||||||
|
"share.modal.file-link": "Σύνδεσμος αρχείου",
|
||||||
|
"share.table.name": "Όνομα",
|
||||||
|
"share.table.size": "Μέγεθος",
|
||||||
|
"share.modal.file-preview.error.not-supported.title": "Η προεπισκόπηση δεν υποστηρίζεται",
|
||||||
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
|
// END /share/[id]
|
||||||
|
// /share/[id]/edit
|
||||||
|
"share.edit.title": "Ενημέρωση {shareId}",
|
||||||
|
"share.edit.append-upload": "Προσθήκη αρχείου",
|
||||||
|
"share.edit.notify.generic-error": "Παρουσιάστηκε σφάλμα κατά την ολοκλήρωση του διαμοιρασμού.",
|
||||||
|
"share.edit.notify.save-success": "Ο διαμοιρασμός ενημερώθηκε επιτυχώς",
|
||||||
|
// END /share/[id]/edit
|
||||||
|
// /admin/config
|
||||||
|
"admin.config.title": "Διαμόρφωση",
|
||||||
|
"admin.config.category.general": "Γενικά",
|
||||||
|
"admin.config.category.share": "Διαμοιρασμός",
|
||||||
|
"admin.config.category.email": "Email",
|
||||||
|
"admin.config.category.smtp": "SMTP",
|
||||||
|
"admin.config.category.oauth": "Σύνδεση με λογαριασμό μέσων κοινωνικού δικτύου",
|
||||||
|
"admin.config.general.app-name": "Όνομα εφαρμογής",
|
||||||
|
"admin.config.general.app-name.description": "Ονομασία της εφαρμογής",
|
||||||
|
"admin.config.general.app-url": "URL Εφαρμογής",
|
||||||
|
"admin.config.general.app-url.description": "Η διεύθυνση URL όπου το Pingvin Share είναι διαθέσιμο",
|
||||||
|
"admin.config.general.show-home-page": "Εμφάνιση αρχικής σελίδας",
|
||||||
|
"admin.config.general.show-home-page.description": "Εάν θα εμφανίζεται η αρχική σελίδα",
|
||||||
|
"admin.config.general.logo": "Λογότυπο",
|
||||||
|
"admin.config.general.logo.description": "Αλλάξτε το λογότυπό σας ανεβάζοντας μια νέα εικόνα. Η εικόνα πρέπει να είναι PNG και αναλογία 1:1.",
|
||||||
|
"admin.config.general.logo.placeholder": "Επιλέξτε εικόνα",
|
||||||
|
"admin.config.email.enable-share-email-recipients": "Ενεργοποίηση κοινής χρήσης μέσω email",
|
||||||
|
"admin.config.email.enable-share-email-recipients.description": "Εάν θα ενεργοποιηθεί η κοινή χρήση μέσω email. Δυνατή μόνον με την ενεργοποίηση SMTP.",
|
||||||
|
"admin.config.email.share-recipients-subject": "Θέμα στο email διαμοιρασμού",
|
||||||
|
"admin.config.email.share-recipients-subject.description": "Το θέμα του email διαμοιρασμού που θα φτάσει στον παραλήπτη.",
|
||||||
|
"admin.config.email.share-recipients-message": "Το θέμα του email για τον διαμοιρασμό που θα φτάσει στον παραλήπτη ",
|
||||||
|
"admin.config.email.share-recipients-message.description": "Μήνυμα που αποστέλλεται στους παραλήπτες κοινής χρήσης. Διαθέσιμες μεταβλητές:\n {creator} - Το όνομα χρήστη του δημιουργού της κοινής χρήσης\n {shareUrl} - Η διεύθυνση URL της κοινής χρήσης\n {desc} - Η περιγραφή της κοινής χρήσης\n {expires} - Η ημερομηνία λήξης της κοινής χρήσης\n Οι μεταβλητές θα αντικατασταθούν με την πραγματική τιμή.",
|
||||||
|
"admin.config.email.reverse-share-subject": "Θέμα email αντίστροφου διαμοιρασμού",
|
||||||
|
"admin.config.email.reverse-share-subject.description": "Θέμα του ηλεκτρονικού ταχυδρομείου που αποστέλλεται όταν κάποιος δημιούργησε έναν αντίστροφο διαμοιρασμό.",
|
||||||
|
"admin.config.email.reverse-share-message": "Μήνυμα email αντίστροφου διαμοιρασμού",
|
||||||
|
"admin.config.email.reverse-share-message.description": "Μήνυμα που αποστέλλεται όταν κάποιος δημιουργεί έναν σύνδεσμο αντίστροφου διαμοιρασμού. Το {shareUrl} θα αντικατασταθεί με το όνομα του δημιουργού και τη διεύθυνση URL κοινής χρήσης.",
|
||||||
|
"admin.config.email.reset-password-subject": "Θέμα μηνύματος επαναφοράς κωδικού πρόσβασης",
|
||||||
|
"admin.config.email.reset-password-subject.description": "Θέμα του email που αποστέλλεται όταν ένας χρήστης ζητήσει επαναφορά κωδικού πρόσβασης.",
|
||||||
|
"admin.config.email.reset-password-message": "Κείμενο μηνύματος επαναφοράς κωδικού πρόσβασης",
|
||||||
|
"admin.config.email.reset-password-message.description": "Μήνυμα που αποστέλλεται όταν ένας χρήστης ζητά επαναφορά κωδικού πρόσβασης. Το {url} θα αντικατασταθεί με τη διεύθυνση URL επαναφοράς κωδικού πρόσβασης.",
|
||||||
|
"admin.config.email.invite-subject": "Θέμα μηνύματος πρόσκλησης",
|
||||||
|
"admin.config.email.invite-subject.description": "Θέμα του email που αποστέλλεται όταν ένας διαχειριστής προσκαλεί έναν χρήστη.",
|
||||||
|
"admin.config.email.invite-message": "Μήνυμα μηνύματος πρόσκλησης",
|
||||||
|
"admin.config.email.invite-message.description": "Το μήνυμα που αποστέλλεται όταν ένας διαχειριστής προσκαλεί έναν χρήστη. Το {url} θα αντικατασταθεί με το URL πρόσκλησης και το {password} με τον κωδικό πρόσβασης.",
|
||||||
|
"admin.config.share.allow-registration": "Να επιτρέπεται η εγγραφή",
|
||||||
|
"admin.config.share.allow-registration.description": "Αν επιτρέπεται η εγγραφή",
|
||||||
|
"admin.config.share.allow-unauthenticated-shares": "Επιτρέψτε κοινές χρήσεις χωρίς έλεγχο ταυτότητας",
|
||||||
|
"admin.config.share.allow-unauthenticated-shares.description": "Εάν οι χρήστες χωρίς έλεγχο ταυτότητας μπορούν να δημιουργήσουν κοινόχρηστα στοιχεία",
|
||||||
|
"admin.config.share.max-expiration": "Μέγιστη λήξη",
|
||||||
|
"admin.config.share.max-expiration.description": "Μέγιστη λήξη κοινής χρήσης σε ώρες. Ορίστε το 0 για να επιτρέψετε απεριόριστη λήξη.",
|
||||||
|
"admin.config.share.max-size": "Μέγιστο μέγεθος",
|
||||||
|
"admin.config.share.max-size.description": "Μέγιστο μέγεθος κοινοποίησης σε bytes",
|
||||||
|
"admin.config.share.zip-compression-level": "Βαθμός συμπίεσης ZIP",
|
||||||
|
"admin.config.share.zip-compression-level.description": "Προσαρμόστε το βαθμό συμπίεσης για να εξισορροπηθεί το μέγεθος του αρχείου και η ταχύτητα επεξεργασίας. Έγκυρες τιμές κυμαίνονται από 0 έως 9, με 0 χωρίς συμπίεση και 9 μέγιστη συμπίεση.",
|
||||||
|
"admin.config.smtp.enabled": "Ενεργοποιημένο",
|
||||||
|
"admin.config.smtp.enabled.description": "Εάν η λειτουργία SMTP είναι ενεργοποιημένη. Ενεργοποιήστε τη μόνον όταν ορίσετε σωστά τις παραμέτρους που ακολουθούν.",
|
||||||
|
"admin.config.smtp.host": "Εξυπηρετητής",
|
||||||
|
"admin.config.smtp.host.description": "SMTP εξυπηρετητής",
|
||||||
|
"admin.config.smtp.port": "Θύρα",
|
||||||
|
"admin.config.smtp.port.description": "SMTP θύρα",
|
||||||
|
"admin.config.smtp.email": "Email",
|
||||||
|
"admin.config.smtp.email.description": "Διεύθυνση email από όπου αποστέλλονται τα μηνύματα",
|
||||||
|
"admin.config.smtp.username": "Όνομα χρήστη",
|
||||||
|
"admin.config.smtp.username.description": "Όνομα χρήστη στον SMTP εξυπηρετητή",
|
||||||
|
"admin.config.smtp.password": "Κωδικός πρόσβασης",
|
||||||
|
"admin.config.smtp.password.description": "Κωδικός πρόσβασης στον εξυπηρετητή SMTP",
|
||||||
|
"admin.config.smtp.button.test": "Αποστολή δοκιμαστικού email",
|
||||||
|
"admin.config.oauth.allow-registration": "Να επιτρέπεται η εγγραφή",
|
||||||
|
"admin.config.oauth.allow-registration.description": "Επιτρέψτε στους χρήστες να εγγραφούν μέσω λογαριασμών κοινωνικής δικτύωσης",
|
||||||
|
"admin.config.oauth.ignore-totp": "Παράβλεψη TOTP",
|
||||||
|
"admin.config.oauth.ignore-totp.description": "Αν θα αγνοηθεί το TOTP όταν ο χρήστης χρησιμοποιεί την κοινωνική σύνδεση",
|
||||||
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
|
"admin.config.oauth.github-enabled.description": "Αν είναι ενεργοποιημένη η σύνδεση GitHub",
|
||||||
|
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||||
|
"admin.config.oauth.github-client-id.description": "Αναγνωριστικό πελάτη της εφαρμογής GitHub OAuth",
|
||||||
|
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
||||||
|
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
|
||||||
|
"admin.config.oauth.google-enabled": "Google",
|
||||||
|
"admin.config.oauth.google-enabled.description": "Αν θα είναι ενεργοποιημένη η σύνδεση Google",
|
||||||
|
"admin.config.oauth.google-client-id": "Αναγνωριστικό Πελάτη Google",
|
||||||
|
"admin.config.oauth.google-client-id.description": "Αναγνωριστικό πελάτη της εφαρμογής Google OAuth",
|
||||||
|
"admin.config.oauth.google-client-secret": "Google κωδικός",
|
||||||
|
"admin.config.oauth.google-client-secret.description": "Κωδικός της εφαρμογής Google OAuth",
|
||||||
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
|
"admin.config.oauth.microsoft-enabled.description": "Αν είναι ενεργοποιημένη η σύνδεση της Microsoft",
|
||||||
|
"admin.config.oauth.microsoft-tenant": "Αναγνωριστικό Microsoft",
|
||||||
|
"admin.config.oauth.microsoft-tenant.description": "Αναγνωριστικό για την εφαρμογή Microsoft OAuth\nΚοινή: Οι χρήστες με προσωπικό λογαριασμό Microsoft και λογαριασμό εργασίας ή σχολείου από το Microsoft Entra ID μπορούν να συνδεθούν στην εφαρμογή.\nΟργανισμοί: Μόνο χρήστες με λογαριασμούς εργασίας ή σχολείου από το Microsoft Entra ID μπορούν να συνδεθούν στην εφαρμογή.\nΚαταναλωτές: Μόνο οι χρήστες με προσωπικό λογαριασμό Microsoft μπορούν να συνδεθούν στην εφαρμογή.\nΜε όνομα τομέα του μισθωτή Microsoft Entra ή το αναγνωριστικό μισθωτή σε μορφή GUID: Μόνο χρήστες από έναν συγκεκριμένο μισθωτή της Microsoft Entra (μέλη καταλόγου με λογαριασμό εργασίας ή σχολείου ή επισκέπτες καταλόγου με προσωπικό λογαριασμό Microsoft) μπορούν να συνδεθούν στην εφαρμογή.",
|
||||||
|
"admin.config.oauth.microsoft-client-id": "Αναγνωριστικό πελάτη Microsoft",
|
||||||
|
"admin.config.oauth.microsoft-client-id.description": "Αναγνωριστικό πελάτη της εφαρμογής Microsoft OAuth",
|
||||||
|
"admin.config.oauth.microsoft-client-secret": "Μυστικό πελάτη Microsoft",
|
||||||
|
"admin.config.oauth.microsoft-client-secret.description": "Μυστικό πελάτη της εφαρμογής Microsoft OAuth",
|
||||||
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
|
"admin.config.oauth.discord-enabled.description": "Αν είναι ενεργοποιημένη η σύνδεση στο Discord",
|
||||||
|
"admin.config.oauth.discord-limited-guild": "Αναγνωριστικό διακομιστή περιορισμένης ισχύος Discord",
|
||||||
|
"admin.config.oauth.discord-limited-guild.description": "Περιορισμός σύνδεσης σε χρήστες σε ένα συγκεκριμένο διακομιστή. Αφήστε κενό για να απενεργοποιήσετε.",
|
||||||
|
"admin.config.oauth.discord-client-id": "Αναγνωριστικό Πελάτη Discord",
|
||||||
|
"admin.config.oauth.discord-client-id.description": "Αναγνωριστικό πελάτη της εφαρμογής Discord OAuth",
|
||||||
|
"admin.config.oauth.discord-client-secret": "Μυστικό πελάτη Discord",
|
||||||
|
"admin.config.oauth.discord-client-secret.description": "Μυστικό πελάτη της εφαρμογής Discord OAuth",
|
||||||
|
"admin.config.oauth.oidc-enabled": "Σύνδεση OpenID",
|
||||||
|
"admin.config.oauth.oidc-enabled.description": "Αν είναι ενεργοποιημένη η σύνδεση OpenID",
|
||||||
|
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
||||||
|
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
|
||||||
|
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
||||||
|
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Αφήστε κενό αν δε γνωρίζετε για αυτή τη ρύθμιση",
|
||||||
|
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
||||||
|
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
|
||||||
|
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
|
||||||
|
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
|
||||||
|
// 404
|
||||||
|
"404.description": "Ουπς. Αυτή η σελίδα δεν υπάρχει.",
|
||||||
|
"404.button.home": "Πήγαινέ με πίσω",
|
||||||
|
// error
|
||||||
|
"error.title": "Σφάλμα",
|
||||||
|
"error.description": "Ωχ!",
|
||||||
|
"error.button.back": "Πάμε πίσω",
|
||||||
|
"error.msg.default": "Κάτι πήγε στραβά.",
|
||||||
|
"error.msg.access_denied": "Ακυρώσατε τη διαδικασία ελέγχου ταυτότητας, παρακαλώ προσπαθήστε ξανά.",
|
||||||
|
"error.msg.expired_token": "Η διαδικασία ελέγχου ταυτότητας διήρκεσε πολύ, παρακαλώ προσπαθήστε ξανά.",
|
||||||
|
"error.msg.invalid_token": "Εσωτερικό σφάλμα",
|
||||||
|
"error.msg.no_user": "Ο χρήστης που συνδέεται με αυτόν τον λογαριασμό {0} δεν υπάρχει.",
|
||||||
|
"error.msg.no_email": "Δεν είναι δυνατή η λήψη διεύθυνσης ηλεκτρονικού ταχυδρομείου για αυτόν τον λογαριασμό {0}.",
|
||||||
|
"error.msg.already_linked": "Αυτός ο λογαριασμός {0} είναι ήδη συνδεδεμένος με άλλο λογαριασμό.",
|
||||||
|
"error.msg.not_linked": "Αυτός ο λογαριασμός {0} δεν έχει συνδεθεί με κανένα λογαριασμό ακόμα.",
|
||||||
|
"error.msg.unverified_account": "Αυτός ο λογαριασμός {0} δεν έχει επαληθευτεί, παρακαλώ προσπαθήστε ξανά μετά την επαλήθευση.",
|
||||||
|
"error.msg.discord_guild_permission_denied": "Δεν σας επιτρέπεται η σύνδεση.",
|
||||||
|
"error.msg.cannot_get_user_info": "Δεν είναι δυνατή η λήψη των πληροφοριών χρήστη από αυτόν τον λογαριασμό {0}.",
|
||||||
|
"error.param.provider_github": "GitHub",
|
||||||
|
"error.param.provider_google": "Google",
|
||||||
|
"error.param.provider_microsoft": "Microsoft",
|
||||||
|
"error.param.provider_discord": "Discord",
|
||||||
|
"error.param.provider_oidc": "Σύνδεση OpenID",
|
||||||
|
// Common translations
|
||||||
|
"common.button.save": "Αποθήκευση",
|
||||||
|
"common.button.create": "Δημιουργία",
|
||||||
|
"common.button.submit": "Υποβολή",
|
||||||
|
"common.button.delete": "Διαγραφή",
|
||||||
|
"common.button.cancel": "Ακύρωση",
|
||||||
|
"common.button.confirm": "Επιβεβαίωση",
|
||||||
|
"common.button.disable": "Απενεργοποίηση",
|
||||||
|
"common.button.share": "Διαμοιρασμός",
|
||||||
|
"common.button.generate": "Δημιουργία",
|
||||||
|
"common.button.done": "Ολοκληρώθηκε",
|
||||||
|
"common.text.link": "Σύνδεσμος",
|
||||||
|
"common.text.navigate-to-link": "Μεταβείτε στο σύνδεσμο",
|
||||||
|
"common.text.or": "ή",
|
||||||
|
"common.button.go-back": "Επιστροφή",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
|
"common.notify.copied": "Ο σύνδεσμος σας αντιγράφηκε στο πρόχειρο",
|
||||||
|
"common.success": "Επιτυχία",
|
||||||
|
"common.error": "Σφάλμα",
|
||||||
|
"common.error.unknown": "Προέκυψε άγνωστο σφάλμα",
|
||||||
|
"common.error.invalid-email": "Μη έγκυρη διεύθυνση e-mail",
|
||||||
|
"common.error.too-short": "Πρέπει να αποτελείται τουλάχιστον {length} χαρακτήρες",
|
||||||
|
"common.error.too-long": "Πρέπει να αποτελείται το πολύ από {length} χαρακτήρες",
|
||||||
|
"common.error.exact-length": "Πρέπει να αποτελείται ακριβώς από {length} χαρακτήρες",
|
||||||
|
"common.error.invalid-number": "Πρέπει να είναι αριθμός",
|
||||||
|
"common.error.field-required": "Αυτό το πεδίο είναι υποχρεωτικό"
|
||||||
|
};
|
||||||
@@ -74,7 +74,7 @@ export default {
|
|||||||
"resetPassword.title": "Forgot your password?",
|
"resetPassword.title": "Forgot your password?",
|
||||||
"resetPassword.description": "Enter your email to reset your password.",
|
"resetPassword.description": "Enter your email to reset your password.",
|
||||||
"resetPassword.notify.success":
|
"resetPassword.notify.success":
|
||||||
"An email has been sent with a link to reset your password.",
|
"A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "Back to sign in page",
|
"resetPassword.button.back": "Back to sign in page",
|
||||||
"resetPassword.text.resetPassword": "Reset password",
|
"resetPassword.text.resetPassword": "Reset password",
|
||||||
"resetPassword.text.enterNewPassword": "Enter your new password",
|
"resetPassword.text.enterNewPassword": "Enter your new password",
|
||||||
@@ -93,7 +93,8 @@ export default {
|
|||||||
"account.card.password.title": "Password",
|
"account.card.password.title": "Password",
|
||||||
"account.card.password.old": "Old password",
|
"account.card.password.old": "Old password",
|
||||||
"account.card.password.new": "New password",
|
"account.card.password.new": "New password",
|
||||||
"account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.",
|
"account.card.password.noPasswordSet":
|
||||||
|
"You don't have a password set. If you want to sign in with email and password you need to set a password.",
|
||||||
"account.notify.password.success": "Password changed successfully",
|
"account.notify.password.success": "Password changed successfully",
|
||||||
|
|
||||||
"account.card.oauth.title": "Social login",
|
"account.card.oauth.title": "Social login",
|
||||||
@@ -106,10 +107,10 @@ export default {
|
|||||||
"account.card.oauth.unlink": "Unlink",
|
"account.card.oauth.unlink": "Unlink",
|
||||||
"account.card.oauth.unlinked": "Unlinked",
|
"account.card.oauth.unlinked": "Unlinked",
|
||||||
"account.modal.unlink.title": "Unlink account",
|
"account.modal.unlink.title": "Unlink account",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
|
"account.modal.unlink.description":
|
||||||
|
"Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
|
||||||
"account.notify.oauth.unlinked.success": "Unlinked successfully",
|
"account.notify.oauth.unlinked.success": "Unlinked successfully",
|
||||||
|
|
||||||
|
|
||||||
"account.card.security.title": "Security",
|
"account.card.security.title": "Security",
|
||||||
"account.card.security.totp.enable.description":
|
"account.card.security.totp.enable.description":
|
||||||
"Enter your current password to start enabling TOTP",
|
"Enter your current password to start enabling TOTP",
|
||||||
@@ -288,7 +289,8 @@ export default {
|
|||||||
|
|
||||||
"upload.modal.expires.never": "never",
|
"upload.modal.expires.never": "never",
|
||||||
"upload.modal.expires.never-long": "Never Expires",
|
"upload.modal.expires.never-long": "Never Expires",
|
||||||
"upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.",
|
"upload.modal.expires.error.too-long":
|
||||||
|
"Expiration exceeds maximum expiration date of {max}.",
|
||||||
|
|
||||||
"upload.modal.link.label": "Link",
|
"upload.modal.link.label": "Link",
|
||||||
"upload.modal.expires.label": "Expiration",
|
"upload.modal.expires.label": "Expiration",
|
||||||
@@ -354,14 +356,15 @@ export default {
|
|||||||
|
|
||||||
"share.modal.file-preview.error.not-supported.title": "Preview not supported",
|
"share.modal.file-preview.error.not-supported.title": "Preview not supported",
|
||||||
"share.modal.file-preview.error.not-supported.description":
|
"share.modal.file-preview.error.not-supported.description":
|
||||||
"A preview for thise file type is unsupported. Please download the file to view it.",
|
"A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
|
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
|
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "Edit {shareId}",
|
||||||
"share.edit.append-upload": "Append file",
|
"share.edit.append-upload": "Append file",
|
||||||
"share.edit.notify.generic-error": "An error occurred while finishing your share.",
|
"share.edit.notify.generic-error":
|
||||||
|
"An error occurred while finishing your share.",
|
||||||
"share.edit.notify.save-success": "Share updated successfully",
|
"share.edit.notify.save-success": "Share updated successfully",
|
||||||
// END /share/[id]/edit
|
// END /share/[id]/edit
|
||||||
|
|
||||||
@@ -447,47 +450,68 @@ export default {
|
|||||||
"admin.config.smtp.button.test": "Send test email",
|
"admin.config.smtp.button.test": "Send test email",
|
||||||
|
|
||||||
"admin.config.oauth.allow-registration": "Allow registration",
|
"admin.config.oauth.allow-registration": "Allow registration",
|
||||||
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
|
"admin.config.oauth.allow-registration.description":
|
||||||
|
"Allow users to register via social login",
|
||||||
"admin.config.oauth.ignore-totp": "Ignore TOTP",
|
"admin.config.oauth.ignore-totp": "Ignore TOTP",
|
||||||
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
|
"admin.config.oauth.ignore-totp.description":
|
||||||
|
"Whether to ignore TOTP when user using social login",
|
||||||
"admin.config.oauth.github-enabled": "GitHub",
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
|
"admin.config.oauth.github-enabled.description":
|
||||||
|
"Whether GitHub login is enabled",
|
||||||
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||||
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
|
"admin.config.oauth.github-client-id.description":
|
||||||
|
"Client ID of the GitHub OAuth app",
|
||||||
"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 of the GitHub OAuth app",
|
||||||
"admin.config.oauth.google-enabled": "Google",
|
"admin.config.oauth.google-enabled": "Google",
|
||||||
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
|
"admin.config.oauth.google-enabled.description":
|
||||||
|
"Whether Google login is enabled",
|
||||||
"admin.config.oauth.google-client-id": "Google Client ID",
|
"admin.config.oauth.google-client-id": "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 of the Google OAuth app",
|
||||||
"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 of the Google OAuth app",
|
||||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
|
"admin.config.oauth.microsoft-enabled.description":
|
||||||
|
"Whether Microsoft login is enabled",
|
||||||
"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 of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
|
||||||
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
"admin.config.oauth.microsoft-client-id": "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 of the Microsoft OAuth app",
|
||||||
"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 of the Microsoft OAuth app",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
|
"admin.config.oauth.discord-enabled.description":
|
||||||
|
"Whether Discord login is enabled",
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-guild.description":
|
||||||
|
"Limit signing in to users in a specific server. Leave it blank to disable.",
|
||||||
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
"admin.config.oauth.discord-client-id": "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 of the Discord OAuth app",
|
||||||
"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 of the Discord OAuth app",
|
||||||
"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",
|
||||||
"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 of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-discovery-uri.description":
|
||||||
|
"Discovery URI of the OpenID Connect OAuth app",
|
||||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
"admin.config.oauth.oidc-username-claim": "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-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",
|
||||||
|
|
||||||
// 404
|
// 404
|
||||||
"404.description": "Oops this page doesn't exist.",
|
"404.description": "Oops this page doesn't exist.",
|
||||||
@@ -498,16 +522,22 @@ export default {
|
|||||||
"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": "Something went wrong.",
|
||||||
"error.msg.access_denied": "You canceled the authentication process, please try again.",
|
"error.msg.access_denied":
|
||||||
"error.msg.expired_token": "The authentication process took too long, please try again.",
|
"You canceled the authentication process, please try again.",
|
||||||
|
"error.msg.expired_token":
|
||||||
|
"The authentication process took too long, please try again.",
|
||||||
"error.msg.invalid_token": "Internal Error",
|
"error.msg.invalid_token": "Internal Error",
|
||||||
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
|
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
|
||||||
"error.msg.no_email": "Can't get email address from this {0} account.",
|
"error.msg.no_email": "Can't get email address from this {0} account.",
|
||||||
"error.msg.already_linked": "This {0} account is already linked to another account.",
|
"error.msg.already_linked":
|
||||||
|
"This {0} account is already linked to another account.",
|
||||||
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
||||||
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
|
"error.msg.unverified_account":
|
||||||
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
|
"This {0} account is unverified, please try again after verification.",
|
||||||
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
"error.msg.discord_guild_permission_denied":
|
||||||
|
"You are not allowed to sign in.",
|
||||||
|
"error.msg.cannot_get_user_info":
|
||||||
|
"Can not get your user info from this {0} account.",
|
||||||
"error.param.provider_github": "GitHub",
|
"error.param.provider_github": "GitHub",
|
||||||
"error.param.provider_google": "Google",
|
"error.param.provider_google": "Google",
|
||||||
"error.param.provider_microsoft": "Microsoft",
|
"error.param.provider_microsoft": "Microsoft",
|
||||||
@@ -526,8 +556,10 @@ export default {
|
|||||||
"common.button.generate": "Generate",
|
"common.button.generate": "Generate",
|
||||||
"common.button.done": "Done",
|
"common.button.done": "Done",
|
||||||
"common.text.link": "Link",
|
"common.text.link": "Link",
|
||||||
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
"common.text.or": "or",
|
"common.text.or": "or",
|
||||||
"common.button.go-back": "Go back",
|
"common.button.go-back": "Go back",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "Your link was copied to the clipboard",
|
"common.notify.copied": "Your link was copied to the clipboard",
|
||||||
"common.success": "Success",
|
"common.success": "Success",
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "¿Olvidaste tu contraseña?",
|
"resetPassword.title": "¿Olvidaste tu contraseña?",
|
||||||
"resetPassword.description": "Ingresa tu correo para restablecer tu contraseña.",
|
"resetPassword.description": "Ingresa tu correo para restablecer tu contraseña.",
|
||||||
"resetPassword.notify.success": "Se ha enviado un correo con el enlace para restablecer tu contraseña.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "Volver al inicio de sesión",
|
"resetPassword.button.back": "Volver al inicio de sesión",
|
||||||
"resetPassword.text.resetPassword": "Restablecer contraseña",
|
"resetPassword.text.resetPassword": "Restablecer contraseña",
|
||||||
"resetPassword.text.enterNewPassword": "Ingresa tu nueva contraseña",
|
"resetPassword.text.enterNewPassword": "Ingresa tu nueva contraseña",
|
||||||
@@ -352,14 +352,14 @@ export default {
|
|||||||
"admin.config.oauth.microsoft-client-secret": "Secreto del cliente de Microsoft",
|
"admin.config.oauth.microsoft-client-secret": "Secreto del cliente de Microsoft",
|
||||||
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
|
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
|
"admin.config.oauth.discord-enabled.description": "Si el inicio de sesión de Discord está habilitado",
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-guild.description": "Limitar el inicio de sesión a usuarios en un servidor específico. Déjelo en blanco para desactivarlo.",
|
||||||
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
"admin.config.oauth.discord-client-id": "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 of the Discord OAuth app",
|
||||||
"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 of the Discord OAuth app",
|
||||||
"admin.config.oauth.oidc-enabled": "OpenID Connect",
|
"admin.config.oauth.oidc-enabled": "Conexión OpenID",
|
||||||
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
|
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
|
||||||
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
||||||
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
|
||||||
@@ -386,12 +386,12 @@ export default {
|
|||||||
"error.msg.not_linked": "Esta cuenta {0} aún no ha sido vinculada a ninguna cuenta.",
|
"error.msg.not_linked": "Esta cuenta {0} aún no ha sido vinculada a ninguna cuenta.",
|
||||||
"error.msg.unverified_account": "Esta cuenta {0} no está verificada, por favor inténtalo de nuevo después de la verificación.",
|
"error.msg.unverified_account": "Esta cuenta {0} no está verificada, por favor inténtalo de nuevo después de la verificación.",
|
||||||
"error.msg.discord_guild_permission_denied": "No tienes permitido iniciar sesion.",
|
"error.msg.discord_guild_permission_denied": "No tienes permitido iniciar sesion.",
|
||||||
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
"error.msg.cannot_get_user_info": "No se puede obtener la información de usuario de la cuenta {0}.",
|
||||||
"error.param.provider_github": "GitHub",
|
"error.param.provider_github": "GitHub",
|
||||||
"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": "Conexión OpenID",
|
||||||
// Common translations
|
// Common translations
|
||||||
"common.button.save": "Guardar",
|
"common.button.save": "Guardar",
|
||||||
"common.button.create": "Crear",
|
"common.button.create": "Crear",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Generar",
|
"common.button.generate": "Generar",
|
||||||
"common.button.done": "Listo",
|
"common.button.done": "Listo",
|
||||||
"common.text.link": "Enlace",
|
"common.text.link": "Enlace",
|
||||||
|
"common.text.navigate-to-link": "Ir al enlace",
|
||||||
"common.text.or": "o",
|
"common.text.or": "o",
|
||||||
"common.button.go-back": "Volver",
|
"common.button.go-back": "Volver",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "Tu enlace se ha copiado al portapapeles",
|
"common.notify.copied": "Tu enlace se ha copiado al portapapeles",
|
||||||
"common.success": "Éxito",
|
"common.success": "Éxito",
|
||||||
"common.error": "Error",
|
"common.error": "Error",
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Unohditko salasanan?",
|
"resetPassword.title": "Unohditko salasanan?",
|
||||||
"resetPassword.description": "Kirjoita sähköpostiosoitteesi palauttaaksesi salasanasi.",
|
"resetPassword.description": "Kirjoita sähköpostiosoitteesi palauttaaksesi salasanasi.",
|
||||||
"resetPassword.notify.success": "Sähköpostiosoite on lähetetty linkillä, jolla voit nollata salasanasi.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "Takaisin kirjautumiseen",
|
"resetPassword.button.back": "Takaisin kirjautumiseen",
|
||||||
"resetPassword.text.resetPassword": "Nollaa salasana",
|
"resetPassword.text.resetPassword": "Nollaa salasana",
|
||||||
"resetPassword.text.enterNewPassword": "Anna uusi salasana",
|
"resetPassword.text.enterNewPassword": "Anna uusi salasana",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"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": "Esikatselua thise tiedostotyypille ei tueta. Ole hyvä ja lataa tiedosto nähdäksesi sen.",
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "Edit {shareId}",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Luo",
|
"common.button.generate": "Luo",
|
||||||
"common.button.done": "Valmis",
|
"common.button.done": "Valmis",
|
||||||
"common.text.link": "Linkki",
|
"common.text.link": "Linkki",
|
||||||
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
"common.text.or": "tai",
|
"common.text.or": "tai",
|
||||||
"common.button.go-back": "Takaisin",
|
"common.button.go-back": "Takaisin",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "Linkki kopioitiin leikepöydälle",
|
"common.notify.copied": "Linkki kopioitiin leikepöydälle",
|
||||||
"common.success": "Suoritettu",
|
"common.success": "Suoritettu",
|
||||||
"common.error": "Virhe",
|
"common.error": "Virhe",
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Mot de passe oublié ?",
|
"resetPassword.title": "Mot de passe oublié ?",
|
||||||
"resetPassword.description": "Saisissez votre courriel pour réinitialiser votre mot de passe.",
|
"resetPassword.description": "Saisissez votre courriel pour réinitialiser votre mot de passe.",
|
||||||
"resetPassword.notify.success": "Un courriel a été envoyé avec un lien pour réinitialiser votre mot de passe.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "Retour à la page de connexion",
|
"resetPassword.button.back": "Retour à la page de connexion",
|
||||||
"resetPassword.text.resetPassword": "Réinitialiser le mot de passe",
|
"resetPassword.text.resetPassword": "Réinitialiser le mot de passe",
|
||||||
"resetPassword.text.enterNewPassword": "Saisissez votre nouveau mot de passe",
|
"resetPassword.text.enterNewPassword": "Saisissez votre nouveau mot de passe",
|
||||||
@@ -201,7 +201,7 @@ export default {
|
|||||||
"upload.notify.count-failed": "{count} fichier(s) n’a(ont) pas pu être envoyé(s). Veuillez réessayer.",
|
"upload.notify.count-failed": "{count} fichier(s) n’a(ont) pas pu être envoyé(s). Veuillez réessayer.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Téléverser des fichiers",
|
"upload.dropzone.title": "Téléverser des fichiers",
|
||||||
"upload.dropzone.description": "Glissez-déposez des fichiers ici pour commencer votre partage. Ils ne peuvent avoir une taille supérieur à {maxSize} au total.",
|
"upload.dropzone.description": "Glissez-déposez des fichiers ici pour commencer votre partage. Ils ne peuvent avoir une taille supérieure à {maxSize} au total.",
|
||||||
"upload.dropzone.notify.file-too-big": "Vos fichiers dépassent la taille maximale de {maxSize}.",
|
"upload.dropzone.notify.file-too-big": "Vos fichiers dépassent la taille maximale de {maxSize}.",
|
||||||
// FileList.tsx
|
// FileList.tsx
|
||||||
"upload.filelist.name": "Nom",
|
"upload.filelist.name": "Nom",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"share.table.name": "Nom",
|
"share.table.name": "Nom",
|
||||||
"share.table.size": "Taille",
|
"share.table.size": "Taille",
|
||||||
"share.modal.file-preview.error.not-supported.title": "Aperçu non supporté",
|
"share.modal.file-preview.error.not-supported.title": "Aperçu non supporté",
|
||||||
"share.modal.file-preview.error.not-supported.description": "Un aperçu pour ce type de fichier n'est pas pris en charge. Veuillez télécharger le fichier pour le voir.",
|
"share.modal.file-preview.error.not-supported.description": "Un aperçu de ce type de fichier n'est pas pris en charge. Veuillez télécharger le fichier pour le visualiser.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Modifier {shareId}",
|
"share.edit.title": "Modifier {shareId}",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Générer",
|
"common.button.generate": "Générer",
|
||||||
"common.button.done": "Terminer",
|
"common.button.done": "Terminer",
|
||||||
"common.text.link": "Lien",
|
"common.text.link": "Lien",
|
||||||
|
"common.text.navigate-to-link": "Accéder au lien",
|
||||||
"common.text.or": "ou",
|
"common.text.or": "ou",
|
||||||
"common.button.go-back": "Précédent",
|
"common.button.go-back": "Précédent",
|
||||||
|
"common.button.go-home": "Accueil",
|
||||||
"common.notify.copied": "Votre lien a été copié dans le presse-papiers",
|
"common.notify.copied": "Votre lien a été copié dans le presse-papiers",
|
||||||
"common.success": "Opération réussie",
|
"common.success": "Opération réussie",
|
||||||
"common.error": "Erreur",
|
"common.error": "Erreur",
|
||||||
|
|||||||
@@ -1,542 +1,421 @@
|
|||||||
export default {
|
export default {
|
||||||
// Navbar
|
// Navbar
|
||||||
"navbar.upload": "Upload",
|
"navbar.upload": "Carica",
|
||||||
"navbar.signin": "Sign in",
|
"navbar.signin": "Registrati",
|
||||||
"navbar.home": "Home",
|
"navbar.home": "Home",
|
||||||
"navbar.signup": "Sign Up",
|
"navbar.signup": "Accedi",
|
||||||
|
"navbar.links.shares": "Le mie condivisioni",
|
||||||
"navbar.links.shares": "My shares",
|
"navbar.links.reverse": "Condivisioni Inverse",
|
||||||
"navbar.links.reverse": "Reverse shares",
|
"navbar.avatar.account": "Il mio account",
|
||||||
|
"navbar.avatar.admin": "Amministrazione",
|
||||||
"navbar.avatar.account": "My account",
|
"navbar.avatar.signout": "Disconetti",
|
||||||
"navbar.avatar.admin": "Administration",
|
|
||||||
"navbar.avatar.signout": "Sign out",
|
|
||||||
// END navbar
|
// END navbar
|
||||||
|
|
||||||
// /
|
// /
|
||||||
"home.title": "A <h>self-hosted</h> file sharing platform.",
|
"home.title": "Una piattaforma di condivisione di file <h>autohosted</h>.",
|
||||||
|
"home.description": "Vuoi davvero dare i tuoi file personali in mano a terzi come WeTransfer?",
|
||||||
"home.description":
|
"home.bullet.a.name": "Self-hosted",
|
||||||
"Do you really want to give your personal files in the hand of third parties like WeTransfer?",
|
"home.bullet.a.description": "Ospita Pingvin Condividi sulla tua macchina.",
|
||||||
"home.bullet.a.name": "Self-Hosted",
|
|
||||||
"home.bullet.a.description": "Host Pingvin Share on your own machine.",
|
|
||||||
"home.bullet.b.name": "Privacy",
|
"home.bullet.b.name": "Privacy",
|
||||||
"home.bullet.b.description":
|
"home.bullet.b.description": "I tuoi file sono i tuoi file e non dovrebbero mai entrare nelle mani di terzi.",
|
||||||
"Your files are your files and should never get into the hands of third parties.",
|
"home.bullet.c.name": "Nessun fastidioso limite alle dimensioni dei files",
|
||||||
"home.bullet.c.name": "No annoying file size limit",
|
"home.bullet.c.description": "Carica file grandi quanto vuoi. Solo il tuo disco rigido sarà il tuo limite.",
|
||||||
"home.bullet.c.description":
|
"home.button.start": "Inizia adesso",
|
||||||
"Upload as big files as you want. Only your hard drive will be your limit.",
|
"home.button.source": "Codice sorgente",
|
||||||
|
|
||||||
"home.button.start": "Get started",
|
|
||||||
"home.button.source": "Source code",
|
|
||||||
// END /
|
// END /
|
||||||
|
|
||||||
// /auth/signin
|
// /auth/signin
|
||||||
"signin.title": "Welcome back",
|
"signin.title": "Bentornato",
|
||||||
"signin.description": "You don't have an account yet?",
|
"signin.description": "Non hai ancora un account?",
|
||||||
"signin.button.signup": "Sign up",
|
"signin.button.signup": "Registrazione",
|
||||||
"signin.input.email-or-username": "Email or username",
|
"signin.input.email-or-username": "Email o nome utente",
|
||||||
"signin.input.email-or-username.placeholder": "Your email or username",
|
"signin.input.email-or-username.placeholder": "La tua email o nome utente",
|
||||||
"signin.input.password": "Password",
|
"signin.input.password": "Password",
|
||||||
"signin.input.password.placeholder": "Your password",
|
"signin.input.password.placeholder": "Password",
|
||||||
"signin.button.submit": "Sign in",
|
"signin.button.submit": "Accedi",
|
||||||
"signIn.notify.totp-required.title": "Two-factor authentication required",
|
"signIn.notify.totp-required.title": "Autenticazione a due fattori richiesta",
|
||||||
"signIn.notify.totp-required.description":
|
"signIn.notify.totp-required.description": "Inserisci il tuo codice di autenticazione a due fattori",
|
||||||
"Please enter your two-factor authentication code",
|
"signIn.oauth.or": "OPPURE",
|
||||||
"signIn.oauth.or": "OR",
|
|
||||||
"signIn.oauth.github": "GitHub",
|
"signIn.oauth.github": "GitHub",
|
||||||
"signIn.oauth.google": "Google",
|
"signIn.oauth.google": "Google",
|
||||||
"signIn.oauth.microsoft": "Microsoft",
|
"signIn.oauth.microsoft": "Microsoft",
|
||||||
"signIn.oauth.discord": "Discord",
|
"signIn.oauth.discord": "Discord",
|
||||||
"signIn.oauth.oidc": "OpenID",
|
"signIn.oauth.oidc": "OpenID",
|
||||||
|
|
||||||
// END /auth/signin
|
// END /auth/signin
|
||||||
|
|
||||||
// /auth/signup
|
// /auth/signup
|
||||||
"signup.title": "Create an account",
|
"signup.title": "Crea un account",
|
||||||
"signup.description": "Already have an account?",
|
"signup.description": "Hai già un account?",
|
||||||
"signup.button.signin": "Sign in",
|
"signup.button.signin": "Accedi",
|
||||||
"signup.input.username": "Username",
|
"signup.input.username": "Nome utente",
|
||||||
"signup.input.username.placeholder": "Your username",
|
"signup.input.username.placeholder": "Il tuo nome utente",
|
||||||
"signup.input.email": "Email",
|
"signup.input.email": "Email",
|
||||||
"signup.input.email.placeholder": "Your email",
|
"signup.input.email.placeholder": "La tua email",
|
||||||
"signup.button.submit": "Let's get started",
|
"signup.button.submit": "Iniziamo",
|
||||||
|
|
||||||
// END /auth/signup
|
// END /auth/signup
|
||||||
|
|
||||||
// /auth/totp
|
// /auth/totp
|
||||||
"totp.title": "TOTP Authentication",
|
"totp.title": "Autenticazione TOTP",
|
||||||
"totp.button.signIn": "Sign in",
|
"totp.button.signIn": "Accedi",
|
||||||
|
|
||||||
// END /auth/totp
|
// END /auth/totp
|
||||||
|
|
||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Forgot your password?",
|
"resetPassword.title": "Hai dimenticato la password?",
|
||||||
"resetPassword.description": "Enter your email to reset your password.",
|
"resetPassword.description": "Inserisci la tua email per reimpostare la password.",
|
||||||
"resetPassword.notify.success":
|
"resetPassword.notify.success": "Un messaggio con un link per reimpostare la password è stato inviato se l'e-mail esiste.",
|
||||||
"An email has been sent with a link to reset your password.",
|
"resetPassword.button.back": "Torna alla pagina di login",
|
||||||
"resetPassword.button.back": "Back to sign in page",
|
"resetPassword.text.resetPassword": "Reimposta password",
|
||||||
"resetPassword.text.resetPassword": "Reset password",
|
"resetPassword.text.enterNewPassword": "Inserisci la tua nuova password",
|
||||||
"resetPassword.text.enterNewPassword": "Enter your new password",
|
"resetPassword.input.password": "Nuova password",
|
||||||
"resetPassword.input.password": "New password",
|
"resetPassword.notify.passwordReset": "La password è stata reimpostata correttamente.",
|
||||||
"resetPassword.notify.passwordReset":
|
|
||||||
"Your password has been reset successfully.",
|
|
||||||
|
|
||||||
// /account
|
// /account
|
||||||
"account.title": "My account",
|
"account.title": "Il mio account",
|
||||||
|
"account.card.info.title": "Informazioni sull'account",
|
||||||
"account.card.info.title": "Account info",
|
"account.card.info.username": "Nome utente",
|
||||||
"account.card.info.username": "Username",
|
|
||||||
"account.card.info.email": "Email",
|
"account.card.info.email": "Email",
|
||||||
"account.notify.info.success": "Account updated successfully",
|
"account.notify.info.success": "Account aggiornato correttamente",
|
||||||
|
|
||||||
"account.card.password.title": "Password",
|
"account.card.password.title": "Password",
|
||||||
"account.card.password.old": "Old password",
|
"account.card.password.old": "Vecchia password",
|
||||||
"account.card.password.new": "New password",
|
"account.card.password.new": "Nuova password",
|
||||||
"account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.",
|
"account.card.password.noPasswordSet": "Non hai una password impostata. Se vuoi accedere con email e password devi impostare una password.",
|
||||||
"account.notify.password.success": "Password changed successfully",
|
"account.notify.password.success": "Password cambiata con successo",
|
||||||
|
"account.card.oauth.title": "Effettua il login con i Social",
|
||||||
"account.card.oauth.title": "Social login",
|
|
||||||
"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",
|
||||||
"account.card.oauth.discord": "Discord",
|
"account.card.oauth.discord": "Discord",
|
||||||
"account.card.oauth.oidc": "OpenID",
|
"account.card.oauth.oidc": "OpenID",
|
||||||
"account.card.oauth.link": "Link",
|
"account.card.oauth.link": "Collegamento",
|
||||||
"account.card.oauth.unlink": "Unlink",
|
"account.card.oauth.unlink": "Scollega",
|
||||||
"account.card.oauth.unlinked": "Unlinked",
|
"account.card.oauth.unlinked": "Scollegato",
|
||||||
"account.modal.unlink.title": "Unlink account",
|
"account.modal.unlink.title": "Scollega account",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
|
"account.modal.unlink.description": "Scollegare i tuoi account social potrebbe causare la perdita del tuo account se non ricordi il tuo nome utente e la password.",
|
||||||
"account.notify.oauth.unlinked.success": "Unlinked successfully",
|
"account.notify.oauth.unlinked.success": "Disconnessione Riuscita",
|
||||||
|
"account.card.security.title": "Sicurezza",
|
||||||
|
"account.card.security.totp.enable.description": "Inserisci la tua password attuale per iniziare ad abilitare TOTP",
|
||||||
"account.card.security.title": "Security",
|
"account.card.security.totp.disable.description": "Inserisci la tua password attuale per iniziare ad abilitare TOTP",
|
||||||
"account.card.security.totp.enable.description":
|
"account.card.security.totp.button.start": "Iniziare",
|
||||||
"Enter your current password to start enabling TOTP",
|
"account.modal.totp.title": "Abilita TOTP",
|
||||||
"account.card.security.totp.disable.description":
|
"account.modal.totp.step1": "Passo 1: Aggiungi il tuo autenticatore",
|
||||||
"Enter your current password to disable TOTP",
|
"account.modal.totp.step2": "Passo 2: Convalida il tuo codice",
|
||||||
"account.card.security.totp.button.start": "Start",
|
"account.modal.totp.enterManually": "Inserisci manualmente",
|
||||||
"account.modal.totp.title": "Enable TOTP",
|
"account.modal.totp.code": "Codice",
|
||||||
"account.modal.totp.step1": "Step 1: Add your authenticator",
|
"account.modal.totp.clickToCopy": "Clicca per copiare",
|
||||||
"account.modal.totp.step2": "Step 2: Validate your code",
|
"account.modal.totp.verify": "Verifica",
|
||||||
"account.modal.totp.enterManually": "Enter manually",
|
"account.notify.totp.disable": "TOTP disabilitato con successo",
|
||||||
"account.modal.totp.code": "Code",
|
"account.notify.totp.enable": "TOTP abilitato con successo",
|
||||||
"account.modal.totp.clickToCopy": "Click to copy",
|
"account.card.language.title": "Lingua",
|
||||||
"account.modal.totp.verify": "Verify",
|
"account.card.language.description": "Il progetto è tradotto dalla community. Alcune lingue potrebbero essere incomplete.",
|
||||||
"account.notify.totp.disable": "TOTP disabled successfully",
|
"account.card.color.title": "Schema di colori",
|
||||||
"account.notify.totp.enable": "TOTP enabled successfully",
|
|
||||||
|
|
||||||
"account.card.language.title": "Language",
|
|
||||||
"account.card.language.description":
|
|
||||||
"The project is translated by the community. Some languages might be incomplete.",
|
|
||||||
"account.card.color.title": "Color scheme",
|
|
||||||
|
|
||||||
// ThemeSwitcher.tsx
|
// ThemeSwitcher.tsx
|
||||||
"account.theme.dark": "Dark",
|
"account.theme.dark": "Scuro",
|
||||||
"account.theme.light": "Light",
|
"account.theme.light": "Chiaro",
|
||||||
"account.theme.system": "System",
|
"account.theme.system": "Sistema",
|
||||||
|
"account.button.delete": "Elimina account",
|
||||||
"account.button.delete": "Delete Account",
|
"account.modal.delete.title": "Cancella Account",
|
||||||
"account.modal.delete.title": "Delete Account",
|
"account.modal.delete.description": "Vuoi davvero eliminare il tuo account, incluse tutte le tue condivisioni attive?",
|
||||||
"account.modal.delete.description":
|
|
||||||
"Do you really want to delete your account including all your active shares?",
|
|
||||||
// END /account
|
// END /account
|
||||||
|
|
||||||
// /account/shares
|
// /account/shares
|
||||||
"account.shares.title": "My shares",
|
"account.shares.title": "Le mie condivisioni",
|
||||||
"account.shares.title.empty": "It's empty here 👀",
|
"account.shares.title.empty": "È vuoto qui 👀",
|
||||||
"account.shares.description.empty": "You don't have any shares.",
|
"account.shares.description.empty": "Non hai nessuna condivisione.",
|
||||||
"account.shares.button.create": "Create one",
|
"account.shares.button.create": "Creane uno",
|
||||||
|
"account.shares.info.title": "Condividi le informazioni",
|
||||||
"account.shares.info.title": "Share informations",
|
|
||||||
"account.shares.table.id": "ID",
|
"account.shares.table.id": "ID",
|
||||||
"account.shares.table.name": "Name",
|
"account.shares.table.name": "Nome",
|
||||||
"account.shares.table.description": "Description",
|
"account.shares.table.description": "Descrizione",
|
||||||
"account.shares.table.visitors": "Visitors",
|
"account.shares.table.visitors": "Visitatori",
|
||||||
"account.shares.table.expiresAt": "Expires at",
|
"account.shares.table.expiresAt": "Scadenza",
|
||||||
"account.shares.table.createdAt": "Created at",
|
"account.shares.table.createdAt": "Creato il",
|
||||||
"account.shares.table.size": "Size",
|
"account.shares.table.size": "Dimensione",
|
||||||
|
"account.shares.modal.share-informations": "Condividi le informazioni",
|
||||||
"account.shares.modal.share-informations": "Share informations",
|
"account.shares.modal.share-link": "Condividi link",
|
||||||
"account.shares.modal.share-link": "Share link",
|
"account.shares.modal.delete.title": "Elimina condivisione {share}",
|
||||||
|
"account.shares.modal.delete.description": "Vuoi davvero cancellare questa condivisione?",
|
||||||
"account.shares.modal.delete.title": "Delete share {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": "Condivisione Inversa",
|
||||||
"account.reverseShares.description":
|
"account.reverseShares.description": "Una condivisione inversa consente di generare un URL univoco che consente agli utenti esterni di creare una condivisione.",
|
||||||
"A reverse share allows you to generate a unique URL that allows external users to create a share.",
|
"account.reverseShares.title.empty": "È vuoto qui 👀",
|
||||||
|
"account.reverseShares.description.empty": "Non hai nessuna condivisione inversa.",
|
||||||
"account.reverseShares.title.empty": "It's empty here 👀",
|
|
||||||
"account.reverseShares.description.empty":
|
|
||||||
"You don't have any reverse shares.",
|
|
||||||
|
|
||||||
// showCreateReverseShareModal.tsx
|
// showCreateReverseShareModal.tsx
|
||||||
"account.reverseShares.modal.title": "Create reverse share",
|
"account.reverseShares.modal.title": "Crea condivisione inversa",
|
||||||
"account.reverseShares.modal.expiration.label": "Expiration",
|
"account.reverseShares.modal.expiration.label": "Valido fino a",
|
||||||
"account.reverseShares.modal.expiration.minute-singular": "Minute",
|
"account.reverseShares.modal.expiration.minute-singular": "Minuto",
|
||||||
"account.reverseShares.modal.expiration.minute-plural": "Minutes",
|
"account.reverseShares.modal.expiration.minute-plural": "Minuti",
|
||||||
"account.reverseShares.modal.expiration.hour-singular": "Hour",
|
"account.reverseShares.modal.expiration.hour-singular": "Ora",
|
||||||
"account.reverseShares.modal.expiration.hour-plural": "Hours",
|
"account.reverseShares.modal.expiration.hour-plural": "Ore",
|
||||||
"account.reverseShares.modal.expiration.day-singular": "Day",
|
"account.reverseShares.modal.expiration.day-singular": "Giorno",
|
||||||
"account.reverseShares.modal.expiration.day-plural": "Days",
|
"account.reverseShares.modal.expiration.day-plural": "Giorni",
|
||||||
"account.reverseShares.modal.expiration.week-singular": "Week",
|
"account.reverseShares.modal.expiration.week-singular": "Settimana",
|
||||||
"account.reverseShares.modal.expiration.week-plural": "Weeks",
|
"account.reverseShares.modal.expiration.week-plural": "Settimane",
|
||||||
"account.reverseShares.modal.expiration.month-singular": "Month",
|
"account.reverseShares.modal.expiration.month-singular": "Mese",
|
||||||
"account.reverseShares.modal.expiration.month-plural": "Months",
|
"account.reverseShares.modal.expiration.month-plural": "Mesi",
|
||||||
"account.reverseShares.modal.expiration.year-singular": "Year",
|
"account.reverseShares.modal.expiration.year-singular": "Anno",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "Years",
|
"account.reverseShares.modal.expiration.year-plural": "Anni",
|
||||||
|
"account.reverseShares.modal.max-size.label": "Dimensione massima della condivisione",
|
||||||
"account.reverseShares.modal.max-size.label": "Max share size",
|
"account.reverseShares.modal.send-email": "Invia una notifica via email",
|
||||||
|
"account.reverseShares.modal.send-email.description": "Invia una notifica email quando viene creata una condivisione con questo link di condivisione inversa.",
|
||||||
"account.reverseShares.modal.send-email": "Send email notification",
|
"account.reverseShares.modal.max-use.label": "Utilizzo massimo",
|
||||||
"account.reverseShares.modal.send-email.description":
|
"account.reverseShares.modal.max-use.description": "La quantità massima di volte che questo URL può essere usato per creare una condivisione.",
|
||||||
"Send an email notification when a share is created with this reverse share link.",
|
"account.reverseShare.never-expires": "Questa condivisione inversa non scadrà mai.",
|
||||||
|
"account.reverseShare.expires-on": "Questa condivisione inversa scadrà il {expiration}.",
|
||||||
"account.reverseShares.modal.max-use.label": "Max uses",
|
"account.reverseShares.table.no-shares": "Nessuna condivisione è stata creata",
|
||||||
"account.reverseShares.modal.max-use.description":
|
"account.reverseShares.table.count.singular": "condivisione",
|
||||||
"The maximum amount of times this URL can be used to create a share.",
|
"account.reverseShares.table.count.plural": "condivisioni",
|
||||||
"account.reverseShare.never-expires": "This reverse share will never expire.",
|
"account.reverseShares.table.shares": "Condivisioni",
|
||||||
"account.reverseShare.expires-on":
|
"account.reverseShares.table.remaining": "Utenti rimanenti",
|
||||||
"This reverse share will expire on {expiration}.",
|
"account.reverseShares.table.max-size": "Dimensione massima della condivisione",
|
||||||
|
"account.reverseShares.table.expires": "Scade il",
|
||||||
"account.reverseShares.table.no-shares": "No shares created yet",
|
"account.reverseShares.modal.reverse-share-link": "Link di condivisione inversa",
|
||||||
"account.reverseShares.table.count.singular": "share",
|
"account.reverseShares.modal.delete.title": "Elimina condivisione inversa",
|
||||||
"account.reverseShares.table.count.plural": "shares",
|
"account.reverseShares.modal.delete.description": "Vuoi davvero eliminare questa condivisione inversa? Se lo fai, anche le azioni associate verranno eliminate.",
|
||||||
"account.reverseShares.table.shares": "Shares",
|
|
||||||
"account.reverseShares.table.remaining": "Remaining uses",
|
|
||||||
"account.reverseShares.table.max-size": "Max share size",
|
|
||||||
"account.reverseShares.table.expires": "Expires at",
|
|
||||||
|
|
||||||
"account.reverseShares.modal.reverse-share-link": "Reverse share link",
|
|
||||||
|
|
||||||
"account.reverseShares.modal.delete.title": "Delete reverse share",
|
|
||||||
"account.reverseShares.modal.delete.description":
|
|
||||||
"Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.",
|
|
||||||
|
|
||||||
// END /account/reverseShares
|
// END /account/reverseShares
|
||||||
|
|
||||||
// /admin
|
// /admin
|
||||||
"admin.title": "Administration",
|
"admin.title": "Amministrazione",
|
||||||
"admin.button.users": "User management",
|
"admin.button.users": "Gestione degli utenti",
|
||||||
"admin.button.config": "Configuration",
|
"admin.button.config": "Configurazione",
|
||||||
"admin.version": "Version",
|
"admin.version": "Versione",
|
||||||
// END /admin
|
// END /admin
|
||||||
|
|
||||||
// /admin/users
|
// /admin/users
|
||||||
"admin.users.title": "User management",
|
"admin.users.title": "Gestione degli utenti",
|
||||||
"admin.users.table.username": "Username",
|
"admin.users.table.username": "Nome utente",
|
||||||
"admin.users.table.email": "Email",
|
"admin.users.table.email": "Email",
|
||||||
"admin.users.table.admin": "Admin",
|
"admin.users.table.admin": "Admin",
|
||||||
|
"admin.users.edit.update.title": "Aggiorna utente {username}",
|
||||||
"admin.users.edit.update.title": "Update user {username}",
|
"admin.users.edit.update.admin-privileges": "Privilegi di amministrazione",
|
||||||
"admin.users.edit.update.admin-privileges": "Admin privileges",
|
"admin.users.edit.update.change-password.title": "Cambia la password",
|
||||||
"admin.users.edit.update.change-password.title": "Change password",
|
"admin.users.edit.update.change-password.field": "Nuova password",
|
||||||
"admin.users.edit.update.change-password.field": "New password",
|
"admin.users.edit.update.change-password.button": "Salva la nuova password",
|
||||||
"admin.users.edit.update.change-password.button": "Save new password",
|
"admin.users.edit.update.notify.password.success": "Password cambiata con successo",
|
||||||
"admin.users.edit.update.notify.password.success":
|
"admin.users.edit.delete.title": "Elimina l'utente: {username}",
|
||||||
"Password changed successfully",
|
"admin.users.edit.delete.description": "Vuoi davvero eliminare questo utente e tutte le sue condivisioni?",
|
||||||
|
|
||||||
"admin.users.edit.delete.title": "Delete user {username}",
|
|
||||||
"admin.users.edit.delete.description":
|
|
||||||
"Do you really want to delete this user and all his shares?",
|
|
||||||
|
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Create user",
|
"admin.users.modal.create.title": "Crea utente",
|
||||||
"admin.users.modal.create.username": "Username",
|
"admin.users.modal.create.username": "Nome utente",
|
||||||
"admin.users.modal.create.email": "Email",
|
"admin.users.modal.create.email": "Email",
|
||||||
"admin.users.modal.create.password": "Password",
|
"admin.users.modal.create.password": "Password",
|
||||||
"admin.users.modal.create.manual-password": "Set password manually",
|
"admin.users.modal.create.manual-password": "Imposta la password manualmente",
|
||||||
"admin.users.modal.create.manual-password.description":
|
"admin.users.modal.create.manual-password.description": "Se non selezionato, l'utente riceverà un'email con un link per impostare la propria password.",
|
||||||
"If not checked, the user will receive an email with a link to set their password.",
|
"admin.users.modal.create.admin": "Privilegi di amministrazione",
|
||||||
"admin.users.modal.create.admin": "Admin privileges",
|
"admin.users.modal.create.admin.description": "Se selezionato, l'utente sarà in grado di accedere al pannello amministratore.",
|
||||||
"admin.users.modal.create.admin.description":
|
|
||||||
"If checked, the user will be able to access the admin panel.",
|
|
||||||
|
|
||||||
// END /admin/users
|
// END /admin/users
|
||||||
|
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Upload",
|
"upload.title": "Upload",
|
||||||
|
"upload.notify.generic-error": "Si è verificato un errore durante il completamento della condivisione.",
|
||||||
"upload.notify.generic-error":
|
"upload.notify.count-failed": "Impossibile caricare {count} file. Riprovare.",
|
||||||
"An error occurred while finishing your share.",
|
|
||||||
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
|
||||||
|
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Upload files",
|
"upload.dropzone.title": "Upload files",
|
||||||
"upload.dropzone.description":
|
"upload.dropzone.description": "Trascina qui i file per iniziare la tua condivisione. Possiamo accettare solo i file che sono inferiori a {maxSize} in totale.",
|
||||||
"Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.",
|
"upload.dropzone.notify.file-too-big": "I tuoi file superano la dimensione massima di condivisione di {maxSize}.",
|
||||||
"upload.dropzone.notify.file-too-big":
|
|
||||||
"Your files exceed the maximum share size of {maxSize}.",
|
|
||||||
|
|
||||||
// FileList.tsx
|
// FileList.tsx
|
||||||
"upload.filelist.name": "Name",
|
"upload.filelist.name": "Nome",
|
||||||
"upload.filelist.size": "Size",
|
"upload.filelist.size": "Dimensione",
|
||||||
|
|
||||||
// showCreateUploadModal.tsx
|
// showCreateUploadModal.tsx
|
||||||
"upload.modal.title": "Create Share",
|
"upload.modal.title": "Crea Condivisione",
|
||||||
"upload.modal.link.error.invalid":
|
"upload.modal.link.error.invalid": "Può contenere solo lettere, numeri, underscore e trattini",
|
||||||
"Can only contain letters, numbers, underscores, and hyphens",
|
"upload.modal.link.error.taken": "Questo link è gia in uso",
|
||||||
"upload.modal.link.error.taken": "This link is already in use",
|
"upload.modal.not-signed-in": "Non sei loggato",
|
||||||
"upload.modal.not-signed-in": "You're not signed in",
|
"upload.modal.not-signed-in-description": "Non sarai in grado di eliminare la tua condivisione manualmente e visualizzare il numero dei visitatori.",
|
||||||
"upload.modal.not-signed-in-description":
|
"upload.modal.expires.never": "mai",
|
||||||
"You will be unable to delete your share manually and view the visitor count.",
|
"upload.modal.expires.never-long": "Non Scade Mai",
|
||||||
|
"upload.modal.expires.error.too-long": "La scadenza supera la data di scadenza massima di {max}.",
|
||||||
"upload.modal.expires.never": "never",
|
"upload.modal.link.label": "Collegamento",
|
||||||
"upload.modal.expires.never-long": "Never Expires",
|
"upload.modal.expires.label": "Valido fino a",
|
||||||
"upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.",
|
"upload.modal.expires.minute-singular": "Minuto",
|
||||||
|
"upload.modal.expires.minute-plural": "Minuti",
|
||||||
"upload.modal.link.label": "Link",
|
"upload.modal.expires.hour-singular": "Ora",
|
||||||
"upload.modal.expires.label": "Expiration",
|
"upload.modal.expires.hour-plural": "Ore",
|
||||||
"upload.modal.expires.minute-singular": "Minute",
|
"upload.modal.expires.day-singular": "Giorno",
|
||||||
"upload.modal.expires.minute-plural": "Minutes",
|
"upload.modal.expires.day-plural": "Giorni",
|
||||||
"upload.modal.expires.hour-singular": "Hour",
|
"upload.modal.expires.week-singular": "Settimana",
|
||||||
"upload.modal.expires.hour-plural": "Hours",
|
"upload.modal.expires.week-plural": "Settimane",
|
||||||
"upload.modal.expires.day-singular": "Day",
|
"upload.modal.expires.month-singular": "Mese",
|
||||||
"upload.modal.expires.day-plural": "Days",
|
"upload.modal.expires.month-plural": "Mesi",
|
||||||
"upload.modal.expires.week-singular": "Week",
|
"upload.modal.expires.year-singular": "Anno",
|
||||||
"upload.modal.expires.week-plural": "Weeks",
|
"upload.modal.expires.year-plural": "Anni",
|
||||||
"upload.modal.expires.month-singular": "Month",
|
"upload.modal.accordion.description.title": "Descrizione",
|
||||||
"upload.modal.expires.month-plural": "Months",
|
"upload.modal.accordion.description.placeholder": "Nota per i destinatari di questa condivisione",
|
||||||
"upload.modal.expires.year-singular": "Year",
|
"upload.modal.accordion.email.title": "Destinatari di posta elettronica",
|
||||||
"upload.modal.expires.year-plural": "Years",
|
"upload.modal.accordion.email.placeholder": "Inserisci le email dei destinatari",
|
||||||
|
"upload.modal.accordion.email.invalid-email": "Indirizzo email non valido",
|
||||||
"upload.modal.accordion.description.title": "Description",
|
"upload.modal.accordion.security.title": "Opzioni di sicurezza",
|
||||||
"upload.modal.accordion.description.placeholder":
|
"upload.modal.accordion.security.password.label": "Protezione con password",
|
||||||
"Note for the recipients of this share",
|
"upload.modal.accordion.security.password.placeholder": "Nessuna password",
|
||||||
|
"upload.modal.accordion.security.max-views.label": "Visualizzazioni massime",
|
||||||
"upload.modal.accordion.email.title": "Email recipients",
|
"upload.modal.accordion.security.max-views.placeholder": "Nessun limite",
|
||||||
"upload.modal.accordion.email.placeholder": "Enter email recipients",
|
|
||||||
"upload.modal.accordion.email.invalid-email": "Invalid email address",
|
|
||||||
|
|
||||||
"upload.modal.accordion.security.title": "Security options",
|
|
||||||
"upload.modal.accordion.security.password.label": "Password protection",
|
|
||||||
"upload.modal.accordion.security.password.placeholder": "No password",
|
|
||||||
"upload.modal.accordion.security.max-views.label": "Maximum views",
|
|
||||||
"upload.modal.accordion.security.max-views.placeholder": "No limit",
|
|
||||||
|
|
||||||
// showCompletedUploadModal.tsx
|
// showCompletedUploadModal.tsx
|
||||||
"upload.modal.completed.never-expires": "This share will never expire.",
|
"upload.modal.completed.never-expires": "Questa condivisione non scadrà mai.",
|
||||||
"upload.modal.completed.expires-on":
|
"upload.modal.completed.expires-on": "Questa condivisione scadrà il {expiration}.",
|
||||||
"This share will expire on {expiration}.",
|
"upload.modal.completed.share-ready": "Condivisione pronta",
|
||||||
"upload.modal.completed.share-ready": "Share ready",
|
|
||||||
|
|
||||||
// END /upload
|
// END /upload
|
||||||
|
|
||||||
// /share/[id]
|
// /share/[id]
|
||||||
"share.title": "Share {shareId}",
|
"share.title": "Condividi {shareId}",
|
||||||
"share.description": "Look what I've shared with you!",
|
"share.description": "Guarda cosa ho condiviso con te!",
|
||||||
"share.error.visitor-limit-exceeded.title": "Visitor limit exceeded",
|
"share.error.visitor-limit-exceeded.title": "Limite visitatori superato",
|
||||||
"share.error.visitor-limit-exceeded.description":
|
"share.error.visitor-limit-exceeded.description": "Il limite di visitatori di questa condivisione è stato superato.",
|
||||||
"The visitor limit from this share has been exceeded.",
|
"share.error.removed.title": "Condivisione rimossa",
|
||||||
"share.error.removed.title": "Share removed",
|
"share.error.not-found.title": "Condivisione non trovata",
|
||||||
"share.error.not-found.title": "Share not found",
|
"share.error.not-found.description": "La condivisione che stai cercando non esiste.",
|
||||||
"share.error.not-found.description":
|
"share.modal.password.title": "Password richiesta",
|
||||||
"The share you're looking for doesn't exist.",
|
"share.modal.password.description": "Per accedere a questa condivisione inserisci la password.",
|
||||||
|
|
||||||
"share.modal.password.title": "Password required",
|
|
||||||
"share.modal.password.description":
|
|
||||||
"To access this share please enter the password for the share.",
|
|
||||||
"share.modal.password": "Password",
|
"share.modal.password": "Password",
|
||||||
"share.modal.error.invalid-password": "Invalid password",
|
"share.modal.error.invalid-password": "Password non valida",
|
||||||
|
"share.button.download-all": "Scarica tutto",
|
||||||
"share.button.download-all": "Download all",
|
"share.notify.download-all-preparing": "La condivisione è in preparazione. Riprova tra qualche minuto.",
|
||||||
"share.notify.download-all-preparing":
|
"share.modal.file-link": "Link dei File",
|
||||||
"The share is preparing. Try again in a few minutes.",
|
"share.table.name": "Nome",
|
||||||
|
"share.table.size": "Dimensione",
|
||||||
"share.modal.file-link": "File link",
|
"share.modal.file-preview.error.not-supported.title": "Anteprima non supportata",
|
||||||
"share.table.name": "Name",
|
"share.modal.file-preview.error.not-supported.description": "Un'anteprima per questo tipo di file non è supportata. Per favore scarica il file per visualizzarlo.",
|
||||||
"share.table.size": "Size",
|
|
||||||
|
|
||||||
"share.modal.file-preview.error.not-supported.title": "Preview not supported",
|
|
||||||
"share.modal.file-preview.error.not-supported.description":
|
|
||||||
"A preview for thise file type is unsupported. Please download the file to view it.",
|
|
||||||
|
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
|
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "Modifica {shareId}",
|
||||||
"share.edit.append-upload": "Append file",
|
"share.edit.append-upload": "Aggiungi file",
|
||||||
"share.edit.notify.generic-error": "An error occurred while finishing your share.",
|
"share.edit.notify.generic-error": "Si è verificato un errore durante il completamento della condivisione.",
|
||||||
"share.edit.notify.save-success": "Share updated successfully",
|
"share.edit.notify.save-success": "Condivisione aggiornata correttamente",
|
||||||
// END /share/[id]/edit
|
// END /share/[id]/edit
|
||||||
|
|
||||||
// /admin/config
|
// /admin/config
|
||||||
"admin.config.title": "Configuration",
|
"admin.config.title": "Configurazione",
|
||||||
"admin.config.category.general": "General",
|
"admin.config.category.general": "Generale",
|
||||||
"admin.config.category.share": "Share",
|
"admin.config.category.share": "Condivisioni",
|
||||||
"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": "Effettua il login con i Social",
|
||||||
|
"admin.config.general.app-name": "Nome dell'App",
|
||||||
"admin.config.general.app-name": "App name",
|
"admin.config.general.app-name.description": "Nome dell' applicazione",
|
||||||
"admin.config.general.app-name.description": "Name of the application",
|
"admin.config.general.app-url": "URL dell'App",
|
||||||
"admin.config.general.app-url": "App URL",
|
"admin.config.general.app-url.description": "Su quale URL Pingvin Share è pubblicato",
|
||||||
"admin.config.general.app-url.description":
|
"admin.config.general.show-home-page": "Visualizza Home Page",
|
||||||
"On which URL Pingvin Share is available",
|
"admin.config.general.show-home-page.description": "Indica se mostrare la home page",
|
||||||
"admin.config.general.show-home-page": "Show home page",
|
|
||||||
"admin.config.general.show-home-page.description":
|
|
||||||
"Whether to show the home page",
|
|
||||||
"admin.config.general.logo": "Logo",
|
"admin.config.general.logo": "Logo",
|
||||||
"admin.config.general.logo.description":
|
"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.",
|
||||||
"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": "Scegli un'immagine",
|
||||||
"admin.config.general.logo.placeholder": "Pick image",
|
"admin.config.email.enable-share-email-recipients": "Abilita le email di notifica",
|
||||||
|
"admin.config.email.enable-share-email-recipients.description": "Indica se consentire la spedizione di email di notifica sulle share. Abilita questa opzione solo se hai abilitato SMTP.",
|
||||||
"admin.config.email.enable-share-email-recipients":
|
"admin.config.email.share-recipients-subject": "Oggetto dell'email di condivisione",
|
||||||
"Enable share email recipients",
|
"admin.config.email.share-recipients-subject.description": "Oggetto dell'email che viene inviata ai destinatari della condivisione.",
|
||||||
"admin.config.email.enable-share-email-recipients.description":
|
"admin.config.email.share-recipients-message": "Testo dell'email di condivisione",
|
||||||
"Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.",
|
"admin.config.email.share-recipients-message.description": "Messaggio che viene inviato ai destinatari della condivisione. Variabili disponibili:\n {creator} - Il nome utente del creatore della condivisione\n {shareUrl} - L'URL della condivisione\n {desc} - La descrizione della condivisione\n {expires} - La data di scadenza della condivisione\n Le variabili saranno sostituite con il valore effettivo.",
|
||||||
"admin.config.email.share-recipients-subject": "Share recipients subject",
|
"admin.config.email.reverse-share-subject": "Oggetto dell'email di condivisione inversa",
|
||||||
"admin.config.email.share-recipients-subject.description":
|
"admin.config.email.reverse-share-subject.description": "Oggetto dell'email che viene inviata quando qualcuno ha creato una condivisione con il tuo link di condivisione inversa.",
|
||||||
"Subject of the email which gets sent to the share recipients.",
|
"admin.config.email.reverse-share-message": "Testo dell'email di condivisione inversa",
|
||||||
"admin.config.email.share-recipients-message": "Share recipients message",
|
"admin.config.email.reverse-share-message.description": "Messaggio che viene inviato quando qualcuno ha creato una condivisione con il tuo link di condivisione inversa. {shareUrl} sarà sostituito con il nome del creatore e l'URL di condivisione.",
|
||||||
"admin.config.email.share-recipients-message.description":
|
"admin.config.email.reset-password-subject": "Oggetto della mail per il reset della password",
|
||||||
"Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.",
|
"admin.config.email.reset-password-subject.description": "Oggetto dell'email che viene inviata quando un utente richiede il ripristino della password.",
|
||||||
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
"admin.config.email.reset-password-message": "Testo dell'email per il reset della password",
|
||||||
"admin.config.email.reverse-share-subject.description":
|
"admin.config.email.reset-password-message.description": "Messaggio che viene inviato quando un utente richiede un reset della password. {url} verrà sostituito con l'URL di reset della password.",
|
||||||
"Subject of the email which gets sent when someone created a share with your reverse share link.",
|
"admin.config.email.invite-subject": "Oggetto dell'email di invito",
|
||||||
"admin.config.email.reverse-share-message": "Reverse share message",
|
"admin.config.email.invite-subject.description": "Oggetto dell'email che viene inviata quando un amministratore invita un utente.",
|
||||||
"admin.config.email.reverse-share-message.description":
|
"admin.config.email.invite-message": "Testo dell'email di invito",
|
||||||
"Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.",
|
"admin.config.email.invite-message.description": "Messaggio che viene inviato quando un amministratore invita un utente. {url} verrà sostituito con l'URL di invito e {password} con la password.",
|
||||||
"admin.config.email.reset-password-subject": "Reset password subject",
|
"admin.config.share.allow-registration": "Consenti la registrazione",
|
||||||
"admin.config.email.reset-password-subject.description":
|
"admin.config.share.allow-registration.description": "Indica se la registrazione è autorizzata",
|
||||||
"Subject of the email which gets sent when a user requests a password reset.",
|
"admin.config.share.allow-unauthenticated-shares": "Consenti condivisioni non autenticate",
|
||||||
"admin.config.email.reset-password-message": "Reset password message",
|
"admin.config.share.allow-unauthenticated-shares.description": "Indica se gli utenti non autenticati possono creare condivisioni",
|
||||||
"admin.config.email.reset-password-message.description":
|
"admin.config.share.max-expiration": "Scadenza massima",
|
||||||
"Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.",
|
"admin.config.share.max-expiration.description": "Scadenza massima di condivisione in ore. Impostare a 0 per consentire la scadenza illimitata.",
|
||||||
"admin.config.email.invite-subject": "Invite subject",
|
"admin.config.share.max-size": "Dim. massima",
|
||||||
"admin.config.email.invite-subject.description":
|
"admin.config.share.max-size.description": "Dimensione massima di condivisione in byte",
|
||||||
"Subject of the email which gets sent when an admin invites a user.",
|
"admin.config.share.zip-compression-level": "Livello di compressione Zip",
|
||||||
"admin.config.email.invite-message": "Invite message",
|
"admin.config.share.zip-compression-level.description": "Regola il livello per bilanciare la dimensione del file e la velocità di compressione. Valori validi da 0 a 9, con 0 senza compressione e 9 con compressione massima. ",
|
||||||
"admin.config.email.invite-message.description":
|
"admin.config.smtp.enabled": "Abilitato",
|
||||||
"Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL and {password} with the password.",
|
"admin.config.smtp.enabled.description": "Indica se SMTP è abilitato. Impostalo a VERO solo se hai inserito host, porta, email, utente e password del tuo server SMTP.",
|
||||||
"admin.config.share.allow-registration": "Allow registration",
|
|
||||||
"admin.config.share.allow-registration.description":
|
|
||||||
"Whether registration is allowed",
|
|
||||||
"admin.config.share.allow-unauthenticated-shares":
|
|
||||||
"Allow unauthenticated shares",
|
|
||||||
"admin.config.share.allow-unauthenticated-shares.description":
|
|
||||||
"Whether unauthenticated users can create shares",
|
|
||||||
"admin.config.share.max-expiration": "Max expiration",
|
|
||||||
"admin.config.share.max-expiration.description":
|
|
||||||
"Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
|
|
||||||
"admin.config.share.max-size": "Max size",
|
|
||||||
"admin.config.share.max-size.description": "Maximum share size in bytes",
|
|
||||||
"admin.config.share.zip-compression-level": "Zip compression level",
|
|
||||||
"admin.config.share.zip-compression-level.description":
|
|
||||||
"Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ",
|
|
||||||
|
|
||||||
"admin.config.smtp.enabled": "Enabled",
|
|
||||||
"admin.config.smtp.enabled.description":
|
|
||||||
"Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.",
|
|
||||||
"admin.config.smtp.host": "Host",
|
"admin.config.smtp.host": "Host",
|
||||||
"admin.config.smtp.host.description": "Host of the SMTP server",
|
"admin.config.smtp.host.description": "Host del server SMTP",
|
||||||
"admin.config.smtp.port": "Port",
|
"admin.config.smtp.port": "Porta",
|
||||||
"admin.config.smtp.port.description": "Port of the SMTP server",
|
"admin.config.smtp.port.description": "Porta del server SMTP",
|
||||||
"admin.config.smtp.email": "Email",
|
"admin.config.smtp.email": "Email",
|
||||||
"admin.config.smtp.email.description":
|
"admin.config.smtp.email.description": "Indirizzo da cui vengono inviate le email",
|
||||||
"Email address which the emails get sent from",
|
"admin.config.smtp.username": "Nome utente",
|
||||||
"admin.config.smtp.username": "Username",
|
"admin.config.smtp.username.description": "Nome utente del server SMTP",
|
||||||
"admin.config.smtp.username.description": "Username of the SMTP server",
|
|
||||||
"admin.config.smtp.password": "Password",
|
"admin.config.smtp.password": "Password",
|
||||||
"admin.config.smtp.password.description": "Password of the SMTP server",
|
"admin.config.smtp.password.description": "Password del server SMTP",
|
||||||
"admin.config.smtp.button.test": "Send test email",
|
"admin.config.smtp.button.test": "Invia e-mail di prova",
|
||||||
|
"admin.config.oauth.allow-registration": "Consenti la registrazione",
|
||||||
"admin.config.oauth.allow-registration": "Allow registration",
|
"admin.config.oauth.allow-registration.description": "Consenti agli utenti di registrarsi tramite social login",
|
||||||
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
|
"admin.config.oauth.ignore-totp": "Ignora TOTP",
|
||||||
"admin.config.oauth.ignore-totp": "Ignore TOTP",
|
"admin.config.oauth.ignore-totp.description": "Indica se ignorare TOTP quando l'utente utilizza il social login",
|
||||||
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
|
|
||||||
"admin.config.oauth.github-enabled": "GitHub",
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
|
"admin.config.oauth.github-enabled.description": "Se l'accesso tramite GitHub è abilitato",
|
||||||
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||||
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
|
"admin.config.oauth.github-client-id.description": "ID client dell'app GitHub OAuth",
|
||||||
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
"admin.config.oauth.github-client-secret": "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 dell'app GitHub OAuth",
|
||||||
"admin.config.oauth.google-enabled": "Google",
|
"admin.config.oauth.google-enabled": "Google",
|
||||||
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
|
"admin.config.oauth.google-enabled.description": "Se il login tramite Google è abilitato",
|
||||||
"admin.config.oauth.google-client-id": "Google Client ID",
|
"admin.config.oauth.google-client-id": "Id Client Goole",
|
||||||
"admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app",
|
"admin.config.oauth.google-client-id.description": "ID client dell'app Google OAuth",
|
||||||
"admin.config.oauth.google-client-secret": "Google Client secret",
|
"admin.config.oauth.google-client-secret": "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 dell'app Google OAuth",
|
||||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
|
"admin.config.oauth.microsoft-enabled.description": "Se il login tramite Microsoft è abilitato",
|
||||||
"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 dell'app Microsoft OAuth\ngenerico: Gli utenti con un account Microsoft personale e un account di lavoro o scuola da Microsoft Entra ID possono accedere all'applicazione. organizzazioni: Solo gli utenti con account di lavoro o scolastici di Microsoft Entra ID possono accedere all'applicazione.\nclienti: Solo gli utenti con un account Microsoft personale possono accedere all'applicazione.\nnome di dominio del tenant Microsoft Entra o l'ID del tenant in formato GUID: Solo gli utenti di uno specifico tenant Microsoft Entra (membri di directory con un account di lavoro o di scuola o ospiti di directory con un account Microsoft personale) possono accedere all'applicazione.",
|
||||||
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
||||||
"admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
|
"admin.config.oauth.microsoft-client-id.description": "ID client dell'app Microsoft OAuth",
|
||||||
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
|
"admin.config.oauth.microsoft-client-secret": "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 dell'app Microsoft OAuth",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
|
"admin.config.oauth.discord-enabled.description": "Se l'accesso tramite Discord è abilitato",
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
"admin.config.oauth.discord-limited-guild": "Limita a un particolare server ID",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-guild.description": "Limita l'accesso agli utenti in un server specifico. Lascialo vuoto per disabilitare.",
|
||||||
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
||||||
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
|
"admin.config.oauth.discord-client-id.description": "ID client dell'app Discord OAuth",
|
||||||
"admin.config.oauth.discord-client-secret": "Discord Client secret",
|
"admin.config.oauth.discord-client-secret": "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 dell'applicazione Discord OAuth",
|
||||||
"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": "Se il login tramite OpenID Connect è abilitato",
|
||||||
"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 of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-discovery-uri.description": "URI di scoperta dell'app OAuth di OpenID Connect",
|
||||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
"admin.config.oauth.oidc-username-claim": "Richiesta nome utente OpenID Connect",
|
||||||
"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": "Nome utente nel token OpenID Connect. Lascialo vuoto se non sai cos'è questa configurazione.",
|
||||||
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
"admin.config.oauth.oidc-client-id": "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 dell'app OAuth di OpenID Connect",
|
||||||
"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 dell'app OAuth OpenID Connect",
|
||||||
|
|
||||||
// 404
|
// 404
|
||||||
"404.description": "Oops this page doesn't exist.",
|
"404.description": "Ops, questa pagina non esiste.",
|
||||||
"404.button.home": "Bring me back home",
|
"404.button.home": "Riportami a casa",
|
||||||
|
|
||||||
// error
|
// error
|
||||||
"error.title": "Error",
|
"error.title": "Errore",
|
||||||
"error.description": "Oops!",
|
"error.description": "Oops!",
|
||||||
"error.button.back": "Go back",
|
"error.button.back": "Torna indietro",
|
||||||
"error.msg.default": "Something went wrong.",
|
"error.msg.default": "Si è verificato un errore.",
|
||||||
"error.msg.access_denied": "You canceled the authentication process, please try again.",
|
"error.msg.access_denied": "Hai annullato il processo di autenticazione, per favore riprova.",
|
||||||
"error.msg.expired_token": "The authentication process took too long, please try again.",
|
"error.msg.expired_token": "Il processo di autenticazione ha richiesto troppo tempo, per favore riprova.",
|
||||||
"error.msg.invalid_token": "Internal Error",
|
"error.msg.invalid_token": "Errore Interno",
|
||||||
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
|
"error.msg.no_user": "L'utente collegato a questo account {0} non esiste.",
|
||||||
"error.msg.no_email": "Can't get email address from this {0} account.",
|
"error.msg.no_email": "Impossibile ottenere l'indirizzo email da questo account {0}.",
|
||||||
"error.msg.already_linked": "This {0} account is already linked to another account.",
|
"error.msg.already_linked": "Questo account {0} è già collegato ad un altro account.",
|
||||||
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
"error.msg.not_linked": "Questo account {0} non è ancora collegato ad alcun account.",
|
||||||
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
|
"error.msg.unverified_account": "Questo account {0} non è verificato, per favore riprova dopo la verifica.",
|
||||||
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
|
"error.msg.discord_guild_permission_denied": "Non sei autorizzato ad accedere.",
|
||||||
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
"error.msg.cannot_get_user_info": "Non è possibile ottenere le informazioni utente da questo account {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",
|
||||||
"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": "Save",
|
"common.button.save": "Salva",
|
||||||
"common.button.create": "Create",
|
"common.button.create": "Crea",
|
||||||
"common.button.submit": "Submit",
|
"common.button.submit": "Invia",
|
||||||
"common.button.delete": "Delete",
|
"common.button.delete": "Cancella",
|
||||||
"common.button.cancel": "Cancel",
|
"common.button.cancel": "Annulla",
|
||||||
"common.button.confirm": "Confirm",
|
"common.button.confirm": "Conferma",
|
||||||
"common.button.disable": "Disable",
|
"common.button.disable": "Disabilita",
|
||||||
"common.button.share": "Share",
|
"common.button.share": "Condividi",
|
||||||
"common.button.generate": "Generate",
|
"common.button.generate": "Genera",
|
||||||
"common.button.done": "Done",
|
"common.button.done": "Fatto",
|
||||||
"common.text.link": "Link",
|
"common.text.link": "Collegamento",
|
||||||
"common.text.or": "or",
|
"common.text.navigate-to-link": "Vai al collegamento",
|
||||||
"common.button.go-back": "Go back",
|
"common.text.or": "o",
|
||||||
"common.notify.copied": "Your link was copied to the clipboard",
|
"common.button.go-back": "Torna indietro",
|
||||||
"common.success": "Success",
|
"common.button.go-home": "Vai alla Home Page",
|
||||||
|
"common.notify.copied": "Il tuo collegamento e' stato copiato negli appunti",
|
||||||
"common.error": "Error",
|
"common.success": "Successo",
|
||||||
"common.error.unknown": "An unknown error occurred",
|
"common.error": "Errore",
|
||||||
"common.error.invalid-email": "Invalid email address",
|
"common.error.unknown": "Si è verificato un errore sconosciuto",
|
||||||
"common.error.too-short": "Must be at least {length} characters",
|
"common.error.invalid-email": "Indirizzo email non valido",
|
||||||
"common.error.too-long": "Must be at most {length} characters",
|
"common.error.too-short": "Deve contenere almeno {length} caratteri",
|
||||||
"common.error.exact-length": "Must be exactly {length} characters",
|
"common.error.too-long": "Deve contenere al massimo {length} caratteri",
|
||||||
"common.error.invalid-number": "Must be a number",
|
"common.error.exact-length": "Deve essere esattamente {length} caratteri",
|
||||||
"common.error.field-required": "This field is required",
|
"common.error.invalid-number": "Deve essere un numero",
|
||||||
};
|
"common.error.field-required": "Questo campo è obbligatorio"
|
||||||
|
};
|
||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "パスワードを忘れてしまいましたか?",
|
"resetPassword.title": "パスワードを忘れてしまいましたか?",
|
||||||
"resetPassword.description": "登録しているメールアドレスを入力してください。",
|
"resetPassword.description": "登録しているメールアドレスを入力してください。",
|
||||||
"resetPassword.notify.success": "パスワードをリセットするためのリンクをメールで送信しました。",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "サインインページに戻る",
|
"resetPassword.button.back": "サインインページに戻る",
|
||||||
"resetPassword.text.resetPassword": "パスワードをリセット",
|
"resetPassword.text.resetPassword": "パスワードをリセット",
|
||||||
"resetPassword.text.enterNewPassword": "新規パスワードを入力",
|
"resetPassword.text.enterNewPassword": "新規パスワードを入力",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"share.table.name": "ファイル名",
|
"share.table.name": "ファイル名",
|
||||||
"share.table.size": "サイズ",
|
"share.table.size": "サイズ",
|
||||||
"share.modal.file-preview.error.not-supported.title": "プレビューに対応していません",
|
"share.modal.file-preview.error.not-supported.title": "プレビューに対応していません",
|
||||||
"share.modal.file-preview.error.not-supported.description": "これらのファイルのプレビューには対応していません。ファイルをダウンロードして、直接確認してください。",
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "編集 {shareId}",
|
"share.edit.title": "編集 {shareId}",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "生成",
|
"common.button.generate": "生成",
|
||||||
"common.button.done": "完了",
|
"common.button.done": "完了",
|
||||||
"common.text.link": "リンク",
|
"common.text.link": "リンク",
|
||||||
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
"common.text.or": "または",
|
"common.text.or": "または",
|
||||||
"common.button.go-back": "戻る",
|
"common.button.go-back": "戻る",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "リンクをクリップボードにコピーしました",
|
"common.notify.copied": "リンクをクリップボードにコピーしました",
|
||||||
"common.success": "成功",
|
"common.success": "成功",
|
||||||
"common.error": "エラー",
|
"common.error": "エラー",
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
export default {
|
export default {
|
||||||
// Navbar
|
// Navbar
|
||||||
"navbar.upload": "Verzenden",
|
"navbar.upload": "Delen",
|
||||||
"navbar.signin": "Aanmelden",
|
"navbar.signin": "Aanmelden",
|
||||||
"navbar.home": "Startpagina",
|
"navbar.home": "Startpagina",
|
||||||
"navbar.signup": "Registreren",
|
"navbar.signup": "Registreren",
|
||||||
"navbar.links.shares": "Mijn gedeelde bestanden",
|
"navbar.links.shares": "Mijn gedeelde bestanden",
|
||||||
"navbar.links.reverse": "Reverse shares",
|
"navbar.links.reverse": "Omgekeerd delen",
|
||||||
"navbar.avatar.account": "Mijn account",
|
"navbar.avatar.account": "Mijn account",
|
||||||
"navbar.avatar.admin": "Beheer",
|
"navbar.avatar.admin": "Beheer",
|
||||||
"navbar.avatar.signout": "Afmelden",
|
"navbar.avatar.signout": "Afmelden",
|
||||||
@@ -13,14 +13,14 @@ export default {
|
|||||||
// /
|
// /
|
||||||
"home.title": "Een <h>zelfgehost</h> platform voor het delen van bestanden.",
|
"home.title": "Een <h>zelfgehost</h> platform voor het delen van bestanden.",
|
||||||
"home.description": "Wil je echt je persoonlijke bestanden geven aan derden zoals WeTransfer?",
|
"home.description": "Wil je echt je persoonlijke bestanden geven aan derden zoals WeTransfer?",
|
||||||
"home.bullet.a.name": "Zelf-gehost",
|
"home.bullet.a.name": "Zelfgehost",
|
||||||
"home.bullet.a.description": "Host Pingvin Share op uw eigen machine.",
|
"home.bullet.a.description": "Host Pingvin Share op uw eigen machine.",
|
||||||
"home.bullet.b.name": "Privacy",
|
"home.bullet.b.name": "Privacy",
|
||||||
"home.bullet.b.description": "Uw bestanden zijn van u en mogen nooit in handen komen van derden.",
|
"home.bullet.b.description": "Uw bestanden zijn van u en mogen nooit in handen komen van derden.",
|
||||||
"home.bullet.c.name": "Geen vervelende limiet voor bestandsgrootte",
|
"home.bullet.c.name": "Geen vervelende limiet voor bestandsgrootte",
|
||||||
"home.bullet.c.description": "Upload zo grote bestanden als je wilt. Alleen je harde schijf is je limiet.",
|
"home.bullet.c.description": "Upload zo grote bestanden als je wilt. Alleen je harde schijf is je limiet.",
|
||||||
"home.button.start": "Aan de slag",
|
"home.button.start": "Aan de slag",
|
||||||
"home.button.source": "Bron code",
|
"home.button.source": "Broncode",
|
||||||
// END /
|
// END /
|
||||||
// /auth/signin
|
// /auth/signin
|
||||||
"signin.title": "Welkom terug",
|
"signin.title": "Welkom terug",
|
||||||
@@ -33,7 +33,7 @@ export default {
|
|||||||
"signin.button.submit": "Aanmelden",
|
"signin.button.submit": "Aanmelden",
|
||||||
"signIn.notify.totp-required.title": "Tweestapsverificatie vereist",
|
"signIn.notify.totp-required.title": "Tweestapsverificatie vereist",
|
||||||
"signIn.notify.totp-required.description": "Voer uw tweestapsverificatiecode in",
|
"signIn.notify.totp-required.description": "Voer uw tweestapsverificatiecode in",
|
||||||
"signIn.oauth.or": "OR",
|
"signIn.oauth.or": "OF",
|
||||||
"signIn.oauth.github": "GitHub",
|
"signIn.oauth.github": "GitHub",
|
||||||
"signIn.oauth.google": "Google",
|
"signIn.oauth.google": "Google",
|
||||||
"signIn.oauth.microsoft": "Microsoft",
|
"signIn.oauth.microsoft": "Microsoft",
|
||||||
@@ -51,13 +51,13 @@ export default {
|
|||||||
"signup.button.submit": "Laten we beginnen",
|
"signup.button.submit": "Laten we beginnen",
|
||||||
// END /auth/signup
|
// END /auth/signup
|
||||||
// /auth/totp
|
// /auth/totp
|
||||||
"totp.title": "TOTP Authentication",
|
"totp.title": "TOTP Authenticatie",
|
||||||
"totp.button.signIn": "Sign in",
|
"totp.button.signIn": "Aanmelden",
|
||||||
// END /auth/totp
|
// END /auth/totp
|
||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Wachtwoord vergeten?",
|
"resetPassword.title": "Wachtwoord vergeten?",
|
||||||
"resetPassword.description": "Voer uw e-mailadres in om uw wachtwoord opnieuw in te stellen.",
|
"resetPassword.description": "Voer uw e-mailadres in om uw wachtwoord opnieuw in te stellen.",
|
||||||
"resetPassword.notify.success": "Een e-mail is verzonden met een link om uw wachtwoord te resetten.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "Terug naar login pagina",
|
"resetPassword.button.back": "Terug naar login pagina",
|
||||||
"resetPassword.text.resetPassword": "Wachtwoord opnieuw instellen",
|
"resetPassword.text.resetPassword": "Wachtwoord opnieuw instellen",
|
||||||
"resetPassword.text.enterNewPassword": "Voer uw nieuwe wachtwoord in",
|
"resetPassword.text.enterNewPassword": "Voer uw nieuwe wachtwoord in",
|
||||||
@@ -65,27 +65,27 @@ export default {
|
|||||||
"resetPassword.notify.passwordReset": "Uw wachtwoord is met succes opnieuw ingesteld.",
|
"resetPassword.notify.passwordReset": "Uw wachtwoord is met succes opnieuw ingesteld.",
|
||||||
// /account
|
// /account
|
||||||
"account.title": "Mijn account",
|
"account.title": "Mijn account",
|
||||||
"account.card.info.title": "Account informatie",
|
"account.card.info.title": "Accountinformatie",
|
||||||
"account.card.info.username": "Gebruikersnaam",
|
"account.card.info.username": "Gebruikersnaam",
|
||||||
"account.card.info.email": "E-mailadres",
|
"account.card.info.email": "E-mailadres",
|
||||||
"account.notify.info.success": "Account succesvol bijgewerkt",
|
"account.notify.info.success": "Account succesvol bijgewerkt",
|
||||||
"account.card.password.title": "Wachtwoord",
|
"account.card.password.title": "Wachtwoord",
|
||||||
"account.card.password.old": "Oud wachtwoord",
|
"account.card.password.old": "Oude wachtwoord",
|
||||||
"account.card.password.new": "Nieuw wachtwoord",
|
"account.card.password.new": "Nieuw wachtwoord",
|
||||||
"account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.",
|
"account.card.password.noPasswordSet": "U hebt nog geen wachtwoord ingesteld. Stel deze eerst in als u via email wilt inloggen.",
|
||||||
"account.notify.password.success": "Wachtwoord succesvol gewijzigd",
|
"account.notify.password.success": "Wachtwoord succesvol gewijzigd!",
|
||||||
"account.card.oauth.title": "Social login",
|
"account.card.oauth.title": "Social login",
|
||||||
"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",
|
||||||
"account.card.oauth.discord": "Discord",
|
"account.card.oauth.discord": "Discord",
|
||||||
"account.card.oauth.oidc": "OpenID",
|
"account.card.oauth.oidc": "OpenID",
|
||||||
"account.card.oauth.link": "Link",
|
"account.card.oauth.link": "Koppelen",
|
||||||
"account.card.oauth.unlink": "Unlink",
|
"account.card.oauth.unlink": "Ontkoppel",
|
||||||
"account.card.oauth.unlinked": "Unlinked",
|
"account.card.oauth.unlinked": "Niet-gekoppeld",
|
||||||
"account.modal.unlink.title": "Unlink account",
|
"account.modal.unlink.title": "Ontkoppel account",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
|
"account.modal.unlink.description": "Het ontkoppelen van uw sociale accounts kan leiden tot verlies van uw account. Vergeet uw gebruikersnaam en wachtwoord niet.",
|
||||||
"account.notify.oauth.unlinked.success": "Unlinked successfully",
|
"account.notify.oauth.unlinked.success": "Ontkoppelen succesvol",
|
||||||
"account.card.security.title": "Beveiliging",
|
"account.card.security.title": "Beveiliging",
|
||||||
"account.card.security.totp.enable.description": "Voer uw huidige wachtwoord in om TOTP in te schakelen",
|
"account.card.security.totp.enable.description": "Voer uw huidige wachtwoord in om TOTP in te schakelen",
|
||||||
"account.card.security.totp.disable.description": "Voer uw huidige wachtwoord in om TOTP uit te schakelen",
|
"account.card.security.totp.disable.description": "Voer uw huidige wachtwoord in om TOTP uit te schakelen",
|
||||||
@@ -101,7 +101,7 @@ export default {
|
|||||||
"account.notify.totp.enable": "TOTP succesvol ingeschakeld",
|
"account.notify.totp.enable": "TOTP succesvol ingeschakeld",
|
||||||
"account.card.language.title": "Taal",
|
"account.card.language.title": "Taal",
|
||||||
"account.card.language.description": "Het project is vertaald door de community. Sommige talen zijn mogelijk onvolledig.",
|
"account.card.language.description": "Het project is vertaald door de community. Sommige talen zijn mogelijk onvolledig.",
|
||||||
"account.card.color.title": "Kleuren schema",
|
"account.card.color.title": "Kleurenschema",
|
||||||
// ThemeSwitcher.tsx
|
// ThemeSwitcher.tsx
|
||||||
"account.theme.dark": "Donker",
|
"account.theme.dark": "Donker",
|
||||||
"account.theme.light": "Licht",
|
"account.theme.light": "Licht",
|
||||||
@@ -125,16 +125,16 @@ export default {
|
|||||||
"account.shares.table.size": "Grootte",
|
"account.shares.table.size": "Grootte",
|
||||||
"account.shares.modal.share-informations": "Gegevens delen",
|
"account.shares.modal.share-informations": "Gegevens delen",
|
||||||
"account.shares.modal.share-link": "Deel link",
|
"account.shares.modal.share-link": "Deel link",
|
||||||
"account.shares.modal.delete.title": "Delete share {share}",
|
"account.shares.modal.delete.title": "Verwijder share {share}",
|
||||||
"account.shares.modal.delete.description": "Do you really want to delete this share?",
|
"account.shares.modal.delete.description": "Weet u zeker dat u deze share wilt verwijderen?",
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
"account.reverseShares.title": "Reverse shares",
|
"account.reverseShares.title": "Omgekeerde share",
|
||||||
"account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.",
|
"account.reverseShares.description": "Met een omgekeerde share kan een externe gebruiker via unieke genereerde URL bestanden uploaden.",
|
||||||
"account.reverseShares.title.empty": "Het is hier leeg 👀",
|
"account.reverseShares.title.empty": "Het is hier leeg 👀",
|
||||||
"account.reverseShares.description.empty": "You don't have any reverse shares.",
|
"account.reverseShares.description.empty": "U hebt nog geen omgekeerde shares. Maak er een aan.",
|
||||||
// showCreateReverseShareModal.tsx
|
// showCreateReverseShareModal.tsx
|
||||||
"account.reverseShares.modal.title": "Create reverse share",
|
"account.reverseShares.modal.title": "Creeër een omgekeerde share",
|
||||||
"account.reverseShares.modal.expiration.label": "Vervaldatum",
|
"account.reverseShares.modal.expiration.label": "Vervaldatum",
|
||||||
"account.reverseShares.modal.expiration.minute-singular": "Minuut",
|
"account.reverseShares.modal.expiration.minute-singular": "Minuut",
|
||||||
"account.reverseShares.modal.expiration.minute-plural": "Minuten",
|
"account.reverseShares.modal.expiration.minute-plural": "Minuten",
|
||||||
@@ -148,26 +148,26 @@ export default {
|
|||||||
"account.reverseShares.modal.expiration.month-plural": "Maanden",
|
"account.reverseShares.modal.expiration.month-plural": "Maanden",
|
||||||
"account.reverseShares.modal.expiration.year-singular": "Jaar",
|
"account.reverseShares.modal.expiration.year-singular": "Jaar",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "Jaren",
|
"account.reverseShares.modal.expiration.year-plural": "Jaren",
|
||||||
"account.reverseShares.modal.max-size.label": "Max share size",
|
"account.reverseShares.modal.max-size.label": "Maximale share-grootte",
|
||||||
"account.reverseShares.modal.send-email": "Stuur e-mail notificatie",
|
"account.reverseShares.modal.send-email": "Stuur e-mailnotificatie",
|
||||||
"account.reverseShares.modal.send-email.description": "Send an email notification when a share is created with this reverse share link.",
|
"account.reverseShares.modal.send-email.description": "Stuur een e-mailnotificatie wanneer er bestanden zijn gedeeld via deze omgekeerde share link.",
|
||||||
"account.reverseShares.modal.max-use.label": "Max uses",
|
"account.reverseShares.modal.max-use.label": "Maximaal gebruikte keren",
|
||||||
"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": "Maximale keren dat deze URL gebruikt kan worden om een share aan te maken.",
|
||||||
"account.reverseShare.never-expires": "This reverse share will never expire.",
|
"account.reverseShare.never-expires": "Deze omgekeerde share zal nooit verlopen.",
|
||||||
"account.reverseShare.expires-on": "This reverse share will expire on {expiration}.",
|
"account.reverseShare.expires-on": "Dit omgekeerde share verloopt op {expiration}.",
|
||||||
"account.reverseShares.table.no-shares": "No shares created yet",
|
"account.reverseShares.table.no-shares": "Nog geen omgekeerde share aangemaakt",
|
||||||
"account.reverseShares.table.count.singular": "share",
|
"account.reverseShares.table.count.singular": "deel",
|
||||||
"account.reverseShares.table.count.plural": "shares",
|
"account.reverseShares.table.count.plural": "delen",
|
||||||
"account.reverseShares.table.shares": "Shares",
|
"account.reverseShares.table.shares": "Delen",
|
||||||
"account.reverseShares.table.remaining": "Remaining uses",
|
"account.reverseShares.table.remaining": "Nog te gebruiken",
|
||||||
"account.reverseShares.table.max-size": "Max share size",
|
"account.reverseShares.table.max-size": "Maximale sharegrootte",
|
||||||
"account.reverseShares.table.expires": "Verloopt op",
|
"account.reverseShares.table.expires": "Verloopt op",
|
||||||
"account.reverseShares.modal.reverse-share-link": "Reverse share link",
|
"account.reverseShares.modal.reverse-share-link": "Omgekeerde share link",
|
||||||
"account.reverseShares.modal.delete.title": "Delete reverse share",
|
"account.reverseShares.modal.delete.title": "Omgekeerde share verwijderen",
|
||||||
"account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.",
|
"account.reverseShares.modal.delete.description": "Weet u zeker dat u deze omgekeerde share wilt verwijderen? Als u dit doet, worden de bijbehorende bestanden ook verwijderd.",
|
||||||
// END /account/reverseShares
|
// END /account/reverseShares
|
||||||
// /admin
|
// /admin
|
||||||
"admin.title": "Beheer",
|
"admin.title": "Instellingen",
|
||||||
"admin.button.users": "Gebruikers beheer",
|
"admin.button.users": "Gebruikers beheer",
|
||||||
"admin.button.config": "Configuratie",
|
"admin.button.config": "Configuratie",
|
||||||
"admin.version": "Versie",
|
"admin.version": "Versie",
|
||||||
@@ -178,13 +178,13 @@ export default {
|
|||||||
"admin.users.table.email": "E-mailadres",
|
"admin.users.table.email": "E-mailadres",
|
||||||
"admin.users.table.admin": "Beheerder",
|
"admin.users.table.admin": "Beheerder",
|
||||||
"admin.users.edit.update.title": "Gebruiker {username} bijwerken",
|
"admin.users.edit.update.title": "Gebruiker {username} bijwerken",
|
||||||
"admin.users.edit.update.admin-privileges": "Beheerder privileges",
|
"admin.users.edit.update.admin-privileges": "Beheerdersrechten",
|
||||||
"admin.users.edit.update.change-password.title": "Wachtwoord wijzigen",
|
"admin.users.edit.update.change-password.title": "Wachtwoord wijzigen",
|
||||||
"admin.users.edit.update.change-password.field": "Nieuw wachtwoord",
|
"admin.users.edit.update.change-password.field": "Nieuw wachtwoord",
|
||||||
"admin.users.edit.update.change-password.button": "Nieuw wachtwoord opslaan",
|
"admin.users.edit.update.change-password.button": "Nieuw wachtwoord opslaan",
|
||||||
"admin.users.edit.update.notify.password.success": "Wachtwoord succesvol gewijzigd",
|
"admin.users.edit.update.notify.password.success": "Wachtwoord succesvol gewijzigd",
|
||||||
"admin.users.edit.delete.title": "Gebruiker {username} verwijderen",
|
"admin.users.edit.delete.title": "Gebruiker {username} verwijderen",
|
||||||
"admin.users.edit.delete.description": "Do you really want to delete this user and all his shares?",
|
"admin.users.edit.delete.description": "Wilt u echt deze gebruiker en al zijn shares verwijderen?",
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Gebruiker aanmaken",
|
"admin.users.modal.create.title": "Gebruiker aanmaken",
|
||||||
"admin.users.modal.create.username": "Gebruikersnaam",
|
"admin.users.modal.create.username": "Gebruikersnaam",
|
||||||
@@ -192,29 +192,29 @@ export default {
|
|||||||
"admin.users.modal.create.password": "Wachtwoord",
|
"admin.users.modal.create.password": "Wachtwoord",
|
||||||
"admin.users.modal.create.manual-password": "Wachtwoord handmatig instellen",
|
"admin.users.modal.create.manual-password": "Wachtwoord handmatig instellen",
|
||||||
"admin.users.modal.create.manual-password.description": "Indien niet aangevinkt, ontvangt de gebruiker een e-mail met een link om zijn wachtwoord in te stellen.",
|
"admin.users.modal.create.manual-password.description": "Indien niet aangevinkt, ontvangt de gebruiker een e-mail met een link om zijn wachtwoord in te stellen.",
|
||||||
"admin.users.modal.create.admin": "Beheerder privileges",
|
"admin.users.modal.create.admin": "Beheerdersrechten",
|
||||||
"admin.users.modal.create.admin.description": "Indien aangevinkt, heeft de gebruiker toegang tot de beheeromgeving.",
|
"admin.users.modal.create.admin.description": "Indien aangevinkt, heeft de gebruiker toegang tot de beheeromgeving.",
|
||||||
// END /admin/users
|
// END /admin/users
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Uploaden",
|
"upload.title": "Uploaden",
|
||||||
"upload.notify.generic-error": "An error occurred while finishing your share.",
|
"upload.notify.generic-error": "Er is een fout opgetreden tijdens het voltooien van uw share.",
|
||||||
"upload.notify.count-failed": "{count} bestanden konden niet worden geüpload. Opnieuw proberen.",
|
"upload.notify.count-failed": "{count} bestanden konden niet worden geüpload. Probeer het nogmaals.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Bestanden uploaden",
|
"upload.dropzone.title": "Bestanden uploaden",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We can accept only files that are less than {maxSize} in total.",
|
"upload.dropzone.description": "Sleep uw bestanden hier om uw share te beginnen. We kunnen alleen bestanden accepteren die kleiner zijn dan {maxSize} in totaal.",
|
||||||
"upload.dropzone.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.",
|
"upload.dropzone.notify.file-too-big": "Uw bestanden overschrijden de maximale share-grootte van {maxSize}.",
|
||||||
// FileList.tsx
|
// FileList.tsx
|
||||||
"upload.filelist.name": "Naam",
|
"upload.filelist.name": "Naam",
|
||||||
"upload.filelist.size": "Grootte",
|
"upload.filelist.size": "Grootte",
|
||||||
// showCreateUploadModal.tsx
|
// showCreateUploadModal.tsx
|
||||||
"upload.modal.title": "Create Share",
|
"upload.modal.title": "Share aanmaken",
|
||||||
"upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens",
|
"upload.modal.link.error.invalid": "Het mag alleen letters, cijfers, onderstrepingstekens en koppeltekens bevatten",
|
||||||
"upload.modal.link.error.taken": "Deze link is al in gebruik",
|
"upload.modal.link.error.taken": "Deze link is al in gebruik",
|
||||||
"upload.modal.not-signed-in": "U bent niet aangemeld",
|
"upload.modal.not-signed-in": "U bent niet aangemeld",
|
||||||
"upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.",
|
"upload.modal.not-signed-in-description": "Het is niet mogelijk uw gedeelde bestanden handmatig te verwijderen en het aantal bezoekers te bekijken.",
|
||||||
"upload.modal.expires.never": "nooit",
|
"upload.modal.expires.never": "nooit",
|
||||||
"upload.modal.expires.never-long": "Verloopt nooit",
|
"upload.modal.expires.never-long": "Verloopt nooit",
|
||||||
"upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.",
|
"upload.modal.expires.error.too-long": "De maximale vervaldatum van {max} is overschreven.",
|
||||||
"upload.modal.link.label": "Koppeling",
|
"upload.modal.link.label": "Koppeling",
|
||||||
"upload.modal.expires.label": "Vervaldatum",
|
"upload.modal.expires.label": "Vervaldatum",
|
||||||
"upload.modal.expires.minute-singular": "Minuut",
|
"upload.modal.expires.minute-singular": "Minuut",
|
||||||
@@ -230,45 +230,45 @@ export default {
|
|||||||
"upload.modal.expires.year-singular": "Jaar",
|
"upload.modal.expires.year-singular": "Jaar",
|
||||||
"upload.modal.expires.year-plural": "Jaren",
|
"upload.modal.expires.year-plural": "Jaren",
|
||||||
"upload.modal.accordion.description.title": "Beschrijving",
|
"upload.modal.accordion.description.title": "Beschrijving",
|
||||||
"upload.modal.accordion.description.placeholder": "Note for the recipients of this share",
|
"upload.modal.accordion.description.placeholder": "Opmerking voor de ontvangers van deze share",
|
||||||
"upload.modal.accordion.email.title": "E-mail ontvangers",
|
"upload.modal.accordion.email.title": "E-mail van de ontvangers",
|
||||||
"upload.modal.accordion.email.placeholder": "Voer e-mail ontvangers in",
|
"upload.modal.accordion.email.placeholder": "Voer e-mail ontvangers in",
|
||||||
"upload.modal.accordion.email.invalid-email": "Ongeldig e-mailadres",
|
"upload.modal.accordion.email.invalid-email": "Ongeldig e-mailadres",
|
||||||
"upload.modal.accordion.security.title": "Beveiliging opties",
|
"upload.modal.accordion.security.title": "Beveiligingsopties",
|
||||||
"upload.modal.accordion.security.password.label": "Paswoord beveiling",
|
"upload.modal.accordion.security.password.label": "Wachtwoordbeveiling",
|
||||||
"upload.modal.accordion.security.password.placeholder": "Geen wachtwoord",
|
"upload.modal.accordion.security.password.placeholder": "Geen wachtwoord",
|
||||||
"upload.modal.accordion.security.max-views.label": "Maximum aantal weergaven",
|
"upload.modal.accordion.security.max-views.label": "Maximum aantal weergaven",
|
||||||
"upload.modal.accordion.security.max-views.placeholder": "Onbeperkt",
|
"upload.modal.accordion.security.max-views.placeholder": "Onbeperkt",
|
||||||
// showCompletedUploadModal.tsx
|
// showCompletedUploadModal.tsx
|
||||||
"upload.modal.completed.never-expires": "This share will never expire.",
|
"upload.modal.completed.never-expires": "Deze omgekeerde share zal nooit verlopen.",
|
||||||
"upload.modal.completed.expires-on": "This share will expire on {expiration}.",
|
"upload.modal.completed.expires-on": "Deze omgekeerde share verloopt op {expiration}.",
|
||||||
"upload.modal.completed.share-ready": "Share ready",
|
"upload.modal.completed.share-ready": "Share is gereed",
|
||||||
// END /upload
|
// END /upload
|
||||||
// /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.error.visitor-limit-exceeded.title": "Bezoekerslimiet overschreden",
|
"share.error.visitor-limit-exceeded.title": "Bezoekerslimiet overschreden",
|
||||||
"share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.",
|
"share.error.visitor-limit-exceeded.description": "De bezoekerslimiet van deze share is overschreden.",
|
||||||
"share.error.removed.title": "Share removed",
|
"share.error.removed.title": "Share was verwijderd",
|
||||||
"share.error.not-found.title": "Share not found",
|
"share.error.not-found.title": "Share niet gevonden",
|
||||||
"share.error.not-found.description": "The share you're looking for doesn't exist.",
|
"share.error.not-found.description": "De share die u zoekt kan niet gevonden worden.",
|
||||||
"share.modal.password.title": "Wachtwoord vereist",
|
"share.modal.password.title": "Wachtwoord vereist",
|
||||||
"share.modal.password.description": "To access this share please enter the password for the share.",
|
"share.modal.password.description": "Vul een wachtwoord in om toegang te krijgen tot deze share.",
|
||||||
"share.modal.password": "Wachtwoord",
|
"share.modal.password": "Wachtwoord",
|
||||||
"share.modal.error.invalid-password": "Ongeldig wachtwoord",
|
"share.modal.error.invalid-password": "Ongeldig wachtwoord",
|
||||||
"share.button.download-all": "Alles downloaden",
|
"share.button.download-all": "Alles downloaden",
|
||||||
"share.notify.download-all-preparing": "The share is preparing. Try again in a few minutes.",
|
"share.notify.download-all-preparing": "De share word gebundeld. Probeer het over een paar minuten opnieuw.",
|
||||||
"share.modal.file-link": "Bestand koppeling",
|
"share.modal.file-link": "Link naar bestand",
|
||||||
"share.table.name": "Naam",
|
"share.table.name": "Naam",
|
||||||
"share.table.size": "Grootte",
|
"share.table.size": "Grootte",
|
||||||
"share.modal.file-preview.error.not-supported.title": "Voorbeeld niet ondersteund",
|
"share.modal.file-preview.error.not-supported.title": "Voorbeeld niet ondersteund",
|
||||||
"share.modal.file-preview.error.not-supported.description": "Een voorbeeld voor dit bestandstype wordt niet ondersteund. Download het bestand om het te bekijken.",
|
"share.modal.file-preview.error.not-supported.description": "Een voorbeeld voor dit bestandstype wordt niet ondersteund. Download het bestand om het te bekijken.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "{shareId} bewerken",
|
||||||
"share.edit.append-upload": "Append file",
|
"share.edit.append-upload": "Bestand toevoegen",
|
||||||
"share.edit.notify.generic-error": "An error occurred while finishing your share.",
|
"share.edit.notify.generic-error": "Er is een fout opgetreden tijdens het voltooien van uw share.",
|
||||||
"share.edit.notify.save-success": "Share updated successfully",
|
"share.edit.notify.save-success": "Share is succesvol bijgewerkt",
|
||||||
// END /share/[id]/edit
|
// END /share/[id]/edit
|
||||||
// /admin/config
|
// /admin/config
|
||||||
"admin.config.title": "Configuratie",
|
"admin.config.title": "Configuratie",
|
||||||
@@ -276,42 +276,42 @@ export default {
|
|||||||
"admin.config.category.share": "Delen",
|
"admin.config.category.share": "Delen",
|
||||||
"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",
|
||||||
"admin.config.general.app-name": "App naam",
|
"admin.config.general.app-name": "App-naam",
|
||||||
"admin.config.general.app-name.description": "Naam van de applicatie",
|
"admin.config.general.app-name.description": "Naam van de applicatie",
|
||||||
"admin.config.general.app-url": "App URL",
|
"admin.config.general.app-url": "App-URL",
|
||||||
"admin.config.general.app-url.description": "On which URL Pingvin Share is available",
|
"admin.config.general.app-url.description": "De URL waar Pingvin Share bereikbaar is",
|
||||||
"admin.config.general.show-home-page": "Toon startpagina",
|
"admin.config.general.show-home-page": "Toon startpagina",
|
||||||
"admin.config.general.show-home-page.description": "Toon of verberg de home pagina",
|
"admin.config.general.show-home-page.description": "Toon of verberg de home pagina",
|
||||||
"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.email.enable-share-email-recipients": "Enable share email recipients",
|
"admin.config.email.enable-share-email-recipients": "Voer e-mail ontvangers in",
|
||||||
"admin.config.email.enable-share-email-recipients.description": "Whether to allow emails to share recipients. Only enable this if you have enabled SMTP.",
|
"admin.config.email.enable-share-email-recipients.description": "Sta e-mails toe om de ontvangers de deel link te versturen. Schakel dit alleen in als je SMTP hebt ingeschakeld.",
|
||||||
"admin.config.email.share-recipients-subject": "Share recipients subject",
|
"admin.config.email.share-recipients-subject": "Onderwerp van ontvangers' share",
|
||||||
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
|
"admin.config.email.share-recipients-subject.description": "Het onderwerp van de e-mail die wordt verzonden naar de share-ontvangers.",
|
||||||
"admin.config.email.share-recipients-message": "Share recipients message",
|
"admin.config.email.share-recipients-message": "Bericht voor ontvangers van de share",
|
||||||
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n The variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Bericht dat wordt verzonden naar de share ontvangers. Beschikbare variabelen:\n {creator} - De gebruikersnaam van de maker van de share\n {shareUrl} - De URL van de share\n {desc} - De beschrijving van de share\n {expires} - De vervaldatum van de share\n De variabelen worden vervangen door hun werkelijke waarde bij verzending.",
|
||||||
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
"admin.config.email.reverse-share-subject": "Omgekeerde share email onderwerp",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the email which gets sent when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Het onderwerp van de e-mail die wordt verzonden wanneer iemand een share heeft gemaakt met uw omgekeerde share link.",
|
||||||
"admin.config.email.reverse-share-message": "Reverse share message",
|
"admin.config.email.reverse-share-message": "Omgekeerde share-bericht",
|
||||||
"admin.config.email.reverse-share-message.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.",
|
"admin.config.email.reverse-share-message.description": "Het bericht dat wordt verzonden wanneer iemand een share heeft aangemaakt via de omgekeerde share-link. {shareUrl} zal worden vervangen door de naam van de maker en de URL van de share.",
|
||||||
"admin.config.email.reset-password-subject": "Reset wachtwoord onderwerp",
|
"admin.config.email.reset-password-subject": "E-mailonderwerp voor wachtwoordherstel",
|
||||||
"admin.config.email.reset-password-subject.description": "Onderwerp van de e-mail die wordt verzonden wanneer een gebruiker een wachtwoordreset aanvraagt.",
|
"admin.config.email.reset-password-subject.description": "Het onderwerp van de e-mail die wordt verzonden wanneer een gebruiker een wachtwoordherstel aanvraagt.",
|
||||||
"admin.config.email.reset-password-message": "Wachtwoord opnieuw instellen bericht",
|
"admin.config.email.reset-password-message": "Bericht voor wachtwoordherstel",
|
||||||
"admin.config.email.reset-password-message.description": "Bericht dat wordt verzonden wanneer een gebruiker een wachtwoord reset aanvraagt. {url} zal worden vervangen door de wachtwoord reset URL.",
|
"admin.config.email.reset-password-message.description": "Bericht dat wordt verzonden wanneer een gebruiker een wachtwoordherstel aanvraagt. {url} zal worden vervangen door de wachtwoordherstel-URL.",
|
||||||
"admin.config.email.invite-subject": "Onderwerp uitnodiging",
|
"admin.config.email.invite-subject": "Onderwerp voor uitnodiging",
|
||||||
"admin.config.email.invite-subject.description": "Onderwerp van de e-mail die wordt verzonden wanneer een beheerder een gebruiker uitnodigt.",
|
"admin.config.email.invite-subject.description": "Onderwerp van de e-mail die wordt verzonden wanneer een beheerder een gebruiker uitnodigt.",
|
||||||
"admin.config.email.invite-message": "Bericht uitnodiging",
|
"admin.config.email.invite-message": "Bericht voor uitnodiging",
|
||||||
"admin.config.email.invite-message.description": "Bericht dat wordt verzonden wanneer een beheerder een gebruiker uitnodigt. {url} zal worden vervangen door de uitnodigings-URL en {password} met het wachtwoord.",
|
"admin.config.email.invite-message.description": "Bericht dat wordt verzonden wanneer een beheerder een gebruiker uitnodigt. {url} zal worden vervangen door de uitnodigings-URL en {password} met het wachtwoord.",
|
||||||
"admin.config.share.allow-registration": "Sta registratie toe",
|
"admin.config.share.allow-registration": "Sta registratie toe",
|
||||||
"admin.config.share.allow-registration.description": "Of registratie is toegestaan",
|
"admin.config.share.allow-registration.description": "Of registratie is toegestaan",
|
||||||
"admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares",
|
"admin.config.share.allow-unauthenticated-shares": "Ongeverifieerde shares toestaan",
|
||||||
"admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares",
|
"admin.config.share.allow-unauthenticated-shares.description": "Sta niet-geverifieerde gebruikers toe shares te kunnen aanmaken",
|
||||||
"admin.config.share.max-expiration": "Max expiration",
|
"admin.config.share.max-expiration": "Max. vervaldatum",
|
||||||
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
|
"admin.config.share.max-expiration.description": "Maximale verval tijd van de share in uren. Stel in op 0 om onbeperkte vervaldatum toe te staan.",
|
||||||
"admin.config.share.max-size": "Max grootte",
|
"admin.config.share.max-size": "Max. grootte",
|
||||||
"admin.config.share.max-size.description": "Maximum share size in bytes",
|
"admin.config.share.max-size.description": "Maximale share grootte in bytes",
|
||||||
"admin.config.share.zip-compression-level": "Zip compressie niveau",
|
"admin.config.share.zip-compression-level": "Zip compressie niveau",
|
||||||
"admin.config.share.zip-compression-level.description": "Pas het niveau aan voor evenwicht tussen bestandsgrootte en compressie snelheid. Geldige waarden variëren van 0 tot 9, waarbij 0 geen compressie is en 9 de maximale compressie is. ",
|
"admin.config.share.zip-compression-level.description": "Pas het niveau aan voor evenwicht tussen bestandsgrootte en compressie snelheid. Geldige waarden variëren van 0 tot 9, waarbij 0 geen compressie is en 9 de maximale compressie is. ",
|
||||||
"admin.config.smtp.enabled": "Inschakelen",
|
"admin.config.smtp.enabled": "Inschakelen",
|
||||||
@@ -326,67 +326,67 @@ export default {
|
|||||||
"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",
|
||||||
"admin.config.smtp.password.description": "Wachtwoord van de SMTP-server",
|
"admin.config.smtp.password.description": "Wachtwoord van de SMTP-server",
|
||||||
"admin.config.smtp.button.test": "Test e-mail verzenden",
|
"admin.config.smtp.button.test": "Teste-mail verzenden",
|
||||||
"admin.config.oauth.allow-registration": "Allow registration",
|
"admin.config.oauth.allow-registration": "Sta registratie toe",
|
||||||
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
|
"admin.config.oauth.allow-registration.description": "Gebruikers toestaan zich te registreren via sociale login",
|
||||||
"admin.config.oauth.ignore-totp": "Ignore TOTP",
|
"admin.config.oauth.ignore-totp": "TOTP negeren",
|
||||||
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
|
"admin.config.oauth.ignore-totp.description": "TOTP negeren wanneer gebruiker sociale login gebruikt",
|
||||||
"admin.config.oauth.github-enabled": "GitHub",
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
|
"admin.config.oauth.github-enabled.description": "Ofdat GitHub login is ingeschakeld",
|
||||||
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||||
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
|
"admin.config.oauth.github-client-id.description": "Client-ID van de GitHub OAuth app",
|
||||||
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
||||||
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
|
"admin.config.oauth.github-client-secret.description": "Client secret van de GitHub OAuth app",
|
||||||
"admin.config.oauth.google-enabled": "Google",
|
"admin.config.oauth.google-enabled": "Google",
|
||||||
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
|
"admin.config.oauth.google-enabled.description": "Ofdat GitHub login is ingeschakeld",
|
||||||
"admin.config.oauth.google-client-id": "Google Client ID",
|
"admin.config.oauth.google-client-id": "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 van de Google OAuth app",
|
||||||
"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 van de Google OAuth app",
|
||||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
|
"admin.config.oauth.microsoft-enabled.description": "Ofdat Microsoft login is ingeschakeld",
|
||||||
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
||||||
"admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
|
"admin.config.oauth.microsoft-tenant.description": "Tenant ID van de Microsoft OAuth app\ncommon: Gebruikers met zowel een persoonlijk Microsoft-account als een werk- of schoolaccount van Microsoft Entra ID kunnen zich aanmelden bij de applicatie. organisaties: alleen gebruikers met werk of schoolaccounts van Microsoft Entra ID kunnen zich aanmelden bij de applicatie.\nconsumenten: Alleen gebruikers met een persoonlijk Microsoft-account kunnen zich aanmelden bij de applicatie.\ndomeinnaam van de Microsoft Entra tenant of de tenant ID in GUID formaat: alleen gebruikers van een specifieke Microsoft Entra tenant (directory leden met een werk- of schoolaccount of map gasten met een persoonlijk Microsoft-account) kunnen zich aanmelden bij de toepassing.",
|
||||||
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
"admin.config.oauth.microsoft-client-id": "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 van de Microsoft OAuth app",
|
||||||
"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 van de Microsoft OAuth app",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
|
"admin.config.oauth.discord-enabled.description": "Ofdat discord login is ingeschakeld",
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
"admin.config.oauth.discord-limited-guild": "Discord beperkte server ID",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-guild.description": "Beperk het inloggen tot gebruikers in een specifieke server. Laat leeg om uit te schakelen.",
|
||||||
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
"admin.config.oauth.discord-client-id": "Discord Client ID",
|
||||||
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
|
"admin.config.oauth.discord-client-id.description": "Client-ID van de discord OAuth app",
|
||||||
"admin.config.oauth.discord-client-secret": "Discord Client secret",
|
"admin.config.oauth.discord-client-secret": "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 van de discord OAuth app",
|
||||||
"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": "Ofdat OpenID Connect login is ingeschakeld",
|
||||||
"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 of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI van de OpenID Connect OAuth app",
|
||||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
"admin.config.oauth.oidc-username-claim": "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": "Gebruikersnaam claim in OpenID Connect-ID-token. Laat het leeg als u niet weet wat deze configuratie is.",
|
||||||
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
"admin.config.oauth.oidc-client-id": "Client-ID OpenID Connect",
|
||||||
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-client-id.description": "Client-ID van de OpenID Connect OAuth app",
|
||||||
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
|
"admin.config.oauth.oidc-client-secret": "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 van de OpenID Connect OAuth app",
|
||||||
// 404
|
// 404
|
||||||
"404.description": "Oeps, deze pagina bestaat niet.",
|
"404.description": "Oeps, deze pagina bestaat niet.",
|
||||||
"404.button.home": "Breng me terug naar huis",
|
"404.button.home": "Breng me terug naar huis",
|
||||||
// error
|
// error
|
||||||
"error.title": "Error",
|
"error.title": "Fout",
|
||||||
"error.description": "Oops!",
|
"error.description": "Oeps!",
|
||||||
"error.button.back": "Go back",
|
"error.button.back": "Terug",
|
||||||
"error.msg.default": "Something went wrong.",
|
"error.msg.default": "Er ging iets mis.",
|
||||||
"error.msg.access_denied": "You canceled the authentication process, please try again.",
|
"error.msg.access_denied": "U heeft het verificatieproces geannuleerd, probeer het opnieuw.",
|
||||||
"error.msg.expired_token": "The authentication process took too long, please try again.",
|
"error.msg.expired_token": "Het verificatieproces duurde te lang. Probeer het opnieuw.",
|
||||||
"error.msg.invalid_token": "Internal Error",
|
"error.msg.invalid_token": "Interne fout",
|
||||||
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
|
"error.msg.no_user": "De gekoppelde gebruiker aan {0} account bestaat niet.",
|
||||||
"error.msg.no_email": "Can't get email address from this {0} account.",
|
"error.msg.no_email": "Kan geen e-mailadres ophalen van dit {0} account.",
|
||||||
"error.msg.already_linked": "This {0} account is already linked to another account.",
|
"error.msg.already_linked": "Dit {0} account is al gekoppeld aan een ander account.",
|
||||||
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
"error.msg.not_linked": "Dit {0} account is nog aan geen enkel account gekoppeld.",
|
||||||
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
|
"error.msg.unverified_account": "Dit {0} account is nog niet geverifieerd, probeer het opnieuw na de verificatie.",
|
||||||
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
|
"error.msg.discord_guild_permission_denied": "U heeft geen toestemming om in te loggen.",
|
||||||
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
"error.msg.cannot_get_user_info": "Kan uw gebruikersgegevens van dit {0} account niet ophalen.",
|
||||||
"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",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Genereren",
|
"common.button.generate": "Genereren",
|
||||||
"common.button.done": "Voltooid",
|
"common.button.done": "Voltooid",
|
||||||
"common.text.link": "Koppeling",
|
"common.text.link": "Koppeling",
|
||||||
|
"common.text.navigate-to-link": "Ga naar de koppeling",
|
||||||
"common.text.or": "of",
|
"common.text.or": "of",
|
||||||
"common.button.go-back": "Ga terug",
|
"common.button.go-back": "Ga terug",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "Uw link is gekopieerd naar het klembord",
|
"common.notify.copied": "Uw link is gekopieerd naar het klembord",
|
||||||
"common.success": "Succes",
|
"common.success": "Succes",
|
||||||
"common.error": "Fout",
|
"common.error": "Fout",
|
||||||
|
|||||||
@@ -57,7 +57,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": "Został wysłany e-mail z linkiem do resetowania hasła.",
|
"resetPassword.notify.success": "Jeśli e-mail istnieje, to została wysłana wiadomość z linkiem do zresetowania hasła.",
|
||||||
"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",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Wygeneruj",
|
"common.button.generate": "Wygeneruj",
|
||||||
"common.button.done": "Gotowe",
|
"common.button.done": "Gotowe",
|
||||||
"common.text.link": "Link",
|
"common.text.link": "Link",
|
||||||
|
"common.text.navigate-to-link": "Przejdź do linku",
|
||||||
"common.text.or": "lub",
|
"common.text.or": "lub",
|
||||||
"common.button.go-back": "Wróć",
|
"common.button.go-back": "Wróć",
|
||||||
|
"common.button.go-home": "Wróć do ekranu głównego",
|
||||||
"common.notify.copied": "Link został skopiowany do schowka",
|
"common.notify.copied": "Link został skopiowany do schowka",
|
||||||
"common.success": "Zakończono pomyślnie",
|
"common.success": "Zakończono pomyślnie",
|
||||||
"common.error": "Błąd",
|
"common.error": "Błąd",
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Esqueceu a sua senha?",
|
"resetPassword.title": "Esqueceu a sua senha?",
|
||||||
"resetPassword.description": "Insira o seu e-mail para redefinir a sua senha.",
|
"resetPassword.description": "Insira o seu e-mail para redefinir a sua senha.",
|
||||||
"resetPassword.notify.success": "Um e-mail foi enviado com um link para redefinir a sua senha.",
|
"resetPassword.notify.success": "Uma mensagem com um link para redefinir sua senha foi enviada se o e-mail existir.",
|
||||||
"resetPassword.button.back": "Voltar para a página inicial",
|
"resetPassword.button.back": "Voltar para a página inicial",
|
||||||
"resetPassword.text.resetPassword": "Redefinir senha",
|
"resetPassword.text.resetPassword": "Redefinir senha",
|
||||||
"resetPassword.text.enterNewPassword": "Digite uma nova senha",
|
"resetPassword.text.enterNewPassword": "Digite uma nova senha",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"share.table.name": "Nome",
|
"share.table.name": "Nome",
|
||||||
"share.table.size": "Tamanho",
|
"share.table.size": "Tamanho",
|
||||||
"share.modal.file-preview.error.not-supported.title": "Visualização não suportada",
|
"share.modal.file-preview.error.not-supported.title": "Visualização não suportada",
|
||||||
"share.modal.file-preview.error.not-supported.description": "Uma visualização para este tipo de arquivo não é suportada. Faça o download do arquivo para visualizá-lo.",
|
"share.modal.file-preview.error.not-supported.description": "Uma pré-visualização para este tipo de arquivo não é suportada. Faça o download do arquivo para visualizá-lo.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Editar {shareId}",
|
"share.edit.title": "Editar {shareId}",
|
||||||
@@ -359,16 +359,16 @@ export default {
|
|||||||
"admin.config.oauth.discord-client-id.description": "ID do cliente do aplicativo Discord OAuth",
|
"admin.config.oauth.discord-client-id.description": "ID do cliente do aplicativo Discord OAuth",
|
||||||
"admin.config.oauth.discord-client-secret": "Segredo do Cliente Discord",
|
"admin.config.oauth.discord-client-secret": "Segredo do Cliente Discord",
|
||||||
"admin.config.oauth.discord-client-secret.description": "ID do cliente do aplicativo Discord OAuth",
|
"admin.config.oauth.discord-client-secret.description": "ID do cliente do aplicativo Discord OAuth",
|
||||||
"admin.config.oauth.oidc-enabled": "OpenID Connect",
|
"admin.config.oauth.oidc-enabled": "Conectar o OpenID",
|
||||||
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
|
"admin.config.oauth.oidc-enabled.description": "Se o login do OpenID Connect está ativado",
|
||||||
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
"admin.config.oauth.oidc-discovery-uri": "URI de descoberta do OpenID Connect",
|
||||||
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-discovery-uri.description": "URI da descoberta do aplicativo OpenID Connect OAuth",
|
||||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
"admin.config.oauth.oidc-username-claim": "Reivindicação de nome de usuário OpenID Connect",
|
||||||
"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": "Nome de usuário no token de ID OpenID Connect. Deixe em branco se você não sabe o que é esta configuração.",
|
||||||
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
"admin.config.oauth.oidc-client-id": "ID do cliente OpenID Connect",
|
||||||
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-client-id.description": "ID do cliente do aplicativo OpenID OAuth",
|
||||||
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
|
"admin.config.oauth.oidc-client-secret": "Segredo do cliente OpenID Connect",
|
||||||
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-client-secret.description": "ID do cliente do aplicativo OpenID OAuth",
|
||||||
// 404
|
// 404
|
||||||
"404.description": "Ops, esta página não existe.",
|
"404.description": "Ops, esta página não existe.",
|
||||||
"404.button.home": "Me traga de volta para casa",
|
"404.button.home": "Me traga de volta para casa",
|
||||||
@@ -386,7 +386,7 @@ export default {
|
|||||||
"error.msg.not_linked": "Esta conta {0} ainda não foi vinculada a nenhuma conta.",
|
"error.msg.not_linked": "Esta conta {0} ainda não foi vinculada a nenhuma conta.",
|
||||||
"error.msg.unverified_account": "Esta conta {0} não foi verificada, tente novamente após a verificação.",
|
"error.msg.unverified_account": "Esta conta {0} não foi verificada, tente novamente após a verificação.",
|
||||||
"error.msg.discord_guild_permission_denied": "Você não tem permissão para acessar.",
|
"error.msg.discord_guild_permission_denied": "Você não tem permissão para acessar.",
|
||||||
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
"error.msg.cannot_get_user_info": "Não é possível obter suas informações de usuário desta conta {0}.",
|
||||||
"error.param.provider_github": "GitHub",
|
"error.param.provider_github": "GitHub",
|
||||||
"error.param.provider_google": "Google",
|
"error.param.provider_google": "Google",
|
||||||
"error.param.provider_microsoft": "Microsoft",
|
"error.param.provider_microsoft": "Microsoft",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Gerar",
|
"common.button.generate": "Gerar",
|
||||||
"common.button.done": "Concluído",
|
"common.button.done": "Concluído",
|
||||||
"common.text.link": "Link",
|
"common.text.link": "Link",
|
||||||
|
"common.text.navigate-to-link": "Ir para o link",
|
||||||
"common.text.or": "ou",
|
"common.text.or": "ou",
|
||||||
"common.button.go-back": "Voltar",
|
"common.button.go-back": "Voltar",
|
||||||
|
"common.button.go-home": "Voltar para o Início",
|
||||||
"common.notify.copied": "O seu link foi copiado para a área de transferência",
|
"common.notify.copied": "O seu link foi copiado para a área de transferência",
|
||||||
"common.success": "Sucesso",
|
"common.success": "Sucesso",
|
||||||
"common.error": "Erro",
|
"common.error": "Erro",
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Забыли пароль?",
|
"resetPassword.title": "Забыли пароль?",
|
||||||
"resetPassword.description": "Введите ваш email для восстановления пароля.",
|
"resetPassword.description": "Введите ваш email для восстановления пароля.",
|
||||||
"resetPassword.notify.success": "Вам направлено письмо со ссылкой для сброса пароля.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "Вернуться на страницу входа",
|
"resetPassword.button.back": "Вернуться на страницу входа",
|
||||||
"resetPassword.text.resetPassword": "Сбросить пароль",
|
"resetPassword.text.resetPassword": "Сбросить пароль",
|
||||||
"resetPassword.text.enterNewPassword": "Введите новый пароль",
|
"resetPassword.text.enterNewPassword": "Введите новый пароль",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"share.table.name": "Название",
|
"share.table.name": "Название",
|
||||||
"share.table.size": "Размер",
|
"share.table.size": "Размер",
|
||||||
"share.modal.file-preview.error.not-supported.title": "Предпросмотр не поддерживается",
|
"share.modal.file-preview.error.not-supported.title": "Предпросмотр не поддерживается",
|
||||||
"share.modal.file-preview.error.not-supported.description": "Предварительный просмотр этого типа файла не поддерживается. Пожалуйста, скачайте файл для его просмотра.",
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Редактировать {shareId}",
|
"share.edit.title": "Редактировать {shareId}",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Сгенерировать",
|
"common.button.generate": "Сгенерировать",
|
||||||
"common.button.done": "Готово",
|
"common.button.done": "Готово",
|
||||||
"common.text.link": "Ссылка",
|
"common.text.link": "Ссылка",
|
||||||
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
"common.text.or": "или",
|
"common.text.or": "или",
|
||||||
"common.button.go-back": "Назад",
|
"common.button.go-back": "Назад",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "Ваша ссылка скопирована в буфер обмена",
|
"common.notify.copied": "Ваша ссылка скопирована в буфер обмена",
|
||||||
"common.success": "Успешно",
|
"common.success": "Успешно",
|
||||||
"common.error": "Ошибочка",
|
"common.error": "Ошибочка",
|
||||||
|
|||||||
421
frontend/src/i18n/translations/sl-SI.ts
Normal file
421
frontend/src/i18n/translations/sl-SI.ts
Normal file
@@ -0,0 +1,421 @@
|
|||||||
|
export default {
|
||||||
|
// Navbar
|
||||||
|
"navbar.upload": "Naloži",
|
||||||
|
"navbar.signin": "Vpis",
|
||||||
|
"navbar.home": "Domov",
|
||||||
|
"navbar.signup": "Registracija",
|
||||||
|
"navbar.links.shares": "Moja deljenja",
|
||||||
|
"navbar.links.reverse": "Deljenja v obratni smeri",
|
||||||
|
"navbar.avatar.account": "Moj račun",
|
||||||
|
"navbar.avatar.admin": "Administracija",
|
||||||
|
"navbar.avatar.signout": "Odjava",
|
||||||
|
// END navbar
|
||||||
|
// /
|
||||||
|
"home.title": "Platforma za deljenje datotek z <h>lastnim gostovanjem</h>.",
|
||||||
|
"home.description": "Ali res želite predati svoje osebne datoteke v roke tretjih oseb, kot je WeTransfer?",
|
||||||
|
"home.bullet.a.name": "Lastno-Gostovanje",
|
||||||
|
"home.bullet.a.description": "Gostuj Pingvin Share na svoji lastni napravi.",
|
||||||
|
"home.bullet.b.name": "Zasebnost",
|
||||||
|
"home.bullet.b.description": "Vaše datoteke so samo vaše in ne bi nikoli smele pristati v rokah tretjih oseb.",
|
||||||
|
"home.bullet.c.name": "Brez nadležnih omejitev velikosti datoteke",
|
||||||
|
"home.bullet.c.description": "Naložite datoteke, velike kolikor želite. Omejuje vas samo vaš disk.",
|
||||||
|
"home.button.start": "Začnite zdaj",
|
||||||
|
"home.button.source": "Izvorna koda",
|
||||||
|
// END /
|
||||||
|
// /auth/signin
|
||||||
|
"signin.title": "Dobrodošli nazaj",
|
||||||
|
"signin.description": "Še nimate računa?",
|
||||||
|
"signin.button.signup": "Registrirajte se",
|
||||||
|
"signin.input.email-or-username": "E-pošta ali uporabniško ime",
|
||||||
|
"signin.input.email-or-username.placeholder": "Vaša e-pošta ali uporabniško ime",
|
||||||
|
"signin.input.password": "Geslo",
|
||||||
|
"signin.input.password.placeholder": "Vaše geslo",
|
||||||
|
"signin.button.submit": "Prijava",
|
||||||
|
"signIn.notify.totp-required.title": "Zahtevana je dvofaktorska avtentikacija",
|
||||||
|
"signIn.notify.totp-required.description": "Prosim vnesite vašo kodo dvofaktorske avtentikacije",
|
||||||
|
"signIn.oauth.or": "ALI",
|
||||||
|
"signIn.oauth.github": "GitHub",
|
||||||
|
"signIn.oauth.google": "Google",
|
||||||
|
"signIn.oauth.microsoft": "Microsoft",
|
||||||
|
"signIn.oauth.discord": "Discord",
|
||||||
|
"signIn.oauth.oidc": "OpenID",
|
||||||
|
// END /auth/signin
|
||||||
|
// /auth/signup
|
||||||
|
"signup.title": "Ustvarite račun",
|
||||||
|
"signup.description": "Že imate račun?",
|
||||||
|
"signup.button.signin": "Prijava",
|
||||||
|
"signup.input.username": "Uporabniško ime",
|
||||||
|
"signup.input.username.placeholder": "Vaše uporabniško ime",
|
||||||
|
"signup.input.email": "E-pošta",
|
||||||
|
"signup.input.email.placeholder": "Vaš e-poštni naslov",
|
||||||
|
"signup.button.submit": "Pa začnimo",
|
||||||
|
// END /auth/signup
|
||||||
|
// /auth/totp
|
||||||
|
"totp.title": "TOTP Avtentikacija",
|
||||||
|
"totp.button.signIn": "Prijava",
|
||||||
|
// END /auth/totp
|
||||||
|
// /auth/reset-password
|
||||||
|
"resetPassword.title": "Ste pozabili svoje geslo?",
|
||||||
|
"resetPassword.description": "Vnesite svoj e-poštni naslov za ponastavitev gesla.",
|
||||||
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
|
"resetPassword.button.back": "Nazaj na stran za prijavo",
|
||||||
|
"resetPassword.text.resetPassword": "Ponastavi geslo",
|
||||||
|
"resetPassword.text.enterNewPassword": "Vnesite novo geslo",
|
||||||
|
"resetPassword.input.password": "Novo geslo",
|
||||||
|
"resetPassword.notify.passwordReset": "Vaše geslo je bilo uspešno ponastavljeno.",
|
||||||
|
// /account
|
||||||
|
"account.title": "Moj račun",
|
||||||
|
"account.card.info.title": "Informacije o računu",
|
||||||
|
"account.card.info.username": "Uporabniško ime",
|
||||||
|
"account.card.info.email": "E-pošta",
|
||||||
|
"account.notify.info.success": "Račun je bil uspešno posodobljen",
|
||||||
|
"account.card.password.title": "Geslo",
|
||||||
|
"account.card.password.old": "Staro geslo",
|
||||||
|
"account.card.password.new": "Novo geslo",
|
||||||
|
"account.card.password.noPasswordSet": "Vaše geslo ni nastavljeno. Če se želite prijaviti z e-pošto in geslom, morate imeti nastavljeno geslo.",
|
||||||
|
"account.notify.password.success": "Geslo je bilo uspešno posodobljeno",
|
||||||
|
"account.card.oauth.title": "Prijava z računi družbenih omrežij",
|
||||||
|
"account.card.oauth.github": "GitHub",
|
||||||
|
"account.card.oauth.google": "Google",
|
||||||
|
"account.card.oauth.microsoft": "Microsoft",
|
||||||
|
"account.card.oauth.discord": "Discord",
|
||||||
|
"account.card.oauth.oidc": "OpenID",
|
||||||
|
"account.card.oauth.link": "Poveži",
|
||||||
|
"account.card.oauth.unlink": "Odstrani povezavo",
|
||||||
|
"account.card.oauth.unlinked": "Povezava je odstranjena",
|
||||||
|
"account.modal.unlink.title": "Odstrani povezavo z računom",
|
||||||
|
"account.modal.unlink.description": "Odstranitev povezave z računom družbenih omrežij lahko privede do izgube vašega računa, če se ne spomnite vašega uporabniškega imena in gesla.",
|
||||||
|
"account.notify.oauth.unlinked.success": "Povezava je bila uspešno odstranjena",
|
||||||
|
"account.card.security.title": "Varnost",
|
||||||
|
"account.card.security.totp.enable.description": "Vnesite vašo trenutno geslo, da omogočite TOTP",
|
||||||
|
"account.card.security.totp.disable.description": "Vnesite vašo trenutno geslo, da onemogočite TOTP",
|
||||||
|
"account.card.security.totp.button.start": "Začni",
|
||||||
|
"account.modal.totp.title": "Omogoči TOTP",
|
||||||
|
"account.modal.totp.step1": "1. Korak: Dodajte avtentikator",
|
||||||
|
"account.modal.totp.step2": "2. Korak: Potrdite svojo kodo",
|
||||||
|
"account.modal.totp.enterManually": "Vnesite ročno",
|
||||||
|
"account.modal.totp.code": "Koda",
|
||||||
|
"account.modal.totp.clickToCopy": "Kliknite za kopiranje",
|
||||||
|
"account.modal.totp.verify": "Preveri",
|
||||||
|
"account.notify.totp.disable": "TOTP je uspešno onemogočen",
|
||||||
|
"account.notify.totp.enable": "TOTP je uspešno omogočen",
|
||||||
|
"account.card.language.title": "Jezik",
|
||||||
|
"account.card.language.description": "Projekt je preveden s pomočjo skupnosti. Nekateri jeziki morda niso popolno prevedeni.",
|
||||||
|
"account.card.color.title": "Barvna shema",
|
||||||
|
// ThemeSwitcher.tsx
|
||||||
|
"account.theme.dark": "Temna",
|
||||||
|
"account.theme.light": "Svetla",
|
||||||
|
"account.theme.system": "Sistemska",
|
||||||
|
"account.button.delete": "Izbrišite račun",
|
||||||
|
"account.modal.delete.title": "Izbrišite račun",
|
||||||
|
"account.modal.delete.description": "Ali res želite izbrisati vaš račun vključno z vsemi vašimi deljenji?",
|
||||||
|
// END /account
|
||||||
|
// /account/shares
|
||||||
|
"account.shares.title": "Moja deljenja",
|
||||||
|
"account.shares.title.empty": "Prazno je 👀",
|
||||||
|
"account.shares.description.empty": "Nimate nobenih deljenj.",
|
||||||
|
"account.shares.button.create": "Ustvarite ga",
|
||||||
|
"account.shares.info.title": "Delite informacije",
|
||||||
|
"account.shares.table.id": "ID",
|
||||||
|
"account.shares.table.name": "Ime",
|
||||||
|
"account.shares.table.description": "Opis",
|
||||||
|
"account.shares.table.visitors": "Obiskovalci",
|
||||||
|
"account.shares.table.expiresAt": "Poteče dne",
|
||||||
|
"account.shares.table.createdAt": "Ustvarjeno dne",
|
||||||
|
"account.shares.table.size": "Velikost",
|
||||||
|
"account.shares.modal.share-informations": "Delite informacije",
|
||||||
|
"account.shares.modal.share-link": "Delite povezavo",
|
||||||
|
"account.shares.modal.delete.title": "Izbrišite delitev {share}",
|
||||||
|
"account.shares.modal.delete.description": "Ali res želite izbrisati to delitev?",
|
||||||
|
// END /account/shares
|
||||||
|
// /account/reverseShares
|
||||||
|
"account.reverseShares.title": "Delitev v obratni smeri",
|
||||||
|
"account.reverseShares.description": "Delitev v obratni smeri vam omogoča, da generirate unikaten URL, ki omogoča zunanjim uporabnikom ustvariti delitev.",
|
||||||
|
"account.reverseShares.title.empty": "Prazno je 👀",
|
||||||
|
"account.reverseShares.description.empty": "Nimate nobenih delitev v obratni smeri.",
|
||||||
|
// showCreateReverseShareModal.tsx
|
||||||
|
"account.reverseShares.modal.title": "Ustvari delitev v obratni smeri",
|
||||||
|
"account.reverseShares.modal.expiration.label": "Zapadlost",
|
||||||
|
"account.reverseShares.modal.expiration.minute-singular": "Minuta",
|
||||||
|
"account.reverseShares.modal.expiration.minute-plural": "Minute",
|
||||||
|
"account.reverseShares.modal.expiration.hour-singular": "Ura",
|
||||||
|
"account.reverseShares.modal.expiration.hour-plural": "Ure",
|
||||||
|
"account.reverseShares.modal.expiration.day-singular": "Dan",
|
||||||
|
"account.reverseShares.modal.expiration.day-plural": "Dnevi",
|
||||||
|
"account.reverseShares.modal.expiration.week-singular": "Teden",
|
||||||
|
"account.reverseShares.modal.expiration.week-plural": "Tedni",
|
||||||
|
"account.reverseShares.modal.expiration.month-singular": "Mesec",
|
||||||
|
"account.reverseShares.modal.expiration.month-plural": "Meseci",
|
||||||
|
"account.reverseShares.modal.expiration.year-singular": "Leto",
|
||||||
|
"account.reverseShares.modal.expiration.year-plural": "Leta",
|
||||||
|
"account.reverseShares.modal.max-size.label": "Največja velikost delitve",
|
||||||
|
"account.reverseShares.modal.send-email": "Pošlji e-poštno obvestilo",
|
||||||
|
"account.reverseShares.modal.send-email.description": "Pošlji e-poštno obvestilo, ko je ustvarjena delitev s povezavo te delitve v obratni smeri.",
|
||||||
|
"account.reverseShares.modal.max-use.label": "Največ uporab",
|
||||||
|
"account.reverseShares.modal.max-use.description": "Največje število uporab URL-ja za ustvarjanje delitve.",
|
||||||
|
"account.reverseShare.never-expires": "Ta povezava delitve v obratni smeri ne bo nikoli potekla.",
|
||||||
|
"account.reverseShare.expires-on": "Ta delitev v obratni smeri bo potekla {expiration}.",
|
||||||
|
"account.reverseShares.table.no-shares": "Nimate še ustvarjenih delitev",
|
||||||
|
"account.reverseShares.table.count.singular": "delitev",
|
||||||
|
"account.reverseShares.table.count.plural": "delitve",
|
||||||
|
"account.reverseShares.table.shares": "Delitve",
|
||||||
|
"account.reverseShares.table.remaining": "Preostale uporabe",
|
||||||
|
"account.reverseShares.table.max-size": "Največja velikost delitve",
|
||||||
|
"account.reverseShares.table.expires": "Poteče dne",
|
||||||
|
"account.reverseShares.modal.reverse-share-link": "Povezava delitve v obratni smeri",
|
||||||
|
"account.reverseShares.modal.delete.title": "Izbriši delitev v obratni smeri",
|
||||||
|
"account.reverseShares.modal.delete.description": "Ali res želite izbrisati to delitev v obratni smeri? Če boste izbrisali, bodo izbrisane tudi povezane delitve.",
|
||||||
|
// END /account/reverseShares
|
||||||
|
// /admin
|
||||||
|
"admin.title": "Administracija",
|
||||||
|
"admin.button.users": "Upravljanje uporabnikov",
|
||||||
|
"admin.button.config": "Nastavitve",
|
||||||
|
"admin.version": "Različica",
|
||||||
|
// END /admin
|
||||||
|
// /admin/users
|
||||||
|
"admin.users.title": "Upravljanje uporabnikov",
|
||||||
|
"admin.users.table.username": "Uporabniško ime",
|
||||||
|
"admin.users.table.email": "E-pošta",
|
||||||
|
"admin.users.table.admin": "Administrator",
|
||||||
|
"admin.users.edit.update.title": "Uredi uporabnika {username}",
|
||||||
|
"admin.users.edit.update.admin-privileges": "Administratorski privilegiji",
|
||||||
|
"admin.users.edit.update.change-password.title": "Spremenite geslo",
|
||||||
|
"admin.users.edit.update.change-password.field": "Novo geslo",
|
||||||
|
"admin.users.edit.update.change-password.button": "Shranite novo geslo",
|
||||||
|
"admin.users.edit.update.notify.password.success": "Geslo je bilo uspešno posodobljeno",
|
||||||
|
"admin.users.edit.delete.title": "Izbrišite uporabnika {username}",
|
||||||
|
"admin.users.edit.delete.description": "Ali res želite izbrisati tega uporabnika in vsa njegova deljenja?",
|
||||||
|
// showCreateUserModal.tsx
|
||||||
|
"admin.users.modal.create.title": "Ustvarite uporabnika",
|
||||||
|
"admin.users.modal.create.username": "Uporabniško ime",
|
||||||
|
"admin.users.modal.create.email": "E-pošta",
|
||||||
|
"admin.users.modal.create.password": "Geslo",
|
||||||
|
"admin.users.modal.create.manual-password": "Ročno nastavite geslo",
|
||||||
|
"admin.users.modal.create.manual-password.description": "Če je omogočeno, bo uporabnik prejel e-poštno sporočilo s povezavo do nastavitve gesla.",
|
||||||
|
"admin.users.modal.create.admin": "Administratorski privilegiji",
|
||||||
|
"admin.users.modal.create.admin.description": "Če je omogočeno, bo lahko porabnik dostopal do administratorskega vmesnika.",
|
||||||
|
// END /admin/users
|
||||||
|
// /upload
|
||||||
|
"upload.title": "Naložite",
|
||||||
|
"upload.notify.generic-error": "Prišlo je do napake pri ustvarjanju vašega deljenja.",
|
||||||
|
"upload.notify.count-failed": "Prišlo je do napake pri nalaganju toliko datotek: {count}. Poskušamo ponovno.",
|
||||||
|
// Dropzone.tsx
|
||||||
|
"upload.dropzone.title": "Naloži datoteke",
|
||||||
|
"upload.dropzone.description": "Tukaj spustite datoteke, da začnete z delitvijo. Sprejemamo samo datoteke, ki so skupaj manjše od {maxSize}.",
|
||||||
|
"upload.dropzone.notify.file-too-big": "Vaše datoteke presegajo največjo dovoljeno velikost {maxSize}.",
|
||||||
|
// FileList.tsx
|
||||||
|
"upload.filelist.name": "Ime",
|
||||||
|
"upload.filelist.size": "Velikost",
|
||||||
|
// showCreateUploadModal.tsx
|
||||||
|
"upload.modal.title": "Ustvarite delitev",
|
||||||
|
"upload.modal.link.error.invalid": "Lahko vsebuje samo črke, številke, podčrtaje in pomišljaje",
|
||||||
|
"upload.modal.link.error.taken": "Ta povezava je že v uporabi",
|
||||||
|
"upload.modal.not-signed-in": "Niste prijavljeni",
|
||||||
|
"upload.modal.not-signed-in-description": "Ne boste mogli izbrisati vaših delitev in pregledati števila obiskovalcev.",
|
||||||
|
"upload.modal.expires.never": "nikoli",
|
||||||
|
"upload.modal.expires.never-long": "Nikoli ne poteče",
|
||||||
|
"upload.modal.expires.error.too-long": "Dan poteka presega najvišji datum poteka {max}.",
|
||||||
|
"upload.modal.link.label": "Povezava",
|
||||||
|
"upload.modal.expires.label": "Zapadlost",
|
||||||
|
"upload.modal.expires.minute-singular": "Minuta",
|
||||||
|
"upload.modal.expires.minute-plural": "Minute",
|
||||||
|
"upload.modal.expires.hour-singular": "Ura",
|
||||||
|
"upload.modal.expires.hour-plural": "Ure",
|
||||||
|
"upload.modal.expires.day-singular": "Dan",
|
||||||
|
"upload.modal.expires.day-plural": "Dnevi",
|
||||||
|
"upload.modal.expires.week-singular": "Teden",
|
||||||
|
"upload.modal.expires.week-plural": "Tedni",
|
||||||
|
"upload.modal.expires.month-singular": "Mesec",
|
||||||
|
"upload.modal.expires.month-plural": "Meseci",
|
||||||
|
"upload.modal.expires.year-singular": "Leto",
|
||||||
|
"upload.modal.expires.year-plural": "Leta",
|
||||||
|
"upload.modal.accordion.description.title": "Opis",
|
||||||
|
"upload.modal.accordion.description.placeholder": "Sporočilo za prejemnika te delitve",
|
||||||
|
"upload.modal.accordion.email.title": "Prejemnik e-pošte",
|
||||||
|
"upload.modal.accordion.email.placeholder": "Vnesite prejemnika e-pošte",
|
||||||
|
"upload.modal.accordion.email.invalid-email": "Neveljaven e-poštni naslov",
|
||||||
|
"upload.modal.accordion.security.title": "Varnostne možnosti",
|
||||||
|
"upload.modal.accordion.security.password.label": "Zaščita z geslom",
|
||||||
|
"upload.modal.accordion.security.password.placeholder": "Brez gesla",
|
||||||
|
"upload.modal.accordion.security.max-views.label": "Največje število ogledov",
|
||||||
|
"upload.modal.accordion.security.max-views.placeholder": "Brez omejitve",
|
||||||
|
// showCompletedUploadModal.tsx
|
||||||
|
"upload.modal.completed.never-expires": "Ta delitev ne bo nikoli potekla.",
|
||||||
|
"upload.modal.completed.expires-on": "Ta delitev bo potekla {expiration}.",
|
||||||
|
"upload.modal.completed.share-ready": "Delitev je pripravljena",
|
||||||
|
// END /upload
|
||||||
|
// /share/[id]
|
||||||
|
"share.title": "Deli {shareId}",
|
||||||
|
"share.description": "Poglej kaj sem delil s taboj!",
|
||||||
|
"share.error.visitor-limit-exceeded.title": "Število ogledov je prekoračena",
|
||||||
|
"share.error.visitor-limit-exceeded.description": "Število ogledov za to delitev je bila prekoračena.",
|
||||||
|
"share.error.removed.title": "Delitev je odstranjena",
|
||||||
|
"share.error.not-found.title": "Delitve ni mogoče najti",
|
||||||
|
"share.error.not-found.description": "Delitev, ki jo iščete ne obstaja.",
|
||||||
|
"share.modal.password.title": "Zahtevano geslo",
|
||||||
|
"share.modal.password.description": "Za ogled delitve vnesite geslo te delitve.",
|
||||||
|
"share.modal.password": "Geslo",
|
||||||
|
"share.modal.error.invalid-password": "Napačno geslo",
|
||||||
|
"share.button.download-all": "Prenesi vse",
|
||||||
|
"share.notify.download-all-preparing": "Delitev je v pripravi. Prosimo poskusite ponovno čez nekaj minut.",
|
||||||
|
"share.modal.file-link": "Povezava do datoteke",
|
||||||
|
"share.table.name": "Ime",
|
||||||
|
"share.table.size": "Velikost",
|
||||||
|
"share.modal.file-preview.error.not-supported.title": "Predogled ni mogoč",
|
||||||
|
"share.modal.file-preview.error.not-supported.description": "Predogled za to datoteko ni podprt. Prosimo prenesite datoteko, da si jo ogledate.",
|
||||||
|
// END /share/[id]
|
||||||
|
// /share/[id]/edit
|
||||||
|
"share.edit.title": "Uredite {shareId}",
|
||||||
|
"share.edit.append-upload": "Dodaj datoteko",
|
||||||
|
"share.edit.notify.generic-error": "Prišlo je do napake pri ustvarjanju vaše delitve.",
|
||||||
|
"share.edit.notify.save-success": "Delitev je bila uspešno posodbljena",
|
||||||
|
// END /share/[id]/edit
|
||||||
|
// /admin/config
|
||||||
|
"admin.config.title": "Nastavitve",
|
||||||
|
"admin.config.category.general": "Splošno",
|
||||||
|
"admin.config.category.share": "Delitev",
|
||||||
|
"admin.config.category.email": "E-pošta",
|
||||||
|
"admin.config.category.smtp": "SMTP",
|
||||||
|
"admin.config.category.oauth": "Prijava z računi družbenih omrežij",
|
||||||
|
"admin.config.general.app-name": "Ime aplikacije",
|
||||||
|
"admin.config.general.app-name.description": "Ime vaše aplikacije",
|
||||||
|
"admin.config.general.app-url": "URL aplikacije",
|
||||||
|
"admin.config.general.app-url.description": "Na katerem URL-ju je dostopen Pingvin Share",
|
||||||
|
"admin.config.general.show-home-page": "Prikaži domačo stran",
|
||||||
|
"admin.config.general.show-home-page.description": "Ali prikazati domačo stran",
|
||||||
|
"admin.config.general.logo": "Logotip",
|
||||||
|
"admin.config.general.logo.description": "Naložite novo sliko, da spremenite logotip. Datoteka mora biti tipa PNG in imeti razmerje 1:1.",
|
||||||
|
"admin.config.general.logo.placeholder": "Izberite sliko",
|
||||||
|
"admin.config.email.enable-share-email-recipients": "Omogoči prejemnike delitve po e-pošti",
|
||||||
|
"admin.config.email.enable-share-email-recipients.description": "Ali dovolite pošiljanje delitve po e-pošti. Omogočite samo v primeru, da imate omogočen SMTP.",
|
||||||
|
"admin.config.email.share-recipients-subject": "Zadeva poslane delitve",
|
||||||
|
"admin.config.email.share-recipients-subject.description": "Zadeva e-poštnega sporočila, ki bo poslan prejemnikom delitve.",
|
||||||
|
"admin.config.email.share-recipients-message": "Vsebina poslane delitve",
|
||||||
|
"admin.config.email.share-recipients-message.description": "Vsebina e-poštnega sporočila, ki bo poslana prejemnikom delitve. Spremenljivke, ki so na voljo:\n{creator} - uporabniško ime ustvarjalca delitve\n{shareUrl} - URL delitve\n{desc} - vsebina delitve\n{expires} - datum poteka delitve\n Spremenljivke bodo zamenjane z dejanskimi vrednostmi.",
|
||||||
|
"admin.config.email.reverse-share-subject": "Zadeva delitve v obratni smeri",
|
||||||
|
"admin.config.email.reverse-share-subject.description": "Zadeva e-poštnega sporočila, ki bo poslan, ko nekdo ustvari delitev z vašo povezavo.",
|
||||||
|
"admin.config.email.reverse-share-message": "Vsebina delitve v obratni smeri",
|
||||||
|
"admin.config.email.reverse-share-message.description": "Vsebina e-poštnega sporočila, ki bo poslan, ko nekdo ustvari delitev v obratni smeri. {shareUrl} bo zamenjan z uporabniškim imenom ustvarjalca in URL-jom delitve.",
|
||||||
|
"admin.config.email.reset-password-subject": "Zadeva ponastavitve gesla",
|
||||||
|
"admin.config.email.reset-password-subject.description": "Zadeva e-poštnega sporočila, ki bo poslan, ko uporabnik zahteva ponastavitev gesla.",
|
||||||
|
"admin.config.email.reset-password-message": "Vsebina za ponastavitev gesla",
|
||||||
|
"admin.config.email.reset-password-message.description": "Vsebina e-poštnega sporočila, ki bo poslan, ko uporabnik zahteva ponastavitev gesla. {url} bo zamenjan z URL-jem za ponastavitev gesla.",
|
||||||
|
"admin.config.email.invite-subject": "Zadeva povabila",
|
||||||
|
"admin.config.email.invite-subject.description": "Zadeva e-poštnega sporočila, ki je poslan, ko administrator povabi uporabnika.",
|
||||||
|
"admin.config.email.invite-message": "Vsebina povabila",
|
||||||
|
"admin.config.email.invite-message.description": "Sporočilo, ki se pošlje, ko administrator povabi uporabnika. {url} bo zamenjan s povezavo do povabila, {password} pa z geslom.",
|
||||||
|
"admin.config.share.allow-registration": "Dovoli registracijo",
|
||||||
|
"admin.config.share.allow-registration.description": "Če je registracija dovoljena",
|
||||||
|
"admin.config.share.allow-unauthenticated-shares": "Dovoli delitve s strani neprijavljenih uporabnikov",
|
||||||
|
"admin.config.share.allow-unauthenticated-shares.description": "Če lahko neprijavljeni uporabniki ustvarijo delitve",
|
||||||
|
"admin.config.share.max-expiration": "Najvišja zapadlost",
|
||||||
|
"admin.config.share.max-expiration.description": "Najvišja zapadlost delitve v urah. Nastavljeno na 0 pomeni brez zapadlosti.",
|
||||||
|
"admin.config.share.max-size": "Največja velikost",
|
||||||
|
"admin.config.share.max-size.description": "Največja velikost delitve v bytih",
|
||||||
|
"admin.config.share.zip-compression-level": "Nivo Zip stiskanja",
|
||||||
|
"admin.config.share.zip-compression-level.description": "Nivo stiskanja, ki uravnoveša med velikostjo datoteke in hitrostjo stiskanja. Veljavne vrednosti so med 0 in 9, kjer 0 pomeni brez kompresije in 9 pomeni največjo kompresijo. ",
|
||||||
|
"admin.config.smtp.enabled": "Omogočeno",
|
||||||
|
"admin.config.smtp.enabled.description": "Če je SMTP omogočen. Omogočite samo, če ste vnesli strežnik, vrata, e-pošto, uporabniško ime in geslo vašega SMTP strežnika.",
|
||||||
|
"admin.config.smtp.host": "Gostitelj",
|
||||||
|
"admin.config.smtp.host.description": "Gostitelj SMTP strežnika",
|
||||||
|
"admin.config.smtp.port": "Vrata",
|
||||||
|
"admin.config.smtp.port.description": "Vrata SMTP strežnika",
|
||||||
|
"admin.config.smtp.email": "E-pošta",
|
||||||
|
"admin.config.smtp.email.description": "E-poštni naslov, s katerega bodo poslana e-poštna sporočila",
|
||||||
|
"admin.config.smtp.username": "Uporabniško ime",
|
||||||
|
"admin.config.smtp.username.description": "Uporabniško ime SMTP strežnika",
|
||||||
|
"admin.config.smtp.password": "Geslo",
|
||||||
|
"admin.config.smtp.password.description": "Geslo SMTP strežnika",
|
||||||
|
"admin.config.smtp.button.test": "Pošlji testno sporočilo",
|
||||||
|
"admin.config.oauth.allow-registration": "Dovoli registracijo",
|
||||||
|
"admin.config.oauth.allow-registration.description": "Dovoli registracijo uporabnika prek družbenih omrežij",
|
||||||
|
"admin.config.oauth.ignore-totp": "Ignoriraj TOTP",
|
||||||
|
"admin.config.oauth.ignore-totp.description": "Če ignorirati TOTP, ko se uporabnik registrira prek družbenih omrežij",
|
||||||
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
|
"admin.config.oauth.github-enabled.description": "Če je dovoljena prijava z GitHub računom",
|
||||||
|
"admin.config.oauth.github-client-id": "GitHub ID klienta",
|
||||||
|
"admin.config.oauth.github-client-id.description": "ID klienta GitHub OAuth aplikacije",
|
||||||
|
"admin.config.oauth.github-client-secret": "GitHub skrivnost klienta",
|
||||||
|
"admin.config.oauth.github-client-secret.description": "Skrivnost klienta GitHub OAuth aplikacije",
|
||||||
|
"admin.config.oauth.google-enabled": "Google",
|
||||||
|
"admin.config.oauth.google-enabled.description": "Če je dovoljena prijava z Google računom",
|
||||||
|
"admin.config.oauth.google-client-id": "Google ID klienta",
|
||||||
|
"admin.config.oauth.google-client-id.description": "ID Klienta Google OAuth aplikacije",
|
||||||
|
"admin.config.oauth.google-client-secret": "Skrivnost Google klienta",
|
||||||
|
"admin.config.oauth.google-client-secret.description": "Skrivnost klienta Google OAuth aplikacije",
|
||||||
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
|
"admin.config.oauth.microsoft-enabled.description": "Če je dovoljena prijava z Microsoft računom",
|
||||||
|
"admin.config.oauth.microsoft-tenant": "Microsoft najemnik",
|
||||||
|
"admin.config.oauth.microsoft-tenant.description": "ID identitete Microsoft OAuth aplikacije\nobičajno: V aplikacijo se lahko prijavijo uporabniki osebnega Microsoft računa in službenega ali šolskega računa z Microsoft Entra ID.\norganizacije: V aplikacijo se lahko prijavijo samo uporabniki službenega ali šolskega računa z Microsoft Entra ID.\nuporabniki: V aplikacijo se lahko prijavijo samo uporabniki osebnega Microsoft računa.\ndomensko ime Microsoft Entra identitete ali ID identitete v formatu GUID: V aplikacijo se lahko prijavijo samo uporabniki specifične Microsoft Entra identitete (člani imenika s službenim ali šolskim računom ali gosti imenika z osebnim Microsoft računom).",
|
||||||
|
"admin.config.oauth.microsoft-client-id": "Microsoft ID klienta",
|
||||||
|
"admin.config.oauth.microsoft-client-id.description": "ID Klienta Microsoft OAuth aplikacije",
|
||||||
|
"admin.config.oauth.microsoft-client-secret": "Skrivnost Microsoft klienta",
|
||||||
|
"admin.config.oauth.microsoft-client-secret.description": "Skrivnost klienta Microsoft OAuth aplikacije",
|
||||||
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
|
"admin.config.oauth.discord-enabled.description": "Če je dovoljena prijava z Discord računom",
|
||||||
|
"admin.config.oauth.discord-limited-guild": "ID omejenega Discord strežnika",
|
||||||
|
"admin.config.oauth.discord-limited-guild.description": "Omogoči omejitev prijave uporabnika v specifičen strežnik. Pustite prazno, da onemogočite.",
|
||||||
|
"admin.config.oauth.discord-client-id": "Discord ID klienta",
|
||||||
|
"admin.config.oauth.discord-client-id.description": "ID klienta Discord OAuth aplikacije",
|
||||||
|
"admin.config.oauth.discord-client-secret": "Discord skrivnost klienta",
|
||||||
|
"admin.config.oauth.discord-client-secret.description": "Skrivnost klienta Discord OAuth aplikacije",
|
||||||
|
"admin.config.oauth.oidc-enabled": "OpenID Connect",
|
||||||
|
"admin.config.oauth.oidc-enabled.description": "Če je dovoljena prijava z OpenID Connect",
|
||||||
|
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect URI za odkrivanje",
|
||||||
|
"admin.config.oauth.oidc-discovery-uri.description": "URI za odkrivanje OpenID Connect OAuth aplikacije",
|
||||||
|
"admin.config.oauth.oidc-username-claim": "OpenID Connect zahteva za uporabniško ime",
|
||||||
|
"admin.config.oauth.oidc-username-claim.description": "Zahteva za uporabniško ime za OpenID Connect ID žetona. Pustite prazno, če ne poznate te nastavitve.",
|
||||||
|
"admin.config.oauth.oidc-client-id": "OpenID Connect ID klienta",
|
||||||
|
"admin.config.oauth.oidc-client-id.description": "ID Klienta OpenID Connect OAuth aplikacije",
|
||||||
|
"admin.config.oauth.oidc-client-secret": "OpenID Connect skrivnost klienta",
|
||||||
|
"admin.config.oauth.oidc-client-secret.description": "Skrivnost klienta OpenID Connect OAuth aplikacije",
|
||||||
|
// 404
|
||||||
|
"404.description": "Ups! Ta stran ne obstaja.",
|
||||||
|
"404.button.home": "Pelji me domov",
|
||||||
|
// error
|
||||||
|
"error.title": "Napaka",
|
||||||
|
"error.description": "Ups!",
|
||||||
|
"error.button.back": "Nazaj",
|
||||||
|
"error.msg.default": "Prišlo je do napake.",
|
||||||
|
"error.msg.access_denied": "Prekinili ste proces prijave, prosimo poskusite ponovno.",
|
||||||
|
"error.msg.expired_token": "Proces prijave je trajal predolgo, prosimo poskusite ponovno.",
|
||||||
|
"error.msg.invalid_token": "Interna napaka",
|
||||||
|
"error.msg.no_user": "Uporabnik povezan na račun {0} ne obstaja.",
|
||||||
|
"error.msg.no_email": "Ne najdemo e-poštnega naslova za račun {0}.",
|
||||||
|
"error.msg.already_linked": "Račun {0} je že povezan na drug račun.",
|
||||||
|
"error.msg.not_linked": "Račun {0} še ni povezan z nobenim računom.",
|
||||||
|
"error.msg.unverified_account": "Račun {0} je nepreverjen, prosimo poskusite ponovno po preverjanju.",
|
||||||
|
"error.msg.discord_guild_permission_denied": "Nimate dovoljenja za prijavo.",
|
||||||
|
"error.msg.cannot_get_user_info": "Ne moremo najti uporabniških informacij za račun {0}.",
|
||||||
|
"error.param.provider_github": "GitHub",
|
||||||
|
"error.param.provider_google": "Google",
|
||||||
|
"error.param.provider_microsoft": "Microsoft",
|
||||||
|
"error.param.provider_discord": "Discord",
|
||||||
|
"error.param.provider_oidc": "OpenID Connect",
|
||||||
|
// Common translations
|
||||||
|
"common.button.save": "Shrani",
|
||||||
|
"common.button.create": "Ustvari",
|
||||||
|
"common.button.submit": "Pošlji",
|
||||||
|
"common.button.delete": "Izbriši",
|
||||||
|
"common.button.cancel": "Prekliči",
|
||||||
|
"common.button.confirm": "Potrdi",
|
||||||
|
"common.button.disable": "Onemogoči",
|
||||||
|
"common.button.share": "Deli",
|
||||||
|
"common.button.generate": "Generiraj",
|
||||||
|
"common.button.done": "Končano",
|
||||||
|
"common.text.link": "Poveži",
|
||||||
|
"common.text.navigate-to-link": "Pojdi na povezavo",
|
||||||
|
"common.text.or": "ali",
|
||||||
|
"common.button.go-back": "Nazaj",
|
||||||
|
"common.button.go-home": "Pojdi domov",
|
||||||
|
"common.notify.copied": "Povezava je bila kopirana v odložišče",
|
||||||
|
"common.success": "Uspešno",
|
||||||
|
"common.error": "Napaka",
|
||||||
|
"common.error.unknown": "Prišlo je do neznane napake",
|
||||||
|
"common.error.invalid-email": "Neveljaven e-poštni naslov",
|
||||||
|
"common.error.too-short": "Vsebovati mora vsaj {length} znakov",
|
||||||
|
"common.error.too-long": "Vsebuje lahko največ {length} znakov",
|
||||||
|
"common.error.exact-length": "Dolžina mora biti točno {length} znakov",
|
||||||
|
"common.error.invalid-number": "Mora biti številka",
|
||||||
|
"common.error.field-required": "To polje je obvezno"
|
||||||
|
};
|
||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Заборавили сте лозинку?",
|
"resetPassword.title": "Заборавили сте лозинку?",
|
||||||
"resetPassword.description": "Унесите своју е-пошту да бисте ресетовали лозинку.",
|
"resetPassword.description": "Унесите своју е-пошту да бисте ресетовали лозинку.",
|
||||||
"resetPassword.notify.success": "Послат је емаил са везом за ресетовање ваше лозинке.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "Назад на страницу за пријаву",
|
"resetPassword.button.back": "Назад на страницу за пријаву",
|
||||||
"resetPassword.text.resetPassword": "Обнови лозинку",
|
"resetPassword.text.resetPassword": "Обнови лозинку",
|
||||||
"resetPassword.text.enterNewPassword": "Унесите вашу нову лозинку",
|
"resetPassword.text.enterNewPassword": "Унесите вашу нову лозинку",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"share.table.name": "Назив",
|
"share.table.name": "Назив",
|
||||||
"share.table.size": "Величина",
|
"share.table.size": "Величина",
|
||||||
"share.modal.file-preview.error.not-supported.title": "Преглед није подржан",
|
"share.modal.file-preview.error.not-supported.title": "Преглед није подржан",
|
||||||
"share.modal.file-preview.error.not-supported.description": "Преглед за овај тип датотеке није подржан. Преузмите датотеку да бисте је видели.",
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "Edit {shareId}",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "Генериши",
|
"common.button.generate": "Генериши",
|
||||||
"common.button.done": "Готово",
|
"common.button.done": "Готово",
|
||||||
"common.text.link": "Линк",
|
"common.text.link": "Линк",
|
||||||
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
"common.text.or": "или",
|
"common.text.or": "или",
|
||||||
"common.button.go-back": "Иди назад",
|
"common.button.go-back": "Иди назад",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "Ваша веза је копирана у clipboard",
|
"common.notify.copied": "Ваша веза је копирана у clipboard",
|
||||||
"common.success": "Успешно",
|
"common.success": "Успешно",
|
||||||
"common.error": "Грешка",
|
"common.error": "Грешка",
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ 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": "Ett e-postmeddelande har skickats till dig med en länk för att återställa lösenordet.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"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",
|
||||||
@@ -346,7 +346,7 @@ export default {
|
|||||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
"admin.config.oauth.microsoft-enabled.description": "Om Microsoftinloggning skall vara aktiverat",
|
"admin.config.oauth.microsoft-enabled.description": "Om Microsoftinloggning skall vara aktiverat",
|
||||||
"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 för Microsoft OAuth app\ngemensamt: Användare med både ett personligt Microsoft-konto och ett arbets- eller skolkonto från Microsoft Entra ID kan logga in på programmet.\norganisationer: Endast användare med arbets- eller skolkonton från Microsoft Entra ID kan logga in på programmet.\nkonsumenter: Endast användare med ett personligt Microsoft-konto kan logga in på programmet.\ndomännamn för Microsoft Entra tenant eller tenant ID i GUID-format: Endast användare från en specifik Microsoft Entra tenant (katalogmedlemmar med ett arbets- eller skolkonto eller kataloggäster med ett personligt Microsoft-konto) kan logga in på ansökan.",
|
||||||
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
||||||
"admin.config.oauth.microsoft-client-id.description": "Client ID för Microsoft OAuth",
|
"admin.config.oauth.microsoft-client-id.description": "Client ID för Microsoft OAuth",
|
||||||
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
|
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
|
||||||
@@ -360,15 +360,15 @@ export default {
|
|||||||
"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 för Discord OAuth",
|
"admin.config.oauth.discord-client-secret.description": "Client secret för Discord OAuth",
|
||||||
"admin.config.oauth.oidc-enabled": "OpenID Connect",
|
"admin.config.oauth.oidc-enabled": "OpenID Connect",
|
||||||
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
|
"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 of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI för OpenID Connect OAuth appen",
|
||||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
"admin.config.oauth.oidc-username-claim": "OpenID Connect användarnamnsanspråk",
|
||||||
"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": "Användarnamnsanspråk i OpenID Connect ID token. Lämna tomt om du inte vet vad denna konfiguration är.",
|
||||||
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
"admin.config.oauth.oidc-client-id": "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 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 of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-client-secret.description": "Client secret för OpenID OAuth",
|
||||||
// 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",
|
||||||
@@ -386,7 +386,7 @@ export default {
|
|||||||
"error.msg.not_linked": "Detta {0} konto har ännu inte länkat till något konto.",
|
"error.msg.not_linked": "Detta {0} konto har ännu inte länkat till något konto.",
|
||||||
"error.msg.unverified_account": "Detta {0} -konto är overifierat, försök igen efter verifiering.",
|
"error.msg.unverified_account": "Detta {0} -konto är overifierat, försök igen efter verifiering.",
|
||||||
"error.msg.discord_guild_permission_denied": "Du är inte tillåten att logga in.",
|
"error.msg.discord_guild_permission_denied": "Du är inte tillåten att logga in.",
|
||||||
"error.msg.cannot_get_user_info": "Can not 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",
|
||||||
@@ -404,8 +404,10 @@ 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": "Gå till länken",
|
||||||
"common.text.or": "eller",
|
"common.text.or": "eller",
|
||||||
"common.button.go-back": "Gå tillbaka",
|
"common.button.go-back": "Gå tillbaka",
|
||||||
|
"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",
|
||||||
"common.success": "Slutförd",
|
"common.success": "Slutförd",
|
||||||
"common.error": "Fel",
|
"common.error": "Fel",
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "ลืมรหัสผ่าน?",
|
"resetPassword.title": "ลืมรหัสผ่าน?",
|
||||||
"resetPassword.description": "กรุณาใส่อีเมล์์์์์์์ของคุณเพื่อรีเซ็ตรหัสผ่าน",
|
"resetPassword.description": "กรุณาใส่อีเมล์์์์์์์ของคุณเพื่อรีเซ็ตรหัสผ่าน",
|
||||||
"resetPassword.notify.success": "ส่งอีเมล์์์์์์์พร้อมลิงค์เพื่อรีเซ็ตรหัสผ่านของคุณแล้ว",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "กลับไปที่หน้าลงชื่อเข้าใช้",
|
"resetPassword.button.back": "กลับไปที่หน้าลงชื่อเข้าใช้",
|
||||||
"resetPassword.text.resetPassword": "รีเซ็ตรหัสผ่าน",
|
"resetPassword.text.resetPassword": "รีเซ็ตรหัสผ่าน",
|
||||||
"resetPassword.text.enterNewPassword": "ป้อนรหัสผ่านใหม่ของคุณ",
|
"resetPassword.text.enterNewPassword": "ป้อนรหัสผ่านใหม่ของคุณ",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"share.table.name": "ชื่อ",
|
"share.table.name": "ชื่อ",
|
||||||
"share.table.size": "ขนาด",
|
"share.table.size": "ขนาด",
|
||||||
"share.modal.file-preview.error.not-supported.title": "ไม่รองรับการแสดงตัวอย่าง",
|
"share.modal.file-preview.error.not-supported.title": "ไม่รองรับการแสดงตัวอย่าง",
|
||||||
"share.modal.file-preview.error.not-supported.description": "ไม่รองรับการแสดงตัวอย่างสำหรับไฟล์ประเภทนี้ โปรดดาวน์โหลดไฟล์เพื่อดู",
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "Edit {shareId}",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "สุ่ม",
|
"common.button.generate": "สุ่ม",
|
||||||
"common.button.done": "เสร็จสิ้น",
|
"common.button.done": "เสร็จสิ้น",
|
||||||
"common.text.link": "ลิงค์",
|
"common.text.link": "ลิงค์",
|
||||||
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
"common.text.or": "หรือ",
|
"common.text.or": "หรือ",
|
||||||
"common.button.go-back": "ย้อนกลับ",
|
"common.button.go-back": "ย้อนกลับ",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "คัดลอกไปยังคลิปบอร์ดแล้ว",
|
"common.notify.copied": "คัดลอกไปยังคลิปบอร์ดแล้ว",
|
||||||
"common.success": "สำเร็จ",
|
"common.success": "สำเร็จ",
|
||||||
"common.error": "เกิดข้อผิดพลาด",
|
"common.error": "เกิดข้อผิดพลาด",
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ export default {
|
|||||||
"signIn.notify.totp-required.description": "请输入一次性验证码",
|
"signIn.notify.totp-required.description": "请输入一次性验证码",
|
||||||
"signIn.oauth.or": "OR",
|
"signIn.oauth.or": "OR",
|
||||||
"signIn.oauth.github": "GitHub",
|
"signIn.oauth.github": "GitHub",
|
||||||
"signIn.oauth.google": "Google",
|
"signIn.oauth.google": "谷歌",
|
||||||
"signIn.oauth.microsoft": "Microsoft",
|
"signIn.oauth.microsoft": "Microsoft",
|
||||||
"signIn.oauth.discord": "Discord",
|
"signIn.oauth.discord": "Discord",
|
||||||
"signIn.oauth.oidc": "OpenID",
|
"signIn.oauth.oidc": "OpenID",
|
||||||
@@ -51,13 +51,13 @@ export default {
|
|||||||
"signup.button.submit": "注册",
|
"signup.button.submit": "注册",
|
||||||
// END /auth/signup
|
// END /auth/signup
|
||||||
// /auth/totp
|
// /auth/totp
|
||||||
"totp.title": "TOTP Authentication",
|
"totp.title": "两步验证",
|
||||||
"totp.button.signIn": "Sign in",
|
"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": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "返回登录页面",
|
"resetPassword.button.back": "返回登录页面",
|
||||||
"resetPassword.text.resetPassword": "重置密码",
|
"resetPassword.text.resetPassword": "重置密码",
|
||||||
"resetPassword.text.enterNewPassword": "请输入新密码",
|
"resetPassword.text.enterNewPassword": "请输入新密码",
|
||||||
@@ -72,11 +72,11 @@ export default {
|
|||||||
"account.card.password.title": "密码",
|
"account.card.password.title": "密码",
|
||||||
"account.card.password.old": "旧密码",
|
"account.card.password.old": "旧密码",
|
||||||
"account.card.password.new": "新密码",
|
"account.card.password.new": "新密码",
|
||||||
"account.card.password.noPasswordSet": "You don't have a password set. If you want to sign in with email and password you need to set a password.",
|
"account.card.password.noPasswordSet": "您还未设置密码。如果您想通过邮箱和密码登录,请先设置密码。",
|
||||||
"account.notify.password.success": "密码更改成功!",
|
"account.notify.password.success": "密码更改成功!",
|
||||||
"account.card.oauth.title": "Social login",
|
"account.card.oauth.title": "社交账号登录",
|
||||||
"account.card.oauth.github": "GitHub",
|
"account.card.oauth.github": "GitHub",
|
||||||
"account.card.oauth.google": "Google",
|
"account.card.oauth.google": "谷歌",
|
||||||
"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",
|
||||||
@@ -84,8 +84,8 @@ export default {
|
|||||||
"account.card.oauth.unlink": "Unlink",
|
"account.card.oauth.unlink": "Unlink",
|
||||||
"account.card.oauth.unlinked": "Unlinked",
|
"account.card.oauth.unlinked": "Unlinked",
|
||||||
"account.modal.unlink.title": "Unlink account",
|
"account.modal.unlink.title": "Unlink account",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your username and password.",
|
"account.modal.unlink.description": "如果您不记得您的用户名和密码,解除和社交账号的关联可能会导致丢失账户。",
|
||||||
"account.notify.oauth.unlinked.success": "Unlinked successfully",
|
"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": "请输入当前密码关闭两步验证",
|
||||||
@@ -100,7 +100,7 @@ export default {
|
|||||||
"account.notify.totp.disable": "成功关闭两步验证!",
|
"account.notify.totp.disable": "成功关闭两步验证!",
|
||||||
"account.notify.totp.enable": "成功开启两步验证!",
|
"account.notify.totp.enable": "成功开启两步验证!",
|
||||||
"account.card.language.title": "语言",
|
"account.card.language.title": "语言",
|
||||||
"account.card.language.description": "The project is translated by the community. Some languages might be incomplete.",
|
"account.card.language.description": "本项目由社区成员翻译,部分语言可能暂未提供翻译。",
|
||||||
"account.card.color.title": "颜色外观",
|
"account.card.color.title": "颜色外观",
|
||||||
// ThemeSwitcher.tsx
|
// ThemeSwitcher.tsx
|
||||||
"account.theme.dark": "暗黑模式",
|
"account.theme.dark": "暗黑模式",
|
||||||
@@ -130,11 +130,11 @@ export default {
|
|||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /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": "Create reverse share",
|
"account.reverseShares.modal.title": "创建反向共享",
|
||||||
"account.reverseShares.modal.expiration.label": "过期时间",
|
"account.reverseShares.modal.expiration.label": "过期时间",
|
||||||
"account.reverseShares.modal.expiration.minute-singular": "1 分钟",
|
"account.reverseShares.modal.expiration.minute-singular": "1 分钟",
|
||||||
"account.reverseShares.modal.expiration.minute-plural": "分钟",
|
"account.reverseShares.modal.expiration.minute-plural": "分钟",
|
||||||
@@ -214,7 +214,7 @@ export default {
|
|||||||
"upload.modal.not-signed-in-description": "你将不能删除你的共享或查看访问次数",
|
"upload.modal.not-signed-in-description": "你将不能删除你的共享或查看访问次数",
|
||||||
"upload.modal.expires.never": "永不",
|
"upload.modal.expires.never": "永不",
|
||||||
"upload.modal.expires.never-long": "永不过期",
|
"upload.modal.expires.never-long": "永不过期",
|
||||||
"upload.modal.expires.error.too-long": "Expiration exceeds maximum expiration date of {max}.",
|
"upload.modal.expires.error.too-long": "您设置的过期时间超出了系统上限 {max}。",
|
||||||
"upload.modal.link.label": "共享链接",
|
"upload.modal.link.label": "共享链接",
|
||||||
"upload.modal.expires.label": "过期时间",
|
"upload.modal.expires.label": "过期时间",
|
||||||
"upload.modal.expires.minute-singular": "1 分钟",
|
"upload.modal.expires.minute-singular": "1 分钟",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"share.table.name": "文件名",
|
"share.table.name": "文件名",
|
||||||
"share.table.size": "文件大小",
|
"share.table.size": "文件大小",
|
||||||
"share.modal.file-preview.error.not-supported.title": "该文件类型不支持预览",
|
"share.modal.file-preview.error.not-supported.title": "该文件类型不支持预览",
|
||||||
"share.modal.file-preview.error.not-supported.description": "该文件类型不支持预览,请下载后打开查看",
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "编辑 {shareId}",
|
"share.edit.title": "编辑 {shareId}",
|
||||||
@@ -276,22 +276,22 @@ export default {
|
|||||||
"admin.config.category.share": "共享",
|
"admin.config.category.share": "共享",
|
||||||
"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": "社交账号登录",
|
||||||
"admin.config.general.app-name": "App 名称",
|
"admin.config.general.app-name": "App 名称",
|
||||||
"admin.config.general.app-name.description": "这个 App 的名称",
|
"admin.config.general.app-name.description": "自定义 App 的名称",
|
||||||
"admin.config.general.app-url": "App 的地址",
|
"admin.config.general.app-url": "App 的地址",
|
||||||
"admin.config.general.app-url.description": "Pingvin Share 的 URL 地址",
|
"admin.config.general.app-url.description": "Pingvin Share 的 URL 地址",
|
||||||
"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.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.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": "共享邮件通知主题",
|
||||||
"admin.config.email.share-recipients-subject.description": "发送共享邮件通知的邮件主题",
|
"admin.config.email.share-recipients-subject.description": "发送共享邮件通知的邮件主题",
|
||||||
"admin.config.email.share-recipients-message": "共享邮件通知内容",
|
"admin.config.email.share-recipients-message": "共享邮件通知内容",
|
||||||
"admin.config.email.share-recipients-message.description": "发送到接收者的共享邮件通知具体内容。可选的变量有:\n {creator} - 共享创建者\n {shareUrl} - 共享链接\n {desc} - 共享描述\n {expires} - 共享过期时间\n 这些变量会被实际的值所替代",
|
"admin.config.email.share-recipients-message.description": "发给接收者的共享邮件通知的具体内容。可选的变量有:\n {creator} - 该共享的创建者\n {shareUrl} - 该共享的链接\n {desc} - 该共享的描述\n {expires} - 该共享的过期时间\n 这些变量会被实际的值所替代",
|
||||||
"admin.config.email.reverse-share-subject": "预留共享邮件通知主题",
|
"admin.config.email.reverse-share-subject": "预留共享邮件通知主题",
|
||||||
"admin.config.email.reverse-share-subject.description": "当有人使用了你的预留共享链接时,发送的预留共享邮件通知主题",
|
"admin.config.email.reverse-share-subject.description": "当有人使用了你的预留共享链接时,发送的预留共享邮件通知主题",
|
||||||
"admin.config.email.reverse-share-message": "预留共享邮件通知内容",
|
"admin.config.email.reverse-share-message": "预留共享邮件通知内容",
|
||||||
@@ -308,12 +308,12 @@ export default {
|
|||||||
"admin.config.share.allow-registration.description": "是否允许注册",
|
"admin.config.share.allow-registration.description": "是否允许注册",
|
||||||
"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": "Max expiration",
|
"admin.config.share.max-expiration": "最长过期时间",
|
||||||
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
|
"admin.config.share.max-expiration.description": "“最长过期时间”以小时为单位,如果将其设置为“0”则为永不过期。",
|
||||||
"admin.config.share.max-size": "最大文件上限",
|
"admin.config.share.max-size": "最大文件上限",
|
||||||
"admin.config.share.max-size.description": "最大文件上限,单位 bytes (1GB=1024MB=1048576KB=1073741824bytes)",
|
"admin.config.share.max-size.description": "最大文件上限,单位 bytes (1GB=1024MB=1048576KB=1073741824bytes)",
|
||||||
"admin.config.share.zip-compression-level": "Zip compression level",
|
"admin.config.share.zip-compression-level": "Zip 文件压缩质量",
|
||||||
"admin.config.share.zip-compression-level.description": "Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ",
|
"admin.config.share.zip-compression-level.description": "调整压缩质量来平衡压缩文件的大小和压缩的速度。有效值介于 0 和 9 之间,0 为不压缩,9 为最高质量压缩。 ",
|
||||||
"admin.config.smtp.enabled": "启用",
|
"admin.config.smtp.enabled": "启用",
|
||||||
"admin.config.smtp.enabled.description": "是否开启 SMTP,仅当输入主机名、端口、发送邮箱、用户名和密码后开启",
|
"admin.config.smtp.enabled.description": "是否开启 SMTP,仅当输入主机名、端口、发送邮箱、用户名和密码后开启",
|
||||||
"admin.config.smtp.host": "主机名",
|
"admin.config.smtp.host": "主机名",
|
||||||
@@ -327,68 +327,68 @@ export default {
|
|||||||
"admin.config.smtp.password": "密码",
|
"admin.config.smtp.password": "密码",
|
||||||
"admin.config.smtp.password.description": "SMTP 主机密码",
|
"admin.config.smtp.password.description": "SMTP 主机密码",
|
||||||
"admin.config.smtp.button.test": "发送测试邮件",
|
"admin.config.smtp.button.test": "发送测试邮件",
|
||||||
"admin.config.oauth.allow-registration": "Allow registration",
|
"admin.config.oauth.allow-registration": "允许注册",
|
||||||
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
|
"admin.config.oauth.allow-registration.description": "允许用户通过登录社交账号来注册",
|
||||||
"admin.config.oauth.ignore-totp": "Ignore TOTP",
|
"admin.config.oauth.ignore-totp": "忽略两步验证",
|
||||||
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
|
"admin.config.oauth.ignore-totp.description": "用户通过社交账号登录时是否忽略两步验证",
|
||||||
"admin.config.oauth.github-enabled": "GitHub",
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
|
"admin.config.oauth.github-enabled.description": "是否启用 GitHub 账号登录",
|
||||||
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
"admin.config.oauth.github-client-id": "GitHub Client ID",
|
||||||
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
|
"admin.config.oauth.github-client-id.description": "GitHub OAuth App 的 Client ID",
|
||||||
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
"admin.config.oauth.github-client-secret": "GitHub Client secret",
|
||||||
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
|
"admin.config.oauth.github-client-secret.description": "GitHub OAuth App 的 Client secret",
|
||||||
"admin.config.oauth.google-enabled": "Google",
|
"admin.config.oauth.google-enabled": "谷歌",
|
||||||
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
|
"admin.config.oauth.google-enabled.description": "是否启用谷歌账号登录",
|
||||||
"admin.config.oauth.google-client-id": "Google Client ID",
|
"admin.config.oauth.google-client-id": "谷歌 Client ID",
|
||||||
"admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app",
|
"admin.config.oauth.google-client-id.description": "Google OAuth App 的 Client ID",
|
||||||
"admin.config.oauth.google-client-secret": "Google Client secret",
|
"admin.config.oauth.google-client-secret": "谷歌 Client secret",
|
||||||
"admin.config.oauth.google-client-secret.description": "Client secret of the Google OAuth app",
|
"admin.config.oauth.google-client-secret.description": "Google OAuth App 的 Client secret",
|
||||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
|
"admin.config.oauth.microsoft-enabled.description": "是否启用微软账号登录",
|
||||||
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
"admin.config.oauth.microsoft-tenant": "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 of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
|
||||||
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
|
||||||
"admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
|
"admin.config.oauth.microsoft-client-id.description": "Microsoft OAuth App 的 Client ID",
|
||||||
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
|
"admin.config.oauth.microsoft-client-secret": "Microsoft 的 Client secret",
|
||||||
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
|
"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": "Whether Discord login is enabled",
|
"admin.config.oauth.discord-enabled.description": "是否启用 Discord 账号登录",
|
||||||
"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": "Limit signing in to users in a specific server. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-guild.description": "限制特定服务器中的用户登录。留空来禁用。",
|
||||||
"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": "Discord OAuth App 的 Client ID",
|
||||||
"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": "Discord OAuth App 的 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": "是否启用 OpenID Connect 登录",
|
||||||
"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 of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-discovery-uri.description": "OpenID Connect OAuth App 的 Discovery URI",
|
||||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
"admin.config.oauth.oidc-username-claim": "OpenID Connect 用户名请求",
|
||||||
"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": "OpenID Connect ID token 中的用户名请求。如果您不知道这项配置是什么,请留空。",
|
||||||
"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": "OpenID Connect OAuth App 的 Client ID",
|
||||||
"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": "OpenID Connect OAuth App 的 Client secret",
|
||||||
// 404
|
// 404
|
||||||
"404.description": "当前的页面走丢啦",
|
"404.description": "当前的页面走丢啦",
|
||||||
"404.button.home": "返回主页",
|
"404.button.home": "返回主页",
|
||||||
// error
|
// error
|
||||||
"error.title": "Error",
|
"error.title": "出错了",
|
||||||
"error.description": "Oops!",
|
"error.description": "糟糕!",
|
||||||
"error.button.back": "Go back",
|
"error.button.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": "您取消了认证过程,请重试。",
|
||||||
"error.msg.expired_token": "The authentication process took too long, please try again.",
|
"error.msg.expired_token": "认证过程耗时异常,请重试。",
|
||||||
"error.msg.invalid_token": "Internal Error",
|
"error.msg.invalid_token": "内部错误",
|
||||||
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
|
"error.msg.no_user": "用户关联的这个 {0} 账户不存在。",
|
||||||
"error.msg.no_email": "Can't get email address from this {0} account.",
|
"error.msg.no_email": "无法从 {0} 这个账户获取邮箱地址。",
|
||||||
"error.msg.already_linked": "This {0} account is already linked to another account.",
|
"error.msg.already_linked": "{0} 这个账户已经关联到另一个账号。",
|
||||||
"error.msg.not_linked": "This {0} account haven't linked to any account yet.",
|
"error.msg.not_linked": "{0} 这个账户尚未关联到任何账号。",
|
||||||
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
|
"error.msg.unverified_account": "{0} 这个账户尚未验证,请在验证后重试。",
|
||||||
"error.msg.discord_guild_permission_denied": "You are not allowed to sign in.",
|
"error.msg.discord_guild_permission_denied": "您无权登录。",
|
||||||
"error.msg.cannot_get_user_info": "Can not get your user info from this {0} account.",
|
"error.msg.cannot_get_user_info": "无法从 {0} 这个账户获取您的用户信息。",
|
||||||
"error.param.provider_github": "GitHub",
|
"error.param.provider_github": "GitHub",
|
||||||
"error.param.provider_google": "Google",
|
"error.param.provider_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",
|
||||||
@@ -404,10 +404,12 @@ export default {
|
|||||||
"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.or": "或",
|
"common.text.or": "或",
|
||||||
"common.button.go-back": "返回",
|
"common.button.go-back": "返回",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "已复制到剪贴板",
|
"common.notify.copied": "已复制到剪贴板",
|
||||||
"common.success": "Success",
|
"common.success": "成功",
|
||||||
"common.error": "错误",
|
"common.error": "错误",
|
||||||
"common.error.unknown": "发生未知错误",
|
"common.error.unknown": "发生未知错误",
|
||||||
"common.error.invalid-email": "邮件地址不可用",
|
"common.error.invalid-email": "邮件地址不可用",
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "忘記密碼?",
|
"resetPassword.title": "忘記密碼?",
|
||||||
"resetPassword.description": "請輸入Email以讓系統寄送重置密碼郵件",
|
"resetPassword.description": "請輸入Email以讓系統寄送重置密碼郵件",
|
||||||
"resetPassword.notify.success": "一封包含密碼重置地址的郵件已發送到您的Email",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the email exists.",
|
||||||
"resetPassword.button.back": "返回登入頁面",
|
"resetPassword.button.back": "返回登入頁面",
|
||||||
"resetPassword.text.resetPassword": "重置密碼",
|
"resetPassword.text.resetPassword": "重置密碼",
|
||||||
"resetPassword.text.enterNewPassword": "請輸入新密碼",
|
"resetPassword.text.enterNewPassword": "請輸入新密碼",
|
||||||
@@ -262,7 +262,7 @@ export default {
|
|||||||
"share.table.name": "檔案名稱",
|
"share.table.name": "檔案名稱",
|
||||||
"share.table.size": "檔案大小",
|
"share.table.size": "檔案大小",
|
||||||
"share.modal.file-preview.error.not-supported.title": "該檔案類型不支持預覽",
|
"share.modal.file-preview.error.not-supported.title": "該檔案類型不支持預覽",
|
||||||
"share.modal.file-preview.error.not-supported.description": "該檔案類型不支持預覽,請下載後打開查看",
|
"share.modal.file-preview.error.not-supported.description": "A preview for this file type is unsupported. Please download the file to view it.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "編輯 {shareId}",
|
"share.edit.title": "編輯 {shareId}",
|
||||||
@@ -404,8 +404,10 @@ export default {
|
|||||||
"common.button.generate": "自動產生",
|
"common.button.generate": "自動產生",
|
||||||
"common.button.done": "完成",
|
"common.button.done": "完成",
|
||||||
"common.text.link": "聯結",
|
"common.text.link": "聯結",
|
||||||
|
"common.text.navigate-to-link": "Go to the link",
|
||||||
"common.text.or": "或",
|
"common.text.or": "或",
|
||||||
"common.button.go-back": "返回",
|
"common.button.go-back": "返回",
|
||||||
|
"common.button.go-home": "Go home",
|
||||||
"common.notify.copied": "已複製到剪貼簿",
|
"common.notify.copied": "已複製到剪貼簿",
|
||||||
"common.success": "成功",
|
"common.success": "成功",
|
||||||
"common.error": "錯誤",
|
"common.error": "錯誤",
|
||||||
|
|||||||
@@ -21,9 +21,8 @@ export async function middleware(request: NextRequest) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Get config from backend
|
// Get config from backend
|
||||||
const config = await (
|
const apiUrl = process.env.API_URL || "http://localhost:8080";
|
||||||
await fetch(`${request.nextUrl.origin}/api/configs`)
|
const config = await (await fetch(`${apiUrl}/api/configs`)).json();
|
||||||
).json();
|
|
||||||
|
|
||||||
const getConfig = (key: string) => {
|
const getConfig = (key: string) => {
|
||||||
return configService.get(key, config);
|
return configService.get(key, config);
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import { getCookie, setCookie } from "cookies-next";
|
|||||||
import { GetServerSidePropsContext } from "next";
|
import { GetServerSidePropsContext } from "next";
|
||||||
import type { AppProps } from "next/app";
|
import type { AppProps } from "next/app";
|
||||||
import getConfig from "next/config";
|
import getConfig from "next/config";
|
||||||
|
import Head from "next/head";
|
||||||
import { useRouter } from "next/router";
|
import { useRouter } from "next/router";
|
||||||
import { useEffect, useRef, useState } from "react";
|
import { useEffect, useRef, useState } from "react";
|
||||||
import { IntlProvider } from "react-intl";
|
import { IntlProvider } from "react-intl";
|
||||||
@@ -49,7 +50,12 @@ function App({ Component, pageProps }: AppProps) {
|
|||||||
}, [router.pathname]);
|
}, [router.pathname]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setInterval(async () => await authService.refreshAccessToken(), 30 * 1000);
|
const interval = setInterval(
|
||||||
|
async () => await authService.refreshAccessToken(),
|
||||||
|
2 * 60 * 1000, // 2 minutes
|
||||||
|
);
|
||||||
|
|
||||||
|
return () => clearInterval(interval);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -80,57 +86,65 @@ function App({ Component, pageProps }: AppProps) {
|
|||||||
const language = useRef(pageProps.language);
|
const language = useRef(pageProps.language);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<IntlProvider
|
<>
|
||||||
messages={i18nUtil.getLocaleByCode(language.current)?.messages}
|
<Head>
|
||||||
locale={language.current}
|
<meta
|
||||||
defaultLocale={LOCALES.ENGLISH.code}
|
name="viewport"
|
||||||
>
|
content="minimum-scale=1, initial-scale=1, width=device-width, user-scalable=no"
|
||||||
<MantineProvider
|
/>
|
||||||
withGlobalStyles
|
</Head>
|
||||||
withNormalizeCSS
|
<IntlProvider
|
||||||
theme={{ colorScheme, ...globalStyle }}
|
messages={i18nUtil.getLocaleByCode(language.current)?.messages}
|
||||||
|
locale={language.current}
|
||||||
|
defaultLocale={LOCALES.ENGLISH.code}
|
||||||
>
|
>
|
||||||
<ColorSchemeProvider
|
<MantineProvider
|
||||||
colorScheme={colorScheme}
|
withGlobalStyles
|
||||||
toggleColorScheme={toggleColorScheme}
|
withNormalizeCSS
|
||||||
|
theme={{ colorScheme, ...globalStyle }}
|
||||||
>
|
>
|
||||||
<GlobalStyle />
|
<ColorSchemeProvider
|
||||||
<Notifications />
|
colorScheme={colorScheme}
|
||||||
<ModalsProvider>
|
toggleColorScheme={toggleColorScheme}
|
||||||
<ConfigContext.Provider
|
>
|
||||||
value={{
|
<GlobalStyle />
|
||||||
configVariables,
|
<Notifications />
|
||||||
refresh: async () => {
|
<ModalsProvider>
|
||||||
setConfigVariables(await configService.list());
|
<ConfigContext.Provider
|
||||||
},
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<UserContext.Provider
|
|
||||||
value={{
|
value={{
|
||||||
user,
|
configVariables,
|
||||||
refreshUser: async () => {
|
refresh: async () => {
|
||||||
const user = await userService.getCurrentUser();
|
setConfigVariables(await configService.list());
|
||||||
setUser(user);
|
|
||||||
return user;
|
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{excludeDefaultLayoutRoutes.includes(route) ? (
|
<UserContext.Provider
|
||||||
<Component {...pageProps} />
|
value={{
|
||||||
) : (
|
user,
|
||||||
<>
|
refreshUser: async () => {
|
||||||
<Header />
|
const user = await userService.getCurrentUser();
|
||||||
<Container>
|
setUser(user);
|
||||||
<Component {...pageProps} />
|
return user;
|
||||||
</Container>
|
},
|
||||||
</>
|
}}
|
||||||
)}
|
>
|
||||||
</UserContext.Provider>
|
{excludeDefaultLayoutRoutes.includes(route) ? (
|
||||||
</ConfigContext.Provider>
|
<Component {...pageProps} />
|
||||||
</ModalsProvider>
|
) : (
|
||||||
</ColorSchemeProvider>
|
<>
|
||||||
</MantineProvider>
|
<Header />
|
||||||
</IntlProvider>
|
<Container>
|
||||||
|
<Component {...pageProps} />
|
||||||
|
</Container>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</UserContext.Provider>
|
||||||
|
</ConfigContext.Provider>
|
||||||
|
</ModalsProvider>
|
||||||
|
</ColorSchemeProvider>
|
||||||
|
</MantineProvider>
|
||||||
|
</IntlProvider>
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export const config = {
|
|||||||
const { apiURL } = getConfig().serverRuntimeConfig;
|
const { apiURL } = getConfig().serverRuntimeConfig;
|
||||||
|
|
||||||
// A proxy to the API server only used in development.
|
// A proxy to the API server only used in development.
|
||||||
// In production this route gets overridden by nginx.
|
// In production this route gets overridden by Caddy.
|
||||||
export default (req: NextApiRequest, res: NextApiResponse) => {
|
export default (req: NextApiRequest, res: NextApiResponse) => {
|
||||||
httpProxyMiddleware(req, res, {
|
httpProxyMiddleware(req, res, {
|
||||||
headers: {
|
headers: {
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ const Share = ({ shareId }: { shareId: string }) => {
|
|||||||
modals,
|
modals,
|
||||||
t("share.error.visitor-limit-exceeded.title"),
|
t("share.error.visitor-limit-exceeded.title"),
|
||||||
t("share.error.visitor-limit-exceeded.description"),
|
t("share.error.visitor-limit-exceeded.description"),
|
||||||
|
"go-home",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
toast.axiosError(e);
|
toast.axiosError(e);
|
||||||
@@ -58,12 +59,14 @@ const Share = ({ shareId }: { shareId: string }) => {
|
|||||||
modals,
|
modals,
|
||||||
t("share.error.removed.title"),
|
t("share.error.removed.title"),
|
||||||
e.response.data.message,
|
e.response.data.message,
|
||||||
|
"go-home",
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
showErrorModal(
|
showErrorModal(
|
||||||
modals,
|
modals,
|
||||||
t("share.error.not-found.title"),
|
t("share.error.not-found.title"),
|
||||||
t("share.error.not-found.description"),
|
t("share.error.not-found.description"),
|
||||||
|
"go-home",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else if (error == "share_password_required") {
|
} else if (error == "share_password_required") {
|
||||||
@@ -71,7 +74,12 @@ const Share = ({ shareId }: { shareId: string }) => {
|
|||||||
} else if (error == "share_token_required") {
|
} else if (error == "share_token_required") {
|
||||||
getShareToken();
|
getShareToken();
|
||||||
} else {
|
} else {
|
||||||
showErrorModal(modals, t("common.error"), t("common.error.unknown"));
|
showErrorModal(
|
||||||
|
modals,
|
||||||
|
t("common.error"),
|
||||||
|
t("common.error.unknown"),
|
||||||
|
"go-home",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ const Share = ({ reverseShareToken }: { reverseShareToken: string }) => {
|
|||||||
modals,
|
modals,
|
||||||
"Invalid Link",
|
"Invalid Link",
|
||||||
"This link is invalid. Please check your link.",
|
"This link is invalid. Please check your link.",
|
||||||
|
"go-home",
|
||||||
);
|
);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -36,8 +36,10 @@ const signOut = async () => {
|
|||||||
const refreshAccessToken = async () => {
|
const refreshAccessToken = async () => {
|
||||||
try {
|
try {
|
||||||
const accessToken = getCookie("access_token") as string;
|
const accessToken = getCookie("access_token") as string;
|
||||||
|
|
||||||
|
// If the access token expires in less than 2 minutes refresh it
|
||||||
if (
|
if (
|
||||||
!accessToken ||
|
accessToken &&
|
||||||
(jose.decodeJwt(accessToken).exp ?? 0) * 1000 < Date.now() + 2 * 60 * 1000
|
(jose.decodeJwt(accessToken).exp ?? 0) * 1000 < Date.now() + 2 * 60 * 1000
|
||||||
) {
|
) {
|
||||||
await api.post("/auth/token");
|
await api.post("/auth/token");
|
||||||
|
|||||||
@@ -3,11 +3,22 @@ import { Global } from "@mantine/core";
|
|||||||
const GlobalStyle = () => {
|
const GlobalStyle = () => {
|
||||||
return (
|
return (
|
||||||
<Global
|
<Global
|
||||||
styles={() => ({
|
styles={(theme) => ({
|
||||||
a: {
|
a: {
|
||||||
color: "inherit",
|
color: "inherit",
|
||||||
textDecoration: "none",
|
textDecoration: "none",
|
||||||
},
|
},
|
||||||
|
"table.md, table.md th:nth-of-type(odd), table.md td:nth-of-type(odd)":
|
||||||
|
{
|
||||||
|
background:
|
||||||
|
theme.colorScheme == "dark"
|
||||||
|
? "rgba(50, 50, 50, 0.5)"
|
||||||
|
: "rgba(220, 220, 220, 0.5)",
|
||||||
|
},
|
||||||
|
"table.md td": {
|
||||||
|
paddingLeft: "0.5em",
|
||||||
|
paddingRight: "0.5em",
|
||||||
|
},
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
events {}
|
|
||||||
|
|
||||||
http {
|
|
||||||
server {
|
|
||||||
listen 3000;
|
|
||||||
client_max_body_size 100M;
|
|
||||||
|
|
||||||
location /api {
|
|
||||||
proxy_pass http://localhost:8080;
|
|
||||||
proxy_set_header X-Forwarded-Host $host:$server_port;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_pass http://localhost:3333;
|
|
||||||
proxy_set_header X-Forwarded-Host $host:$server_port;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share",
|
"name": "pingvin-share",
|
||||||
"version": "0.21.2",
|
"version": "0.22.2",
|
||||||
"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",
|
||||||
|
|||||||
Reference in New Issue
Block a user