Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
468b25828b | ||
|
|
9d4bb55a09 | ||
|
|
f78ffd69e7 | ||
|
|
17528f999a | ||
|
|
c8f05f2475 | ||
|
|
424e2564d5 | ||
|
|
18d8cbbbab | ||
|
|
c7dacb26e8 | ||
|
|
b6d98c7c42 | ||
|
|
c52ec71920 | ||
|
|
6cf5c66fe2 | ||
|
|
51478b6a9f | ||
|
|
6f45c3b1fb | ||
|
|
ff2dd81055 | ||
|
|
c26de4e881 | ||
|
|
4ef7ebb062 | ||
|
|
d870b5721a | ||
|
|
d8084e401d | ||
|
|
e1a5d19544 | ||
|
|
4ce64206be | ||
|
|
77eef187b7 | ||
|
|
c7138bcf5d |
40
CHANGELOG.md
40
CHANGELOG.md
@@ -1,3 +1,43 @@
|
|||||||
|
## [1.5.0](https://github.com/stonith404/pingvin-share/compare/v1.4.0...v1.5.0) (2024-11-24)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **share:** add share ID length setting ([#677](https://github.com/stonith404/pingvin-share/issues/677)) ([9d4bb55](https://github.com/stonith404/pingvin-share/commit/9d4bb55a0945450f8a42c212d7f23983db38f37f))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* totp can't be enabled if user is a ldap user ([c8f05f2](https://github.com/stonith404/pingvin-share/commit/c8f05f2475a5a54550cf64ef57c8b612580273be))
|
||||||
|
|
||||||
|
## [1.4.0](https://github.com/stonith404/pingvin-share/compare/v1.3.0...v1.4.0) (2024-11-17)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* add "creatorEmail" config bariable to share recipient email message ([c7dacb2](https://github.com/stonith404/pingvin-share/commit/c7dacb26e87504a1c5e6b0d87cdcd5ed91b9cdf5))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* remote arbitrary file overwrite on file upload endpoint ([6cf5c66](https://github.com/stonith404/pingvin-share/commit/6cf5c66fe2eda1e0a525edf7440d047fe2f0e35b))
|
||||||
|
|
||||||
|
## [1.3.0](https://github.com/stonith404/pingvin-share/compare/v1.2.4...v1.3.0) (2024-11-14)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* add 'secureCookies' configuration variable to explicitly set the secure flag and prevent confusion ([4ce6420](https://github.com/stonith404/pingvin-share/commit/4ce64206be7440a99299e1ed238ced7408c0563d))
|
||||||
|
* add confirm dialog for leaving the page if an upload is in progress ([d8084e4](https://github.com/stonith404/pingvin-share/commit/d8084e401d7572b2d6e38ffa20cb678a0fb0e615))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* improve share completed dialog redirection for reverse shares ([4ef7ebb](https://github.com/stonith404/pingvin-share/commit/4ef7ebb0622f16d2d2c4d114b5fc15298e2ba24f))
|
||||||
|
* prevent deletion of last admin account ([e1a5d19](https://github.com/stonith404/pingvin-share/commit/e1a5d195448e3d741b77fb982ce515489a360562))
|
||||||
|
* throw error if no disk space is left ([c26de4e](https://github.com/stonith404/pingvin-share/commit/c26de4e881edfe6c7db617c0aeba89871397ebe2))
|
||||||
|
* use current window url instead of app url in frontend ([6f45c3b](https://github.com/stonith404/pingvin-share/commit/6f45c3b1fbf4a95b29e5742878b55a1afa0b8886))
|
||||||
|
|
||||||
## [1.2.4](https://github.com/stonith404/pingvin-share/compare/v1.2.3...v1.2.4) (2024-10-24)
|
## [1.2.4](https://github.com/stonith404/pingvin-share/compare/v1.2.3...v1.2.4) (2024-10-24)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
57
backend/package-lock.json
generated
57
backend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-backend",
|
"name": "pingvin-share-backend",
|
||||||
"version": "1.2.4",
|
"version": "1.5.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pingvin-share-backend",
|
"name": "pingvin-share-backend",
|
||||||
"version": "1.2.4",
|
"version": "1.5.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nestjs/cache-manager": "^2.2.2",
|
"@nestjs/cache-manager": "^2.2.2",
|
||||||
"@nestjs/common": "^10.4.3",
|
"@nestjs/common": "^10.4.3",
|
||||||
@@ -63,6 +63,7 @@
|
|||||||
"@types/qrcode-svg": "^1.1.5",
|
"@types/qrcode-svg": "^1.1.5",
|
||||||
"@types/sharp": "^0.32.0",
|
"@types/sharp": "^0.32.0",
|
||||||
"@types/supertest": "^6.0.2",
|
"@types/supertest": "^6.0.2",
|
||||||
|
"@types/uuid": "^10.0.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.6.0",
|
"@typescript-eslint/eslint-plugin": "^8.6.0",
|
||||||
"@typescript-eslint/parser": "^8.6.0",
|
"@typescript-eslint/parser": "^8.6.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
@@ -1240,13 +1241,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@nestjs/platform-express": {
|
"node_modules/@nestjs/platform-express": {
|
||||||
"version": "10.4.3",
|
"version": "10.4.8",
|
||||||
"resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.4.3.tgz",
|
"resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.4.8.tgz",
|
||||||
"integrity": "sha512-ss7gkofVm3eO+1P9iRhmGq6Xcjg+mIN3dWisKJZYelSV+msb0QpJmqChLvWjLkWtlqDnx915FKUk0IzCa0TVzw==",
|
"integrity": "sha512-bDz6wQD9LzGeK6uAAFv9l9AbrpyPwHStNObL8J95HBAXJesOblVlQMBAhdfci1YVMQUfOc36qq0IpRSa1II9Mg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"body-parser": "1.20.3",
|
"body-parser": "1.20.3",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"express": "4.21.0",
|
"express": "4.21.1",
|
||||||
"multer": "1.4.4-lts.1",
|
"multer": "1.4.4-lts.1",
|
||||||
"tslib": "2.7.0"
|
"tslib": "2.7.0"
|
||||||
},
|
},
|
||||||
@@ -1952,6 +1953,12 @@
|
|||||||
"@types/superagent": "^8.1.0"
|
"@types/superagent": "^8.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/uuid": {
|
||||||
|
"version": "10.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz",
|
||||||
|
"integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/@types/validator": {
|
"node_modules/@types/validator": {
|
||||||
"version": "13.11.10",
|
"version": "13.11.10",
|
||||||
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz",
|
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz",
|
||||||
@@ -3376,33 +3383,25 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cookie": {
|
"node_modules/cookie": {
|
||||||
"version": "0.6.0",
|
"version": "0.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
|
||||||
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
|
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cookie-parser": {
|
"node_modules/cookie-parser": {
|
||||||
"version": "1.4.6",
|
"version": "1.4.7",
|
||||||
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz",
|
||||||
"integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
|
"integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cookie": "0.4.1",
|
"cookie": "0.7.2",
|
||||||
"cookie-signature": "1.0.6"
|
"cookie-signature": "1.0.6"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.8.0"
|
"node": ">= 0.8.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cookie-parser/node_modules/cookie": {
|
|
||||||
"version": "0.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
|
|
||||||
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/cookie-signature": {
|
"node_modules/cookie-signature": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
@@ -4157,16 +4156,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/express": {
|
"node_modules/express": {
|
||||||
"version": "4.21.0",
|
"version": "4.21.1",
|
||||||
"resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz",
|
"resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
|
||||||
"integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
|
"integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"accepts": "~1.3.8",
|
"accepts": "~1.3.8",
|
||||||
"array-flatten": "1.1.1",
|
"array-flatten": "1.1.1",
|
||||||
"body-parser": "1.20.3",
|
"body-parser": "1.20.3",
|
||||||
"content-disposition": "0.5.4",
|
"content-disposition": "0.5.4",
|
||||||
"content-type": "~1.0.4",
|
"content-type": "~1.0.4",
|
||||||
"cookie": "0.6.0",
|
"cookie": "0.7.1",
|
||||||
"cookie-signature": "1.0.6",
|
"cookie-signature": "1.0.6",
|
||||||
"debug": "2.6.9",
|
"debug": "2.6.9",
|
||||||
"depd": "2.0.0",
|
"depd": "2.0.0",
|
||||||
@@ -4197,6 +4196,14 @@
|
|||||||
"node": ">= 0.10.0"
|
"node": ">= 0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/express/node_modules/cookie": {
|
||||||
|
"version": "0.7.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
|
||||||
|
"integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/express/node_modules/debug": {
|
"node_modules/express/node_modules/debug": {
|
||||||
"version": "2.6.9",
|
"version": "2.6.9",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-backend",
|
"name": "pingvin-share-backend",
|
||||||
"version": "1.2.4",
|
"version": "1.5.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "nest build",
|
"build": "nest build",
|
||||||
"dev": "cross-env NODE_ENV=development nest start --watch",
|
"dev": "cross-env NODE_ENV=development nest start --watch",
|
||||||
@@ -68,6 +68,7 @@
|
|||||||
"@types/qrcode-svg": "^1.1.5",
|
"@types/qrcode-svg": "^1.1.5",
|
||||||
"@types/sharp": "^0.32.0",
|
"@types/sharp": "^0.32.0",
|
||||||
"@types/supertest": "^6.0.2",
|
"@types/supertest": "^6.0.2",
|
||||||
|
"@types/uuid": "^10.0.0",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.6.0",
|
"@typescript-eslint/eslint-plugin": "^8.6.0",
|
||||||
"@typescript-eslint/parser": "^8.6.0",
|
"@typescript-eslint/parser": "^8.6.0",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
|
|||||||
@@ -20,6 +20,10 @@ const configVariables: ConfigVariables = {
|
|||||||
defaultValue: "http://localhost:3000",
|
defaultValue: "http://localhost:3000",
|
||||||
secret: false,
|
secret: false,
|
||||||
},
|
},
|
||||||
|
secureCookies: {
|
||||||
|
type: "boolean",
|
||||||
|
defaultValue: "false",
|
||||||
|
},
|
||||||
showHomePage: {
|
showHomePage: {
|
||||||
type: "boolean",
|
type: "boolean",
|
||||||
defaultValue: "true",
|
defaultValue: "true",
|
||||||
@@ -47,6 +51,11 @@ const configVariables: ConfigVariables = {
|
|||||||
defaultValue: "0",
|
defaultValue: "0",
|
||||||
secret: false,
|
secret: false,
|
||||||
},
|
},
|
||||||
|
shareIdLength: {
|
||||||
|
type: "number",
|
||||||
|
defaultValue: "8",
|
||||||
|
secret: false,
|
||||||
|
},
|
||||||
maxSize: {
|
maxSize: {
|
||||||
type: "number",
|
type: "number",
|
||||||
defaultValue: "1000000000",
|
defaultValue: "1000000000",
|
||||||
@@ -80,7 +89,7 @@ const configVariables: ConfigVariables = {
|
|||||||
shareRecipientsMessage: {
|
shareRecipientsMessage: {
|
||||||
type: "text",
|
type: "text",
|
||||||
defaultValue:
|
defaultValue:
|
||||||
"Hey!\n\n{creator} shared some files with you, view or download the files with this link: {shareUrl}\n\nThe share will expire {expires}.\n\nNote: {desc}\n\nShared securely with Pingvin Share 🐧",
|
"Hey!\n\n{creator} ({creatorEmail}) shared some files with you, view or download the files with this link: {shareUrl}\n\nThe share will expire {expires}.\n\nNote: {desc}\n\nShared securely with Pingvin Share 🐧",
|
||||||
},
|
},
|
||||||
reverseShareSubject: {
|
reverseShareSubject: {
|
||||||
type: "string",
|
type: "string",
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ export class AuthController {
|
|||||||
request.cookies.access_token,
|
request.cookies.access_token,
|
||||||
);
|
);
|
||||||
|
|
||||||
const isSecure = this.config.get("general.appUrl").startsWith("https");
|
const isSecure = this.config.get("general.secureCookies");
|
||||||
response.cookie("access_token", "", {
|
response.cookie("access_token", "", {
|
||||||
maxAge: -1,
|
maxAge: -1,
|
||||||
secure: isSecure,
|
secure: isSecure,
|
||||||
|
|||||||
@@ -334,7 +334,7 @@ export class AuthService {
|
|||||||
refreshToken?: string,
|
refreshToken?: string,
|
||||||
accessToken?: string,
|
accessToken?: string,
|
||||||
) {
|
) {
|
||||||
const isSecure = this.config.get("general.appUrl").startsWith("https");
|
const isSecure = this.config.get("general.secureCookies");
|
||||||
if (accessToken)
|
if (accessToken)
|
||||||
response.cookie("access_token", accessToken, {
|
response.cookie("access_token", accessToken, {
|
||||||
sameSite: "lax",
|
sameSite: "lax",
|
||||||
@@ -368,4 +368,12 @@ export class AuthService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async verifyPassword(user: User, password: string) {
|
||||||
|
if (!user.password && this.config.get("ldap.enabled")) {
|
||||||
|
return !!this.ldapService.authenticateUser(user.username, password);
|
||||||
|
}
|
||||||
|
|
||||||
|
return argon.verify(user.password, password);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import {
|
|||||||
UnauthorizedException,
|
UnauthorizedException,
|
||||||
} from "@nestjs/common";
|
} from "@nestjs/common";
|
||||||
import { User } from "@prisma/client";
|
import { User } from "@prisma/client";
|
||||||
import * as argon from "argon2";
|
|
||||||
import { authenticator, totp } from "otplib";
|
import { authenticator, totp } from "otplib";
|
||||||
import * as qrcode from "qrcode-svg";
|
import * as qrcode from "qrcode-svg";
|
||||||
import { ConfigService } from "src/config/config.service";
|
import { ConfigService } from "src/config/config.service";
|
||||||
@@ -65,7 +64,7 @@ export class AuthTotpService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async enableTotp(user: User, password: string) {
|
async enableTotp(user: User, password: string) {
|
||||||
if (!(await argon.verify(user.password, password)))
|
if (!this.authService.verifyPassword(user, password))
|
||||||
throw new ForbiddenException("Invalid password");
|
throw new ForbiddenException("Invalid password");
|
||||||
|
|
||||||
// Check if we have a secret already
|
// Check if we have a secret already
|
||||||
@@ -106,9 +105,8 @@ export class AuthTotpService {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Maybe require a token to verify that the user who started enabling totp is the one who is verifying it?
|
|
||||||
async verifyTotp(user: User, password: string, code: string) {
|
async verifyTotp(user: User, password: string, code: string) {
|
||||||
if (!(await argon.verify(user.password, password)))
|
if (!this.authService.verifyPassword(user, password))
|
||||||
throw new ForbiddenException("Invalid password");
|
throw new ForbiddenException("Invalid password");
|
||||||
|
|
||||||
const { totpSecret } = await this.prisma.user.findUnique({
|
const { totpSecret } = await this.prisma.user.findUnique({
|
||||||
@@ -137,7 +135,7 @@ export class AuthTotpService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async disableTotp(user: User, password: string, code: string) {
|
async disableTotp(user: User, password: string, code: string) {
|
||||||
if (!(await argon.verify(user.password, password)))
|
if (!this.authService.verifyPassword(user, password))
|
||||||
throw new ForbiddenException("Invalid password");
|
throw new ForbiddenException("Invalid password");
|
||||||
|
|
||||||
const { totpSecret } = await this.prisma.user.findUnique({
|
const { totpSecret } = await this.prisma.user.findUnique({
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ export class EmailService {
|
|||||||
.get("email.shareRecipientsMessage")
|
.get("email.shareRecipientsMessage")
|
||||||
.replaceAll("\\n", "\n")
|
.replaceAll("\\n", "\n")
|
||||||
.replaceAll("{creator}", creator?.username ?? "Someone")
|
.replaceAll("{creator}", creator?.username ?? "Someone")
|
||||||
|
.replaceAll("{creatorEmail}", creator?.email ?? "")
|
||||||
.replaceAll("{shareUrl}", shareUrl)
|
.replaceAll("{shareUrl}", shareUrl)
|
||||||
.replaceAll("{desc}", description ?? "No description")
|
.replaceAll("{desc}", description ?? "No description")
|
||||||
.replaceAll(
|
.replaceAll(
|
||||||
|
|||||||
@@ -3,21 +3,23 @@ import {
|
|||||||
HttpException,
|
HttpException,
|
||||||
HttpStatus,
|
HttpStatus,
|
||||||
Injectable,
|
Injectable,
|
||||||
|
InternalServerErrorException,
|
||||||
NotFoundException,
|
NotFoundException,
|
||||||
} from "@nestjs/common";
|
} from "@nestjs/common";
|
||||||
import { JwtService } from "@nestjs/jwt";
|
import { JwtService } from "@nestjs/jwt";
|
||||||
import * as crypto from "crypto";
|
import * as crypto from "crypto";
|
||||||
import * as fs from "fs";
|
import { createReadStream } from "fs";
|
||||||
|
import * as fs from "fs/promises";
|
||||||
import * as mime from "mime-types";
|
import * as mime from "mime-types";
|
||||||
import { ConfigService } from "src/config/config.service";
|
import { ConfigService } from "src/config/config.service";
|
||||||
import { PrismaService } from "src/prisma/prisma.service";
|
import { PrismaService } from "src/prisma/prisma.service";
|
||||||
|
import { validate as isValidUUID } from "uuid";
|
||||||
import { SHARE_DIRECTORY } from "../constants";
|
import { SHARE_DIRECTORY } from "../constants";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class FileService {
|
export class FileService {
|
||||||
constructor(
|
constructor(
|
||||||
private prisma: PrismaService,
|
private prisma: PrismaService,
|
||||||
private jwtService: JwtService,
|
|
||||||
private config: ConfigService,
|
private config: ConfigService,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@@ -27,7 +29,11 @@ export class FileService {
|
|||||||
file: { id?: string; name: string },
|
file: { id?: string; name: string },
|
||||||
shareId: string,
|
shareId: string,
|
||||||
) {
|
) {
|
||||||
if (!file.id) file.id = crypto.randomUUID();
|
if (!file.id) {
|
||||||
|
file.id = crypto.randomUUID();
|
||||||
|
} else if (!isValidUUID(file.id)) {
|
||||||
|
throw new BadRequestException("Invalid file ID format");
|
||||||
|
}
|
||||||
|
|
||||||
const share = await this.prisma.share.findUnique({
|
const share = await this.prisma.share.findUnique({
|
||||||
where: { id: shareId },
|
where: { id: shareId },
|
||||||
@@ -39,8 +45,8 @@ export class FileService {
|
|||||||
|
|
||||||
let diskFileSize: number;
|
let diskFileSize: number;
|
||||||
try {
|
try {
|
||||||
diskFileSize = fs.statSync(
|
diskFileSize = (
|
||||||
`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`,
|
await fs.stat(`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`)
|
||||||
).size;
|
).size;
|
||||||
} catch {
|
} catch {
|
||||||
diskFileSize = 0;
|
diskFileSize = 0;
|
||||||
@@ -59,6 +65,13 @@ export class FileService {
|
|||||||
|
|
||||||
const buffer = Buffer.from(data, "base64");
|
const buffer = Buffer.from(data, "base64");
|
||||||
|
|
||||||
|
// Check if there is enough space on the server
|
||||||
|
const space = await fs.statfs(SHARE_DIRECTORY);
|
||||||
|
const availableSpace = space.bavail * space.bsize;
|
||||||
|
if (availableSpace < buffer.byteLength) {
|
||||||
|
throw new InternalServerErrorException("Not enough space on the server");
|
||||||
|
}
|
||||||
|
|
||||||
// Check if share size limit is exceeded
|
// Check if share size limit is exceeded
|
||||||
const fileSizeSum = share.files.reduce(
|
const fileSizeSum = share.files.reduce(
|
||||||
(n, { size }) => n + parseInt(size),
|
(n, { size }) => n + parseInt(size),
|
||||||
@@ -78,19 +91,19 @@ export class FileService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fs.appendFileSync(
|
await fs.appendFile(
|
||||||
`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`,
|
`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`,
|
||||||
buffer,
|
buffer,
|
||||||
);
|
);
|
||||||
|
|
||||||
const isLastChunk = chunk.index == chunk.total - 1;
|
const isLastChunk = chunk.index == chunk.total - 1;
|
||||||
if (isLastChunk) {
|
if (isLastChunk) {
|
||||||
fs.renameSync(
|
await fs.rename(
|
||||||
`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`,
|
`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`,
|
||||||
`${SHARE_DIRECTORY}/${shareId}/${file.id}`,
|
`${SHARE_DIRECTORY}/${shareId}/${file.id}`,
|
||||||
);
|
);
|
||||||
const fileSize = fs.statSync(
|
const fileSize = (
|
||||||
`${SHARE_DIRECTORY}/${shareId}/${file.id}`,
|
await fs.stat(`${SHARE_DIRECTORY}/${shareId}/${file.id}`)
|
||||||
).size;
|
).size;
|
||||||
await this.prisma.file.create({
|
await this.prisma.file.create({
|
||||||
data: {
|
data: {
|
||||||
@@ -112,7 +125,7 @@ export class FileService {
|
|||||||
|
|
||||||
if (!fileMetaData) throw new NotFoundException("File not found");
|
if (!fileMetaData) throw new NotFoundException("File not found");
|
||||||
|
|
||||||
const file = fs.createReadStream(`${SHARE_DIRECTORY}/${shareId}/${fileId}`);
|
const file = createReadStream(`${SHARE_DIRECTORY}/${shareId}/${fileId}`);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
metaData: {
|
metaData: {
|
||||||
@@ -131,19 +144,19 @@ export class FileService {
|
|||||||
|
|
||||||
if (!fileMetaData) throw new NotFoundException("File not found");
|
if (!fileMetaData) throw new NotFoundException("File not found");
|
||||||
|
|
||||||
fs.unlinkSync(`${SHARE_DIRECTORY}/${shareId}/${fileId}`);
|
await fs.unlink(`${SHARE_DIRECTORY}/${shareId}/${fileId}`);
|
||||||
|
|
||||||
await this.prisma.file.delete({ where: { id: fileId } });
|
await this.prisma.file.delete({ where: { id: fileId } });
|
||||||
}
|
}
|
||||||
|
|
||||||
async deleteAllFiles(shareId: string) {
|
async deleteAllFiles(shareId: string) {
|
||||||
await fs.promises.rm(`${SHARE_DIRECTORY}/${shareId}`, {
|
await fs.rm(`${SHARE_DIRECTORY}/${shareId}`, {
|
||||||
recursive: true,
|
recursive: true,
|
||||||
force: true,
|
force: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getZip(shareId: string) {
|
getZip(shareId: string) {
|
||||||
return fs.createReadStream(`${SHARE_DIRECTORY}/${shareId}/archive.zip`);
|
return createReadStream(`${SHARE_DIRECTORY}/${shareId}/archive.zip`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import {
|
|||||||
Controller,
|
Controller,
|
||||||
Delete,
|
Delete,
|
||||||
Get,
|
Get,
|
||||||
|
HttpCode,
|
||||||
Param,
|
Param,
|
||||||
Patch,
|
Patch,
|
||||||
Post,
|
Post,
|
||||||
@@ -14,12 +15,12 @@ import { Response } from "express";
|
|||||||
import { GetUser } from "src/auth/decorator/getUser.decorator";
|
import { GetUser } from "src/auth/decorator/getUser.decorator";
|
||||||
import { AdministratorGuard } from "src/auth/guard/isAdmin.guard";
|
import { AdministratorGuard } from "src/auth/guard/isAdmin.guard";
|
||||||
import { JwtGuard } from "src/auth/guard/jwt.guard";
|
import { JwtGuard } from "src/auth/guard/jwt.guard";
|
||||||
|
import { ConfigService } from "../config/config.service";
|
||||||
import { CreateUserDTO } from "./dto/createUser.dto";
|
import { CreateUserDTO } from "./dto/createUser.dto";
|
||||||
import { UpdateOwnUserDTO } from "./dto/updateOwnUser.dto";
|
import { UpdateOwnUserDTO } from "./dto/updateOwnUser.dto";
|
||||||
import { UpdateUserDto } from "./dto/updateUser.dto";
|
import { UpdateUserDto } from "./dto/updateUser.dto";
|
||||||
import { UserDTO } from "./dto/user.dto";
|
import { UserDTO } from "./dto/user.dto";
|
||||||
import { UserSevice } from "./user.service";
|
import { UserSevice } from "./user.service";
|
||||||
import { ConfigService } from "../config/config.service";
|
|
||||||
|
|
||||||
@Controller("users")
|
@Controller("users")
|
||||||
export class UserController {
|
export class UserController {
|
||||||
@@ -48,12 +49,15 @@ export class UserController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Delete("me")
|
@Delete("me")
|
||||||
|
@HttpCode(204)
|
||||||
@UseGuards(JwtGuard)
|
@UseGuards(JwtGuard)
|
||||||
async deleteCurrentUser(
|
async deleteCurrentUser(
|
||||||
@GetUser() user: User,
|
@GetUser() user: User,
|
||||||
@Res({ passthrough: true }) response: Response,
|
@Res({ passthrough: true }) response: Response,
|
||||||
) {
|
) {
|
||||||
const isSecure = this.config.get("general.appUrl").startsWith("https");
|
await this.userService.delete(user.id);
|
||||||
|
|
||||||
|
const isSecure = this.config.get("general.secureCookies");
|
||||||
|
|
||||||
response.cookie("access_token", "accessToken", {
|
response.cookie("access_token", "accessToken", {
|
||||||
maxAge: -1,
|
maxAge: -1,
|
||||||
@@ -65,7 +69,6 @@ export class UserController {
|
|||||||
maxAge: -1,
|
maxAge: -1,
|
||||||
secure: isSecure,
|
secure: isSecure,
|
||||||
});
|
});
|
||||||
return new UserDTO().from(await this.userService.delete(user.id));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Global user operations
|
// Global user operations
|
||||||
|
|||||||
@@ -2,15 +2,15 @@ import { BadRequestException, Injectable, Logger } from "@nestjs/common";
|
|||||||
import { PrismaClientKnownRequestError } from "@prisma/client/runtime/library";
|
import { PrismaClientKnownRequestError } from "@prisma/client/runtime/library";
|
||||||
import * as argon from "argon2";
|
import * as argon from "argon2";
|
||||||
import * as crypto from "crypto";
|
import * as crypto from "crypto";
|
||||||
|
import { Entry } from "ldapts";
|
||||||
|
import { AuthSignInDTO } from "src/auth/dto/authSignIn.dto";
|
||||||
import { EmailService } from "src/email/email.service";
|
import { EmailService } from "src/email/email.service";
|
||||||
import { PrismaService } from "src/prisma/prisma.service";
|
import { PrismaService } from "src/prisma/prisma.service";
|
||||||
|
import { inspect } from "util";
|
||||||
|
import { ConfigService } from "../config/config.service";
|
||||||
import { FileService } from "../file/file.service";
|
import { FileService } from "../file/file.service";
|
||||||
import { CreateUserDTO } from "./dto/createUser.dto";
|
import { CreateUserDTO } from "./dto/createUser.dto";
|
||||||
import { UpdateUserDto } from "./dto/updateUser.dto";
|
import { UpdateUserDto } from "./dto/updateUser.dto";
|
||||||
import { ConfigService } from "../config/config.service";
|
|
||||||
import { Entry } from "ldapts";
|
|
||||||
import { AuthSignInDTO } from "src/auth/dto/authSignIn.dto";
|
|
||||||
import { inspect } from "util";
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class UserSevice {
|
export class UserSevice {
|
||||||
@@ -89,6 +89,16 @@ export class UserSevice {
|
|||||||
});
|
});
|
||||||
if (!user) throw new BadRequestException("User not found");
|
if (!user) throw new BadRequestException("User not found");
|
||||||
|
|
||||||
|
if (user.isAdmin) {
|
||||||
|
const userCount = await this.prisma.user.count({
|
||||||
|
where: { isAdmin: true },
|
||||||
|
});
|
||||||
|
|
||||||
|
if (userCount === 1) {
|
||||||
|
throw new BadRequestException("Cannot delete the last admin user");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
user.shares.map((share) => this.fileService.deleteAllFiles(share.id)),
|
user.shares.map((share) => this.fileService.deleteAllFiles(share.id)),
|
||||||
);
|
);
|
||||||
|
|||||||
44
frontend/package-lock.json
generated
44
frontend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-frontend",
|
"name": "pingvin-share-frontend",
|
||||||
"version": "1.2.4",
|
"version": "1.5.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pingvin-share-frontend",
|
"name": "pingvin-share-frontend",
|
||||||
"version": "1.2.4",
|
"version": "1.5.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.13.3",
|
"@emotion/react": "^11.13.3",
|
||||||
"@emotion/server": "^11.11.0",
|
"@emotion/server": "^11.11.0",
|
||||||
@@ -4357,20 +4357,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cookie": {
|
"node_modules/cookie": {
|
||||||
"version": "0.6.0",
|
"version": "0.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
|
||||||
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
|
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cookies-next": {
|
"node_modules/cookies-next": {
|
||||||
"version": "4.2.1",
|
"version": "4.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.3.0.tgz",
|
||||||
"integrity": "sha512-qsjtZ8TLlxCSX2JphMQNhkm3V3zIMQ05WrLkBKBwu50npBbBfiZWIdmSMzBGcdGKfMK19E0PIitTfRFAdMGHXg==",
|
"integrity": "sha512-XxeCwLR30cWwRd94sa9X5lRCDLVujtx73tv+N0doQCFIDl83fuuYdxbu/WQUt9aSV7EJx7bkMvJldjvzuFqr4w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/cookie": "^0.6.0",
|
"@types/cookie": "^0.6.0",
|
||||||
"cookie": "^0.6.0"
|
"cookie": "^0.7.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/core-js-compat": {
|
"node_modules/core-js-compat": {
|
||||||
@@ -8262,9 +8262,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rollup": {
|
"node_modules/rollup": {
|
||||||
"version": "2.79.1",
|
"version": "2.79.2",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
|
||||||
"integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
|
"integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
},
|
},
|
||||||
@@ -13067,17 +13067,17 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cookie": {
|
"cookie": {
|
||||||
"version": "0.6.0",
|
"version": "0.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
|
||||||
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
|
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="
|
||||||
},
|
},
|
||||||
"cookies-next": {
|
"cookies-next": {
|
||||||
"version": "4.2.1",
|
"version": "4.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.3.0.tgz",
|
||||||
"integrity": "sha512-qsjtZ8TLlxCSX2JphMQNhkm3V3zIMQ05WrLkBKBwu50npBbBfiZWIdmSMzBGcdGKfMK19E0PIitTfRFAdMGHXg==",
|
"integrity": "sha512-XxeCwLR30cWwRd94sa9X5lRCDLVujtx73tv+N0doQCFIDl83fuuYdxbu/WQUt9aSV7EJx7bkMvJldjvzuFqr4w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/cookie": "^0.6.0",
|
"@types/cookie": "^0.6.0",
|
||||||
"cookie": "^0.6.0"
|
"cookie": "^0.7.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"core-js-compat": {
|
"core-js-compat": {
|
||||||
@@ -15850,9 +15850,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rollup": {
|
"rollup": {
|
||||||
"version": "2.79.1",
|
"version": "2.79.2",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
|
||||||
"integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
|
"integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"fsevents": "~2.3.2"
|
"fsevents": "~2.3.2"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share-frontend",
|
"name": "pingvin-share-frontend",
|
||||||
"version": "1.2.4",
|
"version": "1.5.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
|
|||||||
@@ -5,10 +5,9 @@ import { translateOutsideContext } from "../../hooks/useTranslate.hook";
|
|||||||
const showReverseShareLinkModal = (
|
const showReverseShareLinkModal = (
|
||||||
modals: ModalsContextProps,
|
modals: ModalsContextProps,
|
||||||
reverseShareToken: string,
|
reverseShareToken: string,
|
||||||
appUrl: string,
|
|
||||||
) => {
|
) => {
|
||||||
const t = translateOutsideContext();
|
const t = translateOutsideContext();
|
||||||
const link = `${appUrl}/upload/${reverseShareToken}`;
|
const link = `${window.location.origin}/upload/${reverseShareToken}`;
|
||||||
return modals.openModal({
|
return modals.openModal({
|
||||||
title: t("account.reverseShares.modal.reverse-share-link"),
|
title: t("account.reverseShares.modal.reverse-share-link"),
|
||||||
children: (
|
children: (
|
||||||
|
|||||||
@@ -11,11 +11,10 @@ import CopyTextField from "../upload/CopyTextField";
|
|||||||
const showShareInformationsModal = (
|
const showShareInformationsModal = (
|
||||||
modals: ModalsContextProps,
|
modals: ModalsContextProps,
|
||||||
share: MyShare,
|
share: MyShare,
|
||||||
appUrl: string,
|
|
||||||
maxShareSize: number,
|
maxShareSize: number,
|
||||||
) => {
|
) => {
|
||||||
const t = translateOutsideContext();
|
const t = translateOutsideContext();
|
||||||
const link = `${appUrl}/s/${share.id}`;
|
const link = `${window.location.origin}/s/${share.id}`;
|
||||||
|
|
||||||
const formattedShareSize = byteToHumanSizeString(share.size);
|
const formattedShareSize = byteToHumanSizeString(share.size);
|
||||||
const formattedMaxShareSize = byteToHumanSizeString(maxShareSize);
|
const formattedMaxShareSize = byteToHumanSizeString(maxShareSize);
|
||||||
|
|||||||
@@ -2,13 +2,9 @@ import { Stack, TextInput } from "@mantine/core";
|
|||||||
import { ModalsContextProps } from "@mantine/modals/lib/context";
|
import { ModalsContextProps } from "@mantine/modals/lib/context";
|
||||||
import { translateOutsideContext } from "../../hooks/useTranslate.hook";
|
import { translateOutsideContext } from "../../hooks/useTranslate.hook";
|
||||||
|
|
||||||
const showShareLinkModal = (
|
const showShareLinkModal = (modals: ModalsContextProps, shareId: string) => {
|
||||||
modals: ModalsContextProps,
|
|
||||||
shareId: string,
|
|
||||||
appUrl: string,
|
|
||||||
) => {
|
|
||||||
const t = translateOutsideContext();
|
const t = translateOutsideContext();
|
||||||
const link = `${appUrl}/s/${shareId}`;
|
const link = `${window.location.origin}/s/${shareId}`;
|
||||||
return modals.openModal({
|
return modals.openModal({
|
||||||
title: t("account.shares.modal.share-link"),
|
title: t("account.shares.modal.share-link"),
|
||||||
children: (
|
children: (
|
||||||
|
|||||||
@@ -89,15 +89,11 @@ const ManageShareTable = ({
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (window.isSecureContext) {
|
if (window.isSecureContext) {
|
||||||
clipboard.copy(
|
clipboard.copy(
|
||||||
`${config.get("general.appUrl")}/s/${share.id}`,
|
`${window.location.origin}/s/${share.id}`,
|
||||||
);
|
);
|
||||||
toast.success(t("common.notify.copied"));
|
toast.success(t("common.notify.copied"));
|
||||||
} else {
|
} else {
|
||||||
showShareLinkModal(
|
showShareLinkModal(modals, share.id);
|
||||||
modals,
|
|
||||||
share.id,
|
|
||||||
config.get("general.appUrl"),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -128,9 +128,7 @@ const SignInForm = ({ redirectPath }: { redirectPath: string }) => {
|
|||||||
config.get("oauth.disablePassword")
|
config.get("oauth.disablePassword")
|
||||||
) {
|
) {
|
||||||
setIsRedirectingToOauthProvider(true);
|
setIsRedirectingToOauthProvider(true);
|
||||||
router.push(
|
router.push(getOAuthUrl(window.location.origin, providers.data[0]));
|
||||||
getOAuthUrl(config.get("general.appUrl"), providers.data[0]),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(toast.axiosError);
|
.catch(toast.axiosError);
|
||||||
@@ -208,7 +206,7 @@ const SignInForm = ({ redirectPath }: { redirectPath: string }) => {
|
|||||||
key={provider}
|
key={provider}
|
||||||
component="a"
|
component="a"
|
||||||
title={t(`signIn.oauth.${provider}`)}
|
title={t(`signIn.oauth.${provider}`)}
|
||||||
href={getOAuthUrl(config.get("general.appUrl"), provider)}
|
href={getOAuthUrl(window.location.origin, provider)}
|
||||||
variant="light"
|
variant="light"
|
||||||
fullWidth
|
fullWidth
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ const FileList = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const copyFileLink = (file: FileMetaData) => {
|
const copyFileLink = (file: FileMetaData) => {
|
||||||
const link = `${config.get("general.appUrl")}/api/shares/${
|
const link = `${window.location.origin}/api/shares/${
|
||||||
share.id
|
share.id
|
||||||
}/files/${file.id}`;
|
}/files/${file.id}`;
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import CopyTextField from "../CopyTextField";
|
|||||||
const showCompletedUploadModal = (
|
const showCompletedUploadModal = (
|
||||||
modals: ModalsContextProps,
|
modals: ModalsContextProps,
|
||||||
share: CompletedShare,
|
share: CompletedShare,
|
||||||
appUrl: string,
|
|
||||||
) => {
|
) => {
|
||||||
const t = translateOutsideContext();
|
const t = translateOutsideContext();
|
||||||
return modals.openModal({
|
return modals.openModal({
|
||||||
@@ -21,16 +20,18 @@ const showCompletedUploadModal = (
|
|||||||
withCloseButton: false,
|
withCloseButton: false,
|
||||||
closeOnEscape: false,
|
closeOnEscape: false,
|
||||||
title: t("upload.modal.completed.share-ready"),
|
title: t("upload.modal.completed.share-ready"),
|
||||||
children: <Body share={share} appUrl={appUrl} />,
|
children: <Body share={share} />,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const Body = ({ share, appUrl }: { share: CompletedShare; appUrl: string }) => {
|
const Body = ({ share }: { share: CompletedShare }) => {
|
||||||
const modals = useModals();
|
const modals = useModals();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const t = useTranslate();
|
const t = useTranslate();
|
||||||
|
|
||||||
const link = `${appUrl}/s/${share.id}`;
|
const isReverseShare = !!router.query["reverseShareToken"];
|
||||||
|
|
||||||
|
const link = `${window.location.origin}/s/${share.id}`;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Stack align="stretch">
|
<Stack align="stretch">
|
||||||
@@ -65,7 +66,11 @@ const Body = ({ share, appUrl }: { share: CompletedShare; appUrl: string }) => {
|
|||||||
<Button
|
<Button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
modals.closeAll();
|
modals.closeAll();
|
||||||
router.push("/upload");
|
if (isReverseShare) {
|
||||||
|
router.reload();
|
||||||
|
} else {
|
||||||
|
router.push("/upload");
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<FormattedMessage id="common.button.done" />
|
<FormattedMessage id="common.button.done" />
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import { useForm, yupResolver } from "@mantine/form";
|
|||||||
import { useModals } from "@mantine/modals";
|
import { useModals } from "@mantine/modals";
|
||||||
import { ModalsContextProps } from "@mantine/modals/lib/context";
|
import { ModalsContextProps } from "@mantine/modals/lib/context";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { TbAlertCircle } from "react-icons/tb";
|
import { TbAlertCircle } from "react-icons/tb";
|
||||||
import { FormattedMessage } from "react-intl";
|
import { FormattedMessage } from "react-intl";
|
||||||
import * as yup from "yup";
|
import * as yup from "yup";
|
||||||
@@ -30,7 +30,6 @@ import shareService from "../../../services/share.service";
|
|||||||
import { FileUpload } from "../../../types/File.type";
|
import { FileUpload } from "../../../types/File.type";
|
||||||
import { CreateShare } from "../../../types/share.type";
|
import { CreateShare } from "../../../types/share.type";
|
||||||
import { getExpirationPreview } from "../../../utils/date.util";
|
import { getExpirationPreview } from "../../../utils/date.util";
|
||||||
import React from "react";
|
|
||||||
import toast from "../../../utils/toast.util";
|
import toast from "../../../utils/toast.util";
|
||||||
|
|
||||||
const showCreateUploadModal = (
|
const showCreateUploadModal = (
|
||||||
@@ -38,10 +37,10 @@ const showCreateUploadModal = (
|
|||||||
options: {
|
options: {
|
||||||
isUserSignedIn: boolean;
|
isUserSignedIn: boolean;
|
||||||
isReverseShare: boolean;
|
isReverseShare: boolean;
|
||||||
appUrl: string;
|
|
||||||
allowUnauthenticatedShares: boolean;
|
allowUnauthenticatedShares: boolean;
|
||||||
enableEmailRecepients: boolean;
|
enableEmailRecepients: boolean;
|
||||||
maxExpirationInHours: number;
|
maxExpirationInHours: number;
|
||||||
|
shareIdLength: number;
|
||||||
simplified: boolean;
|
simplified: boolean;
|
||||||
},
|
},
|
||||||
files: FileUpload[],
|
files: FileUpload[],
|
||||||
@@ -74,18 +73,28 @@ const showCreateUploadModal = (
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const generateLink = () =>
|
const generateShareId = (length: number = 16) => {
|
||||||
Buffer.from(Math.random().toString(), "utf8")
|
const chars =
|
||||||
.toString("base64")
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||||
.substring(10, 17);
|
let result = "";
|
||||||
|
const randomArray = new Uint8Array(length >= 3 ? length : 3);
|
||||||
|
crypto.getRandomValues(randomArray);
|
||||||
|
randomArray.forEach((number) => {
|
||||||
|
result += chars[number % chars.length];
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
const generateAvailableLink = async (times = 10): Promise<string> => {
|
const generateAvailableLink = async (
|
||||||
|
shareIdLength: number,
|
||||||
|
times: number = 10,
|
||||||
|
): Promise<string> => {
|
||||||
if (times <= 0) {
|
if (times <= 0) {
|
||||||
throw new Error("Could not generate available link");
|
throw new Error("Could not generate available link");
|
||||||
}
|
}
|
||||||
const _link = generateLink();
|
const _link = generateShareId(shareIdLength);
|
||||||
if (!(await shareService.isShareIdAvailable(_link))) {
|
if (!(await shareService.isShareIdAvailable(_link))) {
|
||||||
return await generateAvailableLink(times - 1);
|
return await generateAvailableLink(shareIdLength, times - 1);
|
||||||
} else {
|
} else {
|
||||||
return _link;
|
return _link;
|
||||||
}
|
}
|
||||||
@@ -101,16 +110,16 @@ const CreateUploadModalBody = ({
|
|||||||
options: {
|
options: {
|
||||||
isUserSignedIn: boolean;
|
isUserSignedIn: boolean;
|
||||||
isReverseShare: boolean;
|
isReverseShare: boolean;
|
||||||
appUrl: string;
|
|
||||||
allowUnauthenticatedShares: boolean;
|
allowUnauthenticatedShares: boolean;
|
||||||
enableEmailRecepients: boolean;
|
enableEmailRecepients: boolean;
|
||||||
maxExpirationInHours: number;
|
maxExpirationInHours: number;
|
||||||
|
shareIdLength: number;
|
||||||
};
|
};
|
||||||
}) => {
|
}) => {
|
||||||
const modals = useModals();
|
const modals = useModals();
|
||||||
const t = useTranslate();
|
const t = useTranslate();
|
||||||
|
|
||||||
const generatedLink = generateLink();
|
const generatedLink = generateShareId(options.shareIdLength);
|
||||||
|
|
||||||
const [showNotSignedInAlert, setShowNotSignedInAlert] = useState(true);
|
const [showNotSignedInAlert, setShowNotSignedInAlert] = useState(true);
|
||||||
|
|
||||||
@@ -232,7 +241,12 @@ const CreateUploadModalBody = ({
|
|||||||
<Button
|
<Button
|
||||||
style={{ flex: "0 0 auto" }}
|
style={{ flex: "0 0 auto" }}
|
||||||
variant="outline"
|
variant="outline"
|
||||||
onClick={() => form.setFieldValue("link", generateLink())}
|
onClick={() =>
|
||||||
|
form.setFieldValue(
|
||||||
|
"link",
|
||||||
|
generateShareId(options.shareIdLength),
|
||||||
|
)
|
||||||
|
}
|
||||||
>
|
>
|
||||||
<FormattedMessage id="common.button.generate" />
|
<FormattedMessage id="common.button.generate" />
|
||||||
</Button>
|
</Button>
|
||||||
@@ -245,7 +259,7 @@ const CreateUploadModalBody = ({
|
|||||||
color: theme.colors.gray[6],
|
color: theme.colors.gray[6],
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
{`${options.appUrl}/s/${form.values.link}`}
|
{`${window.location.origin}/s/${form.values.link}`}
|
||||||
</Text>
|
</Text>
|
||||||
{!options.isReverseShare && (
|
{!options.isReverseShare && (
|
||||||
<>
|
<>
|
||||||
@@ -461,10 +475,10 @@ const SimplifiedCreateUploadModalModal = ({
|
|||||||
options: {
|
options: {
|
||||||
isUserSignedIn: boolean;
|
isUserSignedIn: boolean;
|
||||||
isReverseShare: boolean;
|
isReverseShare: boolean;
|
||||||
appUrl: string;
|
|
||||||
allowUnauthenticatedShares: boolean;
|
allowUnauthenticatedShares: boolean;
|
||||||
enableEmailRecepients: boolean;
|
enableEmailRecepients: boolean;
|
||||||
maxExpirationInHours: number;
|
maxExpirationInHours: number;
|
||||||
|
shareIdLength: number;
|
||||||
};
|
};
|
||||||
}) => {
|
}) => {
|
||||||
const modals = useModals();
|
const modals = useModals();
|
||||||
@@ -489,10 +503,12 @@ const SimplifiedCreateUploadModalModal = ({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const onSubmit = form.onSubmit(async (values) => {
|
const onSubmit = form.onSubmit(async (values) => {
|
||||||
const link = await generateAvailableLink().catch(() => {
|
const link = await generateAvailableLink(options.shareIdLength).catch(
|
||||||
toast.error(t("upload.modal.link.error.taken"));
|
() => {
|
||||||
return undefined;
|
toast.error(t("upload.modal.link.error.taken"));
|
||||||
});
|
return undefined;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
if (!link) {
|
if (!link) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
42
frontend/src/hooks/confirm-leave.hook.ts
Normal file
42
frontend/src/hooks/confirm-leave.hook.ts
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import { useRouter } from "next/router";
|
||||||
|
import { useEffect } from "react";
|
||||||
|
|
||||||
|
const useConfirmLeave = ({
|
||||||
|
message,
|
||||||
|
enabled,
|
||||||
|
}: {
|
||||||
|
message: string;
|
||||||
|
enabled: boolean;
|
||||||
|
}) => {
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!enabled) return;
|
||||||
|
|
||||||
|
// Show confirmation dialog when route changes
|
||||||
|
const handleRouteChange = () => {
|
||||||
|
const confirmLeave = window.confirm(message);
|
||||||
|
if (!confirmLeave) {
|
||||||
|
router.events.emit("routeChangeError");
|
||||||
|
throw "Route change aborted.";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Show confirmation when the user tries to leave or reload the page
|
||||||
|
const handleBeforeUnload = (event: BeforeUnloadEvent) => {
|
||||||
|
event.preventDefault();
|
||||||
|
event.returnValue = message;
|
||||||
|
return message;
|
||||||
|
};
|
||||||
|
|
||||||
|
router.events.on("routeChangeStart", handleRouteChange);
|
||||||
|
window.addEventListener("beforeunload", handleBeforeUnload);
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
router.events.off("routeChangeStart", handleRouteChange);
|
||||||
|
window.removeEventListener("beforeunload", handleBeforeUnload);
|
||||||
|
};
|
||||||
|
}, [router, message, enabled]);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default useConfirmLeave;
|
||||||
@@ -15,7 +15,7 @@ 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 slovenian from "./translations/sl-SI";
|
||||||
import serbian from "./translations/sr-SP";
|
import serbianCyrillic 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";
|
||||||
import ukrainian from "./translations/uk-UA";
|
import ukrainian from "./translations/uk-UA";
|
||||||
@@ -25,7 +25,7 @@ import turkish from "./translations/tr-TR";
|
|||||||
import czech from "./translations/cs-CZ";
|
import czech from "./translations/cs-CZ";
|
||||||
import viatnamese from "./translations/vi-VN";
|
import viatnamese from "./translations/vi-VN";
|
||||||
import bulgarian from "./translations/bg-BG";
|
import bulgarian from "./translations/bg-BG";
|
||||||
import serbianCyrillic from "./translations/sr-CS";
|
import serbianLatin from "./translations/sr-CS";
|
||||||
|
|
||||||
export const LOCALES = {
|
export const LOCALES = {
|
||||||
ENGLISH: {
|
ENGLISH: {
|
||||||
@@ -89,9 +89,14 @@ export const LOCALES = {
|
|||||||
messages: thai,
|
messages: thai,
|
||||||
},
|
},
|
||||||
SERBIAN: {
|
SERBIAN: {
|
||||||
name: "Srpski",
|
name: "Српски",
|
||||||
code: "sr-SP",
|
code: "sr-SP",
|
||||||
messages: serbian,
|
messages: serbianCyrillic,
|
||||||
|
},
|
||||||
|
SERBIAN_LATIN: {
|
||||||
|
name: "Srpski",
|
||||||
|
code: "sr-CS",
|
||||||
|
messages: serbianLatin,
|
||||||
},
|
},
|
||||||
DUTCH: {
|
DUTCH: {
|
||||||
name: "Nederlands",
|
name: "Nederlands",
|
||||||
@@ -163,9 +168,4 @@ export const LOCALES = {
|
|||||||
code: "bg-BG",
|
code: "bg-BG",
|
||||||
messages: bulgarian,
|
messages: bulgarian,
|
||||||
},
|
},
|
||||||
SERBIAN_CYRILLIC: {
|
|
||||||
name: "Српски",
|
|
||||||
code: "sr-CS",
|
|
||||||
messages: serbianCyrillic,
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "رفع",
|
"upload.title": "رفع",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "حدث خطأ أثناء إنهاء مشاركتك.",
|
"upload.notify.generic-error": "حدث خطأ أثناء إنهاء مشاركتك.",
|
||||||
"upload.notify.count-failed": "فشل رفع {count} ملفات. تجري المحاولة مجددًا.",
|
"upload.notify.count-failed": "فشل رفع {count} ملفات. تجري المحاولة مجددًا.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "رفع الملفات",
|
"upload.dropzone.title": "رفع الملفات",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "اسم التطبيق",
|
"admin.config.general.app-name.description": "اسم التطبيق",
|
||||||
"admin.config.general.app-url": "رابط التطبيق",
|
"admin.config.general.app-url": "رابط التطبيق",
|
||||||
"admin.config.general.app-url.description": "الرابط الذي تكون مشاركة Pingvin صالحة عليه",
|
"admin.config.general.app-url.description": "الرابط الذي تكون مشاركة Pingvin صالحة عليه",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "إظهار الصفحة الرئيسية",
|
"admin.config.general.show-home-page": "إظهار الصفحة الرئيسية",
|
||||||
"admin.config.general.show-home-page.description": "تحديد ما إذا كان سيتم عرض الصفحة الرئيسية",
|
"admin.config.general.show-home-page.description": "تحديد ما إذا كان سيتم عرض الصفحة الرئيسية",
|
||||||
"admin.config.general.session-duration": "مدة الجلسة",
|
"admin.config.general.session-duration": "مدة الجلسة",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "عنوان المشاركة العكسية",
|
"admin.config.email.reverse-share-subject": "عنوان المشاركة العكسية",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "رسالة المشاركة العكسية",
|
"admin.config.email.reverse-share-message": "رسالة المشاركة العكسية",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Upload",
|
"upload.title": "Upload",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "An error occurred while finishing your share.",
|
"upload.notify.generic-error": "An error occurred while finishing your share.",
|
||||||
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Upload files",
|
"upload.dropzone.title": "Upload files",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Name of the application",
|
"admin.config.general.app-name.description": "Name of the application",
|
||||||
"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": "On which URL Pingvin Share is available",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Show 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.show-home-page.description": "Whether to show the home page",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Share recipients subject",
|
"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-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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email 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": "Reverse share message",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Nahrát",
|
"upload.title": "Nahrát",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Při dokončování vašeho sdílení došlo k chybě.",
|
"upload.notify.generic-error": "Při dokončování vašeho sdílení došlo k chybě.",
|
||||||
"upload.notify.count-failed": "{count} souborů se nepodařilo nahrát. Zkouším to znovu.",
|
"upload.notify.count-failed": "{count} souborů se nepodařilo nahrát. Zkouším to znovu.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Nahrát soubory",
|
"upload.dropzone.title": "Nahrát soubory",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Název aplikace",
|
"admin.config.general.app-name.description": "Název aplikace",
|
||||||
"admin.config.general.app-url": "URL aplikace",
|
"admin.config.general.app-url": "URL aplikace",
|
||||||
"admin.config.general.app-url.description": "Na kterém URL je Pingvin Share k dispozici",
|
"admin.config.general.app-url.description": "Na kterém URL je Pingvin Share k dispozici",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Zobrazit domovskou stránku",
|
"admin.config.general.show-home-page": "Zobrazit domovskou stránku",
|
||||||
"admin.config.general.show-home-page.description": "Zda zobrazovat domovskou stránku",
|
"admin.config.general.show-home-page.description": "Zda zobrazovat domovskou stránku",
|
||||||
"admin.config.general.session-duration": "Délka trvání relace",
|
"admin.config.general.session-duration": "Délka trvání relace",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Share recipients subject",
|
"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-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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Předmět e-mailu o zpětném sdílení",
|
"admin.config.email.reverse-share-subject": "Předmět e-mailu o zpětném sdílení",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Zpráva o zpětném sdílení",
|
"admin.config.email.reverse-share-message": "Zpráva o zpětném sdílení",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Upload",
|
"upload.title": "Upload",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Der opstod en fejl under afslutningen af din deling.",
|
"upload.notify.generic-error": "Der opstod en fejl under afslutningen af din deling.",
|
||||||
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Upload filer",
|
"upload.dropzone.title": "Upload filer",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Navnet på applikationen",
|
"admin.config.general.app-name.description": "Navnet på applikationen",
|
||||||
"admin.config.general.app-url": "App URL",
|
"admin.config.general.app-url": "App URL",
|
||||||
"admin.config.general.app-url.description": "På hvilken URL Pingvin Share er tilgængelig",
|
"admin.config.general.app-url.description": "På hvilken URL Pingvin Share er tilgængelig",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Vis forside",
|
"admin.config.general.show-home-page": "Vis forside",
|
||||||
"admin.config.general.show-home-page.description": "Om forsiden skal vises",
|
"admin.config.general.show-home-page.description": "Om forsiden skal vises",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Share recipients subject",
|
"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-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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email 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": "Reverse share message",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export default {
|
|||||||
"navbar.upload": "Hochladen",
|
"navbar.upload": "Hochladen",
|
||||||
"navbar.signin": "Anmelden",
|
"navbar.signin": "Anmelden",
|
||||||
"navbar.home": "Startseite",
|
"navbar.home": "Startseite",
|
||||||
"navbar.signup": "Anmelden",
|
"navbar.signup": "Registrieren",
|
||||||
"navbar.links.shares": "Meine Freigaben",
|
"navbar.links.shares": "Meine Freigaben",
|
||||||
"navbar.links.reverse": "Externe Freigaben",
|
"navbar.links.reverse": "Externe Freigaben",
|
||||||
"navbar.avatar.account": "Mein Konto",
|
"navbar.avatar.account": "Mein Konto",
|
||||||
@@ -16,9 +16,9 @@ export default {
|
|||||||
"home.bullet.a.name": "Selbst gehostet",
|
"home.bullet.a.name": "Selbst gehostet",
|
||||||
"home.bullet.a.description": "Betreibe Pingvin Share auf deinem eigenen Server.",
|
"home.bullet.a.description": "Betreibe Pingvin Share auf deinem eigenen Server.",
|
||||||
"home.bullet.b.name": "Privatsphäre",
|
"home.bullet.b.name": "Privatsphäre",
|
||||||
"home.bullet.b.description": "Ihre Dateien gehören Ihnen und werden niemals von Dritten zugänglich gemacht.",
|
"home.bullet.b.description": "Deine Dateien gehören dir und sind niemals durch Dritte zugänglich.",
|
||||||
"home.bullet.c.name": "Keine lästige Dateigrößenbegrenzung",
|
"home.bullet.c.name": "Keine lästige Dateigrößenbegrenzung",
|
||||||
"home.bullet.c.description": " Laden Sie so große Dateien hoch, wie Sie wollen. Nur Ihre Festplatte ist Ihr Limit.",
|
"home.bullet.c.description": "Lade so große Dateien hoch, wie du willst. Nur deine Festplatte ist dein Limit.",
|
||||||
"home.button.start": "Lege los",
|
"home.button.start": "Lege los",
|
||||||
"home.button.source": "Quellcode",
|
"home.button.source": "Quellcode",
|
||||||
// END /
|
// END /
|
||||||
@@ -26,13 +26,13 @@ export default {
|
|||||||
"signin.title": "Willkommen zurück",
|
"signin.title": "Willkommen zurück",
|
||||||
"signin.description": "Du hast noch kein Konto?",
|
"signin.description": "Du hast noch kein Konto?",
|
||||||
"signin.button.signup": "Registrieren",
|
"signin.button.signup": "Registrieren",
|
||||||
"signin.input.email-or-username": "Email oder Benutzername",
|
"signin.input.email-or-username": "E-Mail oder Benutzername",
|
||||||
"signin.input.email-or-username.placeholder": "Deine Email Adresse oder Benutzername",
|
"signin.input.email-or-username.placeholder": "Deine E-Mail-Adresse oder Benutzername",
|
||||||
"signin.input.password": "Passwort",
|
"signin.input.password": "Passwort",
|
||||||
"signin.input.password.placeholder": "Dein Passwort",
|
"signin.input.password.placeholder": "Dein Passwort",
|
||||||
"signin.button.submit": "Anmelden",
|
"signin.button.submit": "Anmelden",
|
||||||
"signIn.notify.totp-required.title": "Zwei-Faktor-Authentifizierung benötigt",
|
"signIn.notify.totp-required.title": "Zwei-Faktor-Authentifizierung benötigt",
|
||||||
"signIn.notify.totp-required.description": "Bitte füge deinen Zwei-Faktor-Authentifizierungscode ein",
|
"signIn.notify.totp-required.description": "Bitte gib deinen Zwei-Faktor-Authentifizierungscode ein",
|
||||||
"signIn.oauth.or": "ODER",
|
"signIn.oauth.or": "ODER",
|
||||||
"signIn.oauth.signInWith": "Anmelden mit",
|
"signIn.oauth.signInWith": "Anmelden mit",
|
||||||
"signIn.oauth.github": "GitHub",
|
"signIn.oauth.github": "GitHub",
|
||||||
@@ -47,8 +47,8 @@ export default {
|
|||||||
"signup.button.signin": "Anmelden",
|
"signup.button.signin": "Anmelden",
|
||||||
"signup.input.username": "Benutzername",
|
"signup.input.username": "Benutzername",
|
||||||
"signup.input.username.placeholder": "Dein Benutzername",
|
"signup.input.username.placeholder": "Dein Benutzername",
|
||||||
"signup.input.email": "Email",
|
"signup.input.email": "E-Mail",
|
||||||
"signup.input.email.placeholder": "Deine Emailadresse",
|
"signup.input.email.placeholder": "Deine E-Mail-Adresse",
|
||||||
"signup.button.submit": "Lass uns loslegen",
|
"signup.button.submit": "Lass uns loslegen",
|
||||||
// END /auth/signup
|
// END /auth/signup
|
||||||
// /auth/totp
|
// /auth/totp
|
||||||
@@ -57,13 +57,13 @@ export default {
|
|||||||
// END /auth/totp
|
// END /auth/totp
|
||||||
// /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 E-Mail-Adresse ein, um dein Passwort zurückzusetzen.",
|
||||||
"resetPassword.notify.success": "Wir haben dir einen Link gesendet, unter dem du dein Passwort zurücksetzen kannst.",
|
"resetPassword.notify.success": "Wir haben dir einen Link gesendet, unter dem du dein Passwort zurücksetzen kannst.",
|
||||||
"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",
|
||||||
"resetPassword.input.password": "Neues Passwort",
|
"resetPassword.input.password": "Neues Passwort",
|
||||||
"resetPassword.notify.passwordReset": "Ihr Passwort wurde erfolgreich zurückgesetzt",
|
"resetPassword.notify.passwordReset": "Dein Passwort wurde erfolgreich zurückgesetzt.",
|
||||||
// /account
|
// /account
|
||||||
"account.title": "Mein Konto",
|
"account.title": "Mein Konto",
|
||||||
"account.card.info.title": "Kontoinformationen",
|
"account.card.info.title": "Kontoinformationen",
|
||||||
@@ -85,7 +85,7 @@ export default {
|
|||||||
"account.card.oauth.unlink": "Verknüpfung aufheben",
|
"account.card.oauth.unlink": "Verknüpfung aufheben",
|
||||||
"account.card.oauth.unlinked": "Verknüpfung aufgehoben",
|
"account.card.oauth.unlinked": "Verknüpfung aufgehoben",
|
||||||
"account.modal.unlink.title": "Kontoverknüpfung aufheben",
|
"account.modal.unlink.title": "Kontoverknüpfung aufheben",
|
||||||
"account.modal.unlink.description": "Die Aufhebung der Verknüpfung mit Ihren sozialen Konten kann dazu führen, dass Sie Ihr Konto verlieren, wenn Sie sich nicht an Ihren Anmeldedaten erinnern",
|
"account.modal.unlink.description": "Die Aufhebung der Verknüpfung mit deinen sozialen Konten kann dazu führen, dass du dein Konto verlierst, wenn du dich nicht an deine Anmeldedaten erinnerst",
|
||||||
"account.notify.oauth.unlinked.success": "Verknüpfung erfolgreich aufgehoben",
|
"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",
|
||||||
@@ -127,13 +127,13 @@ export default {
|
|||||||
"account.shares.modal.share-informations": "Teile deine Information",
|
"account.shares.modal.share-informations": "Teile deine Information",
|
||||||
"account.shares.modal.share-link": "Freigabe teilen",
|
"account.shares.modal.share-link": "Freigabe teilen",
|
||||||
"account.shares.modal.delete.title": "Freigabe löschen: {share}",
|
"account.shares.modal.delete.title": "Freigabe löschen: {share}",
|
||||||
"account.shares.modal.delete.description": "Möchtest du wirklich diese Freigabe löschen?",
|
"account.shares.modal.delete.description": "Möchtest du diese Freigabe wirklich löschen?",
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
"account.reverseShares.title": "Externe Freigaben",
|
"account.reverseShares.title": "Externe Freigaben",
|
||||||
"account.reverseShares.description": "Eine externe Freigabe erlaubt dir eine einzigartige URL zu erstellen, die externen Benutzern erlaubt, Dateien hochzuladen.",
|
"account.reverseShares.description": "Eine externe Freigabe erlaubt dir eine einzigartige URL zu erstellen, die externen Benutzern erlaubt, Dateien hochzuladen.",
|
||||||
"account.reverseShares.title.empty": "Es ist leer hier 👀",
|
"account.reverseShares.title.empty": "Es ist leer hier 👀",
|
||||||
"account.reverseShares.description.empty": "Du hast keine externen Freigaben erstellt.",
|
"account.reverseShares.description.empty": "Du hast keine externen Freigaben.",
|
||||||
// showCreateReverseShareModal.tsx
|
// showCreateReverseShareModal.tsx
|
||||||
"account.reverseShares.modal.title": "Externe Freigabe erstellen",
|
"account.reverseShares.modal.title": "Externe Freigabe erstellen",
|
||||||
"account.reverseShares.modal.expiration.label": "Gültig bis",
|
"account.reverseShares.modal.expiration.label": "Gültig bis",
|
||||||
@@ -150,16 +150,16 @@ export default {
|
|||||||
"account.reverseShares.modal.expiration.year-singular": "Jahr",
|
"account.reverseShares.modal.expiration.year-singular": "Jahr",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "Jahre",
|
"account.reverseShares.modal.expiration.year-plural": "Jahre",
|
||||||
"account.reverseShares.modal.max-size.label": "Maximale Freigabegröße",
|
"account.reverseShares.modal.max-size.label": "Maximale Freigabegröße",
|
||||||
"account.reverseShares.modal.send-email": "E-Mail-Benachrichtigungen senden",
|
"account.reverseShares.modal.send-email": "E-Mail Benachrichtigungen senden",
|
||||||
"account.reverseShares.modal.send-email.description": "Sendet eine E-Mail Benachrichtigung, wenn eine Datei auf Ihrer externen Freigabe hochgeladen wurde.",
|
"account.reverseShares.modal.send-email.description": "Sendet eine E-Mail Benachrichtigung, wenn eine Datei auf Ihrer externen Freigabe hochgeladen wurde.",
|
||||||
"account.reverseShares.modal.simplified": "Einfacher Modus",
|
"account.reverseShares.modal.simplified": "Einfacher Modus",
|
||||||
"account.reverseShares.modal.simplified.description": "Mache es der Person, die die Datei hochlädt, einfach, sie mit dir zu teilen. Sie werden nur den Namen und die Beschreibung der Freigabe ändern können.",
|
"account.reverseShares.modal.simplified.description": "Mache es der Person, die die Datei hochlädt, einfach, sie mit dir zu teilen. Sie werden nur den Namen und die Beschreibung der Freigabe ändern können.",
|
||||||
"account.reverseShares.modal.public-access": "Öffentlicher Zugriff",
|
"account.reverseShares.modal.public-access": "Öffentlicher Zugriff",
|
||||||
"account.reverseShares.modal.public-access.description": "Erstelle die Freigaben der externen Freigabe öffentlich. Wenn dies deaktiviert ist, haben nur Sie und der Ersteller der Freigabe Zugriff darauf.",
|
"account.reverseShares.modal.public-access.description": "Mache die Freigaben die mit dieser externen Freigabe erstellt werden öffentlich. Wenn dies deaktiviert ist, haben nur du und der Ersteller der Freigabe Zugriff darauf.",
|
||||||
"account.reverseShares.modal.max-use.label": "Maximale Nutzungen",
|
"account.reverseShares.modal.max-use.label": "Maximale Nutzungen",
|
||||||
"account.reverseShares.modal.max-use.description": "Die maximale Anzahl von Verwendungen der URL, um Dateien hochzuladen.",
|
"account.reverseShares.modal.max-use.description": "Die maximale Anzahl von Verwendungen der URL, um Dateien hochzuladen.",
|
||||||
"account.reverseShare.never-expires": "Diese externe Freigabe wird nicht ablaufen.",
|
"account.reverseShare.never-expires": "Diese externe Freigabe wird nicht ablaufen.",
|
||||||
"account.reverseShare.expires-on": "Diese Reverse Share läuft am {expiration} ab.",
|
"account.reverseShare.expires-on": "Diese externe Freigabe wird am {expiration} ablaufen.",
|
||||||
"account.reverseShares.table.no-shares": "Noch keine Freigaben erstellt",
|
"account.reverseShares.table.no-shares": "Noch keine Freigaben erstellt",
|
||||||
"account.reverseShares.table.count.singular": "Freigabe",
|
"account.reverseShares.table.count.singular": "Freigabe",
|
||||||
"account.reverseShares.table.count.plural": "Freigaben",
|
"account.reverseShares.table.count.plural": "Freigaben",
|
||||||
@@ -168,8 +168,8 @@ export default {
|
|||||||
"account.reverseShares.table.max-size": "Maximale Freigabegröße",
|
"account.reverseShares.table.max-size": "Maximale Freigabegröße",
|
||||||
"account.reverseShares.table.expires": "Läuft ab am",
|
"account.reverseShares.table.expires": "Läuft ab am",
|
||||||
"account.reverseShares.modal.reverse-share-link": "Link zu externer Freigabe",
|
"account.reverseShares.modal.reverse-share-link": "Link zu externer Freigabe",
|
||||||
"account.reverseShares.modal.delete.title": "Lösche externe Freigabe",
|
"account.reverseShares.modal.delete.title": "Externe Freigabe löschen",
|
||||||
"account.reverseShares.modal.delete.description": "Möchtest du wirklich diese externe Freigabe löschen? In diesem Falle werden auch hiermit verbundene Freigaben gelöscht.",
|
"account.reverseShares.modal.delete.description": "Möchtest du diese externe Freigabe wirklich löschen? In diesem Fall werden auch hiermit verbundene Freigaben gelöscht.",
|
||||||
// END /account/reverseShares
|
// END /account/reverseShares
|
||||||
// /admin
|
// /admin
|
||||||
"admin.title": "Verwaltung",
|
"admin.title": "Verwaltung",
|
||||||
@@ -190,7 +190,7 @@ export default {
|
|||||||
"admin.users.edit.update.change-password.button": "Neues Passwort speichern",
|
"admin.users.edit.update.change-password.button": "Neues Passwort speichern",
|
||||||
"admin.users.edit.update.notify.password.success": "Passwort erfolgreich geändert",
|
"admin.users.edit.update.notify.password.success": "Passwort erfolgreich geändert",
|
||||||
"admin.users.edit.delete.title": "Benutzer löschen: {username}?",
|
"admin.users.edit.delete.title": "Benutzer löschen: {username}?",
|
||||||
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
|
"admin.users.edit.delete.description": "Möchtest du wirklich diesen Benutzer und all seine Freigaben löschen?",
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Benutzer erstellen",
|
"admin.users.modal.create.title": "Benutzer erstellen",
|
||||||
"admin.users.modal.create.username": "Benutzername",
|
"admin.users.modal.create.username": "Benutzername",
|
||||||
@@ -203,17 +203,20 @@ export default {
|
|||||||
// END /admin/users
|
// END /admin/users
|
||||||
// /admin/shares
|
// /admin/shares
|
||||||
"admin.shares.title": "Freigaben Verwaltung",
|
"admin.shares.title": "Freigaben Verwaltung",
|
||||||
"admin.shares.table.id": "ID teilen",
|
"admin.shares.table.id": "Freigabe ID",
|
||||||
"admin.shares.table.username": "Ersteller",
|
"admin.shares.table.username": "Ersteller",
|
||||||
"admin.shares.table.visitors": "Besucher",
|
"admin.shares.table.visitors": "Besucher",
|
||||||
"admin.shares.table.expires": "Läuft ab am",
|
"admin.shares.table.expires": "Läuft ab am",
|
||||||
"admin.shares.edit.delete.title": "Freigabe löschen: {id}",
|
"admin.shares.edit.delete.title": "Freigabe löschen: {id}",
|
||||||
"admin.shares.edit.delete.description": "Möchtest du wirklich diese Freigabe löschen?",
|
"admin.shares.edit.delete.description": "Möchtest du diese Freigabe wirklich löschen?",
|
||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Upload",
|
"upload.title": "Upload",
|
||||||
|
"upload.notify.confirm-leave": "Bist du sicher, dass du diese Seite verlassen willst? Dein Upload wird abgebrochen.",
|
||||||
"upload.notify.generic-error": "Während der Erstellung der Freigabe ist ein Fehler aufgetreten.",
|
"upload.notify.generic-error": "Während der Erstellung der Freigabe ist ein Fehler aufgetreten.",
|
||||||
"upload.notify.count-failed": "{count} Dateien konnten nicht hochgeladen werden. Wird erneut versucht.",
|
"upload.notify.count-failed": "{count} Dateien konnten nicht hochgeladen werden. Wird erneut versucht.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Ungültiger Link zu externer Freigabe",
|
||||||
|
"upload.reverse-share.error.invalid.description": "Diese externe Freigabe ist abgelaufen oder ungültig.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Dateien hochladen",
|
"upload.dropzone.title": "Dateien hochladen",
|
||||||
"upload.dropzone.description": "Ziehe Dateien per Drag'n'Drop hierher, um deine Freigabe zu starten. Wir akzeptieren nur Dateien mit einer Gesamtgröße von bis zu {maxSize}.",
|
"upload.dropzone.description": "Ziehe Dateien per Drag'n'Drop hierher, um deine Freigabe zu starten. Wir akzeptieren nur Dateien mit einer Gesamtgröße von bis zu {maxSize}.",
|
||||||
@@ -227,7 +230,7 @@ export default {
|
|||||||
"upload.modal.link.error.taken": "Dieser Link wird bereits verwendet",
|
"upload.modal.link.error.taken": "Dieser Link wird bereits verwendet",
|
||||||
"upload.modal.not-signed-in": "Du bist nicht angemeldet",
|
"upload.modal.not-signed-in": "Du bist nicht angemeldet",
|
||||||
"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": "nie",
|
||||||
"upload.modal.expires.never-long": "Permanente Freigabe",
|
"upload.modal.expires.never-long": "Permanente Freigabe",
|
||||||
"upload.modal.expires.error.too-long": "Das Ablaufdatum überschreitet das Maximum von {max}.",
|
"upload.modal.expires.error.too-long": "Das Ablaufdatum überschreitet das Maximum von {max}.",
|
||||||
"upload.modal.link.label": "Link",
|
"upload.modal.link.label": "Link",
|
||||||
@@ -272,16 +275,16 @@ export default {
|
|||||||
"share.error.access-denied.title": "Private Freigabe",
|
"share.error.access-denied.title": "Private Freigabe",
|
||||||
"share.error.access-denied.description": "Das aktuelle Konto hat keine Berechtigung, um auf diese Freigabe zuzugreifen",
|
"share.error.access-denied.description": "Das aktuelle Konto hat keine Berechtigung, um auf diese Freigabe zuzugreifen",
|
||||||
"share.modal.password.title": "Passwort erforderlich",
|
"share.modal.password.title": "Passwort erforderlich",
|
||||||
"share.modal.password.description": "Bitte geben Sie das Passwort ein, um auf diese Freigabe zuzugreifen.",
|
"share.modal.password.description": "Bitte gib das Passwort ein, um auf diese Freigabe zuzugreifen.",
|
||||||
"share.modal.password": "Passwort",
|
"share.modal.password": "Passwort",
|
||||||
"share.modal.error.invalid-password": "Ungültiges Passwort",
|
"share.modal.error.invalid-password": "Ungültiges Passwort",
|
||||||
"share.button.download-all": "Alles herunterladen",
|
"share.button.download-all": "Alles herunterladen",
|
||||||
"share.notify.download-all-preparing": "Die Freigabe wird vorbereitet. Bitte versuchen Sie es in ein paar Minuten erneut.",
|
"share.notify.download-all-preparing": "Die Freigabe wird vorbereitet. Bitte versuche es in ein paar Minuten erneut.",
|
||||||
"share.modal.file-link": "Dateilink",
|
"share.modal.file-link": "Dateilink",
|
||||||
"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": "Vorschaubilder werden für diesen Dateityp nicht unterstützt. Bitte laden Sie die Datei herunter, um sie anzuzeigen.",
|
"share.modal.file-preview.error.not-supported.description": "Vorschaubilder werden für diesen Dateityp nicht unterstützt. Bitte lade die Datei herunter, um sie anzuzeigen.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "{shareId} bearbeiten",
|
"share.edit.title": "{shareId} bearbeiten",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"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",
|
||||||
"admin.config.general.app-url.description": "Auf welcher URL Pingvin Share verfügbar ist",
|
"admin.config.general.app-url.description": "Auf welcher URL Pingvin Share verfügbar ist",
|
||||||
|
"admin.config.general.secure-cookies": "Sichere Cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Gibt an, ob die secure flag bei Cookies gesetzt werden soll. Falls aktiviert, wird die Seite nicht funktionieren, wenn sie über HTTP aufgerufen wird.",
|
||||||
"admin.config.general.show-home-page": "Startseite anzeigen",
|
"admin.config.general.show-home-page": "Startseite anzeigen",
|
||||||
"admin.config.general.show-home-page.description": "Ob die Startseite angezeigt werden soll",
|
"admin.config.general.show-home-page.description": "Ob die Startseite angezeigt werden soll",
|
||||||
"admin.config.general.session-duration": "Session-Dauer",
|
"admin.config.general.session-duration": "Session-Dauer",
|
||||||
@@ -308,11 +313,11 @@ export default {
|
|||||||
"admin.config.general.logo.description": "Ändere dein Logo durch Hochladen eines Bildes. Das Bild muss im PNG-Format vorliegen und sollte mit Seitenverhältnis 1:1 sein.",
|
"admin.config.general.logo.description": "Ändere dein Logo durch Hochladen eines Bildes. Das Bild muss im PNG-Format vorliegen und sollte mit Seitenverhältnis 1:1 sein.",
|
||||||
"admin.config.general.logo.placeholder": "Bild auswählen",
|
"admin.config.general.logo.placeholder": "Bild auswählen",
|
||||||
"admin.config.email.enable-share-email-recipients": "Erlaube das Teilen der Freigabe via E-Mail",
|
"admin.config.email.enable-share-email-recipients": "Erlaube das Teilen der Freigabe via E-Mail",
|
||||||
"admin.config.email.enable-share-email-recipients.description": "Gibt an, ob das Teilen von E-Mails mit Empfängern erlaubt werden soll. Aktivieren Sie dies nur, wenn SMTP aktiviert ist.",
|
"admin.config.email.enable-share-email-recipients.description": "Gibt an, ob das Teilen von E-Mails mit Empfängern erlaubt werden soll. Aktiviere dies nur, wenn SMTP aktiviert ist.",
|
||||||
"admin.config.email.share-recipients-subject": "Betreff für Freigabe-Empfänger",
|
"admin.config.email.share-recipients-subject": "Betreff für Freigabe-Empfänger",
|
||||||
"admin.config.email.share-recipients-subject.description": "Betreff der E-Mail, die an die Freigabe-Empfänger gesendet wird.",
|
"admin.config.email.share-recipients-subject.description": "Betreff der E-Mail, die an die Freigabe-Empfänger gesendet wird.",
|
||||||
"admin.config.email.share-recipients-message": "Nachricht für Freigabe-Empfänger",
|
"admin.config.email.share-recipients-message": "Nachricht für Freigabe-Empfänger",
|
||||||
"admin.config.email.share-recipients-message.description": "Nachricht, die an die Freigabe-Empfänger gesendet wird. Verfügbare Variablen:\n- {creator} - Der Benutzername des Erstellers der Freigabe\n- {shareUrl} - Die URL der Freigabe\n- {desc} - Die Beschreibung der Freigabe\n- {expires} - Das Ablaufdatum der Freigabe\nVariablen werden durch die aktuellen Werte ersetzt.",
|
"admin.config.email.share-recipients-message.description": "Nachricht, die an die Freigabe-Empfänger gesendet wird. Verfügbare Variablen:\n- {creator} - Der Benutzername des Erstellers der Freigabe\n- {creatorEmail} - E-Mail-Adresse des Erstellers der Freigabe\n- {shareUrl} - Die URL der Freigabe\n- {desc} - Die Beschreibung der Freigabe\n- {expires} - Das Ablaufdatum der Freigabe\nVariablen werden durch die tatsächlichen Werte ersetzt.",
|
||||||
"admin.config.email.reverse-share-subject": "Name der externen Freigabe",
|
"admin.config.email.reverse-share-subject": "Name der externen Freigabe",
|
||||||
"admin.config.email.reverse-share-subject.description": "Betreff der gesendeten E-Mail, wenn jemand eine Freigabe mit Ihrem externen Freigabe-Link erstellt hat.",
|
"admin.config.email.reverse-share-subject.description": "Betreff der gesendeten E-Mail, wenn jemand eine Freigabe mit Ihrem externen Freigabe-Link erstellt hat.",
|
||||||
"admin.config.email.reverse-share-message": "Nachricht für externe Freigabe",
|
"admin.config.email.reverse-share-message": "Nachricht für externe Freigabe",
|
||||||
@@ -353,7 +358,7 @@ export default {
|
|||||||
"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.smtp.allow-unauthorized-certificates": "Vertrauen von nicht authentifizierten SMTP-Server-Zertifikaten",
|
"admin.config.smtp.allow-unauthorized-certificates": "Vertrauen von nicht authentifizierten SMTP-Server-Zertifikaten",
|
||||||
"admin.config.smtp.allow-unauthorized-certificates.description": "Verwenden Sie diese Option nur, wenn Sie selbst signierten Zertifikaten vertrauen müssen.",
|
"admin.config.smtp.allow-unauthorized-certificates.description": "Verwende diese Option nur, wenn du selbst signierten Zertifikaten vertrauen musst.",
|
||||||
"admin.config.oauth.allow-registration": "Registrierung erlauben",
|
"admin.config.oauth.allow-registration": "Registrierung erlauben",
|
||||||
"admin.config.oauth.allow-registration.description": "Benutzern erlauben, sich über soziale Netzwerke zu registrieren",
|
"admin.config.oauth.allow-registration.description": "Benutzern erlauben, sich über soziale Netzwerke zu registrieren",
|
||||||
"admin.config.oauth.ignore-totp": "TOTP ignorieren",
|
"admin.config.oauth.ignore-totp": "TOTP ignorieren",
|
||||||
@@ -364,32 +369,32 @@ export default {
|
|||||||
"admin.config.oauth.github-enabled.description": "GitHub Anmeldung erlaubt",
|
"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 der GitHub OAuth-App",
|
"admin.config.oauth.github-client-id.description": "Client-ID der GitHub OAuth-App",
|
||||||
"admin.config.oauth.github-client-secret": "GitHub Client Sekret",
|
"admin.config.oauth.github-client-secret": "GitHub Client Secret",
|
||||||
"admin.config.oauth.github-client-secret.description": "Client-Sekret der 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": "Google Anmeldung erlaubt",
|
"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 der Google OAuth-App",
|
"admin.config.oauth.google-client-id.description": "Client-ID der Google OAuth-App",
|
||||||
"admin.config.oauth.google-client-secret": "Google Client Sekret",
|
"admin.config.oauth.google-client-secret": "Google Client Secret",
|
||||||
"admin.config.oauth.google-client-secret.description": "Client-Sekret der 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": "Microsoft Anmeldung erlaubt",
|
"admin.config.oauth.microsoft-enabled.description": "Microsoft Anmeldung erlaubt",
|
||||||
"admin.config.oauth.microsoft-tenant": "Microsoft Mandant",
|
"admin.config.oauth.microsoft-tenant": "Microsoft Mandant",
|
||||||
"admin.config.oauth.microsoft-tenant.description": "Mandant-ID der Microsoft OAuth App\ncommon: Benutzer mit einem persönlichen Microsoft-Konto und einem Arbeits- oder Schulkonto von Microsoft Entra ID können sich in der Anwendung anmelden.\norganizations: Nur Benutzer mit Arbeits- oder Schulkonten von Microsoft Entra ID können sich in der Anwendung anmelden.\nconsumers: Nur Benutzer mit einem persönlichen Microsoft-Konto können sich in der Anwendung anmelden.\nDomänenname des Microsoft Entra Mandanten oder die Mandanten-ID im GUID-Format: Nur Benutzer eines bestimmten Microsoft Entra Mandanten (Verzeichnismitglieder mit einem Arbeits- oder Schulkonto oder Verzeichnis Gäste mit einem persönlichen Microsoft-Konto) können sich anmelden.",
|
"admin.config.oauth.microsoft-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 der Microsoft OAuth-App",
|
"admin.config.oauth.microsoft-client-id.description": "Client-ID der Microsoft OAuth-App",
|
||||||
"admin.config.oauth.microsoft-client-secret": "Microsoft Client Sekret",
|
"admin.config.oauth.microsoft-client-secret": "Microsoft Client Secret",
|
||||||
"admin.config.oauth.microsoft-client-secret.description": "Client-Sekret der 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": "Discord Anmeldung erlaubt",
|
"admin.config.oauth.discord-enabled.description": "Discord Anmeldung erlaubt",
|
||||||
"admin.config.oauth.discord-limited-users": "Discord limited users",
|
"admin.config.oauth.discord-limited-users": "Discord limitierte Benutzer",
|
||||||
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-users.description": "Limitiere die Anmeldung für spezifische Benutzer anhand ihrer Discord ID. Lasse dieses Feld leer, um es zu deaktivieren.",
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord Server-ID",
|
"admin.config.oauth.discord-limited-guild": "Discord Server-ID",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "Die Anmeldung auf Benutzer in einem bestimmten Server beschränken. Leer lassen, um zu deaktivieren.",
|
"admin.config.oauth.discord-limited-guild.description": "Die Anmeldung auf Benutzer in einem bestimmten Server beschränken. Leer lassen, um zu deaktivieren.",
|
||||||
"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 der Discord OAuth-App",
|
"admin.config.oauth.discord-client-id.description": "Client-ID der Discord OAuth-App",
|
||||||
"admin.config.oauth.discord-client-secret": "Discord Client Sekret",
|
"admin.config.oauth.discord-client-secret": "Discord Client Secret",
|
||||||
"admin.config.oauth.discord-client-secret.description": "Client-Sekret der 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": "OpenID Connect Anmeldung erlaubt",
|
"admin.config.oauth.oidc-enabled.description": "OpenID Connect Anmeldung erlaubt",
|
||||||
"admin.config.oauth.oidc-discovery-uri": "OpenID Verbindung Discovery URL",
|
"admin.config.oauth.oidc-discovery-uri": "OpenID Verbindung Discovery URL",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Μεταφόρτωση",
|
"upload.title": "Μεταφόρτωση",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Παρουσιάστηκε σφάλμα κατά την ολοκλήρωση της κοινής χρήσης σας.",
|
"upload.notify.generic-error": "Παρουσιάστηκε σφάλμα κατά την ολοκλήρωση της κοινής χρήσης σας.",
|
||||||
"upload.notify.count-failed": "Τα αρχεία {count} απέτυχαν να μεταφορτώσουν. Δοκιμάστε ξανά.",
|
"upload.notify.count-failed": "Τα αρχεία {count} απέτυχαν να μεταφορτώσουν. Δοκιμάστε ξανά.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Μεταφόρτωση αρχείων",
|
"upload.dropzone.title": "Μεταφόρτωση αρχείων",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Ονομασία της εφαρμογής",
|
"admin.config.general.app-name.description": "Ονομασία της εφαρμογής",
|
||||||
"admin.config.general.app-url": "URL Εφαρμογής",
|
"admin.config.general.app-url": "URL Εφαρμογής",
|
||||||
"admin.config.general.app-url.description": "Η διεύθυνση URL όπου το Pingvin Share είναι διαθέσιμο",
|
"admin.config.general.app-url.description": "Η διεύθυνση URL όπου το Pingvin Share είναι διαθέσιμο",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Εμφάνιση αρχικής σελίδας",
|
"admin.config.general.show-home-page": "Εμφάνιση αρχικής σελίδας",
|
||||||
"admin.config.general.show-home-page.description": "Εάν θα εμφανίζεται η αρχική σελίδα",
|
"admin.config.general.show-home-page.description": "Εάν θα εμφανίζεται η αρχική σελίδα",
|
||||||
"admin.config.general.session-duration": "Διάρκεια συνεδρίας",
|
"admin.config.general.session-duration": "Διάρκεια συνεδρίας",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Θέμα στο email διαμοιρασμού",
|
"admin.config.email.share-recipients-subject": "Θέμα στο email διαμοιρασμού",
|
||||||
"admin.config.email.share-recipients-subject.description": "Το θέμα του email διαμοιρασμού που θα φτάσει στον παραλήπτη.",
|
"admin.config.email.share-recipients-subject.description": "Το θέμα του email διαμοιρασμού που θα φτάσει στον παραλήπτη.",
|
||||||
"admin.config.email.share-recipients-message": "Το θέμα του email για τον διαμοιρασμό που θα φτάσει στον παραλήπτη ",
|
"admin.config.email.share-recipients-message": "Το θέμα του email για τον διαμοιρασμό που θα φτάσει στον παραλήπτη ",
|
||||||
"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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Θέμα email αντίστροφου διαμοιρασμού",
|
"admin.config.email.reverse-share-subject": "Θέμα email αντίστροφου διαμοιρασμού",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Μήνυμα email αντίστροφου διαμοιρασμού",
|
"admin.config.email.reverse-share-message": "Μήνυμα email αντίστροφου διαμοιρασμού",
|
||||||
|
|||||||
@@ -286,9 +286,14 @@ export default {
|
|||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Upload",
|
"upload.title": "Upload",
|
||||||
|
|
||||||
|
"upload.notify.confirm-leave":
|
||||||
|
"Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error":
|
"upload.notify.generic-error":
|
||||||
"An error occurred while finishing your share.",
|
"An error occurred while finishing your share.",
|
||||||
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description":
|
||||||
|
"This reverse share has expired or is invalid.",
|
||||||
|
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Upload files",
|
"upload.dropzone.title": "Upload files",
|
||||||
@@ -410,6 +415,9 @@ export default {
|
|||||||
"admin.config.general.app-url": "App URL",
|
"admin.config.general.app-url": "App URL",
|
||||||
"admin.config.general.app-url.description":
|
"admin.config.general.app-url.description":
|
||||||
"On which URL Pingvin Share is available",
|
"On which URL Pingvin Share is available",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description":
|
||||||
|
"Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Show home page",
|
"admin.config.general.show-home-page": "Show home page",
|
||||||
"admin.config.general.show-home-page.description":
|
"admin.config.general.show-home-page.description":
|
||||||
"Whether to show the home page",
|
"Whether to show the home page",
|
||||||
@@ -430,7 +438,7 @@ export default {
|
|||||||
"Subject of the email which gets sent to the share recipients.",
|
"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": "Share recipients message",
|
||||||
"admin.config.email.share-recipients-message.description":
|
"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 These variables will be replaced with the actual value.",
|
"Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
||||||
"admin.config.email.reverse-share-subject.description":
|
"admin.config.email.reverse-share-subject.description":
|
||||||
"Subject of the sent email when someone created a share with your reverse share link.",
|
"Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
@@ -460,6 +468,9 @@ export default {
|
|||||||
"admin.config.share.max-expiration": "Max expiration",
|
"admin.config.share.max-expiration": "Max expiration",
|
||||||
"admin.config.share.max-expiration.description":
|
"admin.config.share.max-expiration.description":
|
||||||
"Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
|
"Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
|
||||||
|
"admin.config.share.share-id-length": "Default share ID length",
|
||||||
|
"admin.config.share.share-id-length.description":
|
||||||
|
"Default length for the generated ID of a share. This value is also used to generate links for reverse shares. A value below 8 is not considered secure.",
|
||||||
"admin.config.share.max-size": "Max size",
|
"admin.config.share.max-size": "Max size",
|
||||||
"admin.config.share.max-size.description": "Maximum share size in bytes",
|
"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": "Zip compression level",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export default {
|
|||||||
"navbar.upload": "Subir",
|
"navbar.upload": "Subir",
|
||||||
"navbar.signin": "Iniciar sesión",
|
"navbar.signin": "Iniciar sesión",
|
||||||
"navbar.home": "Inicio",
|
"navbar.home": "Inicio",
|
||||||
"navbar.signup": "Sign up",
|
"navbar.signup": "Registrarse",
|
||||||
"navbar.links.shares": "Mis compartidos",
|
"navbar.links.shares": "Mis compartidos",
|
||||||
"navbar.links.reverse": "Comparticiones inversas",
|
"navbar.links.reverse": "Comparticiones inversas",
|
||||||
"navbar.avatar.account": "Mi cuenta",
|
"navbar.avatar.account": "Mi cuenta",
|
||||||
@@ -16,9 +16,9 @@ export default {
|
|||||||
"home.bullet.a.name": "Autoalojada",
|
"home.bullet.a.name": "Autoalojada",
|
||||||
"home.bullet.a.description": "Aloja Pingvin Share en tu propio equipo.",
|
"home.bullet.a.description": "Aloja Pingvin Share en tu propio equipo.",
|
||||||
"home.bullet.b.name": "Privacidad",
|
"home.bullet.b.name": "Privacidad",
|
||||||
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.",
|
"home.bullet.b.description": "Tus archivos son tuyos y nunca serán accesibles por terceros.",
|
||||||
"home.bullet.c.name": "Sin molestos límites de tamaño de archivo",
|
"home.bullet.c.name": "Sin molestos límites de tamaño de archivo",
|
||||||
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.",
|
"home.bullet.c.description": "Sube archivos del tamaño que desees. Solo el espacio en tu disco duro será tu límite.",
|
||||||
"home.button.start": "Comenzar",
|
"home.button.start": "Comenzar",
|
||||||
"home.button.source": "Código fuente",
|
"home.button.source": "Código fuente",
|
||||||
// END /
|
// END /
|
||||||
@@ -58,12 +58,12 @@ 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": "A message with a link to reset your password has been sent if the provided email exists.",
|
"resetPassword.notify.success": "Se ha enviado un mensaje con un enlace para restablecer tu contraseña si el correo electrónico proporcionado existe.",
|
||||||
"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",
|
||||||
"resetPassword.input.password": "Nueva contraseña",
|
"resetPassword.input.password": "Nueva contraseña",
|
||||||
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
|
"resetPassword.notify.passwordReset": "Tu contraseña ha sido restablecida exitosamente.",
|
||||||
// /account
|
// /account
|
||||||
"account.title": "Mi cuenta",
|
"account.title": "Mi cuenta",
|
||||||
"account.card.info.title": "Información de cuenta",
|
"account.card.info.title": "Información de cuenta",
|
||||||
@@ -73,7 +73,7 @@ export default {
|
|||||||
"account.card.password.title": "Contraseña",
|
"account.card.password.title": "Contraseña",
|
||||||
"account.card.password.old": "Anterior contraseña",
|
"account.card.password.old": "Anterior contraseña",
|
||||||
"account.card.password.new": "Nueva contraseña",
|
"account.card.password.new": "Nueva contraseña",
|
||||||
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.",
|
"account.card.password.noPasswordSet": "No tienes una contraseña configurada. Para iniciar sesión usando tu correo electrónico y contraseña, necesitas crear una contraseña.",
|
||||||
"account.notify.password.success": "Contraseña cambiada correctamente",
|
"account.notify.password.success": "Contraseña cambiada correctamente",
|
||||||
"account.card.oauth.title": "Inicio de sesión con red social",
|
"account.card.oauth.title": "Inicio de sesión con red social",
|
||||||
"account.card.oauth.github": "GitHub",
|
"account.card.oauth.github": "GitHub",
|
||||||
@@ -85,7 +85,7 @@ export default {
|
|||||||
"account.card.oauth.unlink": "Desvincular",
|
"account.card.oauth.unlink": "Desvincular",
|
||||||
"account.card.oauth.unlinked": "Desvinculado",
|
"account.card.oauth.unlinked": "Desvinculado",
|
||||||
"account.modal.unlink.title": "Desvincular cuenta",
|
"account.modal.unlink.title": "Desvincular cuenta",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials",
|
"account.modal.unlink.description": "Desvincular tus cuentas sociales puede hacer que pierdas acceso a tu cuenta si no recuerdas tus credenciales de inicio de sesión",
|
||||||
"account.notify.oauth.unlinked.success": "Desvinculado correctamente",
|
"account.notify.oauth.unlinked.success": "Desvinculado correctamente",
|
||||||
"account.card.security.title": "Seguridad",
|
"account.card.security.title": "Seguridad",
|
||||||
"account.card.security.totp.enable.description": "Ingrese su contraseña actual para habilitar TOTP",
|
"account.card.security.totp.enable.description": "Ingrese su contraseña actual para habilitar TOTP",
|
||||||
@@ -121,12 +121,12 @@ export default {
|
|||||||
"account.shares.table.name": "Nombre",
|
"account.shares.table.name": "Nombre",
|
||||||
"account.shares.table.description": "Descripción",
|
"account.shares.table.description": "Descripción",
|
||||||
"account.shares.table.visitors": "Visitas",
|
"account.shares.table.visitors": "Visitas",
|
||||||
"account.shares.table.expiresAt": "Expires on",
|
"account.shares.table.expiresAt": "Vence el",
|
||||||
"account.shares.table.createdAt": "Created on",
|
"account.shares.table.createdAt": "Creado el",
|
||||||
"account.shares.table.size": "Tamaño",
|
"account.shares.table.size": "Tamaño",
|
||||||
"account.shares.modal.share-informations": "Información del compartido",
|
"account.shares.modal.share-informations": "Información del compartido",
|
||||||
"account.shares.modal.share-link": "Enlace",
|
"account.shares.modal.share-link": "Enlace",
|
||||||
"account.shares.modal.delete.title": "Delete share: {share}",
|
"account.shares.modal.delete.title": "Eliminar enlace compartido: {share}",
|
||||||
"account.shares.modal.delete.description": "¿Seguro que quieres eliminar este compartido?",
|
"account.shares.modal.delete.description": "¿Seguro que quieres eliminar este compartido?",
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
@@ -150,12 +150,12 @@ export default {
|
|||||||
"account.reverseShares.modal.expiration.year-singular": "Año",
|
"account.reverseShares.modal.expiration.year-singular": "Año",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "Años",
|
"account.reverseShares.modal.expiration.year-plural": "Años",
|
||||||
"account.reverseShares.modal.max-size.label": "Tamaño máximo del compartido",
|
"account.reverseShares.modal.max-size.label": "Tamaño máximo del compartido",
|
||||||
"account.reverseShares.modal.send-email": "Send email notifications",
|
"account.reverseShares.modal.send-email": "Enviar notificaciones por correo electrónico",
|
||||||
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
|
"account.reverseShares.modal.send-email.description": "Te envía una notificación por correo electrónico cuando se crea un enlace compartido con este enlace de compartición inverso.",
|
||||||
"account.reverseShares.modal.simplified": "Modo simple",
|
"account.reverseShares.modal.simplified": "Modo simple",
|
||||||
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
|
"account.reverseShares.modal.simplified.description": "Facilita que la persona que sube el archivo lo comparta contigo. Solo podrá personalizar el nombre y la descripción del enlace compartido.",
|
||||||
"account.reverseShares.modal.public-access": "Acceso público",
|
"account.reverseShares.modal.public-access": "Acceso público",
|
||||||
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.",
|
"account.reverseShares.modal.public-access.description": "Haz que los enlaces compartidos creados con este enlace de compartición inverso sean públicos. Si está desactivado, solo tú y el creador del enlace tendrán acceso para verlo.",
|
||||||
"account.reverseShares.modal.max-use.label": "Máximo de usos",
|
"account.reverseShares.modal.max-use.label": "Máximo de usos",
|
||||||
"account.reverseShares.modal.max-use.description": "Cantidad máxima de veces que esta URL se puede usar para crear un compartido.",
|
"account.reverseShares.modal.max-use.description": "Cantidad máxima de veces que esta URL se puede usar para crear un compartido.",
|
||||||
"account.reverseShare.never-expires": "Esta compartición inversa nunca expirará.",
|
"account.reverseShare.never-expires": "Esta compartición inversa nunca expirará.",
|
||||||
@@ -183,14 +183,14 @@ export default {
|
|||||||
"admin.users.table.username": "Nombre de usuario",
|
"admin.users.table.username": "Nombre de usuario",
|
||||||
"admin.users.table.email": "Correo",
|
"admin.users.table.email": "Correo",
|
||||||
"admin.users.table.admin": "Administrador",
|
"admin.users.table.admin": "Administrador",
|
||||||
"admin.users.edit.update.title": "Edit user: {username}",
|
"admin.users.edit.update.title": "Editar usuario: {username}",
|
||||||
"admin.users.edit.update.admin-privileges": "Privilegios de administrador",
|
"admin.users.edit.update.admin-privileges": "Privilegios de administrador",
|
||||||
"admin.users.edit.update.change-password.title": "Cambiar contraseña",
|
"admin.users.edit.update.change-password.title": "Cambiar contraseña",
|
||||||
"admin.users.edit.update.change-password.field": "Nueva contraseña",
|
"admin.users.edit.update.change-password.field": "Nueva contraseña",
|
||||||
"admin.users.edit.update.change-password.button": "Guardar nueva contraseña",
|
"admin.users.edit.update.change-password.button": "Guardar nueva contraseña",
|
||||||
"admin.users.edit.update.notify.password.success": "Contraseña cambiada correctamente",
|
"admin.users.edit.update.notify.password.success": "Contraseña cambiada correctamente",
|
||||||
"admin.users.edit.delete.title": "Delete user: {username} ?",
|
"admin.users.edit.delete.title": "Eliminar usuario: {username} ?",
|
||||||
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
|
"admin.users.edit.delete.description": "¿Realmente deseas eliminar a este usuario y todos sus enlaces compartidos?",
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Crear usuario",
|
"admin.users.modal.create.title": "Crear usuario",
|
||||||
"admin.users.modal.create.username": "Nombre de usuario",
|
"admin.users.modal.create.username": "Nombre de usuario",
|
||||||
@@ -206,17 +206,20 @@ export default {
|
|||||||
"admin.shares.table.id": "ID de compartición",
|
"admin.shares.table.id": "ID de compartición",
|
||||||
"admin.shares.table.username": "Creador",
|
"admin.shares.table.username": "Creador",
|
||||||
"admin.shares.table.visitors": "Visitantes",
|
"admin.shares.table.visitors": "Visitantes",
|
||||||
"admin.shares.table.expires": "Expires on",
|
"admin.shares.table.expires": "Vence el",
|
||||||
"admin.shares.edit.delete.title": "Delete share: {id}",
|
"admin.shares.edit.delete.title": "Eliminar enlace compartido: {id}",
|
||||||
"admin.shares.edit.delete.description": "¿Seguro que quieres eliminar este compartido?",
|
"admin.shares.edit.delete.description": "¿Seguro que quieres eliminar este compartido?",
|
||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Subir",
|
"upload.title": "Subir",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Ha ocurrido un error mientras se compartía tu archivo.",
|
"upload.notify.generic-error": "Ha ocurrido un error mientras se compartía tu archivo.",
|
||||||
"upload.notify.count-failed": "No se pudo cargar {count} archivos. Intentando nuevamente.",
|
"upload.notify.count-failed": "No se pudo cargar {count} archivos. Intentando nuevamente.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Subir archivos",
|
"upload.dropzone.title": "Subir archivos",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Arrastra y suelta los archivos aquí para crear tu enlace compartido. Solo aceptamos archivos de hasta {maxSize} en total.",
|
||||||
"upload.dropzone.notify.file-too-big": "Tus archivos exceden el tamaño máximo de {maxSize}.",
|
"upload.dropzone.notify.file-too-big": "Tus archivos exceden el tamaño máximo de {maxSize}.",
|
||||||
// FileList.tsx
|
// FileList.tsx
|
||||||
"upload.filelist.name": "Nombre",
|
"upload.filelist.name": "Nombre",
|
||||||
@@ -228,8 +231,8 @@ export default {
|
|||||||
"upload.modal.not-signed-in": "No has iniciado sesión",
|
"upload.modal.not-signed-in": "No has iniciado sesión",
|
||||||
"upload.modal.not-signed-in-description": "No podrás eliminar tus compartidos manualmente ni ver el número de visitas.",
|
"upload.modal.not-signed-in-description": "No podrás eliminar tus compartidos manualmente ni ver el número de visitas.",
|
||||||
"upload.modal.expires.never": "nunca",
|
"upload.modal.expires.never": "nunca",
|
||||||
"upload.modal.expires.never-long": "Permanent share",
|
"upload.modal.expires.never-long": "Enlace compartido permanente",
|
||||||
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.",
|
"upload.modal.expires.error.too-long": "La fecha de expiración excede el máximo de {max}.",
|
||||||
"upload.modal.link.label": "Enlace",
|
"upload.modal.link.label": "Enlace",
|
||||||
"upload.modal.expires.label": "Expiración",
|
"upload.modal.expires.label": "Expiración",
|
||||||
"upload.modal.expires.minute-singular": "Minuto",
|
"upload.modal.expires.minute-singular": "Minuto",
|
||||||
@@ -272,16 +275,16 @@ export default {
|
|||||||
"share.error.access-denied.title": "Compartición privada",
|
"share.error.access-denied.title": "Compartición privada",
|
||||||
"share.error.access-denied.description": "La cuenta actual no tiene permiso para acceder a este compartido",
|
"share.error.access-denied.description": "La cuenta actual no tiene permiso para acceder a este compartido",
|
||||||
"share.modal.password.title": "Se requiere contraseña",
|
"share.modal.password.title": "Se requiere contraseña",
|
||||||
"share.modal.password.description": "Please enter the password to acces this share.",
|
"share.modal.password.description": "Por favor, ingresa la contraseña para acceder a este enlace compartido.",
|
||||||
"share.modal.password": "Contraseña",
|
"share.modal.password": "Contraseña",
|
||||||
"share.modal.error.invalid-password": "Contraseña inválida",
|
"share.modal.error.invalid-password": "Contraseña inválida",
|
||||||
"share.button.download-all": "Descargar todo",
|
"share.button.download-all": "Descargar todo",
|
||||||
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.",
|
"share.notify.download-all-preparing": "El enlace compartido está en preparación. Por favor, inténtalo de nuevo en unos minutos.",
|
||||||
"share.modal.file-link": "Enlace del archivo",
|
"share.modal.file-link": "Enlace del archivo",
|
||||||
"share.table.name": "Nombre",
|
"share.table.name": "Nombre",
|
||||||
"share.table.size": "Tamaño",
|
"share.table.size": "Tamaño",
|
||||||
"share.modal.file-preview.error.not-supported.title": "Vista previa no disponible",
|
"share.modal.file-preview.error.not-supported.title": "Vista previa no disponible",
|
||||||
"share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.",
|
"share.modal.file-preview.error.not-supported.description": "Las vistas previas no son compatibles con este tipo de archivos. Por favor, descargue el archivo para verlo.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Editar {shareId}",
|
"share.edit.title": "Editar {shareId}",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Nombre de la aplicación",
|
"admin.config.general.app-name.description": "Nombre de la aplicación",
|
||||||
"admin.config.general.app-url": "App URL",
|
"admin.config.general.app-url": "App URL",
|
||||||
"admin.config.general.app-url.description": "En cuál URL está disponible Pingvin Share",
|
"admin.config.general.app-url.description": "En cuál URL está disponible Pingvin Share",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Mostrar página de inicio",
|
"admin.config.general.show-home-page": "Mostrar página de inicio",
|
||||||
"admin.config.general.show-home-page.description": "Mostrar o no la página de inicio",
|
"admin.config.general.show-home-page.description": "Mostrar o no la página de inicio",
|
||||||
"admin.config.general.session-duration": "Duración de la sesión",
|
"admin.config.general.session-duration": "Duración de la sesión",
|
||||||
@@ -307,24 +312,24 @@ export default {
|
|||||||
"admin.config.general.logo": "Logo",
|
"admin.config.general.logo": "Logo",
|
||||||
"admin.config.general.logo.description": "Cambia tu logo subiendo una nueva imagen. La imagen debe ser un PNG y debe estar en formato 1:1.",
|
"admin.config.general.logo.description": "Cambia tu logo subiendo una nueva imagen. La imagen debe ser un PNG y debe estar en formato 1:1.",
|
||||||
"admin.config.general.logo.placeholder": "Elegir imagen",
|
"admin.config.general.logo.placeholder": "Elegir imagen",
|
||||||
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
|
"admin.config.email.enable-share-email-recipients": "Habilitar compartir por correo electrónico",
|
||||||
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
|
"admin.config.email.enable-share-email-recipients.description": "Si desea permitir compartir por correo electrónico. Solo habilita esto si SMTP está activado.",
|
||||||
"admin.config.email.share-recipients-subject": "Asunto destinatario",
|
"admin.config.email.share-recipients-subject": "Asunto destinatario",
|
||||||
"admin.config.email.share-recipients-subject.description": "Asunto del correo el cual es enviado al destinatario del compartido.",
|
"admin.config.email.share-recipients-subject.description": "Asunto del correo el cual es enviado al destinatario del compartido.",
|
||||||
"admin.config.email.share-recipients-message": "Mensaje destinatario",
|
"admin.config.email.share-recipients-message": "Mensaje destinatario",
|
||||||
"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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Asunto de la compartición inversa",
|
"admin.config.email.reverse-share-subject": "Asunto de la compartición inversa",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Asunto del correo electrónico enviado cuando alguien crea un enlace compartido con tu enlace compartido inverso.",
|
||||||
"admin.config.email.reverse-share-message": "Mensaje de la compartición inversa",
|
"admin.config.email.reverse-share-message": "Mensaje de la compartición inversa",
|
||||||
"admin.config.email.reverse-share-message.description": "Mensaje que se envía cuando alguien comparte algo con tu enlace de compartición inversa. {shareUrl} Se remplazará con el nombre del creador y la URL del compartido.",
|
"admin.config.email.reverse-share-message.description": "Mensaje que se envía cuando alguien comparte algo con tu enlace de compartición inversa. {shareUrl} Se remplazará con el nombre del creador y la URL del compartido.",
|
||||||
"admin.config.email.reset-password-subject": "Asunto restablecer contraseña",
|
"admin.config.email.reset-password-subject": "Asunto restablecer contraseña",
|
||||||
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.",
|
"admin.config.email.reset-password-subject.description": "Asunto del correo electrónico enviado cuando un usuario solicita un restablecimiento de contraseña.",
|
||||||
"admin.config.email.reset-password-message": "Mensaje restablecer contraseña",
|
"admin.config.email.reset-password-message": "Mensaje restablecer contraseña",
|
||||||
"admin.config.email.reset-password-message.description": "Mensaje que se envía cuando un usuario solicita restablecer la contraseña. {url} se remplazará con la URL para restablecer la contraseña.",
|
"admin.config.email.reset-password-message.description": "Mensaje que se envía cuando un usuario solicita restablecer la contraseña. {url} se remplazará con la URL para restablecer la contraseña.",
|
||||||
"admin.config.email.invite-subject": "Asunto de la invitación",
|
"admin.config.email.invite-subject": "Asunto de la invitación",
|
||||||
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.",
|
"admin.config.email.invite-subject.description": "Asunto del correo electrónico enviado cuando un administrador invita a un usuario.",
|
||||||
"admin.config.email.invite-message": "Mensaje de invitación",
|
"admin.config.email.invite-message": "Mensaje de invitación",
|
||||||
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.",
|
"admin.config.email.invite-message.description": "Mensaje que se envía cuando un administrador invita a un usuario. {url} se reemplazará con la URL de invitación, {email} con el correo electrónico y {password} con la contraseña del usuario.",
|
||||||
"admin.config.share.allow-registration": "Permitir registro",
|
"admin.config.share.allow-registration": "Permitir registro",
|
||||||
"admin.config.share.allow-registration.description": "Si se permite el registro",
|
"admin.config.share.allow-registration.description": "Si se permite el registro",
|
||||||
"admin.config.share.allow-unauthenticated-shares": "Permitir compartir sin iniciar sesión",
|
"admin.config.share.allow-unauthenticated-shares": "Permitir compartir sin iniciar sesión",
|
||||||
@@ -336,17 +341,17 @@ export default {
|
|||||||
"admin.config.share.zip-compression-level": "Nivel de compresión del Zip",
|
"admin.config.share.zip-compression-level": "Nivel de compresión del Zip",
|
||||||
"admin.config.share.zip-compression-level.description": "Ajustar el nivel para equilibrar entre el tamaño del archivo y la velocidad de compresión. Los valores válidos van del 0 al 9, siendo 0 sin compresión y 9 el nivel máximo de compresión. ",
|
"admin.config.share.zip-compression-level.description": "Ajustar el nivel para equilibrar entre el tamaño del archivo y la velocidad de compresión. Los valores válidos van del 0 al 9, siendo 0 sin compresión y 9 el nivel máximo de compresión. ",
|
||||||
"admin.config.share.chunk-size": "Tamaño de los fragmentos",
|
"admin.config.share.chunk-size": "Tamaño de los fragmentos",
|
||||||
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.",
|
"admin.config.share.chunk-size.description": "Ajusta el tamaño del fragmento (en bytes) para tus subidas y equilibra la eficiencia y la fiabilidad según tu conexión a Internet. Fragmentos más pequeños pueden aumentar las tasas de éxito para conexiones inestables, mientras que fragmentos más grandes hacen que las subidas sean más rápidas para conexiones estables.",
|
||||||
"admin.config.share.auto-open-share-modal": "Auto abrir un modal de creación de compartidos",
|
"admin.config.share.auto-open-share-modal": "Auto abrir un modal de creación de compartidos",
|
||||||
"admin.config.share.auto-open-share-modal.description": "El modal de creación de compartir aparece automáticamente cuando un usuario selecciona archivos, eliminando la necesidad de hacer clic manualmente en el botón.",
|
"admin.config.share.auto-open-share-modal.description": "El modal de creación de compartir aparece automáticamente cuando un usuario selecciona archivos, eliminando la necesidad de hacer clic manualmente en el botón.",
|
||||||
"admin.config.smtp.enabled": "Enable",
|
"admin.config.smtp.enabled": "Habilitar",
|
||||||
"admin.config.smtp.enabled.description": "Si SMTP está habilitado. Active solo si ha introducido el host, el puerto, el correo, el usuario y la contraseña de su servidor SMTP.",
|
"admin.config.smtp.enabled.description": "Si SMTP está habilitado. Active solo si ha introducido el host, el puerto, el correo, el usuario y la contraseña de su servidor SMTP.",
|
||||||
"admin.config.smtp.host": "Host",
|
"admin.config.smtp.host": "Host",
|
||||||
"admin.config.smtp.host.description": "Host del servidor SMTP",
|
"admin.config.smtp.host.description": "Host del servidor SMTP",
|
||||||
"admin.config.smtp.port": "Puerto",
|
"admin.config.smtp.port": "Puerto",
|
||||||
"admin.config.smtp.port.description": "Puerto del servidor SMTP",
|
"admin.config.smtp.port.description": "Puerto del servidor SMTP",
|
||||||
"admin.config.smtp.email": "Correo",
|
"admin.config.smtp.email": "Correo",
|
||||||
"admin.config.smtp.email.description": "Email address from wich the emails get sent",
|
"admin.config.smtp.email.description": "Dirección desde la cual se envían los correos electrónicos",
|
||||||
"admin.config.smtp.username": "Usuario",
|
"admin.config.smtp.username": "Usuario",
|
||||||
"admin.config.smtp.username.description": "Usuario del servidor SMTP",
|
"admin.config.smtp.username.description": "Usuario del servidor SMTP",
|
||||||
"admin.config.smtp.password": "Contraseña",
|
"admin.config.smtp.password": "Contraseña",
|
||||||
@@ -375,58 +380,58 @@ export default {
|
|||||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
"admin.config.oauth.microsoft-enabled.description": "Si el inicio de sesión de Microsoft está habilitado",
|
"admin.config.oauth.microsoft-enabled.description": "Si el inicio de sesión de Microsoft está habilitado",
|
||||||
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
"admin.config.oauth.microsoft-tenant": "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 de la aplicación OAuth de Microsoft\ncomún: Los usuarios con una cuenta personal de Microsoft y una cuenta de trabajo o escuela de Microsoft Entra ID pueden iniciar sesión en la aplicación.\norganizaciones: Solo los usuarios con cuentas de trabajo o escuela de Microsoft Entra ID pueden iniciar sesión en la aplicación.\nconsumidores: Solo los usuarios con una cuenta personal de Microsoft pueden iniciar sesión en la aplicación.\nNombre de dominio del Tenant ID de Microsoft Entra o el Tenant ID en formato GUID: Solo los usuarios de un Tenant específico de Microsoft Entra (miembros del directorio con una cuenta de trabajo o escuela o invitados del directorio con una cuenta personal de Microsoft) pueden iniciar sesión en la aplicación.",
|
||||||
"admin.config.oauth.microsoft-client-id": "ID del cliente de Microsoft",
|
"admin.config.oauth.microsoft-client-id": "ID del cliente de Microsoft",
|
||||||
"admin.config.oauth.microsoft-client-id.description": "ID de cliente de la app OAuth de Microsoft",
|
"admin.config.oauth.microsoft-client-id.description": "ID de cliente de la app OAuth de Microsoft",
|
||||||
"admin.config.oauth.microsoft-client-secret": "Secreto del cliente de Microsoft",
|
"admin.config.oauth.microsoft-client-secret": "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": "Secreto del cliente de la aplicación OAuth de Microsoft",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Si el inicio de sesión de Discord está habilitado",
|
"admin.config.oauth.discord-enabled.description": "Si el inicio de sesión de Discord está habilitado",
|
||||||
"admin.config.oauth.discord-limited-users": "Discord limited users",
|
"admin.config.oauth.discord-limited-users": "Usuarios limitados de Discord",
|
||||||
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-users.description": "Limitar el inicio de sesión a usuarios específicos por su ID de Discord. Deja en blanco para desactivar.",
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
"admin.config.oauth.discord-limited-guild": "ID de servidor limitado de Discord",
|
||||||
"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-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": "ID de cliente de Discord",
|
||||||
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
|
"admin.config.oauth.discord-client-id.description": "ID de cliente de la aplicación OAuth de Discord",
|
||||||
"admin.config.oauth.discord-client-secret": "Discord Client secret",
|
"admin.config.oauth.discord-client-secret": "Secreto de cliente de Discord",
|
||||||
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
|
"admin.config.oauth.discord-client-secret.description": "Secreto del cliente de la aplicación OAuth de Discord",
|
||||||
"admin.config.oauth.oidc-enabled": "Conexión OpenID",
|
"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": "Si el inicio de sesión de OpenID Connect está habilitado",
|
||||||
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
"admin.config.oauth.oidc-discovery-uri": "URI de descubrimiento de 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 de descubrimiento de la aplicación OAuth de OpenID Connect",
|
||||||
"admin.config.oauth.oidc-sign-out": "Sign out from OpenID Connect",
|
"admin.config.oauth.oidc-sign-out": "Cerrar sesión de OpenID Connect",
|
||||||
"admin.config.oauth.oidc-sign-out.description": "Whether the “Sign out” button will sign out from the OpenID Connect provider",
|
"admin.config.oauth.oidc-sign-out.description": "Si el botón \"Cerrar sesión\" cerrará la sesión del proveedor de OpenID Connect",
|
||||||
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
|
"admin.config.oauth.oidc-username-claim": "Reclamo de nombre de usuario de 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": "Reclamo de nombre de usuario en el token de OpenID Connect. Déjalo en blanco si no sabes qué es esta configuración.",
|
||||||
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",
|
"admin.config.oauth.oidc-role-path": "Ruta a los roles en el token de OpenID Connect",
|
||||||
"admin.config.oauth.oidc-role-path.description": "Debe ser una ruta JMES válida que haga referencia a un array de roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "Déjalo en blanco si no sabe lo que es esta configuración.",
|
"admin.config.oauth.oidc-role-path.description": "Debe ser una ruta JMES válida que haga referencia a un array de roles. " + "Se recomienda gestionar los derechos de acceso utilizando roles de OpenID Connect solo si no se ha configurado ningún otro proveedor de identidad y si el inicio de sesión con contraseña está deshabilitado. " + "Déjalo en blanco si no sabe lo que es esta configuración.",
|
||||||
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access",
|
"admin.config.oauth.oidc-role-general-access": "Rol de OpenID Connect para acceso general",
|
||||||
"admin.config.oauth.oidc-role-general-access.description": "Rol requerido para acceso general. Debe estar presente en los roles de un usuario para que inicie sesión. " + "Déjalo en blanco si no sabe lo que es esta configuración.",
|
"admin.config.oauth.oidc-role-general-access.description": "Rol requerido para acceso general. Debe estar presente en los roles de un usuario para que inicie sesión. " + "Déjalo en blanco si no sabe lo que es esta configuración.",
|
||||||
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access",
|
"admin.config.oauth.oidc-role-admin-access": "Rol de OpenID Connect para acceso de administrador",
|
||||||
"admin.config.oauth.oidc-role-admin-access.description": "Rol requerido para el acceso administrativo. Debe estar presente en los roles de un usuario para acceder al panel de administración. " + "Déjalo en blanco si no sabe lo que es esta configuración.",
|
"admin.config.oauth.oidc-role-admin-access.description": "Rol requerido para el acceso administrativo. Debe estar presente en los roles de un usuario para acceder al panel de administración. " + "Déjalo en blanco si no sabe lo que es esta configuración.",
|
||||||
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
"admin.config.oauth.oidc-client-id": "ID de 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 de cliente de la aplicación OAuth de OpenID Connect",
|
||||||
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
|
"admin.config.oauth.oidc-client-secret": "Secreto de cliente de OpenID Connect",
|
||||||
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-client-secret.description": "Secreto del cliente de la aplicación OAuth de OpenID Connect",
|
||||||
"admin.config.category.ldap": "LDAP",
|
"admin.config.category.ldap": "LDAP",
|
||||||
"admin.config.ldap.enabled": "Enable LDAP",
|
"admin.config.ldap.enabled": "Habilitar LDAP",
|
||||||
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login",
|
"admin.config.ldap.enabled.description": "Usar autenticación LDAP para el inicio de sesión de usuarios",
|
||||||
"admin.config.ldap.url": "Server URL",
|
"admin.config.ldap.url": "URL del servidor",
|
||||||
"admin.config.ldap.url.description": "URL of the LDAP server",
|
"admin.config.ldap.url.description": "URL del servidor LDAP",
|
||||||
"admin.config.ldap.bind-dn": "Bind DN",
|
"admin.config.ldap.bind-dn": "Bind DN",
|
||||||
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search",
|
"admin.config.ldap.bind-dn.description": "Usuario predeterminado utilizado para realizar la búsqueda de usuarios",
|
||||||
"admin.config.ldap.bind-password": "Bind password",
|
"admin.config.ldap.bind-password": "Bind password",
|
||||||
"admin.config.ldap.bind-password.description": "Password used to perform the user search",
|
"admin.config.ldap.bind-password.description": "Contraseña utilizada para realizar la búsqueda de usuarios",
|
||||||
"admin.config.ldap.search-base": "User base",
|
"admin.config.ldap.search-base": "Base de usuarios",
|
||||||
"admin.config.ldap.search-base.description": "Base location, where the user search will be performed",
|
"admin.config.ldap.search-base.description": "Ubicación base, donde se llevará a cabo la búsqueda de usuarios",
|
||||||
"admin.config.ldap.search-query": "User query",
|
"admin.config.ldap.search-query": "Consulta de usuario",
|
||||||
"admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.",
|
"admin.config.ldap.search-query.description": "La consulta de usuario se utilizará para buscar en la 'Base de usuarios' al usuario LDAP. Se puede usar %username% como marcador de posición para la entrada del usuario.",
|
||||||
"admin.config.ldap.admin-groups": "Admin group",
|
"admin.config.ldap.admin-groups": "Grupo de administración",
|
||||||
"admin.config.ldap.admin-groups.description": "Group required for administrative access.",
|
"admin.config.ldap.admin-groups.description": "Grupo requerido para acceso administrativo.",
|
||||||
"admin.config.ldap.field-name-member-of": "User groups attribute name",
|
"admin.config.ldap.field-name-member-of": "Atributo grupos de usuarios",
|
||||||
"admin.config.ldap.field-name-member-of.description": "LDAP attribute name for the groups, an user is a member of. This is used when checking for the admin group.",
|
"admin.config.ldap.field-name-member-of.description": "Nombre del atributo LDAP para los grupos de los que es miembro un usuario. Esto se utiliza al verificar el grupo de administración.",
|
||||||
"admin.config.ldap.field-name-email": "User email attribute name",
|
"admin.config.ldap.field-name-email": "Atributo correo electrónico del usuario",
|
||||||
"admin.config.ldap.field-name-email.description": "LDAP attribute name for the email of an user.",
|
"admin.config.ldap.field-name-email.description": "Nombre del atributo LDAP para el correo electrónico de un usuario.",
|
||||||
// 404
|
// 404
|
||||||
"404.description": "Oops esta página no existe.",
|
"404.description": "Oops esta página no existe.",
|
||||||
"404.button.home": "Regrésame al inicio",
|
"404.button.home": "Regrésame al inicio",
|
||||||
@@ -441,10 +446,10 @@ export default {
|
|||||||
"error.msg.no_user": "El usuario vinculado a esta cuenta {0} no existe.",
|
"error.msg.no_user": "El usuario vinculado a esta cuenta {0} no existe.",
|
||||||
"error.msg.no_email": "No se puede obtener la dirección de correo electrónico de esta cuenta {0}.",
|
"error.msg.no_email": "No se puede obtener la dirección de correo electrónico de esta cuenta {0}.",
|
||||||
"error.msg.already_linked": "Esta cuenta {0} ya está vinculada a otra cuenta.",
|
"error.msg.already_linked": "Esta cuenta {0} ya está vinculada a otra cuenta.",
|
||||||
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.",
|
"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.user_not_allowed": "No tienes permitido iniciar sesion.",
|
"error.msg.user_not_allowed": "No tienes permitido iniciar sesion.",
|
||||||
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.",
|
"error.msg.cannot_get_user_info": "No se puede obtener tu información de usuario de esta 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",
|
||||||
@@ -462,9 +467,9 @@ 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": "Visit link",
|
"common.text.navigate-to-link": "Visitar enlace",
|
||||||
"common.text.or": "o",
|
"common.text.or": "o",
|
||||||
"common.text.redirecting": "Redirecting...",
|
"common.text.redirecting": "Redirigiendo...",
|
||||||
"common.button.go-back": "Volver",
|
"common.button.go-back": "Volver",
|
||||||
"common.button.go-home": "Página de inicio",
|
"common.button.go-home": "Página de inicio",
|
||||||
"common.notify.copied": "Tu enlace se ha copiado al portapapeles",
|
"common.notify.copied": "Tu enlace se ha copiado al portapapeles",
|
||||||
@@ -474,8 +479,8 @@ export default {
|
|||||||
"common.error.invalid-email": "Correo electrónico no válido",
|
"common.error.invalid-email": "Correo electrónico no válido",
|
||||||
"common.error.too-short": "Debe tener al menos {length} caracteres",
|
"common.error.too-short": "Debe tener al menos {length} caracteres",
|
||||||
"common.error.too-long": "Debe tener como máximo {length} caracteres",
|
"common.error.too-long": "Debe tener como máximo {length} caracteres",
|
||||||
"common.error.number-too-small": "Must be at least {min}",
|
"common.error.number-too-small": "Debe ser al menos {min}",
|
||||||
"common.error.number-too-large": "Must be at most {max}",
|
"common.error.number-too-large": "Debe ser como máximo {max}",
|
||||||
"common.error.exact-length": "Debe tener exactamente {length} caracteres",
|
"common.error.exact-length": "Debe tener exactamente {length} caracteres",
|
||||||
"common.error.invalid-number": "Debe ser un número",
|
"common.error.invalid-number": "Debe ser un número",
|
||||||
"common.error.field-required": "Este campo es requerido"
|
"common.error.field-required": "Este campo es requerido"
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Pilvetä",
|
"upload.title": "Pilvetä",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Kohdattiin odottamaton virhe jaon luomisessa.",
|
"upload.notify.generic-error": "Kohdattiin odottamaton virhe jaon luomisessa.",
|
||||||
"upload.notify.count-failed": "{count} tiedostoa ei voitu ladata. Yritetään uudelleen.",
|
"upload.notify.count-failed": "{count} tiedostoa ei voitu ladata. Yritetään uudelleen.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Pilvetä tiedostoja",
|
"upload.dropzone.title": "Pilvetä tiedostoja",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Sovelluksen nimi",
|
"admin.config.general.app-name.description": "Sovelluksen nimi",
|
||||||
"admin.config.general.app-url": "Sovelluksen URL",
|
"admin.config.general.app-url": "Sovelluksen URL",
|
||||||
"admin.config.general.app-url.description": "Millä URL-osoitteella Pingvin Share on saatavilla",
|
"admin.config.general.app-url.description": "Millä URL-osoitteella Pingvin Share on saatavilla",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Näytä kotisivu",
|
"admin.config.general.show-home-page": "Näytä kotisivu",
|
||||||
"admin.config.general.show-home-page.description": "Näytetäänkö kotisivu vai ei",
|
"admin.config.general.show-home-page.description": "Näytetäänkö kotisivu vai ei",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Sähköpostijaon otsikko",
|
"admin.config.email.share-recipients-subject": "Sähköpostijaon otsikko",
|
||||||
"admin.config.email.share-recipients-subject.description": "Sähköpostin aihe, joka saa lähetetään jaon vastaanottajille.",
|
"admin.config.email.share-recipients-subject.description": "Sähköpostin aihe, joka saa lähetetään jaon vastaanottajille.",
|
||||||
"admin.config.email.share-recipients-message": "Sähköpostijaon viesti",
|
"admin.config.email.share-recipients-message": "Sähköpostijaon viesti",
|
||||||
"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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Käänteisen jaon aihe",
|
"admin.config.email.reverse-share-subject": "Käänteisen jaon aihe",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Käänteisen jakoviestin viesti",
|
"admin.config.email.reverse-share-message": "Käänteisen jakoviestin viesti",
|
||||||
|
|||||||
@@ -91,14 +91,14 @@ export default {
|
|||||||
"account.card.security.totp.enable.description": "Entrez votre mot de passe actuel pour activer TOTP",
|
"account.card.security.totp.enable.description": "Entrez votre mot de passe actuel pour activer TOTP",
|
||||||
"account.card.security.totp.disable.description": "Entrez votre mot de passe actuel pour désactiver TOTP",
|
"account.card.security.totp.disable.description": "Entrez votre mot de passe actuel pour désactiver TOTP",
|
||||||
"account.card.security.totp.button.start": "Démarrer",
|
"account.card.security.totp.button.start": "Démarrer",
|
||||||
"account.modal.totp.title": "Activer TOTP",
|
"account.modal.totp.title": "Activer la double authentification",
|
||||||
"account.modal.totp.step1": "Étape 1 : Ajouter votre authentificateur",
|
"account.modal.totp.step1": "Étape 1 : Ajouter votre authentification",
|
||||||
"account.modal.totp.step2": "Étape 2 : Valider votre code",
|
"account.modal.totp.step2": "Étape 2 : Valider votre code",
|
||||||
"account.modal.totp.enterManually": "Saisir manuellement",
|
"account.modal.totp.enterManually": "Saisir manuellement",
|
||||||
"account.modal.totp.code": "Code",
|
"account.modal.totp.code": "Code",
|
||||||
"common.button.clickToCopy": "Cliquez pour copier",
|
"common.button.clickToCopy": "Cliquez pour copier",
|
||||||
"account.modal.totp.verify": "Vérifier",
|
"account.modal.totp.verify": "Vérifier",
|
||||||
"account.notify.totp.disable": "TOTP désactivé avec succès",
|
"account.notify.totp.disable": "Double authentification (TOTP) désactivé avec succès",
|
||||||
"account.notify.totp.enable": "TOTP activé avec succès",
|
"account.notify.totp.enable": "TOTP activé avec succès",
|
||||||
"account.card.language.title": "Langue",
|
"account.card.language.title": "Langue",
|
||||||
"account.card.language.description": "Le projet est traduit par la communauté. Certaines traductions peuvent être incomplètes.",
|
"account.card.language.description": "Le projet est traduit par la communauté. Certaines traductions peuvent être incomplètes.",
|
||||||
@@ -151,7 +151,7 @@ export default {
|
|||||||
"account.reverseShares.modal.expiration.year-plural": "Ans",
|
"account.reverseShares.modal.expiration.year-plural": "Ans",
|
||||||
"account.reverseShares.modal.max-size.label": "Taille maximale du partage",
|
"account.reverseShares.modal.max-size.label": "Taille maximale du partage",
|
||||||
"account.reverseShares.modal.send-email": "Envoyer des notifications par courriel",
|
"account.reverseShares.modal.send-email": "Envoyer des notifications par courriel",
|
||||||
"account.reverseShares.modal.send-email.description": "Vous envoie une notification par courriel lorsqu'un partage est créé avec ce lien de partage inversé.",
|
"account.reverseShares.modal.send-email.description": "Vous envoi une notification par courriel lorsqu'un partage est créé avec ce lien de partage inversé.",
|
||||||
"account.reverseShares.modal.simplified": "Mode simple",
|
"account.reverseShares.modal.simplified": "Mode simple",
|
||||||
"account.reverseShares.modal.simplified.description": "Simplifiez la tâche à la personne qui vous partage un fichier. Ils ne pourront que personnaliser le nom et la description du partage.",
|
"account.reverseShares.modal.simplified.description": "Simplifiez la tâche à la personne qui vous partage un fichier. Ils ne pourront que personnaliser le nom et la description du partage.",
|
||||||
"account.reverseShares.modal.public-access": "Accès public",
|
"account.reverseShares.modal.public-access": "Accès public",
|
||||||
@@ -190,7 +190,7 @@ export default {
|
|||||||
"admin.users.edit.update.change-password.button": "Enregistrer le nouveau mot de passe",
|
"admin.users.edit.update.change-password.button": "Enregistrer le nouveau mot de passe",
|
||||||
"admin.users.edit.update.notify.password.success": "Le mot de passe a été modifié",
|
"admin.users.edit.update.notify.password.success": "Le mot de passe a été modifié",
|
||||||
"admin.users.edit.delete.title": "Supprimer l'utilisateur : {username} ?",
|
"admin.users.edit.delete.title": "Supprimer l'utilisateur : {username} ?",
|
||||||
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
|
"admin.users.edit.delete.description": "Souhaitez-vous vraiment supprimer cet utilisateur et tous ses partages ?",
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Créer un utilisateur",
|
"admin.users.modal.create.title": "Créer un utilisateur",
|
||||||
"admin.users.modal.create.username": "Surnom",
|
"admin.users.modal.create.username": "Surnom",
|
||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Envoyer",
|
"upload.title": "Envoyer",
|
||||||
|
"upload.notify.confirm-leave": "Êtes-vous sûr de vouloir quitter cette page ? Votre envoi sera annulé.",
|
||||||
"upload.notify.generic-error": "Une erreur est survenue durant le traitement de votre partage.",
|
"upload.notify.generic-error": "Une erreur est survenue durant le traitement de votre partage.",
|
||||||
"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.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Lien de partage inversé invalide",
|
||||||
|
"upload.reverse-share.error.invalid.description": "Ce partage inversé a expiré ou n'est pas valide.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Téléverser des fichiers",
|
"upload.dropzone.title": "Téléverser des fichiers",
|
||||||
"upload.dropzone.description": "Glisser-déposer les fichiers ici pour commencer votre partage. Nous n'acceptons que les fichiers jusqu'à {maxSize} au total.",
|
"upload.dropzone.description": "Glisser-déposer les fichiers ici pour commencer votre partage. Nous n'acceptons que les fichiers jusqu'à {maxSize} au total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Le nom de l’application",
|
"admin.config.general.app-name.description": "Le nom de l’application",
|
||||||
"admin.config.general.app-url": "URL de l’appli",
|
"admin.config.general.app-url": "URL de l’appli",
|
||||||
"admin.config.general.app-url.description": "Depuis quel URL le partage Pingvin est disponible",
|
"admin.config.general.app-url.description": "Depuis quel URL le partage Pingvin est disponible",
|
||||||
|
"admin.config.general.secure-cookies": "Cookies sécurisés",
|
||||||
|
"admin.config.general.secure-cookies.description": "Définir ou non le marquage sécurisé sur les cookies. Si activé, le site ne fonctionnera pas lorsqu'il est accédé via HTTP.",
|
||||||
"admin.config.general.show-home-page": "Afficher la page d’accueil",
|
"admin.config.general.show-home-page": "Afficher la page d’accueil",
|
||||||
"admin.config.general.show-home-page.description": "Afficher ou non la page d’accueil",
|
"admin.config.general.show-home-page.description": "Afficher ou non la page d’accueil",
|
||||||
"admin.config.general.session-duration": "Durée de la session",
|
"admin.config.general.session-duration": "Durée de la session",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Sujet d’un partage",
|
"admin.config.email.share-recipients-subject": "Sujet d’un partage",
|
||||||
"admin.config.email.share-recipients-subject.description": "Intitulé du courriel envoyé aux destinataires d’un partage.",
|
"admin.config.email.share-recipients-subject.description": "Intitulé du courriel envoyé aux destinataires d’un partage.",
|
||||||
"admin.config.email.share-recipients-message": "Message d’un partage",
|
"admin.config.email.share-recipients-message": "Message d’un partage",
|
||||||
"admin.config.email.share-recipients-message.description": "Contenu du courriel qui est envoyé aux destinataires du partage. Variables possibles :\n• {creator} : Le pseudo de l’auteur du partage\n• {shareUrl} : L’URL du partage\n• {desc} : La description du partage\n• {expires} : La date d'expiration du partage\nCes variables seront remplacées par leur valeur réelle.",
|
"admin.config.email.share-recipients-message.description": "Contenu du courriel qui est envoyé aux destinataires du partage. Variables possibles :\n {creator} - Le nom d'utilisateur du créateur du partage\n {creatorEmail} - L'adresse mail du créateur du partage\n {shareUrl} - L'URL du partage\n {desc} - La description du partage\n {expires} - La date d'expiration du partage.\n Ces variables seront remplacées par leur valeur effective.",
|
||||||
"admin.config.email.reverse-share-subject": "Sujet d’un partage inversé",
|
"admin.config.email.reverse-share-subject": "Sujet d’un partage inversé",
|
||||||
"admin.config.email.reverse-share-subject.description": "Intitulé du courriel envoyé lorsque quelqu’un a partagé des fichiers depuis votre partage inversé.",
|
"admin.config.email.reverse-share-subject.description": "Intitulé du courriel envoyé lorsque quelqu’un a partagé des fichiers depuis votre partage inversé.",
|
||||||
"admin.config.email.reverse-share-message": "Message d’un partage inversé",
|
"admin.config.email.reverse-share-message": "Message d’un partage inversé",
|
||||||
@@ -331,6 +336,9 @@ export default {
|
|||||||
"admin.config.share.allow-unauthenticated-shares.description": "Permet aux visiteurs de créer des partages",
|
"admin.config.share.allow-unauthenticated-shares.description": "Permet aux visiteurs de créer des partages",
|
||||||
"admin.config.share.max-expiration": "Échéance",
|
"admin.config.share.max-expiration": "Échéance",
|
||||||
"admin.config.share.max-expiration.description": "Échéance du partage en heures. Indiquez 0 pour qu’il n’expire jamais.",
|
"admin.config.share.max-expiration.description": "Échéance du partage en heures. Indiquez 0 pour qu’il n’expire jamais.",
|
||||||
|
"admin.config.share.share-id-length": "Taille de l'identifiant généré",
|
||||||
|
"admin.config.share.share-id-length.description":
|
||||||
|
"Taille par défaut de l'identifiant généré pour un partage. Cette valeur est aussi utilisée pour générer les liens des partages inverses. Une valeur inférieure à 8 n'est pas considérée sûre.",
|
||||||
"admin.config.share.max-size": "Taille max",
|
"admin.config.share.max-size": "Taille max",
|
||||||
"admin.config.share.max-size.description": "Taille maximale du partage en octets",
|
"admin.config.share.max-size.description": "Taille maximale du partage en octets",
|
||||||
"admin.config.share.zip-compression-level": "Niveau de compression",
|
"admin.config.share.zip-compression-level": "Niveau de compression",
|
||||||
@@ -356,8 +364,8 @@ export default {
|
|||||||
"admin.config.smtp.allow-unauthorized-certificates.description": "Ne permettez ceci que si vous avez besoin de faire confiance aux certificats autosignés.",
|
"admin.config.smtp.allow-unauthorized-certificates.description": "Ne permettez ceci que si vous avez besoin de faire confiance aux certificats autosignés.",
|
||||||
"admin.config.oauth.allow-registration": "Autoriser l’inscription",
|
"admin.config.oauth.allow-registration": "Autoriser l’inscription",
|
||||||
"admin.config.oauth.allow-registration.description": "Permettre aux utilisateurs de s’inscrire via leur identifiant social",
|
"admin.config.oauth.allow-registration.description": "Permettre aux utilisateurs de s’inscrire via leur identifiant social",
|
||||||
"admin.config.oauth.ignore-totp": "Ignorer TOTP",
|
"admin.config.oauth.ignore-totp": "Ignorer double authentification TOTP",
|
||||||
"admin.config.oauth.ignore-totp.description": "Ignorer le TOTP lorsque l’utilisateur utilise un identifiant social.",
|
"admin.config.oauth.ignore-totp.description": "Ignorer la double-authentification (TOTP) lorsque l’utilisateur utilise un identifiant social",
|
||||||
"admin.config.oauth.disable-password": "Désactiver la connexion par mot de passe",
|
"admin.config.oauth.disable-password": "Désactiver la connexion par mot de passe",
|
||||||
"admin.config.oauth.disable-password.description": "Désactive la connexion par mot de passe\nAssurez-vous qu’un fournisseur OAuth soit correctement configuré avant d’activer cette configuration pour éviter d'être enfermé.",
|
"admin.config.oauth.disable-password.description": "Désactive la connexion par mot de passe\nAssurez-vous qu’un fournisseur OAuth soit correctement configuré avant d’activer cette configuration pour éviter d'être enfermé.",
|
||||||
"admin.config.oauth.github-enabled": "GitHub",
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
@@ -382,8 +390,8 @@ export default {
|
|||||||
"admin.config.oauth.microsoft-client-secret.description": "Le secret du client de l’application Microsoft OAuth",
|
"admin.config.oauth.microsoft-client-secret.description": "Le secret du client de l’application Microsoft OAuth",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Permettre la connexion via Discord",
|
"admin.config.oauth.discord-enabled.description": "Permettre la connexion via Discord",
|
||||||
"admin.config.oauth.discord-limited-users": "Discord limited users",
|
"admin.config.oauth.discord-limited-users": "Utilisateurs limités sur Discord",
|
||||||
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-users.description": "Limiter la connexion à des utilisateurs spécifiques par leur identifiant Discord. Laissez vide pour désactiver.",
|
||||||
"admin.config.oauth.discord-limited-guild": "ID de serveur restreint Discord",
|
"admin.config.oauth.discord-limited-guild": "ID de serveur restreint Discord",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "Limiter la connexion aux utilisateurs sur un serveur spécifique. Laissez vide pour désactiver.",
|
"admin.config.oauth.discord-limited-guild.description": "Limiter la connexion aux utilisateurs sur un serveur spécifique. Laissez vide pour désactiver.",
|
||||||
"admin.config.oauth.discord-client-id": "ID du client Discord",
|
"admin.config.oauth.discord-client-id": "ID du client Discord",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export default {
|
|||||||
"navbar.upload": "Feltöltés",
|
"navbar.upload": "Feltöltés",
|
||||||
"navbar.signin": "Bejelentkezés",
|
"navbar.signin": "Bejelentkezés",
|
||||||
"navbar.home": "Home",
|
"navbar.home": "Home",
|
||||||
"navbar.signup": "Sign up",
|
"navbar.signup": "Regisztráció",
|
||||||
"navbar.links.shares": "Megosztásaim",
|
"navbar.links.shares": "Megosztásaim",
|
||||||
"navbar.links.reverse": "Fordított megosztások",
|
"navbar.links.reverse": "Fordított megosztások",
|
||||||
"navbar.avatar.account": "Fiókom",
|
"navbar.avatar.account": "Fiókom",
|
||||||
@@ -16,9 +16,9 @@ export default {
|
|||||||
"home.bullet.a.name": "Saját üzemeltetés",
|
"home.bullet.a.name": "Saját üzemeltetés",
|
||||||
"home.bullet.a.description": "A Pingvin Share megosztót saját gépéről futtathatja.",
|
"home.bullet.a.description": "A Pingvin Share megosztót saját gépéről futtathatja.",
|
||||||
"home.bullet.b.name": "Adatvédelem",
|
"home.bullet.b.name": "Adatvédelem",
|
||||||
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.",
|
"home.bullet.b.description": "A te fájljaid a tiéd, és harmadik felek soha nem férnek hozzá.",
|
||||||
"home.bullet.c.name": "Nincs bosszantó fájl méretkorlát",
|
"home.bullet.c.name": "Nincs bosszantó fájl méretkorlát",
|
||||||
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.",
|
"home.bullet.c.description": "Akkora fájlokat oszt meg, amekkorákat csak akar. Határt csak a lemezterület szab.",
|
||||||
"home.button.start": "Nosza, kezdjük",
|
"home.button.start": "Nosza, kezdjük",
|
||||||
"home.button.source": "Forráskód",
|
"home.button.source": "Forráskód",
|
||||||
// END /
|
// END /
|
||||||
@@ -58,12 +58,12 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Elfelejtette jelszavát?",
|
"resetPassword.title": "Elfelejtette jelszavát?",
|
||||||
"resetPassword.description": "Adja meg emailcímét a jelszó alaphelyzetbe állításához.",
|
"resetPassword.description": "Adja meg emailcímét a jelszó alaphelyzetbe állításához.",
|
||||||
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.",
|
"resetPassword.notify.success": "A jelszó visszaállítására szolgáló linket tartalmazó üzenetet küldtünk, abban az esetben, ha az e-mail létezik.",
|
||||||
"resetPassword.button.back": "Vissza a bejelentkezési oldalra",
|
"resetPassword.button.back": "Vissza a bejelentkezési oldalra",
|
||||||
"resetPassword.text.resetPassword": "Jelszó alaphelyzetbe állítása",
|
"resetPassword.text.resetPassword": "Jelszó alaphelyzetbe állítása",
|
||||||
"resetPassword.text.enterNewPassword": "Adja meg új jelszavát",
|
"resetPassword.text.enterNewPassword": "Adja meg új jelszavát",
|
||||||
"resetPassword.input.password": "Új jelszó",
|
"resetPassword.input.password": "Új jelszó",
|
||||||
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
|
"resetPassword.notify.passwordReset": "A jelszavát sikeresen helyreállította.",
|
||||||
// /account
|
// /account
|
||||||
"account.title": "Fiókom",
|
"account.title": "Fiókom",
|
||||||
"account.card.info.title": "Fiókinformáció",
|
"account.card.info.title": "Fiókinformáció",
|
||||||
@@ -73,7 +73,7 @@ export default {
|
|||||||
"account.card.password.title": "Jelszó",
|
"account.card.password.title": "Jelszó",
|
||||||
"account.card.password.old": "Régi jelszó",
|
"account.card.password.old": "Régi jelszó",
|
||||||
"account.card.password.new": "Új jelszó",
|
"account.card.password.new": "Új jelszó",
|
||||||
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.",
|
"account.card.password.noPasswordSet": "Még nincs jelszava. Ha email és jelszó kombinációval kíván bejelentkezni, létre kell hoznia egy jelszót.",
|
||||||
"account.notify.password.success": "A jelszó sikeresen frissítésre került",
|
"account.notify.password.success": "A jelszó sikeresen frissítésre került",
|
||||||
"account.card.oauth.title": "Közösségi bejelentkezés",
|
"account.card.oauth.title": "Közösségi bejelentkezés",
|
||||||
"account.card.oauth.github": "GitHub",
|
"account.card.oauth.github": "GitHub",
|
||||||
@@ -85,7 +85,7 @@ export default {
|
|||||||
"account.card.oauth.unlink": "Leválasztás",
|
"account.card.oauth.unlink": "Leválasztás",
|
||||||
"account.card.oauth.unlinked": "Leválasztva",
|
"account.card.oauth.unlinked": "Leválasztva",
|
||||||
"account.modal.unlink.title": "Fiók leválasztása",
|
"account.modal.unlink.title": "Fiók leválasztása",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials",
|
"account.modal.unlink.description": "A közösségi hálón keresztül csatolt fiók leválasztásával elveszítheti hozzáférését a fiókhoz, ha a név és jelszó kombinációra nem emlékszik",
|
||||||
"account.notify.oauth.unlinked.success": "Leválasztás sikeres",
|
"account.notify.oauth.unlinked.success": "Leválasztás sikeres",
|
||||||
"account.card.security.title": "Biztonság",
|
"account.card.security.title": "Biztonság",
|
||||||
"account.card.security.totp.enable.description": "Adja meg az aktuális jelszavát a TOTP engedélyezéséhez",
|
"account.card.security.totp.enable.description": "Adja meg az aktuális jelszavát a TOTP engedélyezéséhez",
|
||||||
@@ -121,12 +121,12 @@ export default {
|
|||||||
"account.shares.table.name": "Megnevezés",
|
"account.shares.table.name": "Megnevezés",
|
||||||
"account.shares.table.description": "Leírás",
|
"account.shares.table.description": "Leírás",
|
||||||
"account.shares.table.visitors": "Látogatók",
|
"account.shares.table.visitors": "Látogatók",
|
||||||
"account.shares.table.expiresAt": "Expires on",
|
"account.shares.table.expiresAt": "Lejár",
|
||||||
"account.shares.table.createdAt": "Created on",
|
"account.shares.table.createdAt": "Létrehozva",
|
||||||
"account.shares.table.size": "Méret",
|
"account.shares.table.size": "Méret",
|
||||||
"account.shares.modal.share-informations": "Megosztás adatai",
|
"account.shares.modal.share-informations": "Megosztás adatai",
|
||||||
"account.shares.modal.share-link": "Hivatkozás",
|
"account.shares.modal.share-link": "Hivatkozás",
|
||||||
"account.shares.modal.delete.title": "Delete share: {share}",
|
"account.shares.modal.delete.title": "Megosztás törlése: {share}",
|
||||||
"account.shares.modal.delete.description": "Biztos abban, hogy törölni kívánja ezt a megosztást?",
|
"account.shares.modal.delete.description": "Biztos abban, hogy törölni kívánja ezt a megosztást?",
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
@@ -150,12 +150,12 @@ export default {
|
|||||||
"account.reverseShares.modal.expiration.year-singular": "év",
|
"account.reverseShares.modal.expiration.year-singular": "év",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "év",
|
"account.reverseShares.modal.expiration.year-plural": "év",
|
||||||
"account.reverseShares.modal.max-size.label": "Megosztás megengedett max mérete",
|
"account.reverseShares.modal.max-size.label": "Megosztás megengedett max mérete",
|
||||||
"account.reverseShares.modal.send-email": "Send email notifications",
|
"account.reverseShares.modal.send-email": "E-mail értesítések",
|
||||||
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
|
"account.reverseShares.modal.send-email.description": "E-mailben értesít, amikor a fordított megosztási hivatkozást használva megosztást hoznak létre.",
|
||||||
"account.reverseShares.modal.simplified": "Egyszerű mód",
|
"account.reverseShares.modal.simplified": "Egyszerű mód",
|
||||||
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
|
"account.reverseShares.modal.simplified.description": "A fájlt feltöltő személy számára egyszerűsíthető az Önnel történő megosztás. A megosztásnak csak a neve és a leírása módosítható.",
|
||||||
"account.reverseShares.modal.public-access": "Nyilvános megosztás",
|
"account.reverseShares.modal.public-access": "Nyilvános megosztás",
|
||||||
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.",
|
"account.reverseShares.modal.public-access.description": "A fordított megosztással létrehozott megosztások nyilvánossá tétele. Kikapcsolása esetén csak a megosztás létrehozója és Ön láthatja a megosztást.",
|
||||||
"account.reverseShares.modal.max-use.label": "Megengedett alkalmak száma",
|
"account.reverseShares.modal.max-use.label": "Megengedett alkalmak száma",
|
||||||
"account.reverseShares.modal.max-use.description": "A megosztási hivatkozás megengedett felhasználási alkalmainak száma.",
|
"account.reverseShares.modal.max-use.description": "A megosztási hivatkozás megengedett felhasználási alkalmainak száma.",
|
||||||
"account.reverseShare.never-expires": "Ez a fordított megosztás soha nem fog lejárni.",
|
"account.reverseShare.never-expires": "Ez a fordított megosztás soha nem fog lejárni.",
|
||||||
@@ -183,14 +183,14 @@ export default {
|
|||||||
"admin.users.table.username": "Felhasználónév",
|
"admin.users.table.username": "Felhasználónév",
|
||||||
"admin.users.table.email": "Email",
|
"admin.users.table.email": "Email",
|
||||||
"admin.users.table.admin": "Admin ügyek",
|
"admin.users.table.admin": "Admin ügyek",
|
||||||
"admin.users.edit.update.title": "Edit user: {username}",
|
"admin.users.edit.update.title": "{username} felhasználó szerkesztése",
|
||||||
"admin.users.edit.update.admin-privileges": "Adminisztrátori jogosultságok",
|
"admin.users.edit.update.admin-privileges": "Adminisztrátori jogosultságok",
|
||||||
"admin.users.edit.update.change-password.title": "Jelszó módosítása",
|
"admin.users.edit.update.change-password.title": "Jelszó módosítása",
|
||||||
"admin.users.edit.update.change-password.field": "Új jelszó",
|
"admin.users.edit.update.change-password.field": "Új jelszó",
|
||||||
"admin.users.edit.update.change-password.button": "Új jelszó mentése",
|
"admin.users.edit.update.change-password.button": "Új jelszó mentése",
|
||||||
"admin.users.edit.update.notify.password.success": "A jelszó sikeresen frissítésre került",
|
"admin.users.edit.update.notify.password.success": "A jelszó sikeresen frissítésre került",
|
||||||
"admin.users.edit.delete.title": "Delete user: {username} ?",
|
"admin.users.edit.delete.title": "{username} felhasználó törlése ?",
|
||||||
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
|
"admin.users.edit.delete.description": "Biztosan törölni szeretné ezt a felhasználót és az összes megosztását?",
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Felhasználó létrehozása",
|
"admin.users.modal.create.title": "Felhasználó létrehozása",
|
||||||
"admin.users.modal.create.username": "Felhasználónév",
|
"admin.users.modal.create.username": "Felhasználónév",
|
||||||
@@ -206,17 +206,20 @@ export default {
|
|||||||
"admin.shares.table.id": "Megosztás ID",
|
"admin.shares.table.id": "Megosztás ID",
|
||||||
"admin.shares.table.username": "Létrehozó",
|
"admin.shares.table.username": "Létrehozó",
|
||||||
"admin.shares.table.visitors": "Látogatók",
|
"admin.shares.table.visitors": "Látogatók",
|
||||||
"admin.shares.table.expires": "Expires on",
|
"admin.shares.table.expires": "Lejár",
|
||||||
"admin.shares.edit.delete.title": "Delete share: {id}",
|
"admin.shares.edit.delete.title": "Megosztás törlése: {id}",
|
||||||
"admin.shares.edit.delete.description": "Valóban törölni kívánja ezt a megosztást?",
|
"admin.shares.edit.delete.description": "Valóban törölni kívánja ezt a megosztást?",
|
||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Feltöltés",
|
"upload.title": "Feltöltés",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Hiba lépett fel a megosztás befejezése közben.",
|
"upload.notify.generic-error": "Hiba lépett fel a megosztás befejezése közben.",
|
||||||
"upload.notify.count-failed": "{count} darab fájlt nem sikerült feltölteni. Próbálja ismét.",
|
"upload.notify.count-failed": "{count} darab fájlt nem sikerült feltölteni. Próbálja ismét.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Fájlok feltöltése",
|
"upload.dropzone.title": "Fájlok feltöltése",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Húzza ide a fájlokat a megosztás elkészítéséhez. Legfeljebb {maxSize} fájl húzható egy megosztásba.",
|
||||||
"upload.dropzone.notify.file-too-big": "A fájlok mérete meghaladja a megengedett {maxSize} méretet.",
|
"upload.dropzone.notify.file-too-big": "A fájlok mérete meghaladja a megengedett {maxSize} méretet.",
|
||||||
// FileList.tsx
|
// FileList.tsx
|
||||||
"upload.filelist.name": "Megnevezés",
|
"upload.filelist.name": "Megnevezés",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Az alkalmazás neve",
|
"admin.config.general.app-name.description": "Az alkalmazás neve",
|
||||||
"admin.config.general.app-url": "Alkalmazás URL hivatkozás",
|
"admin.config.general.app-url": "Alkalmazás URL hivatkozás",
|
||||||
"admin.config.general.app-url.description": "A Pingvin Share megosztáskezelőre mutató hivatkozás",
|
"admin.config.general.app-url.description": "A Pingvin Share megosztáskezelőre mutató hivatkozás",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Kezdőlap mutatása",
|
"admin.config.general.show-home-page": "Kezdőlap mutatása",
|
||||||
"admin.config.general.show-home-page.description": "A kezdőlap mutatásának ki- és bekapcsolása",
|
"admin.config.general.show-home-page.description": "A kezdőlap mutatásának ki- és bekapcsolása",
|
||||||
"admin.config.general.session-duration": "Munkamenet időtartama",
|
"admin.config.general.session-duration": "Munkamenet időtartama",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Megosztási email tárgya",
|
"admin.config.email.share-recipients-subject": "Megosztási email tárgya",
|
||||||
"admin.config.email.share-recipients-subject.description": "A megosztások címzettjeinek küldött email tárgya.",
|
"admin.config.email.share-recipients-subject.description": "A megosztások címzettjeinek küldött email tárgya.",
|
||||||
"admin.config.email.share-recipients-message": "Megosztási email szövege",
|
"admin.config.email.share-recipients-message": "Megosztási email szövege",
|
||||||
"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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Fordított megosztás tárgya",
|
"admin.config.email.reverse-share-subject": "Fordított megosztás tárgya",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Fordított megosztás üzenete",
|
"admin.config.email.reverse-share-message": "Fordított megosztás üzenete",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Carica",
|
"upload.title": "Carica",
|
||||||
|
"upload.notify.confirm-leave": "Sei sicuro di voler lasciare questa pagina? Il tuo caricamento verrà annullato.",
|
||||||
"upload.notify.generic-error": "Si è verificato un errore durante il completamento della condivisione.",
|
"upload.notify.generic-error": "Si è verificato un errore durante il completamento della condivisione.",
|
||||||
"upload.notify.count-failed": "Impossibile caricare {count} file. Riprovare.",
|
"upload.notify.count-failed": "Impossibile caricare {count} file. Riprovare.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Link di condivisione inversa non valido",
|
||||||
|
"upload.reverse-share.error.invalid.description": "Questa condivisione inversa è scaduta o non è valida.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Carica File",
|
"upload.dropzone.title": "Carica File",
|
||||||
"upload.dropzone.description": "Trascina qui i file per iniziare la tua condivisione. Possiamo accettare solo i file che sono inferiori a {maxSize} in totale.",
|
"upload.dropzone.description": "Trascina qui i file per iniziare la tua condivisione. Possiamo accettare solo i file che sono inferiori a {maxSize} in totale.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Nome dell' applicazione",
|
"admin.config.general.app-name.description": "Nome dell' applicazione",
|
||||||
"admin.config.general.app-url": "URL dell'App",
|
"admin.config.general.app-url": "URL dell'App",
|
||||||
"admin.config.general.app-url.description": "Su quale URL Pingvin Share è pubblicato",
|
"admin.config.general.app-url.description": "Su quale URL Pingvin Share è pubblicato",
|
||||||
|
"admin.config.general.secure-cookies": "Cookie sicuri",
|
||||||
|
"admin.config.general.secure-cookies.description": "Indica se impostare il contrassegno sicuro sui cookie. Se abilitato, il sito non funzionerà quando si accede tramite HTTP.",
|
||||||
"admin.config.general.show-home-page": "Visualizza Home Page",
|
"admin.config.general.show-home-page": "Visualizza Home Page",
|
||||||
"admin.config.general.show-home-page.description": "Indica se mostrare la home page",
|
"admin.config.general.show-home-page.description": "Indica se mostrare la home page",
|
||||||
"admin.config.general.session-duration": "Durata della sessione",
|
"admin.config.general.session-duration": "Durata della sessione",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Oggetto dell'email di condivisione",
|
"admin.config.email.share-recipients-subject": "Oggetto dell'email di condivisione",
|
||||||
"admin.config.email.share-recipients-subject.description": "Oggetto dell'email che viene inviata ai destinatari della condivisione.",
|
"admin.config.email.share-recipients-subject.description": "Oggetto dell'email che viene inviata ai destinatari della condivisione.",
|
||||||
"admin.config.email.share-recipients-message": "Testo dell'email di condivisione",
|
"admin.config.email.share-recipients-message": "Testo dell'email di condivisione",
|
||||||
"admin.config.email.share-recipients-message.description": "Messaggio che viene inviato ai destinatari della condivisione. Variabili disponibili:\n {creator} - Il nome utente del creatore della condivisione\n {shareUrl} - L'URL della condivisione\n {desc} - La descrizione della condivisione\n {expires} - La data di scadenza della condivisione\n Le variabili saranno sostituite con il valore effettivo.",
|
"admin.config.email.share-recipients-message.description": "Messaggio che viene inviato ai destinatari della condivisione. Variabili disponibili:\n {creator} - Il nome utente del creatore della condivisione\n {creatorEmail} - L' email del creatore della condivisione\n {shareUrl} - L'URL della condivisione\n {desc} - La descrizione della condivisione\n {expires} - La data di scadenza della condivisione\n Le variabili saranno sostituite con il valore effettivo.",
|
||||||
"admin.config.email.reverse-share-subject": "Oggetto dell'email di condivisione inversa",
|
"admin.config.email.reverse-share-subject": "Oggetto dell'email di condivisione inversa",
|
||||||
"admin.config.email.reverse-share-subject.description": "Oggetto dell'email che viene inviata quando qualcuno ha creato una condivisione con il tuo link di condivisione inversa.",
|
"admin.config.email.reverse-share-subject.description": "Oggetto dell'email che viene inviata quando qualcuno ha creato una condivisione con il tuo link di condivisione inversa.",
|
||||||
"admin.config.email.reverse-share-message": "Testo dell'email di condivisione inversa",
|
"admin.config.email.reverse-share-message": "Testo dell'email di condivisione inversa",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export default {
|
|||||||
"navbar.upload": "アップロード",
|
"navbar.upload": "アップロード",
|
||||||
"navbar.signin": "サインイン",
|
"navbar.signin": "サインイン",
|
||||||
"navbar.home": "ホーム",
|
"navbar.home": "ホーム",
|
||||||
"navbar.signup": "Sign up",
|
"navbar.signup": "新規登録",
|
||||||
"navbar.links.shares": "自分の共有",
|
"navbar.links.shares": "自分の共有",
|
||||||
"navbar.links.reverse": "ファイルリクエスト",
|
"navbar.links.reverse": "ファイルリクエスト",
|
||||||
"navbar.avatar.account": "マイアカウント",
|
"navbar.avatar.account": "マイアカウント",
|
||||||
@@ -16,9 +16,9 @@ export default {
|
|||||||
"home.bullet.a.name": "セルフホスト",
|
"home.bullet.a.name": "セルフホスト",
|
||||||
"home.bullet.a.description": "Pingvin Shareをあなたのマシンでホストしましょう。",
|
"home.bullet.a.description": "Pingvin Shareをあなたのマシンでホストしましょう。",
|
||||||
"home.bullet.b.name": "プライバシー",
|
"home.bullet.b.name": "プライバシー",
|
||||||
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.",
|
"home.bullet.b.description": "あなたのファイルはあなたのものであり、第三者がアクセスすることは決してありません。",
|
||||||
"home.bullet.c.name": "ファイルサイズ制限に悩まされることはありません",
|
"home.bullet.c.name": "ファイルサイズ制限に悩まされることはありません",
|
||||||
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.",
|
"home.bullet.c.description": "必要なだけ大きなファイルをアップロードできます。制限があるのはハードドライブのみです。",
|
||||||
"home.button.start": "始めましょう",
|
"home.button.start": "始めましょう",
|
||||||
"home.button.source": "ソースコード",
|
"home.button.source": "ソースコード",
|
||||||
// END /
|
// END /
|
||||||
@@ -58,12 +58,12 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "パスワードを忘れてしまいましたか?",
|
"resetPassword.title": "パスワードを忘れてしまいましたか?",
|
||||||
"resetPassword.description": "登録しているメールアドレスを入力してください。",
|
"resetPassword.description": "登録しているメールアドレスを入力してください。",
|
||||||
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.",
|
"resetPassword.notify.success": "指定されたメールアドレスが存在する場合、パスワードをリセットするためのリンクを含むメッセージが送信されました。",
|
||||||
"resetPassword.button.back": "サインインページに戻る",
|
"resetPassword.button.back": "サインインページに戻る",
|
||||||
"resetPassword.text.resetPassword": "パスワードをリセット",
|
"resetPassword.text.resetPassword": "パスワードをリセット",
|
||||||
"resetPassword.text.enterNewPassword": "新規パスワードを入力",
|
"resetPassword.text.enterNewPassword": "新規パスワードを入力",
|
||||||
"resetPassword.input.password": "新規パスワード",
|
"resetPassword.input.password": "新規パスワード",
|
||||||
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
|
"resetPassword.notify.passwordReset": "パスワードが正常にリセットされました。",
|
||||||
// /account
|
// /account
|
||||||
"account.title": "マイアカウント",
|
"account.title": "マイアカウント",
|
||||||
"account.card.info.title": "アカウント情報",
|
"account.card.info.title": "アカウント情報",
|
||||||
@@ -73,7 +73,7 @@ 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 do not have a password set. To sign in using your email and password, you need to create a password.",
|
"account.card.password.noPasswordSet": "パスワードが設定されていません。メールアドレスとパスワードを使用してサインインするには、パスワードを作成する必要があります。",
|
||||||
"account.notify.password.success": "パスワードの変更に成功しました",
|
"account.notify.password.success": "パスワードの変更に成功しました",
|
||||||
"account.card.oauth.title": "ソーシャルログイン",
|
"account.card.oauth.title": "ソーシャルログイン",
|
||||||
"account.card.oauth.github": "GitHub",
|
"account.card.oauth.github": "GitHub",
|
||||||
@@ -85,7 +85,7 @@ export default {
|
|||||||
"account.card.oauth.unlink": "リンク解除",
|
"account.card.oauth.unlink": "リンク解除",
|
||||||
"account.card.oauth.unlinked": "リンクされていません",
|
"account.card.oauth.unlinked": "リンクされていません",
|
||||||
"account.modal.unlink.title": "アカウントのリンクを解除",
|
"account.modal.unlink.title": "アカウントのリンクを解除",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials",
|
"account.modal.unlink.description": "ソーシャルアカウントのリンクを解除すると、ログイン認証情報を忘れた場合、アカウントを失う可能性があります。",
|
||||||
"account.notify.oauth.unlinked.success": "リンク解除に成功しました",
|
"account.notify.oauth.unlinked.success": "リンク解除に成功しました",
|
||||||
"account.card.security.title": "セキュリティ",
|
"account.card.security.title": "セキュリティ",
|
||||||
"account.card.security.totp.enable.description": "2段階認証を有効にするため、現在のパスワードを入力してください",
|
"account.card.security.totp.enable.description": "2段階認証を有効にするため、現在のパスワードを入力してください",
|
||||||
@@ -121,12 +121,12 @@ export default {
|
|||||||
"account.shares.table.name": "名前",
|
"account.shares.table.name": "名前",
|
||||||
"account.shares.table.description": "説明",
|
"account.shares.table.description": "説明",
|
||||||
"account.shares.table.visitors": "訪問者",
|
"account.shares.table.visitors": "訪問者",
|
||||||
"account.shares.table.expiresAt": "Expires on",
|
"account.shares.table.expiresAt": "有効期限",
|
||||||
"account.shares.table.createdAt": "Created on",
|
"account.shares.table.createdAt": "作成日",
|
||||||
"account.shares.table.size": "サイズ",
|
"account.shares.table.size": "サイズ",
|
||||||
"account.shares.modal.share-informations": "共有情報",
|
"account.shares.modal.share-informations": "共有情報",
|
||||||
"account.shares.modal.share-link": "共有リンク",
|
"account.shares.modal.share-link": "共有リンク",
|
||||||
"account.shares.modal.delete.title": "Delete share: {share}",
|
"account.shares.modal.delete.title": "共有を削除: {share}",
|
||||||
"account.shares.modal.delete.description": "この共有を削除してもよろしいですか?",
|
"account.shares.modal.delete.description": "この共有を削除してもよろしいですか?",
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
@@ -150,12 +150,12 @@ export default {
|
|||||||
"account.reverseShares.modal.expiration.year-singular": "年間",
|
"account.reverseShares.modal.expiration.year-singular": "年間",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "年間",
|
"account.reverseShares.modal.expiration.year-plural": "年間",
|
||||||
"account.reverseShares.modal.max-size.label": "最大ファイルサイズ",
|
"account.reverseShares.modal.max-size.label": "最大ファイルサイズ",
|
||||||
"account.reverseShares.modal.send-email": "Send email notifications",
|
"account.reverseShares.modal.send-email": "メール通知を送信",
|
||||||
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
|
"account.reverseShares.modal.send-email.description": "このファイルリクエストリンクを使用して共有が作成されるとメール通知が送信されます。",
|
||||||
"account.reverseShares.modal.simplified": "シンプルモード",
|
"account.reverseShares.modal.simplified": "シンプルモード",
|
||||||
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
|
"account.reverseShares.modal.simplified.description": "ファイルをアップロードした人が簡単に共有できるようにします。共有の名前と説明のみをカスタマイズできます。",
|
||||||
"account.reverseShares.modal.public-access": "公開アクセス",
|
"account.reverseShares.modal.public-access": "公開アクセス",
|
||||||
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.",
|
"account.reverseShares.modal.public-access.description": "このファイルリクエストで作成された共有を公開します。無効にするとあなたと共有作成者だけが共有を表示できます。",
|
||||||
"account.reverseShares.modal.max-use.label": "最大回数",
|
"account.reverseShares.modal.max-use.label": "最大回数",
|
||||||
"account.reverseShares.modal.max-use.description": "このURLを使用してファイルをアップロードできる最大回数です。",
|
"account.reverseShares.modal.max-use.description": "このURLを使用してファイルをアップロードできる最大回数です。",
|
||||||
"account.reverseShare.never-expires": "このファイルリクエストリンクは期限切れになりません。",
|
"account.reverseShare.never-expires": "このファイルリクエストリンクは期限切れになりません。",
|
||||||
@@ -183,14 +183,14 @@ export default {
|
|||||||
"admin.users.table.username": "ユーザー名",
|
"admin.users.table.username": "ユーザー名",
|
||||||
"admin.users.table.email": "メールアドレス",
|
"admin.users.table.email": "メールアドレス",
|
||||||
"admin.users.table.admin": "管理画面",
|
"admin.users.table.admin": "管理画面",
|
||||||
"admin.users.edit.update.title": "Edit user: {username}",
|
"admin.users.edit.update.title": "ユーザーの編集: {username}",
|
||||||
"admin.users.edit.update.admin-privileges": "管理者権限",
|
"admin.users.edit.update.admin-privileges": "管理者権限",
|
||||||
"admin.users.edit.update.change-password.title": "パスワードを変更",
|
"admin.users.edit.update.change-password.title": "パスワードを変更",
|
||||||
"admin.users.edit.update.change-password.field": "新規パスワード",
|
"admin.users.edit.update.change-password.field": "新規パスワード",
|
||||||
"admin.users.edit.update.change-password.button": "新しいパスワードを保存",
|
"admin.users.edit.update.change-password.button": "新しいパスワードを保存",
|
||||||
"admin.users.edit.update.notify.password.success": "パスワードの変更に成功しました",
|
"admin.users.edit.update.notify.password.success": "パスワードの変更に成功しました",
|
||||||
"admin.users.edit.delete.title": "Delete user: {username} ?",
|
"admin.users.edit.delete.title": "ユーザーを削除: {username}?",
|
||||||
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
|
"admin.users.edit.delete.description": "このユーザーとそのすべての共有を本当に削除しますか?",
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "ユーザーを作成",
|
"admin.users.modal.create.title": "ユーザーを作成",
|
||||||
"admin.users.modal.create.username": "ユーザー名",
|
"admin.users.modal.create.username": "ユーザー名",
|
||||||
@@ -206,17 +206,20 @@ export default {
|
|||||||
"admin.shares.table.id": "共有ID",
|
"admin.shares.table.id": "共有ID",
|
||||||
"admin.shares.table.username": "作成者",
|
"admin.shares.table.username": "作成者",
|
||||||
"admin.shares.table.visitors": "訪問者",
|
"admin.shares.table.visitors": "訪問者",
|
||||||
"admin.shares.table.expires": "Expires on",
|
"admin.shares.table.expires": "有効期限",
|
||||||
"admin.shares.edit.delete.title": "Delete share: {id}",
|
"admin.shares.edit.delete.title": "共有を削除: {id}",
|
||||||
"admin.shares.edit.delete.description": "この共有を削除してもよろしいですか?",
|
"admin.shares.edit.delete.description": "この共有を削除してもよろしいですか?",
|
||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "アップロード",
|
"upload.title": "アップロード",
|
||||||
|
"upload.notify.confirm-leave": "このページから離れますか?アップロードはキャンセルされます。",
|
||||||
"upload.notify.generic-error": "共有を仕上げている最中にエラーが発生しました。",
|
"upload.notify.generic-error": "共有を仕上げている最中にエラーが発生しました。",
|
||||||
"upload.notify.count-failed": "{count} ファイルがアップロードに失敗しました。再度お試しください。",
|
"upload.notify.count-failed": "{count} ファイルがアップロードに失敗しました。再度お試しください。",
|
||||||
|
"upload.reverse-share.error.invalid.title": "無効なファイルリクエストリンク",
|
||||||
|
"upload.reverse-share.error.invalid.description": "このファイルリクエストは期限が切れているか無効です。",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "ファイルをアップロード",
|
"upload.dropzone.title": "ファイルをアップロード",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "共有を開始するにはここにファイルをドラッグ&ドロップしてください。受け入れ可能なファイルの合計サイズは{maxSize}までです。",
|
||||||
"upload.dropzone.notify.file-too-big": "アップロードしようとしたファイルは、最大ファイルサイズの{maxSize} を超えています。",
|
"upload.dropzone.notify.file-too-big": "アップロードしようとしたファイルは、最大ファイルサイズの{maxSize} を超えています。",
|
||||||
// FileList.tsx
|
// FileList.tsx
|
||||||
"upload.filelist.name": "ファイル名",
|
"upload.filelist.name": "ファイル名",
|
||||||
@@ -228,8 +231,8 @@ export default {
|
|||||||
"upload.modal.not-signed-in": "サインインしていません",
|
"upload.modal.not-signed-in": "サインインしていません",
|
||||||
"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": "Permanent share",
|
"upload.modal.expires.never-long": "永久シェア",
|
||||||
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum 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": "分間",
|
"upload.modal.expires.minute-singular": "分間",
|
||||||
@@ -272,16 +275,16 @@ export default {
|
|||||||
"share.error.access-denied.title": "プライベートシェア",
|
"share.error.access-denied.title": "プライベートシェア",
|
||||||
"share.error.access-denied.description": "現在のアカウントにはこの共有にアクセスする権限がありません",
|
"share.error.access-denied.description": "現在のアカウントにはこの共有にアクセスする権限がありません",
|
||||||
"share.modal.password.title": "パスワードが必要です",
|
"share.modal.password.title": "パスワードが必要です",
|
||||||
"share.modal.password.description": "Please enter the password to acces this share.",
|
"share.modal.password.description": "この共有にアクセスするにはパスワードを入力してください。",
|
||||||
"share.modal.password": "パスワード",
|
"share.modal.password": "パスワード",
|
||||||
"share.modal.error.invalid-password": "パスワードが間違っています",
|
"share.modal.error.invalid-password": "パスワードが間違っています",
|
||||||
"share.button.download-all": "全てダウンロード",
|
"share.button.download-all": "全てダウンロード",
|
||||||
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.",
|
"share.notify.download-all-preparing": "共有の準備中です。数分後にもう一度お試しください。",
|
||||||
"share.modal.file-link": "ファイルリンク",
|
"share.modal.file-link": "ファイルリンク",
|
||||||
"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": "Previews are not supported for this type of files. Please download the file to view it.",
|
"share.modal.file-preview.error.not-supported.description": "このファイル形式のプレビューはサポートされていません。ファイルをダウンロードして表示してください。",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "編集 {shareId}",
|
"share.edit.title": "編集 {shareId}",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "アプリの名前",
|
"admin.config.general.app-name.description": "アプリの名前",
|
||||||
"admin.config.general.app-url": "アプリ名",
|
"admin.config.general.app-url": "アプリ名",
|
||||||
"admin.config.general.app-url.description": "Pingvin Shareで利用できるURL",
|
"admin.config.general.app-url.description": "Pingvin Shareで利用できるURL",
|
||||||
|
"admin.config.general.secure-cookies": "セキュアクッキー",
|
||||||
|
"admin.config.general.secure-cookies.description": "クッキーにセキュアフラグを設定するか。有効にすると、HTTP 経由でアクセスしたときにサイトが機能しなくなります。",
|
||||||
"admin.config.general.show-home-page": "ホームページを表示する",
|
"admin.config.general.show-home-page": "ホームページを表示する",
|
||||||
"admin.config.general.show-home-page.description": "ホームページを表示するかどうか選択",
|
"admin.config.general.show-home-page.description": "ホームページを表示するかどうか選択",
|
||||||
"admin.config.general.session-duration": "セッション期間",
|
"admin.config.general.session-duration": "セッション期間",
|
||||||
@@ -307,24 +312,24 @@ export default {
|
|||||||
"admin.config.general.logo": "ロゴ",
|
"admin.config.general.logo": "ロゴ",
|
||||||
"admin.config.general.logo.description": "新しい画像をアップロードしてロゴを変更できます。画像は、PNG形式でアスペクト比が1:1である必要があります。",
|
"admin.config.general.logo.description": "新しい画像をアップロードしてロゴを変更できます。画像は、PNG形式でアスペクト比が1:1である必要があります。",
|
||||||
"admin.config.general.logo.placeholder": "画像を選択",
|
"admin.config.general.logo.placeholder": "画像を選択",
|
||||||
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
|
"admin.config.email.enable-share-email-recipients": "メール受信者の共有を有効にする",
|
||||||
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
|
"admin.config.email.enable-share-email-recipients.description": "受信者とのメール共有を許可するかどうか。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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "ファイルリクエストの件名",
|
"admin.config.email.reverse-share-subject": "ファイルリクエストの件名",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "誰かがあなたのファイルリクエストリンクを使用して共有を作成したときに送信されるメールの件名。",
|
||||||
"admin.config.email.reverse-share-message": "ファイルリクエストの本文",
|
"admin.config.email.reverse-share-message": "ファイルリクエストの本文",
|
||||||
"admin.config.email.reverse-share-message.description": "あなたが作成したファイルリクエストリンクからファイルがアップロードされた場合に送信されるメールの本文です。{shareUrl} は、作成者の名前とURLにより置き換えられます。",
|
"admin.config.email.reverse-share-message.description": "あなたが作成したファイルリクエストリンクからファイルがアップロードされた場合に送信されるメールの本文です。{shareUrl} は、作成者の名前とURLにより置き換えられます。",
|
||||||
"admin.config.email.reset-password-subject": "パスワードリセットの件名",
|
"admin.config.email.reset-password-subject": "パスワードリセットの件名",
|
||||||
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.",
|
"admin.config.email.reset-password-subject.description": "ユーザーがパスワードのリセットを要求したときに送信されるメールの件名。",
|
||||||
"admin.config.email.reset-password-message": "パスワードリセットの本文",
|
"admin.config.email.reset-password-message": "パスワードリセットの本文",
|
||||||
"admin.config.email.reset-password-message.description": "あなたが作成したファイルリクエストリンクからファイルがアップロードされた場合に送信されるメールの本文です。{url} は、実際のパスワードリセットURLによって置き換えられます。",
|
"admin.config.email.reset-password-message.description": "あなたが作成したファイルリクエストリンクからファイルがアップロードされた場合に送信されるメールの本文です。{url} は、実際のパスワードリセットURLによって置き換えられます。",
|
||||||
"admin.config.email.invite-subject": "無効な件名",
|
"admin.config.email.invite-subject": "無効な件名",
|
||||||
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.",
|
"admin.config.email.invite-subject.description": "管理者がユーザーを招待するときに送信されるメールの件名。",
|
||||||
"admin.config.email.invite-message": "無効な本文",
|
"admin.config.email.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, {email} with the email and {password} with the users password.",
|
"admin.config.email.invite-message.description": "管理者がユーザーを招待したときに送信されるメッセージ。{url}は招待URLに、{email}はメールアドレスに、{password}はユーザーのパスワードに置き換えられます。",
|
||||||
"admin.config.share.allow-registration": "登録を許可する",
|
"admin.config.share.allow-registration": "登録を許可する",
|
||||||
"admin.config.share.allow-registration.description": "登録を許可するかどうかを選択してください。",
|
"admin.config.share.allow-registration.description": "登録を許可するかどうかを選択してください。",
|
||||||
"admin.config.share.allow-unauthenticated-shares": "ログインしていない状態での共有を許可する",
|
"admin.config.share.allow-unauthenticated-shares": "ログインしていない状態での共有を許可する",
|
||||||
@@ -336,17 +341,17 @@ export default {
|
|||||||
"admin.config.share.zip-compression-level": "Zip圧縮レベル",
|
"admin.config.share.zip-compression-level": "Zip圧縮レベル",
|
||||||
"admin.config.share.zip-compression-level.description": "ファイルサイズと圧縮速度のバランスを取るように、レベルを調整できます。有効な値は0~9の間で、0が無圧縮、9で最大限の圧縮となります。 ",
|
"admin.config.share.zip-compression-level.description": "ファイルサイズと圧縮速度のバランスを取るように、レベルを調整できます。有効な値は0~9の間で、0が無圧縮、9で最大限の圧縮となります。 ",
|
||||||
"admin.config.share.chunk-size": "チャンクサイズ",
|
"admin.config.share.chunk-size": "チャンクサイズ",
|
||||||
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.",
|
"admin.config.share.chunk-size.description": "インターネット接続に応じて、効率と信頼性のバランスをとるためにアップロードのチャンクサイズ (バイト単位) を調整します。チャンクを小さくすると、不安定な接続での成功率が向上し、チャンクを大きくすると、安定した接続でのアップロードが速くなります。",
|
||||||
"admin.config.share.auto-open-share-modal": "共有モーダルを自動的に開く",
|
"admin.config.share.auto-open-share-modal": "共有モーダルを自動的に開く",
|
||||||
"admin.config.share.auto-open-share-modal.description": "ユーザーがファイルを選択すると、共有作成モーダルが自動的に表示されるため、手動でボタンをクリックする必要がありません。",
|
"admin.config.share.auto-open-share-modal.description": "ユーザーがファイルを選択すると、共有作成モーダルが自動的に表示されるため、手動でボタンをクリックする必要がありません。",
|
||||||
"admin.config.smtp.enabled": "Enable",
|
"admin.config.smtp.enabled": "有効",
|
||||||
"admin.config.smtp.enabled.description": "SMTPを有効にするかどうかを選択してください。SMTPサーバーのホスト名、ポート番号、電子メールアドレス、ユーザー名、パスワードが入力されている場合にのみ、有効にしてください。",
|
"admin.config.smtp.enabled.description": "SMTPを有効にするかどうかを選択してください。SMTPサーバーのホスト名、ポート番号、電子メールアドレス、ユーザー名、パスワードが入力されている場合にのみ、有効にしてください。",
|
||||||
"admin.config.smtp.host": "ホスト名",
|
"admin.config.smtp.host": "ホスト名",
|
||||||
"admin.config.smtp.host.description": "SMTPサーバーのホスト名",
|
"admin.config.smtp.host.description": "SMTPサーバーのホスト名",
|
||||||
"admin.config.smtp.port": "ポート番号",
|
"admin.config.smtp.port": "ポート番号",
|
||||||
"admin.config.smtp.port.description": "SMTPサーバーのポート番号",
|
"admin.config.smtp.port.description": "SMTPサーバーのポート番号",
|
||||||
"admin.config.smtp.email": "メールアドレス",
|
"admin.config.smtp.email": "メールアドレス",
|
||||||
"admin.config.smtp.email.description": "Email address from wich the emails get sent",
|
"admin.config.smtp.email.description": "メールの送信元となるメールアドレス",
|
||||||
"admin.config.smtp.username": "ユーザー名",
|
"admin.config.smtp.username": "ユーザー名",
|
||||||
"admin.config.smtp.username.description": "SMTPサーバーのユーザー名",
|
"admin.config.smtp.username.description": "SMTPサーバーのユーザー名",
|
||||||
"admin.config.smtp.password": "パスワード",
|
"admin.config.smtp.password": "パスワード",
|
||||||
@@ -382,8 +387,8 @@ export default {
|
|||||||
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuthアプリのクライアントシークレット",
|
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuthアプリのクライアントシークレット",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Discordアカウントを使用したログインを許可するかどうかを設定します",
|
"admin.config.oauth.discord-enabled.description": "Discordアカウントを使用したログインを許可するかどうかを設定します",
|
||||||
"admin.config.oauth.discord-limited-users": "Discord limited users",
|
"admin.config.oauth.discord-limited-users": "Discord限定ユーザー",
|
||||||
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-users.description": "Discord IDによって特定のユーザーのサインインを制限します。無効にするには空白のままにします。",
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord限定サーバーID",
|
"admin.config.oauth.discord-limited-guild": "Discord限定サーバーID",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "特定のサーバーのユーザーにサインインを制限します。無効にするには空白のままにしてください。",
|
"admin.config.oauth.discord-limited-guild.description": "特定のサーバーのユーザーにサインインを制限します。無効にするには空白のままにしてください。",
|
||||||
"admin.config.oauth.discord-client-id": "Discord クライアントID",
|
"admin.config.oauth.discord-client-id": "Discord クライアントID",
|
||||||
@@ -409,14 +414,14 @@ export default {
|
|||||||
"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": "OpenID Connect OAuthアプリのクライアントシークレット",
|
"admin.config.oauth.oidc-client-secret.description": "OpenID Connect OAuthアプリのクライアントシークレット",
|
||||||
"admin.config.category.ldap": "LDAP",
|
"admin.config.category.ldap": "LDAP",
|
||||||
"admin.config.ldap.enabled": "Enable LDAP",
|
"admin.config.ldap.enabled": "LDAPを有効化",
|
||||||
"admin.config.ldap.enabled.description": "ユーザーログインにLDAP認証を使用する",
|
"admin.config.ldap.enabled.description": "ユーザーログインにLDAP認証を使用する",
|
||||||
"admin.config.ldap.url": "サーバーURL",
|
"admin.config.ldap.url": "サーバーURL",
|
||||||
"admin.config.ldap.url.description": "LDAPサーバーのURL",
|
"admin.config.ldap.url.description": "LDAPサーバーのURL",
|
||||||
"admin.config.ldap.bind-dn": "バインド DN",
|
"admin.config.ldap.bind-dn": "バインド DN",
|
||||||
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search",
|
"admin.config.ldap.bind-dn.description": "ユーザー検索を実行するために使用されるデフォルトのユーザー",
|
||||||
"admin.config.ldap.bind-password": "パスワードをバインド",
|
"admin.config.ldap.bind-password": "パスワードをバインド",
|
||||||
"admin.config.ldap.bind-password.description": "Password used to perform the user search",
|
"admin.config.ldap.bind-password.description": "ユーザー検索を実行するために使用するパスワード",
|
||||||
"admin.config.ldap.search-base": "ユーザーベース",
|
"admin.config.ldap.search-base": "ユーザーベース",
|
||||||
"admin.config.ldap.search-base.description": "ユーザーの検索が実行されるベースの場所",
|
"admin.config.ldap.search-base.description": "ユーザーの検索が実行されるベースの場所",
|
||||||
"admin.config.ldap.search-query": "ユーザークエリ",
|
"admin.config.ldap.search-query": "ユーザークエリ",
|
||||||
@@ -441,10 +446,10 @@ export default {
|
|||||||
"error.msg.no_user": "この{0} アカウントにリンクしたユーザーが存在しません。",
|
"error.msg.no_user": "この{0} アカウントにリンクしたユーザーが存在しません。",
|
||||||
"error.msg.no_email": "この{0} アカウントからメールアドレスを取得出来ません。",
|
"error.msg.no_email": "この{0} アカウントからメールアドレスを取得出来ません。",
|
||||||
"error.msg.already_linked": "この{0} アカウントは、既に別のアカウントにリンクされています。",
|
"error.msg.already_linked": "この{0} アカウントは、既に別のアカウントにリンクされています。",
|
||||||
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.",
|
"error.msg.not_linked": "この{0}アカウントはまだどのアカウントにもリンクされていません。",
|
||||||
"error.msg.unverified_account": "この {0} アカウントは認証されていません。認証後にもう一度お試しください。",
|
"error.msg.unverified_account": "この {0} アカウントは認証されていません。認証後にもう一度お試しください。",
|
||||||
"error.msg.user_not_allowed": "サインインできません。",
|
"error.msg.user_not_allowed": "サインインできません。",
|
||||||
"error.msg.cannot_get_user_info": "Cannot 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": "Google",
|
||||||
"error.param.provider_microsoft": "Microsoft",
|
"error.param.provider_microsoft": "Microsoft",
|
||||||
@@ -462,7 +467,7 @@ 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": "Visit link",
|
"common.text.navigate-to-link": "リンクを開く",
|
||||||
"common.text.or": "または",
|
"common.text.or": "または",
|
||||||
"common.text.redirecting": "リダイレクトしています...",
|
"common.text.redirecting": "リダイレクトしています...",
|
||||||
"common.button.go-back": "戻る",
|
"common.button.go-back": "戻る",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "업로드",
|
"upload.title": "업로드",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "공유를 완료하는 동안 오류가 발생했습니다.",
|
"upload.notify.generic-error": "공유를 완료하는 동안 오류가 발생했습니다.",
|
||||||
"upload.notify.count-failed": "{count}개의 파일을 업로드하지 못했습니다. 다시 시도하세요.",
|
"upload.notify.count-failed": "{count}개의 파일을 업로드하지 못했습니다. 다시 시도하세요.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "파일 업로드",
|
"upload.dropzone.title": "파일 업로드",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "이 앱의 이름",
|
"admin.config.general.app-name.description": "이 앱의 이름",
|
||||||
"admin.config.general.app-url": "앱 URL",
|
"admin.config.general.app-url": "앱 URL",
|
||||||
"admin.config.general.app-url.description": "Pingvin Share를 사용할 수 있는 URL",
|
"admin.config.general.app-url.description": "Pingvin Share를 사용할 수 있는 URL",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "홈 페이지 표시",
|
"admin.config.general.show-home-page": "홈 페이지 표시",
|
||||||
"admin.config.general.show-home-page.description": "홈 페이지를 표시할지 여부",
|
"admin.config.general.show-home-page.description": "홈 페이지를 표시할지 여부",
|
||||||
"admin.config.general.session-duration": "세션 기간",
|
"admin.config.general.session-duration": "세션 기간",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "역방향 공유 제목",
|
"admin.config.email.reverse-share-subject": "역방향 공유 제목",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "역방향 공유 메시지",
|
"admin.config.email.reverse-share-message": "역방향 공유 메시지",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export default {
|
|||||||
"navbar.upload": "Delen",
|
"navbar.upload": "Delen",
|
||||||
"navbar.signin": "Aanmelden",
|
"navbar.signin": "Aanmelden",
|
||||||
"navbar.home": "Startpagina",
|
"navbar.home": "Startpagina",
|
||||||
"navbar.signup": "Sign up",
|
"navbar.signup": "Registreren",
|
||||||
"navbar.links.shares": "Mijn gedeelde bestanden",
|
"navbar.links.shares": "Mijn gedeelde bestanden",
|
||||||
"navbar.links.reverse": "Omgekeerd delen",
|
"navbar.links.reverse": "Omgekeerd delen",
|
||||||
"navbar.avatar.account": "Mijn account",
|
"navbar.avatar.account": "Mijn account",
|
||||||
@@ -16,9 +16,9 @@ export default {
|
|||||||
"home.bullet.a.name": "Zelfgehost",
|
"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": "Your files are yours and will never be accessed by third parties.",
|
"home.bullet.b.description": "Je bestanden zijn van jou en zullen nooit toegankelijk zijn voor derden.",
|
||||||
"home.bullet.c.name": "Geen vervelende limiet voor bestandsgrootte",
|
"home.bullet.c.name": "Geen vervelende limiet voor bestandsgrootte",
|
||||||
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.",
|
"home.bullet.c.description": "Upload bestanden zo groot als je wilt. Je harde schijf is de enige limiet.",
|
||||||
"home.button.start": "Aan de slag",
|
"home.button.start": "Aan de slag",
|
||||||
"home.button.source": "Broncode",
|
"home.button.source": "Broncode",
|
||||||
// END /
|
// END /
|
||||||
@@ -58,12 +58,12 @@ export default {
|
|||||||
// /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": "A message with a link to reset your password has been sent if the provided email exists.",
|
"resetPassword.notify.success": "Er is een bericht verzonden met een link om je wachtwoord opnieuw in te stellen, als het opgegeven e-mailadres bestaat.",
|
||||||
"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",
|
||||||
"resetPassword.input.password": "Nieuw wachtwoord",
|
"resetPassword.input.password": "Nieuw wachtwoord",
|
||||||
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
|
"resetPassword.notify.passwordReset": "Je wachtwoord is succesvol gereset.",
|
||||||
// /account
|
// /account
|
||||||
"account.title": "Mijn account",
|
"account.title": "Mijn account",
|
||||||
"account.card.info.title": "Accountinformatie",
|
"account.card.info.title": "Accountinformatie",
|
||||||
@@ -73,7 +73,7 @@ export default {
|
|||||||
"account.card.password.title": "Wachtwoord",
|
"account.card.password.title": "Wachtwoord",
|
||||||
"account.card.password.old": "Oude wachtwoord",
|
"account.card.password.old": "Oude wachtwoord",
|
||||||
"account.card.password.new": "Nieuw wachtwoord",
|
"account.card.password.new": "Nieuw wachtwoord",
|
||||||
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.",
|
"account.card.password.noPasswordSet": "Er is geen wachtwoord ingesteld. Om in te loggen met je e-mailadres en wachtwoord, moet je een wachtwoord aanmaken.",
|
||||||
"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",
|
||||||
@@ -85,7 +85,7 @@ export default {
|
|||||||
"account.card.oauth.unlink": "Ontkoppel",
|
"account.card.oauth.unlink": "Ontkoppel",
|
||||||
"account.card.oauth.unlinked": "Niet-gekoppeld",
|
"account.card.oauth.unlinked": "Niet-gekoppeld",
|
||||||
"account.modal.unlink.title": "Ontkoppel 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 login credentials",
|
"account.modal.unlink.description": "Het ontkoppelen van sociale accounts kan leiden tot verlies van je account als je de inloggegevens bent vergeten",
|
||||||
"account.notify.oauth.unlinked.success": "Ontkoppelen succesvol",
|
"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",
|
||||||
@@ -121,12 +121,12 @@ export default {
|
|||||||
"account.shares.table.name": "Naam",
|
"account.shares.table.name": "Naam",
|
||||||
"account.shares.table.description": "Beschrijving",
|
"account.shares.table.description": "Beschrijving",
|
||||||
"account.shares.table.visitors": "Bezoekers",
|
"account.shares.table.visitors": "Bezoekers",
|
||||||
"account.shares.table.expiresAt": "Expires on",
|
"account.shares.table.expiresAt": "Verloopt op",
|
||||||
"account.shares.table.createdAt": "Created on",
|
"account.shares.table.createdAt": "Gemaakt op",
|
||||||
"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": "Share verwijderd: {share}",
|
||||||
"account.shares.modal.delete.description": "Weet u zeker dat u deze share wilt verwijderen?",
|
"account.shares.modal.delete.description": "Weet u zeker dat u deze share wilt verwijderen?",
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
@@ -206,14 +206,17 @@ export default {
|
|||||||
"admin.shares.table.id": "Share ID",
|
"admin.shares.table.id": "Share ID",
|
||||||
"admin.shares.table.username": "Auteur",
|
"admin.shares.table.username": "Auteur",
|
||||||
"admin.shares.table.visitors": "Bezoekers",
|
"admin.shares.table.visitors": "Bezoekers",
|
||||||
"admin.shares.table.expires": "Expires on",
|
"admin.shares.table.expires": "Verloopt op",
|
||||||
"admin.shares.edit.delete.title": "Delete share: {id}",
|
"admin.shares.edit.delete.title": "Delete share: {id}",
|
||||||
"admin.shares.edit.delete.description": "Weet u zeker dat u deze share wilt verwijderen?",
|
"admin.shares.edit.delete.description": "Weet u zeker dat u deze share wilt verwijderen?",
|
||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Uploaden",
|
"upload.title": "Uploaden",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Er is een fout opgetreden tijdens het voltooien van uw 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. Probeer het nogmaals.",
|
"upload.notify.count-failed": "{count} bestanden konden niet worden geüpload. Probeer het nogmaals.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// 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 only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"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": "De URL waar Pingvin Share bereikbaar is",
|
"admin.config.general.app-url.description": "De URL waar Pingvin Share bereikbaar is",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.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.session-duration": "Sessieduur",
|
"admin.config.general.session-duration": "Sessieduur",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Onderwerp van ontvangers' share",
|
"admin.config.email.share-recipients-subject": "Onderwerp van ontvangers' share",
|
||||||
"admin.config.email.share-recipients-subject.description": "Het onderwerp van de e-mail die wordt verzonden naar de share-ontvangers.",
|
"admin.config.email.share-recipients-subject.description": "Het onderwerp van de e-mail die wordt verzonden naar de share-ontvangers.",
|
||||||
"admin.config.email.share-recipients-message": "Bericht voor ontvangers van de share",
|
"admin.config.email.share-recipients-message": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Omgekeerde share email onderwerp",
|
"admin.config.email.reverse-share-subject": "Omgekeerde share email onderwerp",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Omgekeerde share-bericht",
|
"admin.config.email.reverse-share-message": "Omgekeerde share-bericht",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Prześlij",
|
"upload.title": "Prześlij",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Wystąpił błąd podczas zakończenia tworzenia udziału.",
|
"upload.notify.generic-error": "Wystąpił błąd podczas zakończenia tworzenia udziału.",
|
||||||
"upload.notify.count-failed": "Nie udało się przesłać {count} plików. Próbuję ponownie.",
|
"upload.notify.count-failed": "Nie udało się przesłać {count} plików. Próbuję ponownie.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Prześlij pliki",
|
"upload.dropzone.title": "Prześlij pliki",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Nazwa aplikacji",
|
"admin.config.general.app-name.description": "Nazwa aplikacji",
|
||||||
"admin.config.general.app-url": "Adres URL aplikacji",
|
"admin.config.general.app-url": "Adres URL aplikacji",
|
||||||
"admin.config.general.app-url.description": "Pod którym adresem URL Pingvin Share jest dostępny",
|
"admin.config.general.app-url.description": "Pod którym adresem URL Pingvin Share jest dostępny",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Pokaż stronę główną",
|
"admin.config.general.show-home-page": "Pokaż stronę główną",
|
||||||
"admin.config.general.show-home-page.description": "Czy wyświetlać stronę główną",
|
"admin.config.general.show-home-page.description": "Czy wyświetlać stronę główną",
|
||||||
"admin.config.general.session-duration": "Czas trwania sesji",
|
"admin.config.general.session-duration": "Czas trwania sesji",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Temat dla odbiorców udziału",
|
"admin.config.email.share-recipients-subject": "Temat dla odbiorców udziału",
|
||||||
"admin.config.email.share-recipients-subject.description": "Temat wiadomości e-mail, która zostanie wysłana do odbiorców udziału.",
|
"admin.config.email.share-recipients-subject.description": "Temat wiadomości e-mail, która zostanie wysłana do odbiorców udziału.",
|
||||||
"admin.config.email.share-recipients-message": "Wiadomość dla odbiorców udziału",
|
"admin.config.email.share-recipients-message": "Wiadomość dla odbiorców udziału",
|
||||||
"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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Temat udziału odwrotnego",
|
"admin.config.email.reverse-share-subject": "Temat udziału odwrotnego",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Wiadomość udziału odwrotnego",
|
"admin.config.email.reverse-share-message": "Wiadomość udziału odwrotnego",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export default {
|
|||||||
"navbar.upload": "Carregar",
|
"navbar.upload": "Carregar",
|
||||||
"navbar.signin": "Iniciar sessão",
|
"navbar.signin": "Iniciar sessão",
|
||||||
"navbar.home": "Início",
|
"navbar.home": "Início",
|
||||||
"navbar.signup": "Sign up",
|
"navbar.signup": "Cadastre-se",
|
||||||
"navbar.links.shares": "Meus compartilhamentos",
|
"navbar.links.shares": "Meus compartilhamentos",
|
||||||
"navbar.links.reverse": "Compartilhamentos reversos",
|
"navbar.links.reverse": "Compartilhamentos reversos",
|
||||||
"navbar.avatar.account": "Minha conta",
|
"navbar.avatar.account": "Minha conta",
|
||||||
@@ -16,9 +16,9 @@ export default {
|
|||||||
"home.bullet.a.name": "Auto-Hospedado",
|
"home.bullet.a.name": "Auto-Hospedado",
|
||||||
"home.bullet.a.description": "Hospede o Pingvin Share em sua própria máquina.",
|
"home.bullet.a.description": "Hospede o Pingvin Share em sua própria máquina.",
|
||||||
"home.bullet.b.name": "Privacidade",
|
"home.bullet.b.name": "Privacidade",
|
||||||
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.",
|
"home.bullet.b.description": "Seus arquivos são seus e nunca serão acessados por terceiros.",
|
||||||
"home.bullet.c.name": "Sem limite de tamanho de arquivo irritante",
|
"home.bullet.c.name": "Sem limite de tamanho de arquivo irritante",
|
||||||
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.",
|
"home.bullet.c.description": "Carregue arquivos tão grandes quanto quiser. Apenas o seu disco rígido será o seu limite.",
|
||||||
"home.button.start": "Começar",
|
"home.button.start": "Começar",
|
||||||
"home.button.source": "Código-fonte",
|
"home.button.source": "Código-fonte",
|
||||||
// END /
|
// END /
|
||||||
@@ -58,12 +58,12 @@ 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": "A message with a link to reset your password has been sent if the provided email exists.",
|
"resetPassword.notify.success": "Uma mensagem com um link para redefinir sua senha foi enviada se o e-mail fornecido 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",
|
||||||
"resetPassword.input.password": "Nova senha",
|
"resetPassword.input.password": "Nova senha",
|
||||||
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
|
"resetPassword.notify.passwordReset": "A sua senha foi redefinida com sucesso.",
|
||||||
// /account
|
// /account
|
||||||
"account.title": "A minha conta",
|
"account.title": "A minha conta",
|
||||||
"account.card.info.title": "Informação sobre a conta",
|
"account.card.info.title": "Informação sobre a conta",
|
||||||
@@ -73,7 +73,7 @@ export default {
|
|||||||
"account.card.password.title": "Senha",
|
"account.card.password.title": "Senha",
|
||||||
"account.card.password.old": "Senha antiga",
|
"account.card.password.old": "Senha antiga",
|
||||||
"account.card.password.new": "Nova senha",
|
"account.card.password.new": "Nova senha",
|
||||||
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.",
|
"account.card.password.noPasswordSet": "Você não tem uma senha definida. Para entrar utilizando seu e-mail e senha, você precisa criar uma senha.",
|
||||||
"account.notify.password.success": "Senha alterada com sucesso",
|
"account.notify.password.success": "Senha alterada com sucesso",
|
||||||
"account.card.oauth.title": "Login com Redes Sociais",
|
"account.card.oauth.title": "Login com Redes Sociais",
|
||||||
"account.card.oauth.github": "GitHub",
|
"account.card.oauth.github": "GitHub",
|
||||||
@@ -85,7 +85,7 @@ export default {
|
|||||||
"account.card.oauth.unlink": "Desvincular",
|
"account.card.oauth.unlink": "Desvincular",
|
||||||
"account.card.oauth.unlinked": "Desvinculado",
|
"account.card.oauth.unlinked": "Desvinculado",
|
||||||
"account.modal.unlink.title": "Desvincular conta",
|
"account.modal.unlink.title": "Desvincular conta",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials",
|
"account.modal.unlink.description": "Desvincular suas redes sociais pode fazer com que você perca sua conta se não se lembrar de seu nome de usuário e senha",
|
||||||
"account.notify.oauth.unlinked.success": "Desvinculado com sucesso",
|
"account.notify.oauth.unlinked.success": "Desvinculado com sucesso",
|
||||||
"account.card.security.title": "Segurança",
|
"account.card.security.title": "Segurança",
|
||||||
"account.card.security.totp.enable.description": "Digite a sua senha atual para começar a habilitar o TOTP",
|
"account.card.security.totp.enable.description": "Digite a sua senha atual para começar a habilitar o TOTP",
|
||||||
@@ -121,12 +121,12 @@ export default {
|
|||||||
"account.shares.table.name": "Nome",
|
"account.shares.table.name": "Nome",
|
||||||
"account.shares.table.description": "Descrição",
|
"account.shares.table.description": "Descrição",
|
||||||
"account.shares.table.visitors": "Visitantes",
|
"account.shares.table.visitors": "Visitantes",
|
||||||
"account.shares.table.expiresAt": "Expires on",
|
"account.shares.table.expiresAt": "Expira em",
|
||||||
"account.shares.table.createdAt": "Created on",
|
"account.shares.table.createdAt": "Criada em",
|
||||||
"account.shares.table.size": "Tamanho",
|
"account.shares.table.size": "Tamanho",
|
||||||
"account.shares.modal.share-informations": "Informações do compartilhamento",
|
"account.shares.modal.share-informations": "Informações do compartilhamento",
|
||||||
"account.shares.modal.share-link": "Link do compartilhamento",
|
"account.shares.modal.share-link": "Link do compartilhamento",
|
||||||
"account.shares.modal.delete.title": "Delete share: {share}",
|
"account.shares.modal.delete.title": "Excluir o compartilhamento {share}",
|
||||||
"account.shares.modal.delete.description": "Tem certeza que deseja excluir este compartilhamento?",
|
"account.shares.modal.delete.description": "Tem certeza que deseja excluir este compartilhamento?",
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
@@ -150,12 +150,12 @@ export default {
|
|||||||
"account.reverseShares.modal.expiration.year-singular": "Ano",
|
"account.reverseShares.modal.expiration.year-singular": "Ano",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "Anos",
|
"account.reverseShares.modal.expiration.year-plural": "Anos",
|
||||||
"account.reverseShares.modal.max-size.label": "Tamanho máximo do compartilhamento",
|
"account.reverseShares.modal.max-size.label": "Tamanho máximo do compartilhamento",
|
||||||
"account.reverseShares.modal.send-email": "Send email notifications",
|
"account.reverseShares.modal.send-email": "Enviar notificações por email",
|
||||||
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
|
"account.reverseShares.modal.send-email.description": "Enviar uma notificação por e-mail quando um compartilhamento for criado com este link reverso.",
|
||||||
"account.reverseShares.modal.simplified": "Modo simples",
|
"account.reverseShares.modal.simplified": "Modo simples",
|
||||||
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
|
"account.reverseShares.modal.simplified.description": "Facilite o upload da pessoa para compartilhar o arquivo com você. Eles serão capazes de personalizar somente o nome e a descrição do compartilhamento.",
|
||||||
"account.reverseShares.modal.public-access": "Acesso público",
|
"account.reverseShares.modal.public-access": "Acesso público",
|
||||||
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.",
|
"account.reverseShares.modal.public-access.description": "Faça os compartilhamentos criados com este compartilhamento reverso público. Se desativado, somente você e o criador do compartilhamento poderão visualizá-lo.",
|
||||||
"account.reverseShares.modal.max-use.label": "Limite de uso",
|
"account.reverseShares.modal.max-use.label": "Limite de uso",
|
||||||
"account.reverseShares.modal.max-use.description": "A quantidade máxima de vezes que esta URL pode ser usada para criar um compartilhamento.",
|
"account.reverseShares.modal.max-use.description": "A quantidade máxima de vezes que esta URL pode ser usada para criar um compartilhamento.",
|
||||||
"account.reverseShare.never-expires": "Este compartilhamento reverso nunca irá expirar.",
|
"account.reverseShare.never-expires": "Este compartilhamento reverso nunca irá expirar.",
|
||||||
@@ -183,14 +183,14 @@ export default {
|
|||||||
"admin.users.table.username": "Nome de usuário",
|
"admin.users.table.username": "Nome de usuário",
|
||||||
"admin.users.table.email": "E-mail",
|
"admin.users.table.email": "E-mail",
|
||||||
"admin.users.table.admin": "Admin",
|
"admin.users.table.admin": "Admin",
|
||||||
"admin.users.edit.update.title": "Edit user: {username}",
|
"admin.users.edit.update.title": "Editar usuário: {username}",
|
||||||
"admin.users.edit.update.admin-privileges": "Privilégios de administrador",
|
"admin.users.edit.update.admin-privileges": "Privilégios de administrador",
|
||||||
"admin.users.edit.update.change-password.title": "Alterar senha",
|
"admin.users.edit.update.change-password.title": "Alterar senha",
|
||||||
"admin.users.edit.update.change-password.field": "Nova senha",
|
"admin.users.edit.update.change-password.field": "Nova senha",
|
||||||
"admin.users.edit.update.change-password.button": "Salvar nova senha",
|
"admin.users.edit.update.change-password.button": "Salvar nova senha",
|
||||||
"admin.users.edit.update.notify.password.success": "Senha alterada com sucesso",
|
"admin.users.edit.update.notify.password.success": "Senha alterada com sucesso",
|
||||||
"admin.users.edit.delete.title": "Delete user: {username} ?",
|
"admin.users.edit.delete.title": "Excluir usuário {username} ?",
|
||||||
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
|
"admin.users.edit.delete.description": "Você realmente quer excluir este usuário e todos os seus compartilhamentos?",
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Criar usuário",
|
"admin.users.modal.create.title": "Criar usuário",
|
||||||
"admin.users.modal.create.username": "Nome de usuário",
|
"admin.users.modal.create.username": "Nome de usuário",
|
||||||
@@ -206,17 +206,20 @@ export default {
|
|||||||
"admin.shares.table.id": "ID do Compartilhamento",
|
"admin.shares.table.id": "ID do Compartilhamento",
|
||||||
"admin.shares.table.username": "Criador",
|
"admin.shares.table.username": "Criador",
|
||||||
"admin.shares.table.visitors": "Visitantes",
|
"admin.shares.table.visitors": "Visitantes",
|
||||||
"admin.shares.table.expires": "Expires on",
|
"admin.shares.table.expires": "Expira em",
|
||||||
"admin.shares.edit.delete.title": "Delete share: {id}",
|
"admin.shares.edit.delete.title": "Excluir o compartilhamento {id}",
|
||||||
"admin.shares.edit.delete.description": "Tem certeza que deseja excluir este compartilhamento?",
|
"admin.shares.edit.delete.description": "Tem certeza que deseja excluir este compartilhamento?",
|
||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Carregar",
|
"upload.title": "Carregar",
|
||||||
|
"upload.notify.confirm-leave": "Você tem certeza que deseja sair desta página? Seu envio será cancelado.",
|
||||||
"upload.notify.generic-error": "Ocorreu um erro ao terminar seu compartilhamento.",
|
"upload.notify.generic-error": "Ocorreu um erro ao terminar seu compartilhamento.",
|
||||||
"upload.notify.count-failed": "Falha ao enviar {count} arquivos. Tentando novamente.",
|
"upload.notify.count-failed": "Falha ao enviar {count} arquivos. Tentando novamente.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Link de compartilhamento reverso inválido",
|
||||||
|
"upload.reverse-share.error.invalid.description": "Este compartilhamento reverso expirou ou é inválido.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Carregar arquivos",
|
"upload.dropzone.title": "Carregar arquivos",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Arraste os arquivos aqui para iniciar o seu compartilhamento. Aceitamos apenas arquivos até {maxSize} no total.",
|
||||||
"upload.dropzone.notify.file-too-big": "Seus arquivos excedem o tamanho máximo do compartilhamento {maxSize}.",
|
"upload.dropzone.notify.file-too-big": "Seus arquivos excedem o tamanho máximo do compartilhamento {maxSize}.",
|
||||||
// FileList.tsx
|
// FileList.tsx
|
||||||
"upload.filelist.name": "Nome",
|
"upload.filelist.name": "Nome",
|
||||||
@@ -228,8 +231,8 @@ export default {
|
|||||||
"upload.modal.not-signed-in": "Você não está conectado",
|
"upload.modal.not-signed-in": "Você não está conectado",
|
||||||
"upload.modal.not-signed-in-description": "Você não poderá excluir seu compartilhamento manualmente e visualizar a contagem de visitantes.",
|
"upload.modal.not-signed-in-description": "Você não poderá excluir seu compartilhamento manualmente e visualizar a contagem de visitantes.",
|
||||||
"upload.modal.expires.never": "nunca",
|
"upload.modal.expires.never": "nunca",
|
||||||
"upload.modal.expires.never-long": "Permanent share",
|
"upload.modal.expires.never-long": "Compartilhamento permanente",
|
||||||
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.",
|
"upload.modal.expires.error.too-long": "Data de expiração excede o máximo de {max}.",
|
||||||
"upload.modal.link.label": "Link",
|
"upload.modal.link.label": "Link",
|
||||||
"upload.modal.expires.label": "Expiração",
|
"upload.modal.expires.label": "Expiração",
|
||||||
"upload.modal.expires.minute-singular": "Minuto",
|
"upload.modal.expires.minute-singular": "Minuto",
|
||||||
@@ -272,16 +275,16 @@ export default {
|
|||||||
"share.error.access-denied.title": "Compartilhamento privado",
|
"share.error.access-denied.title": "Compartilhamento privado",
|
||||||
"share.error.access-denied.description": "A conta atual não tem permissão para acessar este compartilhamento",
|
"share.error.access-denied.description": "A conta atual não tem permissão para acessar este compartilhamento",
|
||||||
"share.modal.password.title": "Senha necessária",
|
"share.modal.password.title": "Senha necessária",
|
||||||
"share.modal.password.description": "Please enter the password to acces this share.",
|
"share.modal.password.description": "Por favor, digite a senha para acessar este compartilhamento.",
|
||||||
"share.modal.password": "Senha",
|
"share.modal.password": "Senha",
|
||||||
"share.modal.error.invalid-password": "Senha inválida",
|
"share.modal.error.invalid-password": "Senha inválida",
|
||||||
"share.button.download-all": "Transferir tudo",
|
"share.button.download-all": "Transferir tudo",
|
||||||
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.",
|
"share.notify.download-all-preparing": "O compartilhamento está sendo preparado. Tente novamente em alguns minutos.",
|
||||||
"share.modal.file-link": "Link do arquivo",
|
"share.modal.file-link": "Link do arquivo",
|
||||||
"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": "Previews are not supported for this type of files. Please download the file to view it.",
|
"share.modal.file-preview.error.not-supported.description": "Pré-visualizações não são suportadas para este tipo de arquivos. Por favor, baixe o 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}",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Nome da aplicação",
|
"admin.config.general.app-name.description": "Nome da aplicação",
|
||||||
"admin.config.general.app-url": "URL do Aplicativo",
|
"admin.config.general.app-url": "URL do Aplicativo",
|
||||||
"admin.config.general.app-url.description": "Em qual URL o Pingvin Share está disponível",
|
"admin.config.general.app-url.description": "Em qual URL o Pingvin Share está disponível",
|
||||||
|
"admin.config.general.secure-cookies": "Cookies seguros",
|
||||||
|
"admin.config.general.secure-cookies.description": "Se definir a bandeira segura nos cookies. Se habilitado, o site não funcionará quando acessado por HTTP.",
|
||||||
"admin.config.general.show-home-page": "Mostrar a página inicial",
|
"admin.config.general.show-home-page": "Mostrar a página inicial",
|
||||||
"admin.config.general.show-home-page.description": "Mostrar ou não a página inicial",
|
"admin.config.general.show-home-page.description": "Mostrar ou não a página inicial",
|
||||||
"admin.config.general.session-duration": "Duração de sessão",
|
"admin.config.general.session-duration": "Duração de sessão",
|
||||||
@@ -307,24 +312,24 @@ export default {
|
|||||||
"admin.config.general.logo": "Logo",
|
"admin.config.general.logo": "Logo",
|
||||||
"admin.config.general.logo.description": "Alterar o seu logo carregando uma nova imagem. A imagem deve ser PNG e deve ter o formato 1:1.",
|
"admin.config.general.logo.description": "Alterar o seu logo carregando uma nova imagem. A imagem deve ser PNG e deve ter o formato 1:1.",
|
||||||
"admin.config.general.logo.placeholder": "Escolhe uma imagem",
|
"admin.config.general.logo.placeholder": "Escolhe uma imagem",
|
||||||
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
|
"admin.config.email.enable-share-email-recipients": "Ativar compartilhamento por email",
|
||||||
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
|
"admin.config.email.enable-share-email-recipients.description": "Se deseja permitir o compartilhamento por e-mail com destinatários. Só ative isto se o SMTP estiver ativado.",
|
||||||
"admin.config.email.share-recipients-subject": "Assunto dos destinatários do compartilhamento",
|
"admin.config.email.share-recipients-subject": "Assunto dos destinatários do compartilhamento",
|
||||||
"admin.config.email.share-recipients-subject.description": "Assunto do e-mail enviado para os destinatários do compartilhamento.",
|
"admin.config.email.share-recipients-subject.description": "Assunto do e-mail enviado para os destinatários do compartilhamento.",
|
||||||
"admin.config.email.share-recipients-message": "Assunto dos destinatários do compartilhamento",
|
"admin.config.email.share-recipients-message": "Assunto dos destinatários do compartilhamento",
|
||||||
"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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Mensagem que é enviada para os destinatários do compartilhamento. Variáveis disponíveis:\n {creator} - O nome de usuário do criador do compartilhamento\n {creatorEmail} - O e-mail do criador do compartilhamento\n {shareUrl} - A URL do compartilhamento\n {desc} - A descrição do compartilhamento\n {expires} - A data de expiração do compartilhamento\n Essas variáveis serão substituídas pelo valor real.",
|
||||||
"admin.config.email.reverse-share-subject": "Assunto do compartilhamento reverso",
|
"admin.config.email.reverse-share-subject": "Assunto do compartilhamento reverso",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Assunto do e-mail enviado quando alguém criou um compartilhamento com o seu link reverso.",
|
||||||
"admin.config.email.reverse-share-message": "Mensagem do compartilhamento reverso",
|
"admin.config.email.reverse-share-message": "Mensagem do compartilhamento reverso",
|
||||||
"admin.config.email.reverse-share-message.description": "Mensagem enviada quando alguém criou um compartilhamento com o link reverso. {shareUrl} será substituído pelo nome do criador e pela URL de compartilhamento.",
|
"admin.config.email.reverse-share-message.description": "Mensagem enviada quando alguém criou um compartilhamento com o link reverso. {shareUrl} será substituído pelo nome do criador e pela URL de compartilhamento.",
|
||||||
"admin.config.email.reset-password-subject": "Redefinir assunto da senha",
|
"admin.config.email.reset-password-subject": "Redefinir assunto da senha",
|
||||||
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.",
|
"admin.config.email.reset-password-subject.description": "Assunto do e-mail enviado quando um usuário solicita uma redefinição de senha.",
|
||||||
"admin.config.email.reset-password-message": "Mensagem de redefinição de senha",
|
"admin.config.email.reset-password-message": "Mensagem de redefinição de senha",
|
||||||
"admin.config.email.reset-password-message.description": "Mensagem enviada quando um usuário solicita uma redefinição de senha. {url} será substituído pela URL de redefinição de senha.",
|
"admin.config.email.reset-password-message.description": "Mensagem enviada quando um usuário solicita uma redefinição de senha. {url} será substituído pela URL de redefinição de senha.",
|
||||||
"admin.config.email.invite-subject": "Assunto do convite",
|
"admin.config.email.invite-subject": "Assunto do convite",
|
||||||
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.",
|
"admin.config.email.invite-subject.description": "Assunto do e-mail enviado quando um administrador convida um usuário.",
|
||||||
"admin.config.email.invite-message": "Mensagem de convite",
|
"admin.config.email.invite-message": "Mensagem de convite",
|
||||||
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.",
|
"admin.config.email.invite-message.description": "Mensagem que é enviada quando um administrador convida um usuário. {url} será substituído pelo URL de convite, {email} com o e-mail e {password} com a senha do usuário.",
|
||||||
"admin.config.share.allow-registration": "Permitir novos registos",
|
"admin.config.share.allow-registration": "Permitir novos registos",
|
||||||
"admin.config.share.allow-registration.description": "Se o registro é permitido",
|
"admin.config.share.allow-registration.description": "Se o registro é permitido",
|
||||||
"admin.config.share.allow-unauthenticated-shares": "Permitir compartilhamentos sem autenticação",
|
"admin.config.share.allow-unauthenticated-shares": "Permitir compartilhamentos sem autenticação",
|
||||||
@@ -336,17 +341,17 @@ export default {
|
|||||||
"admin.config.share.zip-compression-level": "Nível de compressão",
|
"admin.config.share.zip-compression-level": "Nível de compressão",
|
||||||
"admin.config.share.zip-compression-level.description": "Ajuste o nível para equilibrar entre o tamanho do arquivo e a velocidade de compressão. Valores válidos vão de 0 a 9, com 0 sendo sem compressão e 9 sendo compressão máxima. ",
|
"admin.config.share.zip-compression-level.description": "Ajuste o nível para equilibrar entre o tamanho do arquivo e a velocidade de compressão. Valores válidos vão de 0 a 9, com 0 sendo sem compressão e 9 sendo compressão máxima. ",
|
||||||
"admin.config.share.chunk-size": "Tamanho do pedaço",
|
"admin.config.share.chunk-size": "Tamanho do pedaço",
|
||||||
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.",
|
"admin.config.share.chunk-size.description": "Ajuste o tamanho do pedaço (em bytes) para seus uploads equilibrarem eficiência e confiabilidade de acordo com sua conexão com a internet. Pedaços menores podem aumentar as taxas de sucesso para conexões instáveis, enquanto partes maiores aceleram uploads para conexões estáveis.",
|
||||||
"admin.config.share.auto-open-share-modal": "Abertura automática do modal de criação de compartilhamento",
|
"admin.config.share.auto-open-share-modal": "Abertura automática do modal de criação de compartilhamento",
|
||||||
"admin.config.share.auto-open-share-modal.description": "O modal de criação de compartilhamento aparece automaticamente quando um usuário seleciona arquivos, eliminando a necessidade de clicar manualmente no botão.",
|
"admin.config.share.auto-open-share-modal.description": "O modal de criação de compartilhamento aparece automaticamente quando um usuário seleciona arquivos, eliminando a necessidade de clicar manualmente no botão.",
|
||||||
"admin.config.smtp.enabled": "Enable",
|
"admin.config.smtp.enabled": "Habilitar",
|
||||||
"admin.config.smtp.enabled.description": "Se o SMTP está habilitado. Apenas defina como verdadeiro se você digitou o servidor, porta, e-mail, usuário e senha do seu servidor SMTP.",
|
"admin.config.smtp.enabled.description": "Se o SMTP está habilitado. Apenas defina como verdadeiro se você digitou o servidor, porta, e-mail, usuário e senha do seu servidor SMTP.",
|
||||||
"admin.config.smtp.host": "Servidor",
|
"admin.config.smtp.host": "Servidor",
|
||||||
"admin.config.smtp.host.description": "Nome do Servidor SMTP",
|
"admin.config.smtp.host.description": "Nome do Servidor SMTP",
|
||||||
"admin.config.smtp.port": "Porta",
|
"admin.config.smtp.port": "Porta",
|
||||||
"admin.config.smtp.port.description": "Porta do Servidor SMTP",
|
"admin.config.smtp.port.description": "Porta do Servidor SMTP",
|
||||||
"admin.config.smtp.email": "E-mail",
|
"admin.config.smtp.email": "E-mail",
|
||||||
"admin.config.smtp.email.description": "Email address from wich the emails get sent",
|
"admin.config.smtp.email.description": "Endereço de e-mail do qual os e-mails são enviados",
|
||||||
"admin.config.smtp.username": "Nome de usuário",
|
"admin.config.smtp.username": "Nome de usuário",
|
||||||
"admin.config.smtp.username.description": "Nome de usuário do servidor SMTP",
|
"admin.config.smtp.username.description": "Nome de usuário do servidor SMTP",
|
||||||
"admin.config.smtp.password": "Senha",
|
"admin.config.smtp.password": "Senha",
|
||||||
@@ -382,8 +387,8 @@ export default {
|
|||||||
"admin.config.oauth.microsoft-client-secret.description": "Client secret do aplicativo Microsoft OAuth",
|
"admin.config.oauth.microsoft-client-secret.description": "Client secret do aplicativo Microsoft OAuth",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Se o login do Discord está habilitado",
|
"admin.config.oauth.discord-enabled.description": "Se o login do Discord está habilitado",
|
||||||
"admin.config.oauth.discord-limited-users": "Discord limited users",
|
"admin.config.oauth.discord-limited-users": "Usuários limitados do Discord",
|
||||||
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-users.description": "Limite de login em usuários específicos por sua ID do Discord. Deixe em branco para desativar.",
|
||||||
"admin.config.oauth.discord-limited-guild": "ID do servidor limitado do Discord",
|
"admin.config.oauth.discord-limited-guild": "ID do servidor limitado do Discord",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "Limite de login para usuários em um servidor específico. Deixe em branco para desativar.",
|
"admin.config.oauth.discord-limited-guild.description": "Limite de login para usuários em um servidor específico. Deixe em branco para desativar.",
|
||||||
"admin.config.oauth.discord-client-id": "ID do Cliente Discord",
|
"admin.config.oauth.discord-client-id": "ID do Cliente Discord",
|
||||||
@@ -409,14 +414,14 @@ export default {
|
|||||||
"admin.config.oauth.oidc-client-secret": "Segredo do cliente OpenID Connect",
|
"admin.config.oauth.oidc-client-secret": "Segredo do cliente OpenID Connect",
|
||||||
"admin.config.oauth.oidc-client-secret.description": "ID do cliente do aplicativo OpenID OAuth",
|
"admin.config.oauth.oidc-client-secret.description": "ID do cliente do aplicativo OpenID OAuth",
|
||||||
"admin.config.category.ldap": "LDAP",
|
"admin.config.category.ldap": "LDAP",
|
||||||
"admin.config.ldap.enabled": "Enable LDAP",
|
"admin.config.ldap.enabled": "Habilitar LDAP",
|
||||||
"admin.config.ldap.enabled.description": "Usar autenticação LDAP para login de usuário",
|
"admin.config.ldap.enabled.description": "Usar autenticação LDAP para login de usuário",
|
||||||
"admin.config.ldap.url": "URL do Servidor",
|
"admin.config.ldap.url": "URL do Servidor",
|
||||||
"admin.config.ldap.url.description": "URL do Servidor LDAP",
|
"admin.config.ldap.url.description": "URL do Servidor LDAP",
|
||||||
"admin.config.ldap.bind-dn": "Bind DN",
|
"admin.config.ldap.bind-dn": "Bind DN",
|
||||||
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search",
|
"admin.config.ldap.bind-dn.description": "Usuário padrão usado para realizar a pesquisa de usuário",
|
||||||
"admin.config.ldap.bind-password": "Bind Password",
|
"admin.config.ldap.bind-password": "Bind Password",
|
||||||
"admin.config.ldap.bind-password.description": "Password used to perform the user search",
|
"admin.config.ldap.bind-password.description": "Senha usada para realizar a busca de usuários",
|
||||||
"admin.config.ldap.search-base": "Base de Usuários",
|
"admin.config.ldap.search-base": "Base de Usuários",
|
||||||
"admin.config.ldap.search-base.description": "Localização base, onde a pesquisa do usuário será realizada",
|
"admin.config.ldap.search-base.description": "Localização base, onde a pesquisa do usuário será realizada",
|
||||||
"admin.config.ldap.search-query": "Consulta de usuário",
|
"admin.config.ldap.search-query": "Consulta de usuário",
|
||||||
@@ -441,10 +446,10 @@ export default {
|
|||||||
"error.msg.no_user": "O usuário vinculado a esta conta {0} não existe.",
|
"error.msg.no_user": "O usuário vinculado a esta conta {0} não existe.",
|
||||||
"error.msg.no_email": "Não é possível obter o endereço de e-mail desta conta {0}.",
|
"error.msg.no_email": "Não é possível obter o endereço de e-mail desta conta {0}.",
|
||||||
"error.msg.already_linked": "Esta conta {0} já está vinculada a outra conta.",
|
"error.msg.already_linked": "Esta conta {0} já está vinculada a outra conta.",
|
||||||
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.",
|
"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.user_not_allowed": "Você não tem permissão para acessar.",
|
"error.msg.user_not_allowed": "Você não tem permissão para acessar.",
|
||||||
"error.msg.cannot_get_user_info": "Cannot 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",
|
||||||
@@ -462,7 +467,7 @@ 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": "Visit link",
|
"common.text.navigate-to-link": "Visitar Link",
|
||||||
"common.text.or": "ou",
|
"common.text.or": "ou",
|
||||||
"common.text.redirecting": "Redirecionando...",
|
"common.text.redirecting": "Redirecionando...",
|
||||||
"common.button.go-back": "Voltar",
|
"common.button.go-back": "Voltar",
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export default {
|
|||||||
"signIn.notify.totp-required.title": "Требуется двухфакторная аутентификация",
|
"signIn.notify.totp-required.title": "Требуется двухфакторная аутентификация",
|
||||||
"signIn.notify.totp-required.description": "Пожалуйста, введите код Вашей 2-х факторной аутентификации",
|
"signIn.notify.totp-required.description": "Пожалуйста, введите код Вашей 2-х факторной аутентификации",
|
||||||
"signIn.oauth.or": "ИЛИ",
|
"signIn.oauth.or": "ИЛИ",
|
||||||
"signIn.oauth.signInWith": "Sign in with",
|
"signIn.oauth.signInWith": "Войдите с помощью",
|
||||||
"signIn.oauth.github": "GitHub",
|
"signIn.oauth.github": "GitHub",
|
||||||
"signIn.oauth.google": "Google",
|
"signIn.oauth.google": "Google",
|
||||||
"signIn.oauth.microsoft": "Microsoft",
|
"signIn.oauth.microsoft": "Microsoft",
|
||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Загрузить",
|
"upload.title": "Загрузить",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Произошла ошибка при завершении вашей загрузки.",
|
"upload.notify.generic-error": "Произошла ошибка при завершении вашей загрузки.",
|
||||||
"upload.notify.count-failed": "Не удалось загрузить файлы {count}. Повтор попытки.",
|
"upload.notify.count-failed": "Не удалось загрузить файлы {count}. Повтор попытки.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Загрузить файлы",
|
"upload.dropzone.title": "Загрузить файлы",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Видимое название приложения",
|
"admin.config.general.app-name.description": "Видимое название приложения",
|
||||||
"admin.config.general.app-url": "URL-адрес приложения",
|
"admin.config.general.app-url": "URL-адрес приложения",
|
||||||
"admin.config.general.app-url.description": "Адрес на котором доступен Pingvin Share",
|
"admin.config.general.app-url.description": "Адрес на котором доступен Pingvin Share",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Показывать домашнюю страницу",
|
"admin.config.general.show-home-page": "Показывать домашнюю страницу",
|
||||||
"admin.config.general.show-home-page.description": "Показывать ли домашнюю страницу или нет",
|
"admin.config.general.show-home-page.description": "Показывать ли домашнюю страницу или нет",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Заголовок письма (обратная загрузка)",
|
"admin.config.email.reverse-share-subject": "Заголовок письма (обратная загрузка)",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Сообщение письма обратной загрузки",
|
"admin.config.email.reverse-share-message": "Сообщение письма обратной загрузки",
|
||||||
@@ -462,9 +467,9 @@ 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": "Visit link",
|
"common.text.navigate-to-link": "Перейти по ссылке",
|
||||||
"common.text.or": "или",
|
"common.text.or": "или",
|
||||||
"common.text.redirecting": "Redirecting...",
|
"common.text.redirecting": "Идет перенаправление...",
|
||||||
"common.button.go-back": "Назад",
|
"common.button.go-back": "Назад",
|
||||||
"common.button.go-home": "Домой",
|
"common.button.go-home": "Домой",
|
||||||
"common.notify.copied": "Ваша ссылка скопирована в буфер обмена",
|
"common.notify.copied": "Ваша ссылка скопирована в буфер обмена",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Naložite",
|
"upload.title": "Naložite",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Prišlo je do napake pri ustvarjanju vašega deljenja.",
|
"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.",
|
"upload.notify.count-failed": "Prišlo je do napake pri nalaganju toliko datotek: {count}. Poskušamo ponovno.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Naloži datoteke",
|
"upload.dropzone.title": "Naloži datoteke",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Ime vaše aplikacije",
|
"admin.config.general.app-name.description": "Ime vaše aplikacije",
|
||||||
"admin.config.general.app-url": "URL 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.app-url.description": "Na katerem URL-ju je dostopen Pingvin Share",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Prikaži domačo stran",
|
"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.show-home-page.description": "Ali prikazati domačo stran",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Zadeva poslane delitve",
|
"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-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": "Vsebina poslane delitve",
|
||||||
"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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Zadeva delitve v obratni smeri",
|
"admin.config.email.reverse-share-subject": "Zadeva delitve v obratni smeri",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Vsebina delitve v obratni smeri",
|
"admin.config.email.reverse-share-message": "Vsebina delitve v obratni smeri",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,33 +1,33 @@
|
|||||||
export default {
|
export default {
|
||||||
// Navbar
|
// Navbar
|
||||||
"navbar.upload": "Пошаљи",
|
"navbar.upload": "Отпреми",
|
||||||
"navbar.signin": "Пријавите се",
|
"navbar.signin": "Пријава",
|
||||||
"navbar.home": "Почетна",
|
"navbar.home": "Почетна",
|
||||||
"navbar.signup": "Sign up",
|
"navbar.signup": "Регистрација",
|
||||||
"navbar.links.shares": "Moja дељења",
|
"navbar.links.shares": "Моја дељења",
|
||||||
"navbar.links.reverse": "Обрнуто дељење",
|
"navbar.links.reverse": "Обрнуто дељење",
|
||||||
"navbar.avatar.account": "Мој налог",
|
"navbar.avatar.account": "Мој налог",
|
||||||
"navbar.avatar.admin": "Администрација",
|
"navbar.avatar.admin": "Администрација",
|
||||||
"navbar.avatar.signout": "Одјави се",
|
"navbar.avatar.signout": "Одјави се",
|
||||||
// END navbar
|
// END navbar
|
||||||
// /
|
// /
|
||||||
"home.title": "<h>self-hosted</h> платформа за дељење фајлова.",
|
"home.title": "<h>Само-хостована</h> платформа за дељење фајлова.",
|
||||||
"home.description": "Да ли заиста желите да дате своје личне датотеке у руке трећих страна као што је WeTransfer?",
|
"home.description": "Да ли заиста желите да дате своје личне датотеке у руке трећих страна као што је WeTransfer?",
|
||||||
"home.bullet.a.name": "Личан хостинг",
|
"home.bullet.a.name": "Само-хостовано",
|
||||||
"home.bullet.a.description": "Хостујте Pingvin Share на својој машини.",
|
"home.bullet.a.description": "Хостујте Pingvin Share на својој машини.",
|
||||||
"home.bullet.b.name": "Privatnost",
|
"home.bullet.b.name": "Privatnost",
|
||||||
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.",
|
"home.bullet.b.description": "Ваше датотеке су ваше и никада неће бити доступне трећим странама.",
|
||||||
"home.bullet.c.name": "Нема досадног ограничења величине датотеке",
|
"home.bullet.c.name": "Нема досадног ограничења величине датотеке",
|
||||||
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.",
|
"home.bullet.c.description": "Отпремите онолико великих датотека колико желите. Само ваш чврсти диск је граница.",
|
||||||
"home.button.start": "Почети",
|
"home.button.start": "Започни",
|
||||||
"home.button.source": "Изворни код",
|
"home.button.source": "Изворни код",
|
||||||
// END /
|
// END /
|
||||||
// /auth/signin
|
// /auth/signin
|
||||||
"signin.title": "Добродошли назад",
|
"signin.title": "Добродошли назад",
|
||||||
"signin.description": "Још увек немате налог?",
|
"signin.description": "Још увек немате налог?",
|
||||||
"signin.button.signup": "Региструј се",
|
"signin.button.signup": "Региструј се",
|
||||||
"signin.input.email-or-username": "Е-пошта или корисничко име",
|
"signin.input.email-or-username": "Имејл или корисничко име",
|
||||||
"signin.input.email-or-username.placeholder": "Ваша Е-пошта или корисничко име",
|
"signin.input.email-or-username.placeholder": "Ваш имејл или корисничко име",
|
||||||
"signin.input.password": "Лозинка",
|
"signin.input.password": "Лозинка",
|
||||||
"signin.input.password.placeholder": "Ваша лозинка",
|
"signin.input.password.placeholder": "Ваша лозинка",
|
||||||
"signin.button.submit": "Пријавите се",
|
"signin.button.submit": "Пријавите се",
|
||||||
@@ -47,8 +47,8 @@ export default {
|
|||||||
"signup.button.signin": "Пријавите се",
|
"signup.button.signin": "Пријавите се",
|
||||||
"signup.input.username": "Корисничко име",
|
"signup.input.username": "Корисничко име",
|
||||||
"signup.input.username.placeholder": "Ваше корисничко име",
|
"signup.input.username.placeholder": "Ваше корисничко име",
|
||||||
"signup.input.email": "E-пошта",
|
"signup.input.email": "Имејл",
|
||||||
"signup.input.email.placeholder": "Ваш и-мејл",
|
"signup.input.email.placeholder": "Ваш имејл",
|
||||||
"signup.button.submit": "Хајде да почнемо",
|
"signup.button.submit": "Хајде да почнемо",
|
||||||
// END /auth/signup
|
// END /auth/signup
|
||||||
// /auth/totp
|
// /auth/totp
|
||||||
@@ -57,23 +57,23 @@ export default {
|
|||||||
// END /auth/totp
|
// END /auth/totp
|
||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Заборавили сте лозинку?",
|
"resetPassword.title": "Заборавили сте лозинку?",
|
||||||
"resetPassword.description": "Унесите своју е-пошту да бисте ресетовали лозинку.",
|
"resetPassword.description": "Унесите свој имејл да бисте ресетовали лозинку.",
|
||||||
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.",
|
"resetPassword.notify.success": "Порука са линком за ресетовање лозинке је послата ако унета и-мејл адреса постоји.",
|
||||||
"resetPassword.button.back": "Назад на страницу за пријаву",
|
"resetPassword.button.back": "Назад на страницу за пријаву",
|
||||||
"resetPassword.text.resetPassword": "Обнови лозинку",
|
"resetPassword.text.resetPassword": "Обнови лозинку",
|
||||||
"resetPassword.text.enterNewPassword": "Унесите вашу нову лозинку",
|
"resetPassword.text.enterNewPassword": "Унесите вашу нову лозинку",
|
||||||
"resetPassword.input.password": "Нова лозинка",
|
"resetPassword.input.password": "Нова лозинка",
|
||||||
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
|
"resetPassword.notify.passwordReset": "Ваша лозинка је успешно ресетована.",
|
||||||
// /account
|
// /account
|
||||||
"account.title": "Мој налог",
|
"account.title": "Мој налог",
|
||||||
"account.card.info.title": "Подаци о налогу",
|
"account.card.info.title": "Подаци о налогу",
|
||||||
"account.card.info.username": "Корисничко име",
|
"account.card.info.username": "Корисничко име",
|
||||||
"account.card.info.email": "E-пошта",
|
"account.card.info.email": "Имејл",
|
||||||
"account.notify.info.success": "Налог је успешно ажуриран",
|
"account.notify.info.success": "Налог је успешно ажуриран",
|
||||||
"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 do not have a password set. To sign in using your email and password, you need to create a password.",
|
"account.card.password.noPasswordSet": "Немате постављену лозинку. Да бисте се пријавили користећи и-мејл и лозинку, потребно је да направите лозинку.",
|
||||||
"account.notify.password.success": "Лозинка је успешно промењена",
|
"account.notify.password.success": "Лозинка је успешно промењена",
|
||||||
"account.card.oauth.title": "Социал логин",
|
"account.card.oauth.title": "Социал логин",
|
||||||
"account.card.oauth.github": "GitHub",
|
"account.card.oauth.github": "GitHub",
|
||||||
@@ -85,7 +85,7 @@ export default {
|
|||||||
"account.card.oauth.unlink": "Прекини везу",
|
"account.card.oauth.unlink": "Прекини везу",
|
||||||
"account.card.oauth.unlinked": "Веза је прекинута",
|
"account.card.oauth.unlinked": "Веза је прекинута",
|
||||||
"account.modal.unlink.title": "Прекини везу са налогом",
|
"account.modal.unlink.title": "Прекини везу са налогом",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials",
|
"account.modal.unlink.description": "Уклањање везе са вашим друштвеним налозима може довести до губитка вашег налога ако се не сећате својих приступних података",
|
||||||
"account.notify.oauth.unlinked.success": "Веза је прекинута",
|
"account.notify.oauth.unlinked.success": "Веза је прекинута",
|
||||||
"account.card.security.title": "Безбедност",
|
"account.card.security.title": "Безбедност",
|
||||||
"account.card.security.totp.enable.description": "Унесите своју тренутну лозинку да бисте почели да омогућавате ТОТП",
|
"account.card.security.totp.enable.description": "Унесите своју тренутну лозинку да бисте почели да омогућавате ТОТП",
|
||||||
@@ -112,21 +112,21 @@ export default {
|
|||||||
"account.modal.delete.description": "Да ли заиста желите да избришете свој налог укључујући све ваше активне дељења?",
|
"account.modal.delete.description": "Да ли заиста желите да избришете свој налог укључујући све ваше активне дељења?",
|
||||||
// END /account
|
// END /account
|
||||||
// /account/shares
|
// /account/shares
|
||||||
"account.shares.title": "Moja дељења",
|
"account.shares.title": "Моја дељења",
|
||||||
"account.shares.title.empty": "Овде је празно 👀",
|
"account.shares.title.empty": "Овде је празно 👀",
|
||||||
"account.shares.description.empty": "Немате никаква дељења.",
|
"account.shares.description.empty": "Немате никаква дељења.",
|
||||||
"account.shares.button.create": "Направите",
|
"account.shares.button.create": "Направите",
|
||||||
"account.shares.info.title": "Делите информације",
|
"account.shares.info.title": "Делите информације",
|
||||||
"account.shares.table.id": "ИД",
|
"account.shares.table.id": "ID",
|
||||||
"account.shares.table.name": "Назив",
|
"account.shares.table.name": "Назив",
|
||||||
"account.shares.table.description": "Опис",
|
"account.shares.table.description": "Опис",
|
||||||
"account.shares.table.visitors": "Посетици",
|
"account.shares.table.visitors": "Посетиоци",
|
||||||
"account.shares.table.expiresAt": "Expires on",
|
"account.shares.table.expiresAt": "Истиче",
|
||||||
"account.shares.table.createdAt": "Created on",
|
"account.shares.table.createdAt": "Направљено",
|
||||||
"account.shares.table.size": "Величина",
|
"account.shares.table.size": "Величина",
|
||||||
"account.shares.modal.share-informations": "Делите информације",
|
"account.shares.modal.share-informations": "Делите информације",
|
||||||
"account.shares.modal.share-link": "Дели везу",
|
"account.shares.modal.share-link": "Дели везу",
|
||||||
"account.shares.modal.delete.title": "Delete share: {share}",
|
"account.shares.modal.delete.title": "Избриши дељење {share}",
|
||||||
"account.shares.modal.delete.description": "Да ли заиста желите да избришете ово дељење?",
|
"account.shares.modal.delete.description": "Да ли заиста желите да избришете ово дељење?",
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
@@ -150,12 +150,12 @@ export default {
|
|||||||
"account.reverseShares.modal.expiration.year-singular": "Година",
|
"account.reverseShares.modal.expiration.year-singular": "Година",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "Године",
|
"account.reverseShares.modal.expiration.year-plural": "Године",
|
||||||
"account.reverseShares.modal.max-size.label": "Максимална величина дељења",
|
"account.reverseShares.modal.max-size.label": "Максимална величина дељења",
|
||||||
"account.reverseShares.modal.send-email": "Send email notifications",
|
"account.reverseShares.modal.send-email": "Пошаљи обавештења и-мејлом",
|
||||||
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
|
"account.reverseShares.modal.send-email.description": "Пошаљи обавештење имејлом када се креира дељење помоћу ове обрнуте везе за дељење.",
|
||||||
"account.reverseShares.modal.simplified": "Једноставан режим",
|
"account.reverseShares.modal.simplified": "Једноставан режим",
|
||||||
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
|
"account.reverseShares.modal.simplified.description": "Олакшајте особи која отпрема фајл да га подели са вама. Они ће моћи да прилагоде само име и опис дељења.",
|
||||||
"account.reverseShares.modal.public-access": "Јавни приступ",
|
"account.reverseShares.modal.public-access": "Јавни приступ",
|
||||||
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.",
|
"account.reverseShares.modal.public-access.description": "Учини да дељења креирана овим реверзним линком за дељење буду јавна. Ако је онемогућено, само ви и креатор дељења ћете имати приступ за преглед.",
|
||||||
"account.reverseShares.modal.max-use.label": "Максималан број коришћења",
|
"account.reverseShares.modal.max-use.label": "Максималан број коришћења",
|
||||||
"account.reverseShares.modal.max-use.description": "Максималан број пута који овај URL може да се користи за прављење дељења.",
|
"account.reverseShares.modal.max-use.description": "Максималан број пута који овај URL може да се користи за прављење дељења.",
|
||||||
"account.reverseShare.never-expires": "Ово обрнуто дељење никада неће истећи.",
|
"account.reverseShare.never-expires": "Ово обрнуто дељење никада неће истећи.",
|
||||||
@@ -174,49 +174,52 @@ export default {
|
|||||||
// /admin
|
// /admin
|
||||||
"admin.title": "Администрација",
|
"admin.title": "Администрација",
|
||||||
"admin.button.users": "Управљање корисницима",
|
"admin.button.users": "Управљање корисницима",
|
||||||
"admin.button.shares": "Управљање deljenjima",
|
"admin.button.shares": "Управљање дељењем",
|
||||||
"admin.button.config": "Конфигурација",
|
"admin.button.config": "Конфигурација",
|
||||||
"admin.version": "Верзија",
|
"admin.version": "Верзија",
|
||||||
// END /admin
|
// END /admin
|
||||||
// /admin/users
|
// /admin/users
|
||||||
"admin.users.title": "Управљање корисницима",
|
"admin.users.title": "Управљање корисницима",
|
||||||
"admin.users.table.username": "Корисничко име",
|
"admin.users.table.username": "Корисничко име",
|
||||||
"admin.users.table.email": "E-пошта",
|
"admin.users.table.email": "Имејл",
|
||||||
"admin.users.table.admin": "Админ",
|
"admin.users.table.admin": "Админ",
|
||||||
"admin.users.edit.update.title": "Edit user: {username}",
|
"admin.users.edit.update.title": "Уредите корисника: {username}",
|
||||||
"admin.users.edit.update.admin-privileges": "Администраторске привилегије",
|
"admin.users.edit.update.admin-privileges": "Администраторске привилегије",
|
||||||
"admin.users.edit.update.change-password.title": "Промените лозинку",
|
"admin.users.edit.update.change-password.title": "Промените лозинку",
|
||||||
"admin.users.edit.update.change-password.field": "Нова лозинка",
|
"admin.users.edit.update.change-password.field": "Нова лозинка",
|
||||||
"admin.users.edit.update.change-password.button": "Снимите нову лозинку",
|
"admin.users.edit.update.change-password.button": "Снимите нову лозинку",
|
||||||
"admin.users.edit.update.notify.password.success": "Лозинка је успешно промењена",
|
"admin.users.edit.update.notify.password.success": "Лозинка је успешно промењена",
|
||||||
"admin.users.edit.delete.title": "Delete user: {username} ?",
|
"admin.users.edit.delete.title": "Обришите корисника: {username} ?",
|
||||||
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
|
"admin.users.edit.delete.description": "Да ли заиста желите да обришете овог корисника и сва његова дељења?",
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Креирај корисника",
|
"admin.users.modal.create.title": "Креирај корисника",
|
||||||
"admin.users.modal.create.username": "Корисничко име",
|
"admin.users.modal.create.username": "Корисничко име",
|
||||||
"admin.users.modal.create.email": "E-пошта",
|
"admin.users.modal.create.email": "Имејл",
|
||||||
"admin.users.modal.create.password": "Лозинка",
|
"admin.users.modal.create.password": "Лозинка",
|
||||||
"admin.users.modal.create.manual-password": "Поставите лозинку ручно",
|
"admin.users.modal.create.manual-password": "Поставите лозинку ручно",
|
||||||
"admin.users.modal.create.manual-password.description": "Ако није означено, корисник ће добити е-пошту са везом за постављање лозинке.",
|
"admin.users.modal.create.manual-password.description": "Ако није означено, корисник ће добити имејл са везом за постављање лозинке.",
|
||||||
"admin.users.modal.create.admin": "Администраторске привилегије",
|
"admin.users.modal.create.admin": "Администраторске привилегије",
|
||||||
"admin.users.modal.create.admin.description": "Ако је означено, корисник ће моћи да приступи административном панелу.",
|
"admin.users.modal.create.admin.description": "Ако је означено, корисник ће моћи да приступи административном панелу.",
|
||||||
// END /admin/users
|
// END /admin/users
|
||||||
// /admin/shares
|
// /admin/shares
|
||||||
"admin.shares.title": "Share management",
|
"admin.shares.title": "Управљање дељењем",
|
||||||
"admin.shares.table.id": "Share ID",
|
"admin.shares.table.id": "ID дељења",
|
||||||
"admin.shares.table.username": "Creator",
|
"admin.shares.table.username": "Креатор",
|
||||||
"admin.shares.table.visitors": "Visitors",
|
"admin.shares.table.visitors": "Посетиоци",
|
||||||
"admin.shares.table.expires": "Expires on",
|
"admin.shares.table.expires": "Истиче",
|
||||||
"admin.shares.edit.delete.title": "Delete share: {id}",
|
"admin.shares.edit.delete.title": "Обриши дељење: {id}",
|
||||||
"admin.shares.edit.delete.description": "Do you really want to delete this share?",
|
"admin.shares.edit.delete.description": "Да ли заиста желите да обришете ово дељење?",
|
||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Пошаљи",
|
"upload.title": "Пошаљи",
|
||||||
|
"upload.notify.confirm-leave": "Да ли сте сигурни да желите да напустите ову страницу? Ваше отпремање ће бити отказано.",
|
||||||
"upload.notify.generic-error": "Дошло је до грешке при довршавању дељења.",
|
"upload.notify.generic-error": "Дошло је до грешке при довршавању дељења.",
|
||||||
"upload.notify.count-failed": "Отпремање {count} датотека није успело. Покушавам поново.",
|
"upload.notify.count-failed": "Отпремање {count} датотека није успело. Покушавам поново.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Неправилан линк за обрнуто дељење",
|
||||||
|
"upload.reverse-share.error.invalid.description": "Ово обрнуто дељење је истекло или је неважеће.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Пошаљи датотеке",
|
"upload.dropzone.title": "Пошаљи датотеке",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Превуците и отпустите датотеке овде да бисте започели дељење. Прихватамо само фајлове укупне величине до {maxSize}.",
|
||||||
"upload.dropzone.notify.file-too-big": "Ваше датотеке премашују максималну величину дељења од {maxSize}.",
|
"upload.dropzone.notify.file-too-big": "Ваше датотеке премашују максималну величину дељења од {maxSize}.",
|
||||||
// FileList.tsx
|
// FileList.tsx
|
||||||
"upload.filelist.name": "Назив",
|
"upload.filelist.name": "Назив",
|
||||||
@@ -228,8 +231,8 @@ export default {
|
|||||||
"upload.modal.not-signed-in": "Нисте пријављени",
|
"upload.modal.not-signed-in": "Нисте пријављени",
|
||||||
"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": "Permanent share",
|
"upload.modal.expires.never-long": "Трајно дељење",
|
||||||
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum 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": "Минут",
|
"upload.modal.expires.minute-singular": "Минут",
|
||||||
@@ -244,12 +247,12 @@ export default {
|
|||||||
"upload.modal.expires.month-plural": "Месеци",
|
"upload.modal.expires.month-plural": "Месеци",
|
||||||
"upload.modal.expires.year-singular": "Година",
|
"upload.modal.expires.year-singular": "Година",
|
||||||
"upload.modal.expires.year-plural": "Године",
|
"upload.modal.expires.year-plural": "Године",
|
||||||
"upload.modal.accordion.name-and-description.title": "Name and description",
|
"upload.modal.accordion.name-and-description.title": "Име и опис",
|
||||||
"upload.modal.accordion.name-and-description.name.placeholder": "Name",
|
"upload.modal.accordion.name-and-description.name.placeholder": "Име",
|
||||||
"upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share",
|
"upload.modal.accordion.name-and-description.description.placeholder": "Напомена за примаоце овог дељења",
|
||||||
"upload.modal.accordion.email.title": "Примаоци е-поште",
|
"upload.modal.accordion.email.title": "Примаоци имејла",
|
||||||
"upload.modal.accordion.email.placeholder": "Унесите примаоце е-поште",
|
"upload.modal.accordion.email.placeholder": "Унесите примаоце имејла",
|
||||||
"upload.modal.accordion.email.invalid-email": "Неисправна адреса е-поште",
|
"upload.modal.accordion.email.invalid-email": "Неисправна адреса имејла",
|
||||||
"upload.modal.accordion.security.title": "Сигурносна подешавања",
|
"upload.modal.accordion.security.title": "Сигурносна подешавања",
|
||||||
"upload.modal.accordion.security.password.label": "Заштита лозинком",
|
"upload.modal.accordion.security.password.label": "Заштита лозинком",
|
||||||
"upload.modal.accordion.security.password.placeholder": "Нема лозинке",
|
"upload.modal.accordion.security.password.placeholder": "Нема лозинке",
|
||||||
@@ -259,7 +262,7 @@ export default {
|
|||||||
"upload.modal.completed.never-expires": "Ово дељење никада неће истећи.",
|
"upload.modal.completed.never-expires": "Ово дељење никада неће истећи.",
|
||||||
"upload.modal.completed.expires-on": "Ово дељење ће истећи {expiration}.",
|
"upload.modal.completed.expires-on": "Ово дељење ће истећи {expiration}.",
|
||||||
"upload.modal.completed.share-ready": "Дељење је спремно",
|
"upload.modal.completed.share-ready": "Дељење је спремно",
|
||||||
"upload.modal.completed.notified-reverse-share-creator": "We have notified the creator of the reverse share. You can also manually share this link with them through other means.",
|
"upload.modal.completed.notified-reverse-share-creator": "Обавестили смо креатора реверзног дељења. Такође можете ручно поделити овај линк са њима на друге начине.",
|
||||||
// END /upload
|
// END /upload
|
||||||
// /share/[id]
|
// /share/[id]
|
||||||
"share.title": "Дељење {shareId}",
|
"share.title": "Дељење {shareId}",
|
||||||
@@ -269,62 +272,64 @@ export default {
|
|||||||
"share.error.removed.title": "Дељење је уклоњено",
|
"share.error.removed.title": "Дељење је уклоњено",
|
||||||
"share.error.not-found.title": "Дељење није пронађено",
|
"share.error.not-found.title": "Дељење није пронађено",
|
||||||
"share.error.not-found.description": "Удео који тражите не постоји.",
|
"share.error.not-found.description": "Удео који тражите не постоји.",
|
||||||
"share.error.access-denied.title": "Private share",
|
"share.error.access-denied.title": "Приватно дељење",
|
||||||
"share.error.access-denied.description": "The current account does not have permission to access this share",
|
"share.error.access-denied.description": "Тренутни налог нема дозволу за приступ овом дељењу",
|
||||||
"share.modal.password.title": "Обавезна лозинка",
|
"share.modal.password.title": "Обавезна лозинка",
|
||||||
"share.modal.password.description": "Please enter the password to acces this share.",
|
"share.modal.password.description": "Молимо унесите лозинку за приступ овом дељењу.",
|
||||||
"share.modal.password": "Лозинка",
|
"share.modal.password": "Лозинка",
|
||||||
"share.modal.error.invalid-password": "Неисправна лозинка",
|
"share.modal.error.invalid-password": "Неисправна лозинка",
|
||||||
"share.button.download-all": "Преузми све",
|
"share.button.download-all": "Преузми све",
|
||||||
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.",
|
"share.notify.download-all-preparing": "Дељење се припрема. Молимо покушајте поново за неколико минута.",
|
||||||
"share.modal.file-link": "Веза датотеке",
|
"share.modal.file-link": "Веза датотеке",
|
||||||
"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": "Previews are not supported for this type of files. Please download the file to view it.",
|
"share.modal.file-preview.error.not-supported.description": "Прегледи нису подржани за овај тип датотека. Молимо преузмите фајл да бисте га прегледали.",
|
||||||
// END /share/[id]
|
// END /share/[id]
|
||||||
// /share/[id]/edit
|
// /share/[id]/edit
|
||||||
"share.edit.title": "Edit {shareId}",
|
"share.edit.title": "Уреди {shareId}",
|
||||||
"share.edit.append-upload": "Append file",
|
"share.edit.append-upload": "Надодај фајл",
|
||||||
"share.edit.notify.generic-error": "An error occurred while finishing your share.",
|
"share.edit.notify.generic-error": "Дошло је до грешке приликом завршетка вашег дељења.",
|
||||||
"share.edit.notify.save-success": "Share updated successfully",
|
"share.edit.notify.save-success": "Дељење је успешно ажурирано",
|
||||||
// END /share/[id]/edit
|
// END /share/[id]/edit
|
||||||
// /admin/config
|
// /admin/config
|
||||||
"admin.config.title": "Конфигурација",
|
"admin.config.title": "Конфигурација",
|
||||||
"admin.config.category.general": "Опште",
|
"admin.config.category.general": "Опште",
|
||||||
"admin.config.category.share": "Дељење",
|
"admin.config.category.share": "Дељење",
|
||||||
"admin.config.category.email": "E-пошта",
|
"admin.config.category.email": "Имејл",
|
||||||
"admin.config.category.smtp": "SMTP",
|
"admin.config.category.smtp": "SMTP",
|
||||||
"admin.config.category.oauth": "Социал Логин",
|
"admin.config.category.oauth": "Social Login",
|
||||||
"admin.config.general.app-name": "Назив апликације",
|
"admin.config.general.app-name": "Назив апликације",
|
||||||
"admin.config.general.app-name.description": "Назив апликације",
|
"admin.config.general.app-name.description": "Назив апликације",
|
||||||
"admin.config.general.app-url": "URL апликације",
|
"admin.config.general.app-url": "URL апликације",
|
||||||
"admin.config.general.app-url.description": "На којој URL адреси је доступан Pingvin Share",
|
"admin.config.general.app-url.description": "На којој URL адреси је доступан Pingvin Share",
|
||||||
|
"admin.config.general.secure-cookies": "Безбедни колачићи",
|
||||||
|
"admin.config.general.secure-cookies.description": "Да ли желите да поставите заставицу за безбедност на колачиће? Ако је омогућено, сајт неће функционисати када му приступате преко HTTP-а.",
|
||||||
"admin.config.general.show-home-page": "Прикажи почетну страницу",
|
"admin.config.general.show-home-page": "Прикажи почетну страницу",
|
||||||
"admin.config.general.show-home-page.description": "Да ли да се прикаже почетна страница",
|
"admin.config.general.show-home-page.description": "Да ли да се прикаже почетна страница",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Трајање сесије",
|
||||||
"admin.config.general.session-duration.description": "Time in hours after which a user must log in again (default: 3 months).",
|
"admin.config.general.session-duration.description": "Време у сатима након којег корисник мора поново да се пријави (подразумевано: 3 месеца).",
|
||||||
"admin.config.general.logo": "Лого",
|
"admin.config.general.logo": "Лого",
|
||||||
"admin.config.general.logo.description": "Промените свој логотип тако што ћете отпремити нову слику. Слика мора да буде PNG и треба да има формат 1:1.",
|
"admin.config.general.logo.description": "Промените свој логотип тако што ћете отпремити нову слику. Слика мора да буде PNG и треба да има формат 1:1.",
|
||||||
"admin.config.general.logo.placeholder": "Изабери слику",
|
"admin.config.general.logo.placeholder": "Изабери слику",
|
||||||
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
|
"admin.config.email.enable-share-email-recipients": "Омогући дељење са примаоцима имејлом",
|
||||||
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
|
"admin.config.email.enable-share-email-recipients.description": "Да ли дозволити дељење са примаоцима путем имејла. Омогућите ово само ако је 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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Порука која се шаље примаоцима дељења. Доступне променљиве:\n{creator} - Корисничко име креатора дељења\n{creatorEmail} - Имејл креатора дељења\n{shareUrl} - URL дељења\n{desc} - Опис дељења\n{expires} - Датум истека дељења\nОве променљиве ће бити замењене стварним вредностима.",
|
||||||
"admin.config.email.reverse-share-subject": "Тема обрнутог дељења",
|
"admin.config.email.reverse-share-subject": "Тема обрнутог дељења",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Наслов имејла који се шаље када неко креира дељење са вашим реверзним линком за дељење.",
|
||||||
"admin.config.email.reverse-share-message": "Обрнуто дељење порука",
|
"admin.config.email.reverse-share-message": "Обрнуто дељење порука",
|
||||||
"admin.config.email.reverse-share-message.description": "Порука која се шаље када је неко направио дељење са вашом обрнутом везом за дељење. {shareUrl} ће бити замењен именом креатора и УРЛ-ом за дељење.",
|
"admin.config.email.reverse-share-message.description": "Порука која се шаље када је неко направио дељење са вашом обрнутом везом за дељење. {shareUrl} ће бити замењен именом креатора и URL-ом за дељење.",
|
||||||
"admin.config.email.reset-password-subject": "Ресетујте тему лозинке",
|
"admin.config.email.reset-password-subject": "Ресетујте тему лозинке",
|
||||||
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.",
|
"admin.config.email.reset-password-subject.description": "Наслов имејла који се шаље када корисник затражи ресетовање лозинке.",
|
||||||
"admin.config.email.reset-password-message": "Порука за ресетовање лозинке",
|
"admin.config.email.reset-password-message": "Порука за ресетовање лозинке",
|
||||||
"admin.config.email.reset-password-message.description": "Порука која се шаље када корисник затражи ресетовање лозинке. {url} ће бити замењен УРЛ-ом за ресетовање лозинке.",
|
"admin.config.email.reset-password-message.description": "Порука која се шаље када корисник затражи ресетовање лозинке. {url} ће бити замењен линком за ресетовање лозинке.",
|
||||||
"admin.config.email.invite-subject": "Позивна тема",
|
"admin.config.email.invite-subject": "Позивна тема",
|
||||||
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.",
|
"admin.config.email.invite-subject.description": "Наслов е-поште која се шаље када администратор позове корисника.",
|
||||||
"admin.config.email.invite-message": "Позивна порука",
|
"admin.config.email.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, {email} with the email and {password} with the users password.",
|
"admin.config.email.invite-message.description": "Порука која се шаље када администратор позове корисника. {url} ће бити замењен линком за позив, {email} имејлом, а {password} лозинком корисника.",
|
||||||
"admin.config.share.allow-registration": "Дозволи регистрацију",
|
"admin.config.share.allow-registration": "Дозволи регистрацију",
|
||||||
"admin.config.share.allow-registration.description": "Да ли је регистрација дозвољена",
|
"admin.config.share.allow-registration.description": "Да ли је регистрација дозвољена",
|
||||||
"admin.config.share.allow-unauthenticated-shares": "Дозволи дељење без аутентификације",
|
"admin.config.share.allow-unauthenticated-shares": "Дозволи дељење без аутентификације",
|
||||||
@@ -333,118 +338,118 @@ export default {
|
|||||||
"admin.config.share.max-expiration.description": "Максимални рок трајања дељења у сатима. Поставите на 0 да бисте омогућили неограничено трајање.",
|
"admin.config.share.max-expiration.description": "Максимални рок трајања дељења у сатима. Поставите на 0 да бисте омогућили неограничено трајање.",
|
||||||
"admin.config.share.max-size": "Максимална величина",
|
"admin.config.share.max-size": "Максимална величина",
|
||||||
"admin.config.share.max-size.description": "Максимална величина дељења у бајтовима",
|
"admin.config.share.max-size.description": "Максимална величина дељења у бајтовима",
|
||||||
"admin.config.share.zip-compression-level": "Ниво zip компресије",
|
"admin.config.share.zip-compression-level": "Ниво Zip компресије",
|
||||||
"admin.config.share.zip-compression-level.description": "Подесите ниво да бисте балансирали између величине датотеке и брзине компресије. Важеће вредности се крећу од 0 до 9, при чему је 0 без компресије, а 9 је максимална компресија. ",
|
"admin.config.share.zip-compression-level.description": "Подесите ниво да бисте балансирали између величине датотеке и брзине компресије. Важеће вредности се крећу од 0 до 9, при чему је 0 без компресије, а 9 је максимална компресија. ",
|
||||||
"admin.config.share.chunk-size": "Chunk size",
|
"admin.config.share.chunk-size": "Величина комада",
|
||||||
"admin.config.share.chunk-size.description": "Adjust the chunk size (in bytes) for your uploads to balance efficiency and reliability according to your internet connection. Smaller chunks can enhance success rates for unstable connections, while larger chunks make uploads faster for stable connections.",
|
"admin.config.share.chunk-size.description": "Подесите величину дела (у бајтовима) за ваша отпремање како бисте уравнотежили ефикасност и поузданост у складу са вашом интернет везом. Мањи делови могу побољшати стопу успеха за нестабилне везе, док већи делови омогућавају брже отпремање за стабилне везе.",
|
||||||
"admin.config.share.auto-open-share-modal": "Auto open create share modal",
|
"admin.config.share.auto-open-share-modal": "",
|
||||||
"admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
|
"admin.config.share.auto-open-share-modal.description": "Модал за креирање дељења аутоматски се појављује када корисник изабере датотеке, елиминишући потребу за ручним кликом на дугме.",
|
||||||
"admin.config.smtp.enabled": "Enable",
|
"admin.config.smtp.enabled": "Омогући",
|
||||||
"admin.config.smtp.enabled.description": "Да ли је SMTP омогућен. Поставите ово на тачно само ако сте унели хост, порт, е-пошту, корисника и лозинку вашег SMTP сервера.",
|
"admin.config.smtp.enabled.description": "Да ли је SMTP омогућен. Поставите ово на тачно само ако сте унели хост, порт, имејл, корисника и лозинку вашег SMTP сервера.",
|
||||||
"admin.config.smtp.host": "Домаћин",
|
"admin.config.smtp.host": "Домаћин",
|
||||||
"admin.config.smtp.host.description": "Домаћин SMTP сервера",
|
"admin.config.smtp.host.description": "Домаћин SMTP сервера",
|
||||||
"admin.config.smtp.port": "Порт",
|
"admin.config.smtp.port": "Порт",
|
||||||
"admin.config.smtp.port.description": "Порт домаћина SMTP сервера",
|
"admin.config.smtp.port.description": "Порт домаћина SMTP сервера",
|
||||||
"admin.config.smtp.email": "E-пошта",
|
"admin.config.smtp.email": "Имејл",
|
||||||
"admin.config.smtp.email.description": "Email address from wich the emails get sent",
|
"admin.config.smtp.email.description": "Адреса имејла са којег се поруке шаљу",
|
||||||
"admin.config.smtp.username": "Корисничко име",
|
"admin.config.smtp.username": "Корисничко име",
|
||||||
"admin.config.smtp.username.description": "Корисничко име SMTP сервера",
|
"admin.config.smtp.username.description": "Корисничко име SMTP сервера",
|
||||||
"admin.config.smtp.password": "Лозинка",
|
"admin.config.smtp.password": "Лозинка",
|
||||||
"admin.config.smtp.password.description": "Лозинка SMTP сервера",
|
"admin.config.smtp.password.description": "Лозинка SMTP сервера",
|
||||||
"admin.config.smtp.button.test": "Пошаљи тестну е-пошту",
|
"admin.config.smtp.button.test": "Пошаљи тестни имејл",
|
||||||
"admin.config.smtp.allow-unauthorized-certificates": "Trust unauthorized SMTP server certificates",
|
"admin.config.smtp.allow-unauthorized-certificates": "Веровање неауторизованим SMTP серверским сертификатима",
|
||||||
"admin.config.smtp.allow-unauthorized-certificates.description": "Only set this to true if you need to trust self signed certificates.",
|
"admin.config.smtp.allow-unauthorized-certificates.description": "Ово поставите на \"истина\" само ако је потребно веровати само-потписаним сертификатима.",
|
||||||
"admin.config.oauth.allow-registration": "Дозволи регистрацију",
|
"admin.config.oauth.allow-registration": "Дозволи регистрацију",
|
||||||
"admin.config.oauth.allow-registration.description": "Дозволите корисницима да се региструју путем друштвене пријаве",
|
"admin.config.oauth.allow-registration.description": "Дозволите корисницима да се региструју путем друштвене пријаве",
|
||||||
"admin.config.oauth.ignore-totp": "Занемари ТОТП",
|
"admin.config.oauth.ignore-totp": "Занемари ТОТП",
|
||||||
"admin.config.oauth.ignore-totp.description": "Да ли да игноришете ТОТП када корисник користи пријаву на друштвеним мрежама",
|
"admin.config.oauth.ignore-totp.description": "Да ли да игноришете ТОТП када корисник користи пријаву на друштвеним мрежама",
|
||||||
"admin.config.oauth.disable-password": "Disable password login",
|
"admin.config.oauth.disable-password": "Онемогућите пријаву лозинком",
|
||||||
"admin.config.oauth.disable-password.description": "Whether to disable password login\nMake sure that an OAuth provider is properly configured before activating this configuration to avoid being locked out.",
|
"admin.config.oauth.disable-password.description": "Омогућити пријаву лозинком или не\nУверите се да је провајдер за OAuth правилно конфигурисан пре активирања ове конфигурације како бисте избегли закључавање налога.",
|
||||||
"admin.config.oauth.github-enabled": "GitHub",
|
"admin.config.oauth.github-enabled": "GitHub",
|
||||||
"admin.config.oauth.github-enabled.description": "Да ли је пријављивање на GitHub омогућено",
|
"admin.config.oauth.github-enabled.description": "Да ли је пријављивање на GitHub омогућено",
|
||||||
"admin.config.oauth.github-client-id": "GitHub ИД клијента",
|
"admin.config.oauth.github-client-id": "GitHub ID клијента",
|
||||||
"admin.config.oauth.github-client-id.description": "ИД клијента GitHub OAuth апликације",
|
"admin.config.oauth.github-client-id.description": "ID клијента GitHub OAuth апликације",
|
||||||
"admin.config.oauth.github-client-secret": "Тајна GitHub клијента",
|
"admin.config.oauth.github-client-secret": "Тајна GitHub клијента",
|
||||||
"admin.config.oauth.github-client-secret.description": "Тајна клијента GitHub OAuth апликације",
|
"admin.config.oauth.github-client-secret.description": "Тајна клијента GitHub OAuth апликације",
|
||||||
"admin.config.oauth.google-enabled": "Google",
|
"admin.config.oauth.google-enabled": "Google",
|
||||||
"admin.config.oauth.google-enabled.description": "Да ли је пријављивање на Google омогућено",
|
"admin.config.oauth.google-enabled.description": "Да ли је пријављивање на Google омогућено",
|
||||||
"admin.config.oauth.google-client-id": "ИД Google клијента",
|
"admin.config.oauth.google-client-id": "ID Google клијента",
|
||||||
"admin.config.oauth.google-client-id.description": "ИД клијента Google OAuth апликације",
|
"admin.config.oauth.google-client-id.description": "ID клијента Google OAuth апликације",
|
||||||
"admin.config.oauth.google-client-secret": "Тајна Google клијента",
|
"admin.config.oauth.google-client-secret": "Тајна Google клијента",
|
||||||
"admin.config.oauth.google-client-secret.description": "Тајна клијента Google OAuth апликације",
|
"admin.config.oauth.google-client-secret.description": "Тајна клијента Google OAuth апликације",
|
||||||
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
"admin.config.oauth.microsoft-enabled": "Microsoft",
|
||||||
"admin.config.oauth.microsoft-enabled.description": "Да ли је пријављивање на Microsoft омогућено",
|
"admin.config.oauth.microsoft-enabled.description": "Да ли је пријављивање на Microsoft омогућено",
|
||||||
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
|
||||||
"admin.config.oauth.microsoft-tenant.description": "ИД закупца за Microsoft OAuth апликацију\nуобичајено: Корисници са личним Microsoft налогом и пословним или школским налогом са Microsoft Entra ID-а могу да се пријаве у апликацију. организације: Само корисници са пословним или школским налозима са Microsoft Entra ID-а могу да се пријаве у апликацију.\nпотрошачи: Само корисници са личним Microsoft налогом могу да се пријаве у апликацију.\nиме домена закупца Microsoft Entra ID или ИД закупца у ГУИД формату: Само корисници из одређеног Microsoft Entra ID станара (чланови директоријума са пословним или школским налогом или гости директоријума са личним Microsoft налогом) могу да се пријаве у апликацију.",
|
"admin.config.oauth.microsoft-tenant.description": "ID закупца за Microsoft OAuth апликацију\nуобичајено: Корисници са личним Microsoft налогом и пословним или школским налогом са Microsoft Entra ID-а могу да се пријаве у апликацију. организације: Само корисници са пословним или школским налозима са Microsoft Entra ID-а могу да се пријаве у апликацију.\nпотрошачи: Само корисници са личним Microsoft налогом могу да се пријаве у апликацију.\nиме домена закупца Microsoft Entra ID или ИД закупца у ГУИД формату: Само корисници из одређеног Microsoft Entra ID станара (чланови директоријума са пословним или школским налогом или гости директоријума са личним Microsoft налогом) могу да се пријаве у апликацију.",
|
||||||
"admin.config.oauth.microsoft-client-id": "Microsotf Цлиент ИД",
|
"admin.config.oauth.microsoft-client-id": "Microsoft ID клијента",
|
||||||
"admin.config.oauth.microsoft-client-id.description": "ИД клијента Microsoft OAuth апликације",
|
"admin.config.oauth.microsoft-client-id.description": "ID клијента Microsoft OAuth апликације",
|
||||||
"admin.config.oauth.microsoft-client-secret": "Тајна Microsoft клијента",
|
"admin.config.oauth.microsoft-client-secret": "Тајна Microsoft клијента",
|
||||||
"admin.config.oauth.microsoft-client-secret.description": "Тајна клијента за Microsot OAuth апликацију",
|
"admin.config.oauth.microsoft-client-secret.description": "Тајна клијента за Microsot OAuth апликацију",
|
||||||
"admin.config.oauth.discord-enabled": "Discord",
|
"admin.config.oauth.discord-enabled": "Discord",
|
||||||
"admin.config.oauth.discord-enabled.description": "Да ли је пријављивање на Discord омогућено",
|
"admin.config.oauth.discord-enabled.description": "Да ли је пријављивање на Discord омогућено",
|
||||||
"admin.config.oauth.discord-limited-users": "Discord limited users",
|
"admin.config.oauth.discord-limited-users": "Ограничење по Discord корисницима",
|
||||||
"admin.config.oauth.discord-limited-users.description": "Limit signing in to specific users by their Discord ID. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-users.description": "Ограничите пријављивање на одређене кориснике помоћу њиховог Discord ID-а. Оставите празно да бисте онемогућили.",
|
||||||
"admin.config.oauth.discord-limited-guild": "Discord limited server ID",
|
"admin.config.oauth.discord-limited-guild": "Ограничење по Discord серверу",
|
||||||
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
|
"admin.config.oauth.discord-limited-guild.description": "Ограничите пријављивање на кориснике одређеног сервера. Оставите празно да бисте онемогућили.",
|
||||||
"admin.config.oauth.discord-client-id": "Discord ИД клијента",
|
"admin.config.oauth.discord-client-id": "Discord ID клијента",
|
||||||
"admin.config.oauth.discord-client-id.description": "ИД клијента Discord OAuth апликације",
|
"admin.config.oauth.discord-client-id.description": "ID клијента Discord OAuth апликације",
|
||||||
"admin.config.oauth.discord-client-secret": "Discord клијент тајна",
|
"admin.config.oauth.discord-client-secret": "Discord клијент тајна",
|
||||||
"admin.config.oauth.discord-client-secret.description": "Тајна клијента Discord OAuth апликације",
|
"admin.config.oauth.discord-client-secret.description": "Тајна клијента 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": "Омогућити пријаву OpenID Connect-ом или не",
|
||||||
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
|
"admin.config.oauth.oidc-discovery-uri": "URI за OpenID Connect Discovery",
|
||||||
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI за откривање OpenID Connect OAuth апликације",
|
||||||
"admin.config.oauth.oidc-sign-out": "Sign out from OpenID Connect",
|
"admin.config.oauth.oidc-sign-out": "Одјављивање са OpenID Connect-a",
|
||||||
"admin.config.oauth.oidc-sign-out.description": "Whether the “Sign out” button will sign out from the OpenID Connect provider",
|
"admin.config.oauth.oidc-sign-out.description": "Да ли ће дугме „Одјави се“ одјавити корисника и са OpenID Connect провајдера",
|
||||||
"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 токену. Оставите празно ако не знате шта је ова конфигурација.",
|
||||||
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",
|
"admin.config.oauth.oidc-role-path": "Путања до улога у OpenID Connect токену",
|
||||||
"admin.config.oauth.oidc-role-path.description": "Must be a valid JMES path referencing an array of roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "Leave it blank if you don't know what this config is.",
|
"admin.config.oauth.oidc-role-path.description": "Мора бити валидна JMES путања која референцира низ улога. " + "Управљање правима приступа помоћу улога у OpenID Connect-у се препоручује само ако ниједан други провајдер идентитета није конфигурисан и ако је пријава лозинком онемогућена. " + "Оставите празно ако не знате шта је ова конфигурација.",
|
||||||
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access",
|
"admin.config.oauth.oidc-role-general-access": "Улога у OpenID Connect-у за општи приступ",
|
||||||
"admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a user’s roles for them to log in. " + "Leave it blank if you don't know what this config is.",
|
"admin.config.oauth.oidc-role-general-access.description": "Улога потребна за општи приступ. Мора бити присутна у улогама корисника како би се могао пријавити. " + "Оставите празно ако не знате шта је ова конфигурација.",
|
||||||
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access",
|
"admin.config.oauth.oidc-role-admin-access": "Улога у OpenID Connect-у за администраторски приступ",
|
||||||
"admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a user’s roles for them to access the admin panel. " + "Leave it blank if you don't know what this config is.",
|
"admin.config.oauth.oidc-role-admin-access.description": "Улога потребна за администраторски приступ. Мора бити присутна у улогама корисника како би могли приступити администраторском панелу. " + "Оставите празно ако не знате шта је ова конфигурација.",
|
||||||
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
|
"admin.config.oauth.oidc-client-id": "OpenID Connect ID клијента",
|
||||||
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
|
"admin.config.oauth.oidc-client-id.description": "ID клијента OpenID Connect OAuth апликације",
|
||||||
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
|
"admin.config.oauth.oidc-client-secret": "OpenID Connect тајна клијента",
|
||||||
"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 апликације",
|
||||||
"admin.config.category.ldap": "LDAP",
|
"admin.config.category.ldap": "LDAP",
|
||||||
"admin.config.ldap.enabled": "Enable LDAP",
|
"admin.config.ldap.enabled": "Омогући LDAP",
|
||||||
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login",
|
"admin.config.ldap.enabled.description": "Користи LDAP аутентификацију за пријаву корисника",
|
||||||
"admin.config.ldap.url": "Server URL",
|
"admin.config.ldap.url": "URL сервера",
|
||||||
"admin.config.ldap.url.description": "URL of the LDAP server",
|
"admin.config.ldap.url.description": "URL LDAP сервера",
|
||||||
"admin.config.ldap.bind-dn": "Bind DN",
|
"admin.config.ldap.bind-dn": "DN везивање",
|
||||||
"admin.config.ldap.bind-dn.description": "Default user used to perform the user search",
|
"admin.config.ldap.bind-dn.description": "Подразумевани корисник који се користи за претрагу корисника",
|
||||||
"admin.config.ldap.bind-password": "Bind password",
|
"admin.config.ldap.bind-password": "Лозинка за везивање",
|
||||||
"admin.config.ldap.bind-password.description": "Password used to perform the user search",
|
"admin.config.ldap.bind-password.description": "Лозинка која се користи за извршавање претраге корисника",
|
||||||
"admin.config.ldap.search-base": "User base",
|
"admin.config.ldap.search-base": "База корисника",
|
||||||
"admin.config.ldap.search-base.description": "Base location, where the user search will be performed",
|
"admin.config.ldap.search-base.description": "Локација базе, место где ће се извршити претрага корисника",
|
||||||
"admin.config.ldap.search-query": "User query",
|
"admin.config.ldap.search-query": "Упит за корисника",
|
||||||
"admin.config.ldap.search-query.description": "The user query will be used to search the 'User base' for the LDAP user. %username% can be used as the placeholder for the user given input.",
|
"admin.config.ldap.search-query.description": "Упит за корисника који ће се користити за претрагу „Базе корисника“ за LDAP корисника. %username% се може користити као ознака за унос корисника.",
|
||||||
"admin.config.ldap.admin-groups": "Admin group",
|
"admin.config.ldap.admin-groups": "Администраторска група",
|
||||||
"admin.config.ldap.admin-groups.description": "Group required for administrative access.",
|
"admin.config.ldap.admin-groups.description": "Група која је потребна за администраторски приступ.",
|
||||||
"admin.config.ldap.field-name-member-of": "User groups attribute name",
|
"admin.config.ldap.field-name-member-of": "Назив атрибута корисничких група",
|
||||||
"admin.config.ldap.field-name-member-of.description": "LDAP attribute name for the groups, an user is a member of. This is used when checking for the admin group.",
|
"admin.config.ldap.field-name-member-of.description": "LDAP назив атрибута за групе чији је корисник члан. Ово се користи при провери администраторске групе.",
|
||||||
"admin.config.ldap.field-name-email": "User email attribute name",
|
"admin.config.ldap.field-name-email": "Назив атрибута за имејл корисника",
|
||||||
"admin.config.ldap.field-name-email.description": "LDAP attribute name for the email of an user.",
|
"admin.config.ldap.field-name-email.description": "LDAP назив атрибута за имејл корисника.",
|
||||||
// 404
|
// 404
|
||||||
"404.description": "Опа - Ова страна не постоји.",
|
"404.description": "Опа - Ова страна не постоји.",
|
||||||
"404.button.home": "Врати ме на почетак",
|
"404.button.home": "Врати ме на почетак",
|
||||||
// error
|
// error
|
||||||
"error.title": "Грешка",
|
"error.title": "Грешка",
|
||||||
"error.description": "Ooпс!",
|
"error.description": "Упс!",
|
||||||
"error.button.back": "Иди назад",
|
"error.button.back": "Иди назад",
|
||||||
"error.msg.default": "Нешто је пошло наопако.",
|
"error.msg.default": "Нешто је пошло наопако.",
|
||||||
"error.msg.access_denied": "Отказали сте процес аутентификације, покушајте поново.",
|
"error.msg.access_denied": "Отказали сте процес аутентификације, покушајте поново.",
|
||||||
"error.msg.expired_token": "Процес аутентификације је трајао предуго, покушајте поново.",
|
"error.msg.expired_token": "Процес аутентификације је трајао предуго, покушајте поново.",
|
||||||
"error.msg.invalid_token": "Internal Error",
|
"error.msg.invalid_token": "Интерна грешка",
|
||||||
"error.msg.no_user": "Корисник повезан са овим {0} налогом не постоји.",
|
"error.msg.no_user": "Корисник повезан са овим {0} налогом не постоји.",
|
||||||
"error.msg.no_email": "Не могу да добијем адресу е-поште са овог {0} налога.",
|
"error.msg.no_email": "Не могу да добијем адресу имејла са овог {0} налога.",
|
||||||
"error.msg.already_linked": "Овај {0} налог је већ повезан са другим налогом.",
|
"error.msg.already_linked": "Овај {0} налог је већ повезан са другим налогом.",
|
||||||
"error.msg.not_linked": "This {0} account hasn't been 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.user_not_allowed": "You are not allowed to sign in.",
|
"error.msg.user_not_allowed": "Није вам дозвољено да се пријавите.",
|
||||||
"error.msg.cannot_get_user_info": "Cannot 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": "Google",
|
||||||
"error.param.provider_microsoft": "Microsoft",
|
"error.param.provider_microsoft": "Microsoft",
|
||||||
@@ -462,20 +467,20 @@ 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": "Visit link",
|
"common.text.navigate-to-link": "Посетите линк",
|
||||||
"common.text.or": "или",
|
"common.text.or": "или",
|
||||||
"common.text.redirecting": "Redirecting...",
|
"common.text.redirecting": "Преусмеравање...",
|
||||||
"common.button.go-back": "Иди назад",
|
"common.button.go-back": "Иди назад",
|
||||||
"common.button.go-home": "Go home",
|
"common.button.go-home": "Почетна страница",
|
||||||
"common.notify.copied": "Ваша веза је копирана у clipboard",
|
"common.notify.copied": "Ваша веза је копирана у међуспремник",
|
||||||
"common.success": "Успешно",
|
"common.success": "Успешно",
|
||||||
"common.error": "Грешка",
|
"common.error": "Грешка",
|
||||||
"common.error.unknown": "Дошло је до непознате грешке",
|
"common.error.unknown": "Дошло је до непознате грешке",
|
||||||
"common.error.invalid-email": "Неисправна адреса е-поште",
|
"common.error.invalid-email": "Неисправна адреса имејла",
|
||||||
"common.error.too-short": "Мора да има најмање {length} знакова",
|
"common.error.too-short": "Мора да има најмање {length} знакова",
|
||||||
"common.error.too-long": "Мора да има највише {length} знакова",
|
"common.error.too-long": "Мора да има највише {length} знакова",
|
||||||
"common.error.number-too-small": "Must be at least {min}",
|
"common.error.number-too-small": "Мора бити најмање {min}",
|
||||||
"common.error.number-too-large": "Must be at most {max}",
|
"common.error.number-too-large": "Мора бити највише {max}",
|
||||||
"common.error.exact-length": "Мора да има тачно {length} знакова",
|
"common.error.exact-length": "Мора да има тачно {length} знакова",
|
||||||
"common.error.invalid-number": "Мора бити број",
|
"common.error.invalid-number": "Мора бити број",
|
||||||
"common.error.field-required": "Поље је обавезно"
|
"common.error.field-required": "Поље је обавезно"
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Ladda upp",
|
"upload.title": "Ladda upp",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Ett fel uppstod när din delning skulle slutföras.",
|
"upload.notify.generic-error": "Ett fel uppstod när din delning skulle slutföras.",
|
||||||
"upload.notify.count-failed": "{count} filer kunde inte laddas upp. Försöker igen.",
|
"upload.notify.count-failed": "{count} filer kunde inte laddas upp. Försöker igen.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Ladda upp filer",
|
"upload.dropzone.title": "Ladda upp filer",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Namn på applikationen",
|
"admin.config.general.app-name.description": "Namn på applikationen",
|
||||||
"admin.config.general.app-url": "Appens URL",
|
"admin.config.general.app-url": "Appens URL",
|
||||||
"admin.config.general.app-url.description": "På vilken URL Pingvin Share finns",
|
"admin.config.general.app-url.description": "På vilken URL Pingvin Share finns",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Visa startsidan",
|
"admin.config.general.show-home-page": "Visa startsidan",
|
||||||
"admin.config.general.show-home-page.description": "Om du vill visa startsidan",
|
"admin.config.general.show-home-page.description": "Om du vill visa startsidan",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Delning ämne",
|
"admin.config.email.share-recipients-subject": "Delning ämne",
|
||||||
"admin.config.email.share-recipients-subject.description": "Ämne för e-postmeddelandet som skickas till delningsmottagarna.",
|
"admin.config.email.share-recipients-subject.description": "Ämne för e-postmeddelandet som skickas till delningsmottagarna.",
|
||||||
"admin.config.email.share-recipients-message": "Delning meddelande",
|
"admin.config.email.share-recipients-message": "Delning meddelande",
|
||||||
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Omvänd delning ämne",
|
"admin.config.email.reverse-share-subject": "Omvänd delning ämne",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Omvänd delning meddelande",
|
"admin.config.email.reverse-share-message": "Omvänd delning meddelande",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export default {
|
|||||||
"navbar.upload": "อัพโหลด",
|
"navbar.upload": "อัพโหลด",
|
||||||
"navbar.signin": "เข้าสู่ระบบ",
|
"navbar.signin": "เข้าสู่ระบบ",
|
||||||
"navbar.home": "หน้าหลัก",
|
"navbar.home": "หน้าหลัก",
|
||||||
"navbar.signup": "Sign up",
|
"navbar.signup": "ลงทะเบียน",
|
||||||
"navbar.links.shares": "แชร์ของฉัน",
|
"navbar.links.shares": "แชร์ของฉัน",
|
||||||
"navbar.links.reverse": "รีเวิร์สแชร์",
|
"navbar.links.reverse": "รีเวิร์สแชร์",
|
||||||
"navbar.avatar.account": "บัญชีของฉัน",
|
"navbar.avatar.account": "บัญชีของฉัน",
|
||||||
@@ -26,8 +26,8 @@ export default {
|
|||||||
"signin.title": "ยินดีต้อนรับกลับ",
|
"signin.title": "ยินดีต้อนรับกลับ",
|
||||||
"signin.description": "ยังไม่มีบัญชี?",
|
"signin.description": "ยังไม่มีบัญชี?",
|
||||||
"signin.button.signup": "สมัครบัญชี",
|
"signin.button.signup": "สมัครบัญชี",
|
||||||
"signin.input.email-or-username": "อีเมล์์์์์์์์หรือชื่อผู้ใช้",
|
"signin.input.email-or-username": "อีเมลหรือชื่อผู้ใช้",
|
||||||
"signin.input.email-or-username.placeholder": "อีเมล์์์์์์์หรือชื่อผู้ใช้ของคุณ",
|
"signin.input.email-or-username.placeholder": "อีเมลหรือชื่อผู้ใช้ของคุณ",
|
||||||
"signin.input.password": "รหัสผ่าน",
|
"signin.input.password": "รหัสผ่าน",
|
||||||
"signin.input.password.placeholder": "รหัสผ่านของคุณ",
|
"signin.input.password.placeholder": "รหัสผ่านของคุณ",
|
||||||
"signin.button.submit": "เข้าสู่ระบบ",
|
"signin.button.submit": "เข้าสู่ระบบ",
|
||||||
@@ -47,8 +47,8 @@ export default {
|
|||||||
"signup.button.signin": "เข้าสู่ระบบ",
|
"signup.button.signin": "เข้าสู่ระบบ",
|
||||||
"signup.input.username": "ชื่อผู้ใช้",
|
"signup.input.username": "ชื่อผู้ใช้",
|
||||||
"signup.input.username.placeholder": "ชื่อผู้ใช้ของคุณ",
|
"signup.input.username.placeholder": "ชื่อผู้ใช้ของคุณ",
|
||||||
"signup.input.email": "อีเมล์์์์์์์์",
|
"signup.input.email": "อีเมล",
|
||||||
"signup.input.email.placeholder": "อีเมล์์์์์์์์ของคุณ",
|
"signup.input.email.placeholder": "อีเมลของคุณ",
|
||||||
"signup.button.submit": "เริ่มต้นกัน",
|
"signup.button.submit": "เริ่มต้นกัน",
|
||||||
// END /auth/signup
|
// END /auth/signup
|
||||||
// /auth/totp
|
// /auth/totp
|
||||||
@@ -57,7 +57,7 @@ export default {
|
|||||||
// END /auth/totp
|
// END /auth/totp
|
||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "ลืมรหัสผ่าน?",
|
"resetPassword.title": "ลืมรหัสผ่าน?",
|
||||||
"resetPassword.description": "กรุณาใส่อีเมล์์์์์์์ของคุณเพื่อรีเซ็ตรหัสผ่าน",
|
"resetPassword.description": "กรุณาใส่อีเมลของคุณเพื่อรีเซ็ตรหัสผ่าน",
|
||||||
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.",
|
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.",
|
||||||
"resetPassword.button.back": "กลับไปที่หน้าลงชื่อเข้าใช้",
|
"resetPassword.button.back": "กลับไปที่หน้าลงชื่อเข้าใช้",
|
||||||
"resetPassword.text.resetPassword": "รีเซ็ตรหัสผ่าน",
|
"resetPassword.text.resetPassword": "รีเซ็ตรหัสผ่าน",
|
||||||
@@ -68,7 +68,7 @@ export default {
|
|||||||
"account.title": "บัญชีของฉัน",
|
"account.title": "บัญชีของฉัน",
|
||||||
"account.card.info.title": "ข้อมูลบัญชี",
|
"account.card.info.title": "ข้อมูลบัญชี",
|
||||||
"account.card.info.username": "ชื่อผู้ใช้",
|
"account.card.info.username": "ชื่อผู้ใช้",
|
||||||
"account.card.info.email": "อีเมล์์์์์์์",
|
"account.card.info.email": "อีเมล",
|
||||||
"account.notify.info.success": "อัปเดตบัญชีเรียบร้อยแล้ว",
|
"account.notify.info.success": "อัปเดตบัญชีเรียบร้อยแล้ว",
|
||||||
"account.card.password.title": "รหัสผ่าน",
|
"account.card.password.title": "รหัสผ่าน",
|
||||||
"account.card.password.old": "รหัสผ่านเก่า",
|
"account.card.password.old": "รหัสผ่านเก่า",
|
||||||
@@ -181,7 +181,7 @@ export default {
|
|||||||
// /admin/users
|
// /admin/users
|
||||||
"admin.users.title": "การจัดการผู้ใช้",
|
"admin.users.title": "การจัดการผู้ใช้",
|
||||||
"admin.users.table.username": "ชื่อผู้ใช้",
|
"admin.users.table.username": "ชื่อผู้ใช้",
|
||||||
"admin.users.table.email": "อีเมล์์์์์์์",
|
"admin.users.table.email": "อีเมล",
|
||||||
"admin.users.table.admin": "ผู้ดูแลระบบ",
|
"admin.users.table.admin": "ผู้ดูแลระบบ",
|
||||||
"admin.users.edit.update.title": "Edit user: {username}",
|
"admin.users.edit.update.title": "Edit user: {username}",
|
||||||
"admin.users.edit.update.admin-privileges": "สิทธิ์ของผู้ดูแลระบบ",
|
"admin.users.edit.update.admin-privileges": "สิทธิ์ของผู้ดูแลระบบ",
|
||||||
@@ -194,10 +194,10 @@ export default {
|
|||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "สร้างผู้ใช้",
|
"admin.users.modal.create.title": "สร้างผู้ใช้",
|
||||||
"admin.users.modal.create.username": "ชื่อผู้ใช้",
|
"admin.users.modal.create.username": "ชื่อผู้ใช้",
|
||||||
"admin.users.modal.create.email": "อีเมล์",
|
"admin.users.modal.create.email": "อีเมล",
|
||||||
"admin.users.modal.create.password": "รหัสผ่าน",
|
"admin.users.modal.create.password": "รหัสผ่าน",
|
||||||
"admin.users.modal.create.manual-password": "ตั้งรหัสผ่านด้วยตนเอง",
|
"admin.users.modal.create.manual-password": "ตั้งรหัสผ่านด้วยตนเอง",
|
||||||
"admin.users.modal.create.manual-password.description": "หากไม่ติ๊กเลือก ผู้ใช้จะได้รับอีเมล์พร้อมลิงก์เพื่อตั้งรหัสผ่านด้วยตนเอง",
|
"admin.users.modal.create.manual-password.description": "หากไม่ติ๊กเลือก ผู้ใช้จะได้รับอีเมลพร้อมลิงก์เพื่อตั้งรหัสผ่านด้วยตนเอง",
|
||||||
"admin.users.modal.create.admin": "สิทธิ์ของผู้ดูแลระบบ",
|
"admin.users.modal.create.admin": "สิทธิ์ของผู้ดูแลระบบ",
|
||||||
"admin.users.modal.create.admin.description": "หากติ๊กเลือก ผู้ใช้จะสามารถเข้าถึงแผงควบคุมระบบได้",
|
"admin.users.modal.create.admin.description": "หากติ๊กเลือก ผู้ใช้จะสามารถเข้าถึงแผงควบคุมระบบได้",
|
||||||
// END /admin/users
|
// END /admin/users
|
||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "อัปโหลด",
|
"upload.title": "อัปโหลด",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "เกิดข้อผิดพลาดขณะที่กำลังจัดการการแชร์ของคุณ",
|
"upload.notify.generic-error": "เกิดข้อผิดพลาดขณะที่กำลังจัดการการแชร์ของคุณ",
|
||||||
"upload.notify.count-failed": "มีไฟล์จำนวน {count} ไฟล์ที่ไม่สามารถอัปโหลดได้ กำลังลองอีกครั้ง",
|
"upload.notify.count-failed": "มีไฟล์จำนวน {count} ไฟล์ที่ไม่สามารถอัปโหลดได้ กำลังลองอีกครั้ง",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "อัปโหลดไฟล์",
|
"upload.dropzone.title": "อัปโหลดไฟล์",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -247,9 +250,9 @@ export default {
|
|||||||
"upload.modal.accordion.name-and-description.title": "Name and description",
|
"upload.modal.accordion.name-and-description.title": "Name and description",
|
||||||
"upload.modal.accordion.name-and-description.name.placeholder": "Name",
|
"upload.modal.accordion.name-and-description.name.placeholder": "Name",
|
||||||
"upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share",
|
"upload.modal.accordion.name-and-description.description.placeholder": "Note for the recipients of this share",
|
||||||
"upload.modal.accordion.email.title": "ผู้รับอีเมล์",
|
"upload.modal.accordion.email.title": "ผู้รับอีเมล",
|
||||||
"upload.modal.accordion.email.placeholder": "ป้อนผู้รับอีเมล์",
|
"upload.modal.accordion.email.placeholder": "ป้อนผู้รับอีเมล",
|
||||||
"upload.modal.accordion.email.invalid-email": "ที่อยู่อีเมล์ไม่ถูกต้อง",
|
"upload.modal.accordion.email.invalid-email": "ที่อยู่อีเมลไม่ถูกต้อง",
|
||||||
"upload.modal.accordion.security.title": "ตัวเลือกความปลอดภัย",
|
"upload.modal.accordion.security.title": "ตัวเลือกความปลอดภัย",
|
||||||
"upload.modal.accordion.security.password.label": "การป้องกันรหัสผ่าน",
|
"upload.modal.accordion.security.password.label": "การป้องกันรหัสผ่าน",
|
||||||
"upload.modal.accordion.security.password.placeholder": "ไม่มีรหัสผ่าน",
|
"upload.modal.accordion.security.password.placeholder": "ไม่มีรหัสผ่าน",
|
||||||
@@ -293,13 +296,15 @@ export default {
|
|||||||
"admin.config.title": "การตั้งค่า",
|
"admin.config.title": "การตั้งค่า",
|
||||||
"admin.config.category.general": "ทั่วไป",
|
"admin.config.category.general": "ทั่วไป",
|
||||||
"admin.config.category.share": "การแชร์",
|
"admin.config.category.share": "การแชร์",
|
||||||
"admin.config.category.email": "อีเมล์์์์์์",
|
"admin.config.category.email": "อีเมล",
|
||||||
"admin.config.category.smtp": "SMTP",
|
"admin.config.category.smtp": "SMTP",
|
||||||
"admin.config.category.oauth": "Social Login",
|
"admin.config.category.oauth": "Social Login",
|
||||||
"admin.config.general.app-name": "ชื่อแอพ",
|
"admin.config.general.app-name": "ชื่อแอพ",
|
||||||
"admin.config.general.app-name.description": "ชื่อแอพพลิเคชัน",
|
"admin.config.general.app-name.description": "ชื่อแอพพลิเคชัน",
|
||||||
"admin.config.general.app-url": "URL ของแอพ",
|
"admin.config.general.app-url": "URL ของแอพ",
|
||||||
"admin.config.general.app-url.description": "URL ที่สามารถเข้าถึงแอพพลิเคชัน Pingvin Share ได้",
|
"admin.config.general.app-url.description": "URL ที่สามารถเข้าถึงแอพพลิเคชัน Pingvin Share ได้",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "แสดงหน้าแรก",
|
"admin.config.general.show-home-page": "แสดงหน้าแรก",
|
||||||
"admin.config.general.show-home-page.description": "หากติ๊ก เว็บไซต์จะแสดงหน้าหลักเวลาเข้าถึง URL หลัก",
|
"admin.config.general.show-home-page.description": "หากติ๊ก เว็บไซต์จะแสดงหน้าหลักเวลาเข้าถึง URL หลัก",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -309,10 +314,10 @@ export default {
|
|||||||
"admin.config.general.logo.placeholder": "คลิกที่นี่หรือลากไฟล์มา",
|
"admin.config.general.logo.placeholder": "คลิกที่นี่หรือลากไฟล์มา",
|
||||||
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
|
"admin.config.email.enable-share-email-recipients": "Enable email recipient sharing",
|
||||||
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
|
"admin.config.email.enable-share-email-recipients.description": "Whether to allow email sharing with recipients. Only enable this if SMTP is activated.",
|
||||||
"admin.config.email.share-recipients-subject": "หัวเรื่องผู้รับอีเมล์์์์์์ของการแชร์",
|
"admin.config.email.share-recipients-subject": "หัวเรื่องผู้รับอีเมลของการแชร์",
|
||||||
"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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "หัวเรื่องการแชร์รีเวิร์ส",
|
"admin.config.email.reverse-share-subject": "หัวเรื่องการแชร์รีเวิร์ส",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "ข้อความการแชร์รีเวิร์ส",
|
"admin.config.email.reverse-share-message": "ข้อความการแชร์รีเวิร์ส",
|
||||||
@@ -340,12 +345,12 @@ export default {
|
|||||||
"admin.config.share.auto-open-share-modal": "Auto open create share modal",
|
"admin.config.share.auto-open-share-modal": "Auto open create share modal",
|
||||||
"admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
|
"admin.config.share.auto-open-share-modal.description": "The share creation modal automatically appears when a user selects files, eliminating the need to manually click the button.",
|
||||||
"admin.config.smtp.enabled": "Enable",
|
"admin.config.smtp.enabled": "Enable",
|
||||||
"admin.config.smtp.enabled.description": "เปิดใช้งาน SMTP สำหรับการส่งอีเมล์์์์์์ เปิดได้เท่านั้นต่อเมื่อคุณใส่ข้อมูลโฮสต์ พอร์ต อีเมล์ ผู้ใช้ และรหัสผ่านของเซิร์ฟเวอร์ SMTP ของคุณ",
|
"admin.config.smtp.enabled.description": "เปิดใช้งาน SMTP สำหรับการส่งอีเมล เปิดได้เท่านั้นต่อเมื่อคุณใส่ข้อมูลโฮสต์ พอร์ต อีเมล ผู้ใช้ และรหัสผ่านของเซิร์ฟเวอร์ SMTP ของค",
|
||||||
"admin.config.smtp.host": "โฮสต์",
|
"admin.config.smtp.host": "โฮสต์",
|
||||||
"admin.config.smtp.host.description": "โฮสต์ของเซิร์ฟเวอร์ SMTP",
|
"admin.config.smtp.host.description": "โฮสต์ของเซิร์ฟเวอร์ SMTP",
|
||||||
"admin.config.smtp.port": "พอร์ต",
|
"admin.config.smtp.port": "พอร์ต",
|
||||||
"admin.config.smtp.port.description": "พอร์ตของเซิร์ฟเวอร์ SMTP",
|
"admin.config.smtp.port.description": "พอร์ตของเซิร์ฟเวอร์ SMTP",
|
||||||
"admin.config.smtp.email": "อีเมล์์์์์์์",
|
"admin.config.smtp.email": "อีเมล",
|
||||||
"admin.config.smtp.email.description": "Email address from wich the emails get sent",
|
"admin.config.smtp.email.description": "Email address from wich the emails get sent",
|
||||||
"admin.config.smtp.username": "ชื่อผู้ใช้",
|
"admin.config.smtp.username": "ชื่อผู้ใช้",
|
||||||
"admin.config.smtp.username.description": "ชื่อผู้ใช้ของเซิร์ฟเวอร์ SMTP",
|
"admin.config.smtp.username.description": "ชื่อผู้ใช้ของเซิร์ฟเวอร์ SMTP",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Yükle",
|
"upload.title": "Yükle",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Paylaşımını bitirirken bir hata meydana geldi.",
|
"upload.notify.generic-error": "Paylaşımını bitirirken bir hata meydana geldi.",
|
||||||
"upload.notify.count-failed": "{count} dosya yüklenemedi. Yeniden deneniyor.",
|
"upload.notify.count-failed": "{count} dosya yüklenemedi. Yeniden deneniyor.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Dosya yükle",
|
"upload.dropzone.title": "Dosya yükle",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Uygulamanın adı",
|
"admin.config.general.app-name.description": "Uygulamanın adı",
|
||||||
"admin.config.general.app-url": "Uygulama URL'si",
|
"admin.config.general.app-url": "Uygulama URL'si",
|
||||||
"admin.config.general.app-url.description": "Pingvin Share'in hangi bağlantıda kullanılacağı",
|
"admin.config.general.app-url.description": "Pingvin Share'in hangi bağlantıda kullanılacağı",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Ana sayfayı göster",
|
"admin.config.general.show-home-page": "Ana sayfayı göster",
|
||||||
"admin.config.general.show-home-page.description": "Ana sayfanın görünürlüğü",
|
"admin.config.general.show-home-page.description": "Ana sayfanın görünürlüğü",
|
||||||
"admin.config.general.session-duration": "Oturum Süresi",
|
"admin.config.general.session-duration": "Oturum Süresi",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Paylaşım alıcılarının konusu",
|
"admin.config.email.share-recipients-subject": "Paylaşım alıcılarının konusu",
|
||||||
"admin.config.email.share-recipients-subject.description": "Paylaşım alıcılarına gönderilecek e-postanın konusu.",
|
"admin.config.email.share-recipients-subject.description": "Paylaşım alıcılarına gönderilecek e-postanın konusu.",
|
||||||
"admin.config.email.share-recipients-message": "Paylaşım alıcılarının mesajı",
|
"admin.config.email.share-recipients-message": "Paylaşım alıcılarının mesajı",
|
||||||
"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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Tersine paylaşım konusu",
|
"admin.config.email.reverse-share-subject": "Tersine paylaşım konusu",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Tersine paylaşım mesajı",
|
"admin.config.email.reverse-share-message": "Tersine paylaşım mesajı",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export default {
|
|||||||
"navbar.upload": "Завантажити",
|
"navbar.upload": "Завантажити",
|
||||||
"navbar.signin": "Вхід",
|
"navbar.signin": "Вхід",
|
||||||
"navbar.home": "Головна",
|
"navbar.home": "Головна",
|
||||||
"navbar.signup": "Sign up",
|
"navbar.signup": "Реєстрація",
|
||||||
"navbar.links.shares": "Мої завантаження",
|
"navbar.links.shares": "Мої завантаження",
|
||||||
"navbar.links.reverse": "Зворотні завантаження",
|
"navbar.links.reverse": "Зворотні завантаження",
|
||||||
"navbar.avatar.account": "Мій аккаунт",
|
"navbar.avatar.account": "Мій аккаунт",
|
||||||
@@ -16,9 +16,9 @@ export default {
|
|||||||
"home.bullet.a.name": "На власному сервері",
|
"home.bullet.a.name": "На власному сервері",
|
||||||
"home.bullet.a.description": "Pingvin Share працює на вашій машині.",
|
"home.bullet.a.description": "Pingvin Share працює на вашій машині.",
|
||||||
"home.bullet.b.name": "Конфіденційність",
|
"home.bullet.b.name": "Конфіденційність",
|
||||||
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.",
|
"home.bullet.b.description": "Ваші файли є вашими, і вони ніколи не будуть доступні третім особам.",
|
||||||
"home.bullet.c.name": "Без дратівливого обмеження розміру файлу",
|
"home.bullet.c.name": "Без дратівливого обмеження розміру файлу",
|
||||||
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.",
|
"home.bullet.c.description": "Завантажуйте файли будь-якого розміру. Лише жорсткий диск буде вашим обмеженням.",
|
||||||
"home.button.start": "Почнемо",
|
"home.button.start": "Почнемо",
|
||||||
"home.button.source": "Вихідний код",
|
"home.button.source": "Вихідний код",
|
||||||
// END /
|
// END /
|
||||||
@@ -34,7 +34,7 @@ export default {
|
|||||||
"signIn.notify.totp-required.title": "Потрібна двофакторна аутентифікація",
|
"signIn.notify.totp-required.title": "Потрібна двофакторна аутентифікація",
|
||||||
"signIn.notify.totp-required.description": "Будь ласка, введіть код Вашої 2-х факторної аутентифікації",
|
"signIn.notify.totp-required.description": "Будь ласка, введіть код Вашої 2-х факторної аутентифікації",
|
||||||
"signIn.oauth.or": "АБО",
|
"signIn.oauth.or": "АБО",
|
||||||
"signIn.oauth.signInWith": "Sign in with",
|
"signIn.oauth.signInWith": "Увійти з",
|
||||||
"signIn.oauth.github": "GitHub",
|
"signIn.oauth.github": "GitHub",
|
||||||
"signIn.oauth.google": "Google",
|
"signIn.oauth.google": "Google",
|
||||||
"signIn.oauth.microsoft": "Microsoft",
|
"signIn.oauth.microsoft": "Microsoft",
|
||||||
@@ -58,12 +58,12 @@ export default {
|
|||||||
// /auth/reset-password
|
// /auth/reset-password
|
||||||
"resetPassword.title": "Забули пароль?",
|
"resetPassword.title": "Забули пароль?",
|
||||||
"resetPassword.description": "Введіть ваш email для відновлення пароля.",
|
"resetPassword.description": "Введіть ваш email для відновлення пароля.",
|
||||||
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.",
|
"resetPassword.notify.success": "Повідомлення з посиланням для скидання пароля було надіслано, якщо вказана електронна пошта існує.",
|
||||||
"resetPassword.button.back": "Повернутися на сторінку входу",
|
"resetPassword.button.back": "Повернутися на сторінку входу",
|
||||||
"resetPassword.text.resetPassword": "Скинути пароль",
|
"resetPassword.text.resetPassword": "Скинути пароль",
|
||||||
"resetPassword.text.enterNewPassword": "Введіть новий пароль",
|
"resetPassword.text.enterNewPassword": "Введіть новий пароль",
|
||||||
"resetPassword.input.password": "Новий пароль",
|
"resetPassword.input.password": "Новий пароль",
|
||||||
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
|
"resetPassword.notify.passwordReset": "Ваш пароль успішно скинуто.",
|
||||||
// /account
|
// /account
|
||||||
"account.title": "Мій акаунт",
|
"account.title": "Мій акаунт",
|
||||||
"account.card.info.title": "Інформація про акаунт",
|
"account.card.info.title": "Інформація про акаунт",
|
||||||
@@ -73,9 +73,9 @@ 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 do not have a password set. To sign in using your email and password, you need to create a password.",
|
"account.card.password.noPasswordSet": "У вас не встановлено пароль. Щоб увійти за допомогою електронної пошти та пароля, потрібно створити пароль.",
|
||||||
"account.notify.password.success": "Пароль успішно змінено",
|
"account.notify.password.success": "Пароль успішно змінено",
|
||||||
"account.card.oauth.title": "Авторизація через соціальні мережі",
|
"account.card.oauth.title": "Вхід через соцмережі",
|
||||||
"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",
|
||||||
@@ -85,7 +85,7 @@ export default {
|
|||||||
"account.card.oauth.unlink": "Відключити",
|
"account.card.oauth.unlink": "Відключити",
|
||||||
"account.card.oauth.unlinked": "Відключено",
|
"account.card.oauth.unlinked": "Відключено",
|
||||||
"account.modal.unlink.title": "Відключити зв'язок з обліковим записом",
|
"account.modal.unlink.title": "Відключити зв'язок з обліковим записом",
|
||||||
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials",
|
"account.modal.unlink.description": "Відв'язка ваших соціальних акаунтів може призвести до втрати доступу до акаунту, якщо ви не пам'ятаєте свої облікові дані для входу",
|
||||||
"account.notify.oauth.unlinked.success": "Відключення пройшло успішно",
|
"account.notify.oauth.unlinked.success": "Відключення пройшло успішно",
|
||||||
"account.card.security.title": "Безпека",
|
"account.card.security.title": "Безпека",
|
||||||
"account.card.security.totp.enable.description": "Введіть ваш поточний пароль для початку увімкнення TOTP",
|
"account.card.security.totp.enable.description": "Введіть ваш поточний пароль для початку увімкнення TOTP",
|
||||||
@@ -121,12 +121,12 @@ export default {
|
|||||||
"account.shares.table.name": "Назва",
|
"account.shares.table.name": "Назва",
|
||||||
"account.shares.table.description": "Опис",
|
"account.shares.table.description": "Опис",
|
||||||
"account.shares.table.visitors": "Відвідувачів",
|
"account.shares.table.visitors": "Відвідувачів",
|
||||||
"account.shares.table.expiresAt": "Expires on",
|
"account.shares.table.expiresAt": "Діє до",
|
||||||
"account.shares.table.createdAt": "Created on",
|
"account.shares.table.createdAt": "Створено",
|
||||||
"account.shares.table.size": "Розмір",
|
"account.shares.table.size": "Розмір",
|
||||||
"account.shares.modal.share-informations": "Відомості",
|
"account.shares.modal.share-informations": "Відомості",
|
||||||
"account.shares.modal.share-link": "Поділитися посиланням",
|
"account.shares.modal.share-link": "Поділитися посиланням",
|
||||||
"account.shares.modal.delete.title": "Delete share: {share}",
|
"account.shares.modal.delete.title": "Видалити завантаження: {share}",
|
||||||
"account.shares.modal.delete.description": "Ви дійсно хочете видалити це завантаження?",
|
"account.shares.modal.delete.description": "Ви дійсно хочете видалити це завантаження?",
|
||||||
// END /account/shares
|
// END /account/shares
|
||||||
// /account/reverseShares
|
// /account/reverseShares
|
||||||
@@ -150,12 +150,12 @@ export default {
|
|||||||
"account.reverseShares.modal.expiration.year-singular": "Рік",
|
"account.reverseShares.modal.expiration.year-singular": "Рік",
|
||||||
"account.reverseShares.modal.expiration.year-plural": "Роки (роки)",
|
"account.reverseShares.modal.expiration.year-plural": "Роки (роки)",
|
||||||
"account.reverseShares.modal.max-size.label": "Макс. розмір завантаження",
|
"account.reverseShares.modal.max-size.label": "Макс. розмір завантаження",
|
||||||
"account.reverseShares.modal.send-email": "Send email notifications",
|
"account.reverseShares.modal.send-email": "Надсилати сповіщення ел. поштою",
|
||||||
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
|
"account.reverseShares.modal.send-email.description": "Надсилає вам сповіщення на ел. пошту, коли створюється спільний доступ за цим зворотнім посиланням.",
|
||||||
"account.reverseShares.modal.simplified": "Simple mode",
|
"account.reverseShares.modal.simplified": "Простий режим",
|
||||||
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
|
"account.reverseShares.modal.simplified.description": "Полегште людині, яка завантажує файл, поділитися ним з вами. Вони зможуть лише налаштувати назву та опис спільного доступу.",
|
||||||
"account.reverseShares.modal.public-access": "Public access",
|
"account.reverseShares.modal.public-access": "Публічний доступ",
|
||||||
"account.reverseShares.modal.public-access.description": "Make the shares created with this reverse share public. If disabled, only you and the share creator will have access to view it.",
|
"account.reverseShares.modal.public-access.description": "Зробіть процес завантаження файлу легшим для користувача, який буде з вами ділитися. Вони зможуть налаштувати лише назву та опис спільного доступу.",
|
||||||
"account.reverseShares.modal.max-use.label": "Максимум використань",
|
"account.reverseShares.modal.max-use.label": "Максимум використань",
|
||||||
"account.reverseShares.modal.max-use.description": "Максимальна кількість разів, коли URL може бути використаний для створення завантаження.",
|
"account.reverseShares.modal.max-use.description": "Максимальна кількість разів, коли URL може бути використаний для створення завантаження.",
|
||||||
"account.reverseShare.never-expires": "Це зворотне завантаження ніколи не застаріє.",
|
"account.reverseShare.never-expires": "Це зворотне завантаження ніколи не застаріє.",
|
||||||
@@ -174,7 +174,7 @@ export default {
|
|||||||
// /admin
|
// /admin
|
||||||
"admin.title": "Адміністрування",
|
"admin.title": "Адміністрування",
|
||||||
"admin.button.users": "Управління користувачами",
|
"admin.button.users": "Управління користувачами",
|
||||||
"admin.button.shares": "Share management",
|
"admin.button.shares": "Управління поширенням",
|
||||||
"admin.button.config": "Конфігурація",
|
"admin.button.config": "Конфігурація",
|
||||||
"admin.version": "Версія",
|
"admin.version": "Версія",
|
||||||
// END /admin
|
// END /admin
|
||||||
@@ -183,14 +183,14 @@ export default {
|
|||||||
"admin.users.table.username": "Логін",
|
"admin.users.table.username": "Логін",
|
||||||
"admin.users.table.email": "Електронна пошта",
|
"admin.users.table.email": "Електронна пошта",
|
||||||
"admin.users.table.admin": "Адміністратор",
|
"admin.users.table.admin": "Адміністратор",
|
||||||
"admin.users.edit.update.title": "Edit user: {username}",
|
"admin.users.edit.update.title": "Редагувати користувача: {username}",
|
||||||
"admin.users.edit.update.admin-privileges": "Права адміністратора",
|
"admin.users.edit.update.admin-privileges": "Права адміністратора",
|
||||||
"admin.users.edit.update.change-password.title": "Змінити пароль",
|
"admin.users.edit.update.change-password.title": "Змінити пароль",
|
||||||
"admin.users.edit.update.change-password.field": "Новий пароль",
|
"admin.users.edit.update.change-password.field": "Новий пароль",
|
||||||
"admin.users.edit.update.change-password.button": "Зберегти новий пароль",
|
"admin.users.edit.update.change-password.button": "Зберегти новий пароль",
|
||||||
"admin.users.edit.update.notify.password.success": "Пароль успішно змінено",
|
"admin.users.edit.update.notify.password.success": "Пароль успішно змінено",
|
||||||
"admin.users.edit.delete.title": "Delete user: {username} ?",
|
"admin.users.edit.delete.title": "Видалити користувача: {username}?",
|
||||||
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
|
"admin.users.edit.delete.description": "Ви дійсно хочете видалити цього користувача та всі його поширення?",
|
||||||
// showCreateUserModal.tsx
|
// showCreateUserModal.tsx
|
||||||
"admin.users.modal.create.title": "Створити користувача",
|
"admin.users.modal.create.title": "Створити користувача",
|
||||||
"admin.users.modal.create.username": "Логін",
|
"admin.users.modal.create.username": "Логін",
|
||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Завантажити",
|
"upload.title": "Завантажити",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "Сталася помилка під час завершення вашого завантаження.",
|
"upload.notify.generic-error": "Сталася помилка під час завершення вашого завантаження.",
|
||||||
"upload.notify.count-failed": "Не вдалося завантажити файли {count}. Повтор спроби.",
|
"upload.notify.count-failed": "Не вдалося завантажити файли {count}. Повтор спроби.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Завантажити файли",
|
"upload.dropzone.title": "Завантажити файли",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Видима назва додатка",
|
"admin.config.general.app-name.description": "Видима назва додатка",
|
||||||
"admin.config.general.app-url": "URL-адреса програми",
|
"admin.config.general.app-url": "URL-адреса програми",
|
||||||
"admin.config.general.app-url.description": "Адреса, на якій доступний Pingvin Share",
|
"admin.config.general.app-url.description": "Адреса, на якій доступний Pingvin Share",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Показувати домашню сторінку",
|
"admin.config.general.show-home-page": "Показувати домашню сторінку",
|
||||||
"admin.config.general.show-home-page.description": "Показувати домашню сторінку чи ні",
|
"admin.config.general.show-home-page.description": "Показувати домашню сторінку чи ні",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Заголовок листа (зворотне завантаження)",
|
"admin.config.email.reverse-share-subject": "Заголовок листа (зворотне завантаження)",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "Повідомлення листа зворотного завантаження",
|
"admin.config.email.reverse-share-message": "Повідомлення листа зворотного завантаження",
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "Tải lên",
|
"upload.title": "Tải lên",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "An error occurred while finishing your share.",
|
"upload.notify.generic-error": "An error occurred while finishing your share.",
|
||||||
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
"upload.notify.count-failed": "{count} files failed to upload. Trying again.",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "Upload files",
|
"upload.dropzone.title": "Upload files",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "Name of the application",
|
"admin.config.general.app-name.description": "Name of the application",
|
||||||
"admin.config.general.app-url": "URL ứng dụng",
|
"admin.config.general.app-url": "URL ứng dụng",
|
||||||
"admin.config.general.app-url.description": "On which URL Pingvin Share is available",
|
"admin.config.general.app-url.description": "On which URL Pingvin Share is available",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "Show 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.show-home-page.description": "Whether to show the home page",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "Share recipients subject",
|
"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-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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
"admin.config.email.reverse-share-subject": "Reverse share subject",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email 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": "Reverse share message",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ export default {
|
|||||||
"navbar.upload": "上传",
|
"navbar.upload": "上传",
|
||||||
"navbar.signin": "登录",
|
"navbar.signin": "登录",
|
||||||
"navbar.home": "首页",
|
"navbar.home": "首页",
|
||||||
"navbar.signup": "Sign up",
|
"navbar.signup": "注册",
|
||||||
"navbar.links.shares": "我的共享",
|
"navbar.links.shares": "我的共享",
|
||||||
"navbar.links.reverse": "预留共享",
|
"navbar.links.reverse": "预留共享",
|
||||||
"navbar.avatar.account": "我的账户",
|
"navbar.avatar.account": "我的账户",
|
||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "上传",
|
"upload.title": "上传",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "创建共享的过程中发生了错误",
|
"upload.notify.generic-error": "创建共享的过程中发生了错误",
|
||||||
"upload.notify.count-failed": "{count} 文件上传失败,请重试",
|
"upload.notify.count-failed": "{count} 文件上传失败,请重试",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "上传文件",
|
"upload.dropzone.title": "上传文件",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "自定义 App 的名称",
|
"admin.config.general.app-name.description": "自定义 App 的名称",
|
||||||
"admin.config.general.app-url": "App 的地址",
|
"admin.config.general.app-url": "App 的地址",
|
||||||
"admin.config.general.app-url.description": "Pingvin Share 的 URL 地址",
|
"admin.config.general.app-url.description": "Pingvin Share 的 URL 地址",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "显示首页",
|
"admin.config.general.show-home-page": "显示首页",
|
||||||
"admin.config.general.show-home-page.description": "是否显示首页",
|
"admin.config.general.show-home-page.description": "是否显示首页",
|
||||||
"admin.config.general.session-duration": "会话时长",
|
"admin.config.general.session-duration": "会话时长",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"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": "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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "预留共享邮件通知主题",
|
"admin.config.email.reverse-share-subject": "预留共享邮件通知主题",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "预留共享邮件通知内容",
|
"admin.config.email.reverse-share-message": "预留共享邮件通知内容",
|
||||||
@@ -475,7 +480,7 @@ export default {
|
|||||||
"common.error.too-short": "必须不少于 {length} 个字符",
|
"common.error.too-short": "必须不少于 {length} 个字符",
|
||||||
"common.error.too-long": "必须不超过 {length} 个字符",
|
"common.error.too-long": "必须不超过 {length} 个字符",
|
||||||
"common.error.number-too-small": "Must be at least {min}",
|
"common.error.number-too-small": "Must be at least {min}",
|
||||||
"common.error.number-too-large": "Must be at most {max}",
|
"common.error.number-too-large": "必须至多为 {max}",
|
||||||
"common.error.exact-length": "必须为 {length} 个字符",
|
"common.error.exact-length": "必须为 {length} 个字符",
|
||||||
"common.error.invalid-number": "必须为数字",
|
"common.error.invalid-number": "必须为数字",
|
||||||
"common.error.field-required": "必填项"
|
"common.error.field-required": "必填项"
|
||||||
|
|||||||
@@ -212,8 +212,11 @@ export default {
|
|||||||
// END /admin/shares
|
// END /admin/shares
|
||||||
// /upload
|
// /upload
|
||||||
"upload.title": "上傳",
|
"upload.title": "上傳",
|
||||||
|
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
|
||||||
"upload.notify.generic-error": "建立分享的過程中發生了錯誤",
|
"upload.notify.generic-error": "建立分享的過程中發生了錯誤",
|
||||||
"upload.notify.count-failed": "{count} 檔案上傳失敗,請重試",
|
"upload.notify.count-failed": "{count} 檔案上傳失敗,請重試",
|
||||||
|
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
|
||||||
|
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
|
||||||
// Dropzone.tsx
|
// Dropzone.tsx
|
||||||
"upload.dropzone.title": "上傳檔案",
|
"upload.dropzone.title": "上傳檔案",
|
||||||
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
"upload.dropzone.description": "Drag'n'drop files here to start your share. We only accept files up to {maxSize} in total.",
|
||||||
@@ -300,6 +303,8 @@ export default {
|
|||||||
"admin.config.general.app-name.description": "這個 App 的名稱",
|
"admin.config.general.app-name.description": "這個 App 的名稱",
|
||||||
"admin.config.general.app-url": "App URL",
|
"admin.config.general.app-url": "App URL",
|
||||||
"admin.config.general.app-url.description": "Pingvin Share 的 URL",
|
"admin.config.general.app-url.description": "Pingvin Share 的 URL",
|
||||||
|
"admin.config.general.secure-cookies": "Secure cookies",
|
||||||
|
"admin.config.general.secure-cookies.description": "Whether to set the secure flag on cookies. If enabled, the site will not function when accessed over HTTP.",
|
||||||
"admin.config.general.show-home-page": "顯示首頁",
|
"admin.config.general.show-home-page": "顯示首頁",
|
||||||
"admin.config.general.show-home-page.description": "是否顯示首頁",
|
"admin.config.general.show-home-page.description": "是否顯示首頁",
|
||||||
"admin.config.general.session-duration": "Session Duration",
|
"admin.config.general.session-duration": "Session Duration",
|
||||||
@@ -312,7 +317,7 @@ export default {
|
|||||||
"admin.config.email.share-recipients-subject": "分享Email通知主題",
|
"admin.config.email.share-recipients-subject": "分享Email通知主題",
|
||||||
"admin.config.email.share-recipients-subject.description": "發送分享Email通知的主題",
|
"admin.config.email.share-recipients-subject.description": "發送分享Email通知的主題",
|
||||||
"admin.config.email.share-recipients-message": "分享Email通知內容",
|
"admin.config.email.share-recipients-message": "分享Email通知內容",
|
||||||
"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 These variables will be replaced with the actual value.",
|
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {creatorEmail} - The email of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
|
||||||
"admin.config.email.reverse-share-subject": "檔案請求Email通知主題",
|
"admin.config.email.reverse-share-subject": "檔案請求Email通知主題",
|
||||||
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
"admin.config.email.reverse-share-subject.description": "Subject of the sent email when someone created a share with your reverse share link.",
|
||||||
"admin.config.email.reverse-share-message": "檔案請求Email通知內容",
|
"admin.config.email.reverse-share-message": "檔案請求Email通知內容",
|
||||||
|
|||||||
@@ -279,10 +279,7 @@ const Account = () => {
|
|||||||
) : (
|
) : (
|
||||||
<Button
|
<Button
|
||||||
component="a"
|
component="a"
|
||||||
href={getOAuthUrl(
|
href={getOAuthUrl(window.location.origin, provider)}
|
||||||
config.get("general.appUrl"),
|
|
||||||
provider,
|
|
||||||
)}
|
|
||||||
>
|
>
|
||||||
{t("account.card.oauth.link")}
|
{t("account.card.oauth.link")}
|
||||||
</Button>
|
</Button>
|
||||||
@@ -414,8 +411,10 @@ const Account = () => {
|
|||||||
},
|
},
|
||||||
confirmProps: { color: "red" },
|
confirmProps: { color: "red" },
|
||||||
onConfirm: async () => {
|
onConfirm: async () => {
|
||||||
await userService.removeCurrentUser();
|
await userService
|
||||||
window.location.reload();
|
.removeCurrentUser()
|
||||||
|
.then(window.location.reload)
|
||||||
|
.catch(toast.axiosError);
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,8 +37,6 @@ const MyShares = () => {
|
|||||||
|
|
||||||
const config = useConfig();
|
const config = useConfig();
|
||||||
|
|
||||||
const appUrl = config.get("general.appUrl");
|
|
||||||
|
|
||||||
const [reverseShares, setReverseShares] = useState<MyReverseShare[]>();
|
const [reverseShares, setReverseShares] = useState<MyReverseShare[]>();
|
||||||
|
|
||||||
const getReverseShares = () => {
|
const getReverseShares = () => {
|
||||||
@@ -146,7 +144,7 @@ const MyShares = () => {
|
|||||||
{reverseShare.shares.map((share) => (
|
{reverseShare.shares.map((share) => (
|
||||||
<Group key={share.id} mb={4}>
|
<Group key={share.id} mb={4}>
|
||||||
<Anchor
|
<Anchor
|
||||||
href={`${appUrl}/share/${share.id}`}
|
href={`${window.location.origin}/share/${share.id}`}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
<Text maw={120} truncate>
|
<Text maw={120} truncate>
|
||||||
@@ -159,14 +157,12 @@ const MyShares = () => {
|
|||||||
size={25}
|
size={25}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (window.isSecureContext) {
|
if (window.isSecureContext) {
|
||||||
clipboard.copy(`${appUrl}/s/${share.id}`);
|
clipboard.copy(
|
||||||
|
`${window.location.origin}/s/${share.id}`,
|
||||||
|
);
|
||||||
toast.success(t("common.notify.copied"));
|
toast.success(t("common.notify.copied"));
|
||||||
} else {
|
} else {
|
||||||
showShareLinkModal(
|
showShareLinkModal(modals, share.id);
|
||||||
modals,
|
|
||||||
share.id,
|
|
||||||
config.get("general.appUrl"),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -197,7 +193,7 @@ const MyShares = () => {
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (window.isSecureContext) {
|
if (window.isSecureContext) {
|
||||||
clipboard.copy(
|
clipboard.copy(
|
||||||
`${config.get("general.appUrl")}/upload/${
|
`${window.location.origin}/upload/${
|
||||||
reverseShare.token
|
reverseShare.token
|
||||||
}`,
|
}`,
|
||||||
);
|
);
|
||||||
@@ -206,7 +202,6 @@ const MyShares = () => {
|
|||||||
showReverseShareLinkModal(
|
showReverseShareLinkModal(
|
||||||
modals,
|
modals,
|
||||||
reverseShare.token,
|
reverseShare.token,
|
||||||
config.get("general.appUrl"),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import {
|
|||||||
Button,
|
Button,
|
||||||
Center,
|
Center,
|
||||||
Group,
|
Group,
|
||||||
MediaQuery,
|
|
||||||
Space,
|
Space,
|
||||||
Stack,
|
Stack,
|
||||||
Table,
|
Table,
|
||||||
@@ -109,7 +108,6 @@ const MyShares = () => {
|
|||||||
showShareInformationsModal(
|
showShareInformationsModal(
|
||||||
modals,
|
modals,
|
||||||
share,
|
share,
|
||||||
config.get("general.appUrl"),
|
|
||||||
parseInt(config.get("share.maxSize")),
|
parseInt(config.get("share.maxSize")),
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
@@ -123,15 +121,11 @@ const MyShares = () => {
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (window.isSecureContext) {
|
if (window.isSecureContext) {
|
||||||
clipboard.copy(
|
clipboard.copy(
|
||||||
`${config.get("general.appUrl")}/s/${share.id}`,
|
`${window.location.origin}/s/${share.id}`,
|
||||||
);
|
);
|
||||||
toast.success(t("common.notify.copied"));
|
toast.success(t("common.notify.copied"));
|
||||||
} else {
|
} else {
|
||||||
showShareLinkModal(
|
showShareLinkModal(modals, share.id);
|
||||||
modals,
|
|
||||||
share.id,
|
|
||||||
config.get("general.appUrl"),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -2,12 +2,13 @@ import { LoadingOverlay } from "@mantine/core";
|
|||||||
import { useModals } from "@mantine/modals";
|
import { useModals } from "@mantine/modals";
|
||||||
import { GetServerSidePropsContext } from "next";
|
import { GetServerSidePropsContext } from "next";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
|
import Meta from "../../../components/Meta";
|
||||||
import showErrorModal from "../../../components/share/showErrorModal";
|
import showErrorModal from "../../../components/share/showErrorModal";
|
||||||
|
import EditableUpload from "../../../components/upload/EditableUpload";
|
||||||
|
import useConfirmLeave from "../../../hooks/confirm-leave.hook";
|
||||||
|
import useTranslate from "../../../hooks/useTranslate.hook";
|
||||||
import shareService from "../../../services/share.service";
|
import shareService from "../../../services/share.service";
|
||||||
import { Share as ShareType } from "../../../types/share.type";
|
import { Share as ShareType } from "../../../types/share.type";
|
||||||
import useTranslate from "../../../hooks/useTranslate.hook";
|
|
||||||
import EditableUpload from "../../../components/upload/EditableUpload";
|
|
||||||
import Meta from "../../../components/Meta";
|
|
||||||
|
|
||||||
export function getServerSideProps(context: GetServerSidePropsContext) {
|
export function getServerSideProps(context: GetServerSidePropsContext) {
|
||||||
return {
|
return {
|
||||||
@@ -18,9 +19,15 @@ export function getServerSideProps(context: GetServerSidePropsContext) {
|
|||||||
const Share = ({ shareId }: { shareId: string }) => {
|
const Share = ({ shareId }: { shareId: string }) => {
|
||||||
const t = useTranslate();
|
const t = useTranslate();
|
||||||
const modals = useModals();
|
const modals = useModals();
|
||||||
|
|
||||||
const [isLoading, setIsLoading] = useState(true);
|
const [isLoading, setIsLoading] = useState(true);
|
||||||
const [share, setShare] = useState<ShareType>();
|
const [share, setShare] = useState<ShareType>();
|
||||||
|
|
||||||
|
useConfirmLeave({
|
||||||
|
message: t("upload.notify.confirm-leave"),
|
||||||
|
enabled: isLoading,
|
||||||
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
shareService
|
shareService
|
||||||
.getFromOwner(shareId)
|
.getFromOwner(shareId)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { useEffect, useState } from "react";
|
|||||||
import Upload from ".";
|
import Upload from ".";
|
||||||
import showErrorModal from "../../components/share/showErrorModal";
|
import showErrorModal from "../../components/share/showErrorModal";
|
||||||
import shareService from "../../services/share.service";
|
import shareService from "../../services/share.service";
|
||||||
|
import useTranslate from "../../hooks/useTranslate.hook";
|
||||||
|
|
||||||
export function getServerSideProps(context: GetServerSidePropsContext) {
|
export function getServerSideProps(context: GetServerSidePropsContext) {
|
||||||
return {
|
return {
|
||||||
@@ -14,6 +15,7 @@ export function getServerSideProps(context: GetServerSidePropsContext) {
|
|||||||
|
|
||||||
const Share = ({ reverseShareToken }: { reverseShareToken: string }) => {
|
const Share = ({ reverseShareToken }: { reverseShareToken: string }) => {
|
||||||
const modals = useModals();
|
const modals = useModals();
|
||||||
|
const t = useTranslate();
|
||||||
const [isLoading, setIsLoading] = useState(true);
|
const [isLoading, setIsLoading] = useState(true);
|
||||||
|
|
||||||
const [maxShareSize, setMaxShareSize] = useState(0);
|
const [maxShareSize, setMaxShareSize] = useState(0);
|
||||||
@@ -30,8 +32,8 @@ const Share = ({ reverseShareToken }: { reverseShareToken: string }) => {
|
|||||||
.catch(() => {
|
.catch(() => {
|
||||||
showErrorModal(
|
showErrorModal(
|
||||||
modals,
|
modals,
|
||||||
"Invalid Link",
|
t("upload.reverse-share.error.invalid.title"),
|
||||||
"This link is invalid. Please check your link.",
|
t("upload.reverse-share.error.invalid.description"),
|
||||||
"go-home",
|
"go-home",
|
||||||
);
|
);
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import FileList from "../../components/upload/FileList";
|
|||||||
import showCompletedUploadModal from "../../components/upload/modals/showCompletedUploadModal";
|
import showCompletedUploadModal from "../../components/upload/modals/showCompletedUploadModal";
|
||||||
import showCreateUploadModal from "../../components/upload/modals/showCreateUploadModal";
|
import showCreateUploadModal from "../../components/upload/modals/showCreateUploadModal";
|
||||||
import useConfig from "../../hooks/config.hook";
|
import useConfig from "../../hooks/config.hook";
|
||||||
|
import useConfirmLeave from "../../hooks/confirm-leave.hook";
|
||||||
import useTranslate from "../../hooks/useTranslate.hook";
|
import useTranslate from "../../hooks/useTranslate.hook";
|
||||||
import useUser from "../../hooks/user.hook";
|
import useUser from "../../hooks/user.hook";
|
||||||
import shareService from "../../services/share.service";
|
import shareService from "../../services/share.service";
|
||||||
@@ -39,6 +40,11 @@ const Upload = ({
|
|||||||
const [files, setFiles] = useState<FileUpload[]>([]);
|
const [files, setFiles] = useState<FileUpload[]>([]);
|
||||||
const [isUploading, setisUploading] = useState(false);
|
const [isUploading, setisUploading] = useState(false);
|
||||||
|
|
||||||
|
useConfirmLeave({
|
||||||
|
message: t("upload.notify.confirm-leave"),
|
||||||
|
enabled: isUploading,
|
||||||
|
});
|
||||||
|
|
||||||
const chunkSize = useRef(parseInt(config.get("share.chunkSize")));
|
const chunkSize = useRef(parseInt(config.get("share.chunkSize")));
|
||||||
|
|
||||||
maxShareSize ??= parseInt(config.get("share.maxSize"));
|
maxShareSize ??= parseInt(config.get("share.maxSize"));
|
||||||
@@ -129,12 +135,12 @@ const Upload = ({
|
|||||||
{
|
{
|
||||||
isUserSignedIn: user ? true : false,
|
isUserSignedIn: user ? true : false,
|
||||||
isReverseShare,
|
isReverseShare,
|
||||||
appUrl: config.get("general.appUrl"),
|
|
||||||
allowUnauthenticatedShares: config.get(
|
allowUnauthenticatedShares: config.get(
|
||||||
"share.allowUnauthenticatedShares",
|
"share.allowUnauthenticatedShares",
|
||||||
),
|
),
|
||||||
enableEmailRecepients: config.get("email.enableShareEmailRecipients"),
|
enableEmailRecepients: config.get("email.enableShareEmailRecipients"),
|
||||||
maxExpirationInHours: config.get("share.maxExpiration"),
|
maxExpirationInHours: config.get("share.maxExpiration"),
|
||||||
|
shareIdLength: config.get("share.shareIdLength"),
|
||||||
simplified,
|
simplified,
|
||||||
},
|
},
|
||||||
files,
|
files,
|
||||||
@@ -183,7 +189,7 @@ const Upload = ({
|
|||||||
.completeShare(createdShare.id)
|
.completeShare(createdShare.id)
|
||||||
.then((share) => {
|
.then((share) => {
|
||||||
setisUploading(false);
|
setisUploading(false);
|
||||||
showCompletedUploadModal(modals, share, config.get("general.appUrl"));
|
showCompletedUploadModal(modals, share);
|
||||||
setFiles([]);
|
setFiles([]);
|
||||||
})
|
})
|
||||||
.catch(() => toast.error(t("upload.notify.generic-error")));
|
.catch(() => toast.error(t("upload.notify.generic-error")));
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share",
|
"name": "pingvin-share",
|
||||||
"version": "1.2.4",
|
"version": "1.5.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pingvin-share",
|
"name": "pingvin-share",
|
||||||
"version": "1.2.4",
|
"version": "1.5.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"conventional-changelog-cli": "^3.0.0"
|
"conventional-changelog-cli": "^3.0.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pingvin-share",
|
"name": "pingvin-share",
|
||||||
"version": "1.2.4",
|
"version": "1.5.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"format": "cd frontend && npm run format && cd ../backend && npm run format",
|
"format": "cd frontend && npm run format && cd ../backend && npm run format",
|
||||||
"lint": "cd frontend && npm run lint && cd ../backend && npm run lint",
|
"lint": "cd frontend && npm run lint && cd ../backend && npm run lint",
|
||||||
|
|||||||
Reference in New Issue
Block a user