Compare commits

..

17 Commits

Author SHA1 Message Date
Elias Schneider
ac9b0a1d53 release: 1.6.1 2024-11-26 15:53:33 +01:00
Elias Schneider
ba2e7e122c fix: error for non oidc oauth clients 2024-11-26 15:53:01 +01:00
Elias Schneider
3527dd1dd9 release: 1.6.0 2024-11-25 12:44:42 +01:00
Elias Schneider
54af6c2055 chore(translations): update translations via Crowdin (#684)
* New translations en-us.ts (Spanish)

* New translations en-us.ts (Hungarian)

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

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

* New translations en-us.ts (Thai)

* New translations en-us.ts (French)

* New translations en-us.ts (Russian)

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

* New translations en-us.ts (Bulgarian)

* New translations en-us.ts (Czech)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Korean)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Ukrainian)

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

* New translations en-us.ts (Vietnamese)

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

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

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

* New translations en-us.ts (Italian)

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

* New translations en-us.ts (Ukrainian)

* New translations en-us.ts (Ukrainian)

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

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

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Hungarian)

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

* New translations en-us.ts (French)

* New translations en-us.ts (Russian)

* New translations en-us.ts (Bulgarian)

* New translations en-us.ts (Czech)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Korean)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Ukrainian)

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

* New translations en-us.ts (Thai)

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

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

* New translations en-us.ts (Vietnamese)

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

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

* New translations en-us.ts (Arabic, Egypt)
2024-11-25 12:44:33 +01:00
Elias Schneider
3160f90e1d fix: add validation for share id and zip compression config variables 2024-11-25 12:41:03 +01:00
Elias Schneider
da54ce6ee0 feat: add config variable to specify the requested OIDC sopes 2024-11-25 12:21:17 +01:00
Elias Schneider
468b25828b release: 1.5.0 2024-11-24 17:26:14 +01:00
Romain Ricard
9d4bb55a09 feat(share): add share ID length setting (#677)
- Add share ID length to share > settings
- Use cryptographically secure RNG for IDs
- Use secure default value for IDs length
- Add FR and EN translation

Co-authored-by: Romain Ricard <romain.ricard@mines-ales.org>
2024-11-24 17:25:50 +01:00
Elias Schneider
f78ffd69e7 chore(translations): update translations via Crowdin (#681)
* New translations en-us.ts (German)

* New translations en-us.ts (German)

* New translations en-us.ts (Ukrainian)

* New translations en-us.ts (Ukrainian)

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

* New translations en-us.ts (Serbian (Latin))
2024-11-24 17:24:10 +01:00
Elias Schneider
17528f999a Merge branch 'main' of https://github.com/stonith404/pingvin-share 2024-11-23 18:55:53 +01:00
Elias Schneider
c8f05f2475 fix: totp can't be enabled if user is a ldap user 2024-11-23 18:55:47 +01:00
Elias Schneider
424e2564d5 chore(translations): update translations via Crowdin (#672)
* New translations en-us.ts (Italian)

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

* New translations en-us.ts (Japanese)

* New translations en-us.ts (French)

* New translations en-us.ts (French)

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

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

* New translations en-us.ts (Spanish)

* New translations en-us.ts (Hungarian)

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

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

* New translations en-us.ts (Thai)

* New translations en-us.ts (French)

* New translations en-us.ts (Russian)

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

* New translations en-us.ts (Bulgarian)

* New translations en-us.ts (Czech)

* New translations en-us.ts (Danish)

* New translations en-us.ts (German)

* New translations en-us.ts (Greek)

* New translations en-us.ts (Finnish)

* New translations en-us.ts (Italian)

* New translations en-us.ts (Japanese)

* New translations en-us.ts (Korean)

* New translations en-us.ts (Polish)

* New translations en-us.ts (Slovenian)

* New translations en-us.ts (Swedish)

* New translations en-us.ts (Turkish)

* New translations en-us.ts (Ukrainian)

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

* New translations en-us.ts (Vietnamese)

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

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

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

* New translations en-us.ts (Italian)

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

* New translations en-us.ts (French)

* New translations en-us.ts (German)

* New translations en-us.ts (German)

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

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

* New translations en-us.ts (German)

* New translations en-us.ts (German)
2024-11-21 20:51:45 +01:00
Elias Schneider
18d8cbbbab release: 1.4.0 2024-11-17 16:22:29 +01:00
Elias Schneider
c7dacb26e8 feat: add "creatorEmail" config bariable to share recipient email message 2024-11-17 16:11:30 +01:00
Elias Schneider
b6d98c7c42 chore: upgrade vulnerable dependencies 2024-11-17 16:09:40 +01:00
Elias Schneider
c52ec71920 refactor: use fs promises in file service 2024-11-17 16:09:23 +01:00
Elias Schneider
6cf5c66fe2 fix: remote arbitrary file overwrite on file upload endpoint 2024-11-17 16:07:21 +01:00
44 changed files with 1144 additions and 914 deletions

View File

@@ -1,3 +1,46 @@
## [1.6.1](https://github.com/stonith404/pingvin-share/compare/v1.6.0...v1.6.1) (2024-11-26)
### Bug Fixes
* error for non oidc oauth clients ([ba2e7e1](https://github.com/stonith404/pingvin-share/commit/ba2e7e122c45bfb2a783b15438112a79fee0c307))
## [1.6.0](https://github.com/stonith404/pingvin-share/compare/v1.5.0...v1.6.0) (2024-11-25)
### Features
* add config variable to specify the requested OIDC sopes ([da54ce6](https://github.com/stonith404/pingvin-share/commit/da54ce6ee020a9718f55ec30c614607d411f55c8))
### Bug Fixes
* add validation for share id and zip compression config variables ([3160f90](https://github.com/stonith404/pingvin-share/commit/3160f90e1d4bb3d6aa4017e98e400929fc4d3b2e))
## [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)

View File

@@ -1,12 +1,12 @@
{
"name": "pingvin-share-backend",
"version": "1.3.0",
"version": "1.6.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pingvin-share-backend",
"version": "1.3.0",
"version": "1.6.1",
"dependencies": {
"@nestjs/cache-manager": "^2.2.2",
"@nestjs/common": "^10.4.3",
@@ -63,6 +63,7 @@
"@types/qrcode-svg": "^1.1.5",
"@types/sharp": "^0.32.0",
"@types/supertest": "^6.0.2",
"@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^8.6.0",
"@typescript-eslint/parser": "^8.6.0",
"cross-env": "^7.0.3",
@@ -1240,13 +1241,13 @@
}
},
"node_modules/@nestjs/platform-express": {
"version": "10.4.3",
"resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.4.3.tgz",
"integrity": "sha512-ss7gkofVm3eO+1P9iRhmGq6Xcjg+mIN3dWisKJZYelSV+msb0QpJmqChLvWjLkWtlqDnx915FKUk0IzCa0TVzw==",
"version": "10.4.8",
"resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.4.8.tgz",
"integrity": "sha512-bDz6wQD9LzGeK6uAAFv9l9AbrpyPwHStNObL8J95HBAXJesOblVlQMBAhdfci1YVMQUfOc36qq0IpRSa1II9Mg==",
"dependencies": {
"body-parser": "1.20.3",
"cors": "2.8.5",
"express": "4.21.0",
"express": "4.21.1",
"multer": "1.4.4-lts.1",
"tslib": "2.7.0"
},
@@ -1952,6 +1953,12 @@
"@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": {
"version": "13.11.10",
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz",
@@ -3376,33 +3383,25 @@
}
},
"node_modules/cookie": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie-parser": {
"version": "1.4.6",
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz",
"integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==",
"version": "1.4.7",
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz",
"integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==",
"dependencies": {
"cookie": "0.4.1",
"cookie": "0.7.2",
"cookie-signature": "1.0.6"
},
"engines": {
"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": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
@@ -4157,16 +4156,16 @@
}
},
"node_modules/express": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz",
"integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==",
"version": "4.21.1",
"resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
"integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.3",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.6.0",
"cookie": "0.7.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
@@ -4197,6 +4196,14 @@
"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": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "pingvin-share-backend",
"version": "1.3.0",
"version": "1.6.1",
"scripts": {
"build": "nest build",
"dev": "cross-env NODE_ENV=development nest start --watch",
@@ -68,6 +68,7 @@
"@types/qrcode-svg": "^1.1.5",
"@types/sharp": "^0.32.0",
"@types/supertest": "^6.0.2",
"@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^8.6.0",
"@typescript-eslint/parser": "^8.6.0",
"cross-env": "^7.0.3",

View File

@@ -51,6 +51,11 @@ const configVariables: ConfigVariables = {
defaultValue: "0",
secret: false,
},
shareIdLength: {
type: "number",
defaultValue: "8",
secret: false,
},
maxSize: {
type: "number",
defaultValue: "1000000000",
@@ -84,7 +89,7 @@ const configVariables: ConfigVariables = {
shareRecipientsMessage: {
type: "text",
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: {
type: "string",
@@ -283,6 +288,10 @@ const configVariables: ConfigVariables = {
type: "boolean",
defaultValue: "false",
},
"oidc-scope": {
type: "string",
defaultValue: "openid email profile",
},
"oidc-usernameClaim": {
type: "string",
defaultValue: "",

View File

@@ -368,4 +368,12 @@ export class AuthService {
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);
}
}

View File

@@ -5,7 +5,6 @@ import {
UnauthorizedException,
} from "@nestjs/common";
import { User } from "@prisma/client";
import * as argon from "argon2";
import { authenticator, totp } from "otplib";
import * as qrcode from "qrcode-svg";
import { ConfigService } from "src/config/config.service";
@@ -65,7 +64,7 @@ export class AuthTotpService {
}
async enableTotp(user: User, password: string) {
if (!(await argon.verify(user.password, password)))
if (!this.authService.verifyPassword(user, password))
throw new ForbiddenException("Invalid password");
// 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) {
if (!(await argon.verify(user.password, password)))
if (!this.authService.verifyPassword(user, password))
throw new ForbiddenException("Invalid password");
const { totpSecret } = await this.prisma.user.findUnique({
@@ -137,7 +135,7 @@ export class AuthTotpService {
}
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");
const { totpSecret } = await this.prisma.user.findUnique({

View File

@@ -5,8 +5,8 @@ import {
NotFoundException,
} from "@nestjs/common";
import { Config } from "@prisma/client";
import { PrismaService } from "src/prisma/prisma.service";
import { EventEmitter } from "events";
import { PrismaService } from "src/prisma/prisma.service";
/**
* ConfigService extends EventEmitter to allow listening for config updates,
@@ -100,6 +100,8 @@ export class ConfigService extends EventEmitter {
);
}
this.validateConfigVariable(key, value);
const updatedVariable = await this.prisma.config.update({
where: {
name_category: {
@@ -116,4 +118,24 @@ export class ConfigService extends EventEmitter {
return updatedVariable;
}
validateConfigVariable(key: string, value: string | number | boolean) {
const validations = [
{
key: "share.shareIdLength",
condition: (value: number) => value >= 2 && value <= 50,
message: "Share ID length must be between 2 and 50",
},
{
key: "share.zipCompressionLevel",
condition: (value: number) => value >= 0 && value <= 9,
message: "Zip compression level must be between 0 and 9",
},
];
const validation = validations.find((validation) => validation.key == key);
if (validation && !validation.condition(value as any)) {
throw new BadRequestException(validation.message);
}
}
}

View File

@@ -69,6 +69,7 @@ export class EmailService {
.get("email.shareRecipientsMessage")
.replaceAll("\\n", "\n")
.replaceAll("{creator}", creator?.username ?? "Someone")
.replaceAll("{creatorEmail}", creator?.email ?? "")
.replaceAll("{shareUrl}", shareUrl)
.replaceAll("{desc}", description ?? "No description")
.replaceAll(

View File

@@ -8,17 +8,18 @@ import {
} from "@nestjs/common";
import { JwtService } from "@nestjs/jwt";
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 { ConfigService } from "src/config/config.service";
import { PrismaService } from "src/prisma/prisma.service";
import { validate as isValidUUID } from "uuid";
import { SHARE_DIRECTORY } from "../constants";
@Injectable()
export class FileService {
constructor(
private prisma: PrismaService,
private jwtService: JwtService,
private config: ConfigService,
) {}
@@ -28,7 +29,11 @@ export class FileService {
file: { id?: string; name: 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({
where: { id: shareId },
@@ -40,8 +45,8 @@ export class FileService {
let diskFileSize: number;
try {
diskFileSize = fs.statSync(
`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`,
diskFileSize = (
await fs.stat(`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`)
).size;
} catch {
diskFileSize = 0;
@@ -61,7 +66,7 @@ export class FileService {
const buffer = Buffer.from(data, "base64");
// Check if there is enough space on the server
const space = await fs.promises.statfs(SHARE_DIRECTORY);
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");
@@ -86,19 +91,19 @@ export class FileService {
);
}
fs.appendFileSync(
await fs.appendFile(
`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`,
buffer,
);
const isLastChunk = chunk.index == chunk.total - 1;
if (isLastChunk) {
fs.renameSync(
await fs.rename(
`${SHARE_DIRECTORY}/${shareId}/${file.id}.tmp-chunk`,
`${SHARE_DIRECTORY}/${shareId}/${file.id}`,
);
const fileSize = fs.statSync(
`${SHARE_DIRECTORY}/${shareId}/${file.id}`,
const fileSize = (
await fs.stat(`${SHARE_DIRECTORY}/${shareId}/${file.id}`)
).size;
await this.prisma.file.create({
data: {
@@ -120,7 +125,7 @@ export class FileService {
if (!fileMetaData) throw new NotFoundException("File not found");
const file = fs.createReadStream(`${SHARE_DIRECTORY}/${shareId}/${fileId}`);
const file = createReadStream(`${SHARE_DIRECTORY}/${shareId}/${fileId}`);
return {
metaData: {
@@ -139,19 +144,19 @@ export class FileService {
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 } });
}
async deleteAllFiles(shareId: string) {
await fs.promises.rm(`${SHARE_DIRECTORY}/${shareId}`, {
await fs.rm(`${SHARE_DIRECTORY}/${shareId}`, {
recursive: true,
force: true,
});
}
getZip(shareId: string) {
return fs.createReadStream(`${SHARE_DIRECTORY}/${shareId}/archive.zip`);
return createReadStream(`${SHARE_DIRECTORY}/${shareId}/archive.zip`);
}
}

View File

@@ -70,7 +70,7 @@ export abstract class GenericOidcProvider implements OAuthProvider<OidcToken> {
new URLSearchParams({
client_id: this.config.get(`oauth.${this.name}-clientId`),
response_type: "code",
scope: "openid profile email",
scope: this.name == "oidc" ? this.config.get(`oauth.oidc-scope`) : "openid email profile",
redirect_uri: this.getRedirectUri(),
state,
nonce,

View File

@@ -1,12 +1,12 @@
{
"name": "pingvin-share-frontend",
"version": "1.3.0",
"version": "1.6.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "pingvin-share-frontend",
"version": "1.3.0",
"version": "1.6.1",
"dependencies": {
"@emotion/react": "^11.13.3",
"@emotion/server": "^11.11.0",
@@ -4357,20 +4357,20 @@
}
},
"node_modules/cookie": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==",
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookies-next": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.2.1.tgz",
"integrity": "sha512-qsjtZ8TLlxCSX2JphMQNhkm3V3zIMQ05WrLkBKBwu50npBbBfiZWIdmSMzBGcdGKfMK19E0PIitTfRFAdMGHXg==",
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.3.0.tgz",
"integrity": "sha512-XxeCwLR30cWwRd94sa9X5lRCDLVujtx73tv+N0doQCFIDl83fuuYdxbu/WQUt9aSV7EJx7bkMvJldjvzuFqr4w==",
"dependencies": {
"@types/cookie": "^0.6.0",
"cookie": "^0.6.0"
"cookie": "^0.7.0"
}
},
"node_modules/core-js-compat": {
@@ -8262,9 +8262,9 @@
}
},
"node_modules/rollup": {
"version": "2.79.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
"integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
"version": "2.79.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
"integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
"bin": {
"rollup": "dist/bin/rollup"
},
@@ -13067,17 +13067,17 @@
}
},
"cookie": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="
},
"cookies-next": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.2.1.tgz",
"integrity": "sha512-qsjtZ8TLlxCSX2JphMQNhkm3V3zIMQ05WrLkBKBwu50npBbBfiZWIdmSMzBGcdGKfMK19E0PIitTfRFAdMGHXg==",
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/cookies-next/-/cookies-next-4.3.0.tgz",
"integrity": "sha512-XxeCwLR30cWwRd94sa9X5lRCDLVujtx73tv+N0doQCFIDl83fuuYdxbu/WQUt9aSV7EJx7bkMvJldjvzuFqr4w==",
"requires": {
"@types/cookie": "^0.6.0",
"cookie": "^0.6.0"
"cookie": "^0.7.0"
}
},
"core-js-compat": {
@@ -15850,9 +15850,9 @@
}
},
"rollup": {
"version": "2.79.1",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz",
"integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==",
"version": "2.79.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz",
"integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==",
"requires": {
"fsevents": "~2.3.2"
}

View File

@@ -1,6 +1,6 @@
{
"name": "pingvin-share-frontend",
"version": "1.3.0",
"version": "1.6.1",
"scripts": {
"dev": "next dev",
"build": "next build",

View File

@@ -40,6 +40,7 @@ const showCreateUploadModal = (
allowUnauthenticatedShares: boolean;
enableEmailRecepients: boolean;
maxExpirationInHours: number;
shareIdLength: number;
simplified: boolean;
},
files: FileUpload[],
@@ -72,18 +73,28 @@ const showCreateUploadModal = (
});
};
const generateLink = () =>
Buffer.from(Math.random().toString(), "utf8")
.toString("base64")
.substring(10, 17);
const generateShareId = (length: number = 16) => {
const chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
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) {
throw new Error("Could not generate available link");
}
const _link = generateLink();
const _link = generateShareId(shareIdLength);
if (!(await shareService.isShareIdAvailable(_link))) {
return await generateAvailableLink(times - 1);
return await generateAvailableLink(shareIdLength, times - 1);
} else {
return _link;
}
@@ -102,12 +113,13 @@ const CreateUploadModalBody = ({
allowUnauthenticatedShares: boolean;
enableEmailRecepients: boolean;
maxExpirationInHours: number;
shareIdLength: number;
};
}) => {
const modals = useModals();
const t = useTranslate();
const generatedLink = generateLink();
const generatedLink = generateShareId(options.shareIdLength);
const [showNotSignedInAlert, setShowNotSignedInAlert] = useState(true);
@@ -229,13 +241,19 @@ const CreateUploadModalBody = ({
<Button
style={{ flex: "0 0 auto" }}
variant="outline"
onClick={() => form.setFieldValue("link", generateLink())}
onClick={() =>
form.setFieldValue(
"link",
generateShareId(options.shareIdLength),
)
}
>
<FormattedMessage id="common.button.generate" />
</Button>
</Group>
<Text
truncate
italic
size="xs"
sx={(theme) => ({
@@ -461,6 +479,7 @@ const SimplifiedCreateUploadModalModal = ({
allowUnauthenticatedShares: boolean;
enableEmailRecepients: boolean;
maxExpirationInHours: number;
shareIdLength: number;
};
}) => {
const modals = useModals();
@@ -485,10 +504,12 @@ const SimplifiedCreateUploadModalModal = ({
});
const onSubmit = form.onSubmit(async (values) => {
const link = await generateAvailableLink().catch(() => {
toast.error(t("upload.modal.link.error.taken"));
return undefined;
});
const link = await generateAvailableLink(options.shareIdLength).catch(
() => {
toast.error(t("upload.modal.link.error.taken"));
return undefined;
},
);
if (!link) {
return;

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "عنوان الرسالة لمستلمي المشاركة",
"admin.config.email.share-recipients-subject.description": "عنوان البريد الذي سيُرسَل لمستقبِلي المشاركة.",
"admin.config.email.share-recipients-message": "رسالتك لمستقبِلي المشاركة",
"admin.config.email.share-recipients-message.description": "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.description": "Subject of the sent email when someone created a share with your reverse share link.",
"admin.config.email.reverse-share-message": "رسالة المشاركة العكسية",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "إتاحة إنشاء المشاركات للمستخدمين غير الموثقين",
"admin.config.share.max-expiration": "أبعد زمن لانتهاء الصلاحية",
"admin.config.share.max-expiration.description": "أطول زمن لانتهاء صلاحية المشاركات بالساعات. الصفر يعني أن المشاركة لن تنتهي صلاحيتها.",
"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": "أكبر حجم",
"admin.config.share.max-size.description": "أكبر حجم للمشاركة مقيسًا بالبايت",
"admin.config.share.zip-compression-level": "مستوى ضغط الZip",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "رابط الاستكشاف لتطبيق OpenID Connect OAuth",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "طلب اسم المستخدم في رمز معرف OpenID Connect. إذا كنت لا تعرف معنى هذا الإعداد، اتركه فارغًا.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Share recipients subject",
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
"admin.config.email.share-recipients-message": "Share recipients message",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n 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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares",
"admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.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.description": "Maximum share size in bytes",
"admin.config.share.zip-compression-level": "Zip compression level",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Share recipients subject",
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
"admin.config.email.share-recipients-message": "Share recipients message",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n 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.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í",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Zda mohou neověření uživatelé vytvářet sdílení",
"admin.config.share.max-expiration": "Max. platnost",
"admin.config.share.max-expiration.description": "Maximální platnost sdílení v hodinách. Nastavte na 0 k povolení neomezené platnosti.",
"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. velikost",
"admin.config.share.max-size.description": "Maximální velikost sdílení v bajtech",
"admin.config.share.zip-compression-level": "Úroveň Zip komprese",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Share recipients subject",
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
"admin.config.email.share-recipients-message": "Share recipients message",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n 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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares",
"admin.config.share.max-expiration": "Maks. udløb",
"admin.config.share.max-expiration.description": "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": "Maks. størrelse",
"admin.config.share.max-size.description": "Maksimal filstørrelse i bytes",
"admin.config.share.zip-compression-level": "Zip compression level",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "Hochladen",
"navbar.signin": "Anmelden",
"navbar.home": "Startseite",
"navbar.signup": "Anmelden",
"navbar.signup": "Registrieren",
"navbar.links.shares": "Meine Freigaben",
"navbar.links.reverse": "Externe Freigaben",
"navbar.avatar.account": "Mein Konto",
@@ -16,9 +16,9 @@ export default {
"home.bullet.a.name": "Selbst gehostet",
"home.bullet.a.description": "Betreibe Pingvin Share auf deinem eigenen Server.",
"home.bullet.b.name": "Privatsphäre",
"home.bullet.b.description": "Ihre Dateien gehören Ihnen und sind niemals durch Dritte zugänglich.",
"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.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.source": "Quellcode",
// END /
@@ -27,12 +27,12 @@ export default {
"signin.description": "Du hast noch kein Konto?",
"signin.button.signup": "Registrieren",
"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.placeholder": "Dein Passwort",
"signin.button.submit": "Anmelden",
"signIn.notify.totp-required.title": "Zwei-Faktor-Authentifizierung benötigt",
"signIn.notify.totp-required.description": "Bitte gebe deinen Zwei-Faktor-Authentifizierungscode ein",
"signIn.notify.totp-required.description": "Bitte gib deinen Zwei-Faktor-Authentifizierungscode ein",
"signIn.oauth.or": "ODER",
"signIn.oauth.signInWith": "Anmelden mit",
"signIn.oauth.github": "GitHub",
@@ -63,7 +63,7 @@ export default {
"resetPassword.text.resetPassword": "Passwort zurücksetzen",
"resetPassword.text.enterNewPassword": "Gib dein neues Passwort ein",
"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.title": "Mein Konto",
"account.card.info.title": "Kontoinformationen",
@@ -85,14 +85,14 @@ export default {
"account.card.oauth.unlink": "Verknüpfung aufheben",
"account.card.oauth.unlinked": "Verknüpfung aufgehoben",
"account.modal.unlink.title": "Kontoverknüpfung aufheben",
"account.modal.unlink.description": "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.card.security.title": "Sicherheit",
"account.card.security.totp.enable.description": "Gib dein aktuelles Passwort ein, um TOTP zu aktivieren",
"account.card.security.totp.disable.description": "Gib dein aktuelles Passwort ein, um TOTP zu deaktivieren",
"account.card.security.totp.button.start": "Starten",
"account.modal.totp.title": "TOTP aktivieren",
"account.modal.totp.step1": "Schritt 1: Füge deinen Authentifikator hinzu",
"account.modal.totp.step1": "Schritt 1: Füge deinen Authenticator hinzu",
"account.modal.totp.step2": "Schritt 2: Bestätige deinen Code",
"account.modal.totp.enterManually": "Manuell eingeben",
"account.modal.totp.code": "Code",
@@ -127,13 +127,13 @@ export default {
"account.shares.modal.share-informations": "Teile deine Information",
"account.shares.modal.share-link": "Freigabe teilen",
"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
// /account/reverseShares
"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.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
"account.reverseShares.modal.title": "Externe Freigabe erstellen",
"account.reverseShares.modal.expiration.label": "Gültig bis",
@@ -155,11 +155,11 @@ export default {
"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.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.description": "Die maximale Anzahl von Verwendungen der URL, um Dateien hochzuladen.",
"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.count.singular": "Freigabe",
"account.reverseShares.table.count.plural": "Freigaben",
@@ -168,8 +168,8 @@ export default {
"account.reverseShares.table.max-size": "Maximale Freigabegröße",
"account.reverseShares.table.expires": "Läuft ab am",
"account.reverseShares.modal.reverse-share-link": "Link zu externer Freigabe",
"account.reverseShares.modal.delete.title": "Lösche externe Freigabe",
"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.title": "Externe Freigabe löschen",
"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
// /admin
"admin.title": "Verwaltung",
@@ -190,7 +190,7 @@ export default {
"admin.users.edit.update.change-password.button": "Neues Passwort speichern",
"admin.users.edit.update.notify.password.success": "Passwort erfolgreich geändert",
"admin.users.edit.delete.title": "Benutzer löschen: {username}?",
"admin.users.edit.delete.description": "Möchtest du wirklich diesen Benutzer mit allen seinen Freigaben löschen?",
"admin.users.edit.delete.description": "Möchtest du wirklich diesen Benutzer und all seine Freigaben löschen?",
// showCreateUserModal.tsx
"admin.users.modal.create.title": "Benutzer erstellen",
"admin.users.modal.create.username": "Benutzername",
@@ -203,20 +203,20 @@ export default {
// END /admin/users
// /admin/shares
"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.visitors": "Besucher",
"admin.shares.table.expires": "Läuft ab am",
"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
// /upload
"upload.title": "Upload",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"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.count-failed": "{count} Dateien konnten nicht hochgeladen werden. Wird erneut versucht.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
"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
"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}.",
@@ -230,7 +230,7 @@ export default {
"upload.modal.link.error.taken": "Dieser Link wird bereits verwendet",
"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.expires.never": "niemals",
"upload.modal.expires.never": "nie",
"upload.modal.expires.never-long": "Permanente Freigabe",
"upload.modal.expires.error.too-long": "Das Ablaufdatum überschreitet das Maximum von {max}.",
"upload.modal.link.label": "Link",
@@ -275,16 +275,16 @@ export default {
"share.error.access-denied.title": "Private Freigabe",
"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.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.error.invalid-password": "Ungültiges Passwort",
"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.table.name": "Name",
"share.table.size": "Größe",
"share.modal.file-preview.error.not-supported.title": "Vorschau wird nicht unterstützt",
"share.modal.file-preview.error.not-supported.description": "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]
// /share/[id]/edit
"share.edit.title": "{shareId} bearbeiten",
@@ -303,8 +303,8 @@ export default {
"admin.config.general.app-name.description": "Name der Applikation",
"admin.config.general.app-url": "App-URL",
"admin.config.general.app-url.description": "Auf welcher URL Pingvin Share verfügbar ist",
"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.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.description": "Ob die Startseite angezeigt werden soll",
"admin.config.general.session-duration": "Session-Dauer",
@@ -313,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.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.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.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.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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Gibt an, ob nicht authentifizierte Benutzer Freigaben erstellen können",
"admin.config.share.max-expiration": "Max. Ablaufdatum",
"admin.config.share.max-expiration.description": "Maximale Ablaufzeit in Stunden. Auf 0 setzen, um kein Ablaufdatum zu definieren.",
"admin.config.share.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": "Maximale Größe",
"admin.config.share.max-size.description": "Maximale Größe einer Freigabe in Bytes",
"admin.config.share.zip-compression-level": "ZIP-Kompressionslevel",
@@ -358,7 +360,7 @@ export default {
"admin.config.smtp.password.description": "Passwort des SMTP-Servers",
"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.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.description": "Benutzern erlauben, sich über soziale Netzwerke zu registrieren",
"admin.config.oauth.ignore-totp": "TOTP ignorieren",
@@ -369,22 +371,22 @@ export default {
"admin.config.oauth.github-enabled.description": "GitHub Anmeldung erlaubt",
"admin.config.oauth.github-client-id": "GitHub Client-ID",
"admin.config.oauth.github-client-id.description": "Client-ID der GitHub OAuth-App",
"admin.config.oauth.github-client-secret": "GitHub Client Sekret",
"admin.config.oauth.github-client-secret.description": "Client-Sekret der GitHub OAuth-App",
"admin.config.oauth.github-client-secret": "GitHub Client Secret",
"admin.config.oauth.github-client-secret.description": "Client Secret der GitHub OAuth App",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Google Anmeldung erlaubt",
"admin.config.oauth.google-client-id": "Google Client-ID",
"admin.config.oauth.google-client-id.description": "Client-ID der Google OAuth-App",
"admin.config.oauth.google-client-secret": "Google Client Sekret",
"admin.config.oauth.google-client-secret.description": "Client-Sekret der Google OAuth-App",
"admin.config.oauth.google-client-secret": "Google Client Secret",
"admin.config.oauth.google-client-secret.description": "Client Secret der Google OAuth App",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Microsoft Anmeldung erlaubt",
"admin.config.oauth.microsoft-tenant": "Microsoft Mandant",
"admin.config.oauth.microsoft-tenant.description": "Mandant-ID der Microsoft OAuth App\ncommon: Benutzer mit einem persönlichen Microsoft-Konto und einem Arbeits- oder Schulkonto von Microsoft Entra ID können sich in der Anwendung anmelden.\norganizations: Nur Benutzer mit Arbeits- oder Schulkonten von Microsoft Entra ID können sich in der Anwendung anmelden.\nconsumers: Nur Benutzer mit einem persönlichen Microsoft-Konto können sich in der Anwendung anmelden.\nDomänenname des Microsoft Entra Mandanten oder die Mandanten-ID im GUID-Format: Nur Benutzer eines bestimmten Microsoft Entra Mandanten (Verzeichnismitglieder mit einem Arbeits- oder Schulkonto oder Verzeichnis Gäste mit einem persönlichen Microsoft-Konto) können sich anmelden.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client-ID",
"admin.config.oauth.microsoft-client-id.description": "Client-ID der Microsoft OAuth-App",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client Sekret",
"admin.config.oauth.microsoft-client-secret.description": "Client-Sekret der Microsoft OAuth-App",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client Secret",
"admin.config.oauth.microsoft-client-secret.description": "Client Secret der Microsoft OAuth App",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Discord Anmeldung erlaubt",
"admin.config.oauth.discord-limited-users": "Discord limitierte Benutzer",
@@ -393,14 +395,16 @@ export default {
"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.description": "Client-ID der Discord OAuth-App",
"admin.config.oauth.discord-client-secret": "Discord Client Sekret",
"admin.config.oauth.discord-client-secret.description": "Client-Sekret der Discord OAuth-App",
"admin.config.oauth.discord-client-secret": "Discord Client Secret",
"admin.config.oauth.discord-client-secret.description": "Client Secret der Discord OAuth App",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "OpenID Connect Anmeldung erlaubt",
"admin.config.oauth.oidc-discovery-uri": "OpenID Verbindung Discovery URL",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery-URL der OpenID OAuth App",
"admin.config.oauth.oidc-sign-out": "Abmelden von OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Wenn aktiviert, wird der Benutzer mit der „Abmelden“-Schaltfläche vom OpenID-Connect-Provider abgemeldet.",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect Benutzername anfordern",
"admin.config.oauth.oidc-username-claim.description": "Benutzername im OpenID Token. Leer lassen, wenn du nicht weißt, was diese Konfiguration bedeutet.",
"admin.config.oauth.oidc-role-path": "Pfad zu den Rollen im OpenID Verbindungs-Token",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Θέμα στο email διαμοιρασμού",
"admin.config.email.share-recipients-subject.description": "Το θέμα του email διαμοιρασμού που θα φτάσει στον παραλήπτη.",
"admin.config.email.share-recipients-message": "Το θέμα του email για τον διαμοιρασμό που θα φτάσει στον παραλήπτη ",
"admin.config.email.share-recipients-message.description": "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.description": "Subject of the sent email when someone created a share with your reverse share link.",
"admin.config.email.reverse-share-message": "Μήνυμα email αντίστροφου διαμοιρασμού",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Εάν οι χρήστες χωρίς έλεγχο ταυτότητας μπορούν να δημιουργήσουν κοινόχρηστα στοιχεία",
"admin.config.share.max-expiration": "Μέγιστη λήξη",
"admin.config.share.max-expiration.description": "Μέγιστη λήξη κοινής χρήσης σε ώρες. Ορίστε το 0 για να επιτρέψετε απεριόριστη λήξη.",
"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": "Μέγιστο μέγεθος",
"admin.config.share.max-size.description": "Μέγιστο μέγεθος κοινοποίησης σε bytes",
"admin.config.share.zip-compression-level": "Βαθμός συμπίεσης ZIP",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Αφήστε κενό αν δε γνωρίζετε για αυτή τη ρύθμιση",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -438,7 +438,7 @@ export default {
"Subject of the email which gets sent to the share recipients.",
"admin.config.email.share-recipients-message": "Share recipients message",
"admin.config.email.share-recipients-message.description":
"Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n 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.description":
"Subject of the sent email when someone created a share with your reverse share link.",
@@ -468,6 +468,9 @@ export default {
"admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description":
"Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.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.description": "Maximum share size in bytes",
"admin.config.share.zip-compression-level": "Zip compression level",
@@ -563,6 +566,9 @@ export default {
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description":
"Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description":
"Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",

View File

@@ -317,7 +317,7 @@ export default {
"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-message": "Mensaje destinatario",
"admin.config.email.share-recipients-message.description": "Mensaje que se envía a los destinatarios del enlace compartido. \nVariables disponibles:\n{creator} - El nombre de usuario del creador del enlace\n{shareUrl} - La URL del enlace compartido\n{desc} - La descripción del enlace compartido\n{expires} - La fecha de expiración del enlace\nEstas variables se reemplazarán con el valor real.",
"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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Si los usuarios que no han iniciado sesión pueden compartir",
"admin.config.share.max-expiration": "Expiración máxima",
"admin.config.share.max-expiration.description": "Expiración máxima para compartir en horas. Establezca en 0 para permitir una expiración ilimitada.",
"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": "Tamaño máximo",
"admin.config.share.max-size.description": "Tamaño máximo de los archivos, en bytes",
"admin.config.share.zip-compression-level": "Nivel de compresión del Zip",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "URI de descubrimiento de la aplicación OAuth de OpenID Connect",
"admin.config.oauth.oidc-sign-out": "Cerrar sesión de OpenID Connect",
"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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "Reclamo de nombre de usuario de OpenID Connect",
"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": "Ruta a los roles en el token de OpenID Connect",

View File

@@ -317,7 +317,7 @@ export default {
"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-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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Voiko tunnistamattomat käyttäjät luoda jakoja",
"admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.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": "Maksimikoko",
"admin.config.share.max-size.description": "Jaon enimmäiskoko tavuissa (bytes)",
"admin.config.share.zip-compression-level": "Zip puristustaso",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -212,11 +212,11 @@ export default {
// END /admin/shares
// /upload
"upload.title": "Envoyer",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"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.count-failed": "{count} fichier(s) na(ont) pas pu être envoyé(s). Veuillez réessayer.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
"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
"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.",
@@ -303,8 +303,8 @@ export default {
"admin.config.general.app-name.description": "Le nom de lapplication",
"admin.config.general.app-url": "URL de lappli",
"admin.config.general.app-url.description": "Depuis quel URL le partage Pingvin est disponible",
"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.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 daccueil",
"admin.config.general.show-home-page.description": "Afficher ou non la page daccueil",
"admin.config.general.session-duration": "Durée de la session",
@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Sujet dun partage",
"admin.config.email.share-recipients-subject.description": "Intitulé du courriel envoyé aux destinataires dun partage.",
"admin.config.email.share-recipients-message": "Message dun partage",
"admin.config.email.share-recipients-message.description": "Contenu du courriel qui est envoyé aux destinataires du partage.\nVariables possibles :\n {creator} : Le pseudo de lauteur du partage\n {shareUrl} : LURL 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 dun partage inversé",
"admin.config.email.reverse-share-subject.description": "Intitulé du courriel envoyé lorsque quelquun a partagé des fichiers depuis votre partage inversé.",
"admin.config.email.reverse-share-message": "Message dun partage inversé",
@@ -336,6 +336,8 @@ export default {
"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.description": "Échéance du partage en heures. Indiquez 0 pour quil nexpire 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.description": "Taille maximale du partage en octets",
"admin.config.share.zip-compression-level": "Niveau de compression",
@@ -387,7 +389,7 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Le secret du client de lapplication Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Permettre la connexion via Discord",
"admin.config.oauth.discord-limited-users": "Discord limited users",
"admin.config.oauth.discord-limited-users": "Utilisateurs limités sur Discord",
"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.description": "Limiter la connexion aux utilisateurs sur un serveur spécifique. Laissez vide pour désactiver.",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "LURI de découverte de la connexion à l'application OpenID OAuth",
"admin.config.oauth.oidc-sign-out": "Déconnexion du fournisseur OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Si activé, le bouton \"Déconnexion\" vous déconnectera également du fournisseur d'identité OpenID Connect",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "Revendication du nom dutilisateur OpenID",
"admin.config.oauth.oidc-username-claim.description": "Le champ contenant la revendication du nom dutilisateur dans le jeton OpenID Connect. Laissez vide si vous ne savez pas quoi indiquer.",
"admin.config.oauth.oidc-role-path": "Chemin vers les rôles dans le jeton OpenID Connect",

View File

@@ -317,7 +317,7 @@ export default {
"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-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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Hitelesítés nélküli felhasználók létre hozhatnak-e megosztásokat",
"admin.config.share.max-expiration": "Max lejárat",
"admin.config.share.max-expiration.description": "A megosztások megengedett leghosszabb lejárata órában. 0 értékkel a lejárat kikapcsolható.",
"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 méret",
"admin.config.share.max-size.description": "A megosztások megengedett legnagyobb mérete bájtban",
"admin.config.share.zip-compression-level": "Zip tömörítési szint",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Az OpenID Connect OAuth applikáció Discovery URI azonosítója",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect felhasználónév igény",
"admin.config.oauth.oidc-username-claim.description": "Az OpenID Connect ID token felhasználónév igénye. Hagyja üresen ha nincs információja a beállításról.",
"admin.config.oauth.oidc-role-path": "Az OpenID Connect token szerepeinek elérési útvonala",

View File

@@ -212,11 +212,11 @@ export default {
// END /admin/shares
// /upload
"upload.title": "Carica",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"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.count-failed": "Impossibile caricare {count} file. Riprovare.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
"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
"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.",
@@ -303,8 +303,8 @@ export default {
"admin.config.general.app-name.description": "Nome dell' applicazione",
"admin.config.general.app-url": "URL dell'App",
"admin.config.general.app-url.description": "Su quale URL Pingvin Share è pubblicato",
"admin.config.general.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.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.description": "Indica se mostrare la home page",
"admin.config.general.session-duration": "Durata della sessione",
@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Oggetto dell'email di condivisione",
"admin.config.email.share-recipients-subject.description": "Oggetto dell'email che viene inviata ai destinatari della condivisione.",
"admin.config.email.share-recipients-message": "Testo dell'email di condivisione",
"admin.config.email.share-recipients-message.description": "Messaggio che viene inviato ai destinatari della condivisione. Variabili disponibili:\n {creator} - Il nome utente del creatore della condivisione\n {shareUrl} - L'URL della condivisione\n {desc} - La descrizione della condivisione\n {expires} - La data di scadenza della condivisione\n Le variabili saranno sostituite con il valore effettivo.",
"admin.config.email.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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Indica se gli utenti non autenticati possono creare condivisioni",
"admin.config.share.max-expiration": "Scadenza massima",
"admin.config.share.max-expiration.description": "Scadenza massima di condivisione in ore. Impostare a 0 per consentire la scadenza illimitata.",
"admin.config.share.share-id-length": "Lunghezza ID condivisione predefinita",
"admin.config.share.share-id-length.description": "Lunghezza predefinita dell'ID generato per una condivisione. Questo valore viene utilizzato anche per generare collegamenti per condivisioni inverse. Un valore inferiore a 8 non è considerato sicuro.",
"admin.config.share.max-size": "Dim. massima",
"admin.config.share.max-size.description": "Dimensione massima di condivisione in byte",
"admin.config.share.zip-compression-level": "Livello di compressione Zip",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "URI di scoperta dell'app OAuth di OpenID Connect",
"admin.config.oauth.oidc-sign-out": "Esci da OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Se premuto, il pulsante “Disconnettersi” disconnetterà dal provider OpenID Connect",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "Richiesta nome utente OpenID Connect",
"admin.config.oauth.oidc-username-claim.description": "Nome utente nel token OpenID Connect. Lascialo vuoto se non sai cos'è questa configurazione.",
"admin.config.oauth.oidc-role-path": "Percorso verso i ruoli in OpenID Connect token",

View File

@@ -212,11 +212,11 @@ export default {
// END /admin/shares
// /upload
"upload.title": "アップロード",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.confirm-leave": "このページから離れますか?アップロードはキャンセルされます。",
"upload.notify.generic-error": "共有を仕上げている最中にエラーが発生しました。",
"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.",
"upload.reverse-share.error.invalid.title": "無効なファイルリクエストリンク",
"upload.reverse-share.error.invalid.description": "このファイルリクエストは期限が切れているか無効です。",
// Dropzone.tsx
"upload.dropzone.title": "ファイルをアップロード",
"upload.dropzone.description": "共有を開始するにはここにファイルをドラッグ&ドロップしてください。受け入れ可能なファイルの合計サイズは{maxSize}までです。",
@@ -303,8 +303,8 @@ export default {
"admin.config.general.app-name.description": "アプリの名前",
"admin.config.general.app-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.secure-cookies": "セキュアクッキー",
"admin.config.general.secure-cookies.description": "クッキーにセキュアフラグを設定するか。有効にすると、HTTP 経由でアクセスしたときにサイトが機能しなくなります。",
"admin.config.general.show-home-page": "ホームページを表示する",
"admin.config.general.show-home-page.description": "ホームページを表示するかどうか選択",
"admin.config.general.session-duration": "セッション期間",
@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "宛先への件名",
"admin.config.email.share-recipients-subject.description": "メールで共有された相手に送信メールの件名です。",
"admin.config.email.share-recipients-message": "宛先への本文",
"admin.config.email.share-recipients-message.description": "共有受信者に送信されるメッセージ。使用可能な変数:\n {creator} - 共有の作成者のユーザー名\n {shareUrl} - 共有の URL\n {desc} - 共有の説明\n {expires} - 共有の有効期限\n これらの変数は実際の値に置き換えられます。",
"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.description": "誰かがあなたのファイルリクエストリンクを使用して共有を作成したときに送信されるメールの件名。",
"admin.config.email.reverse-share-message": "ファイルリクエストの本文",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "ログインしていないユーザーに共有の作成を許可するかどうかを選択してください。",
"admin.config.share.max-expiration": "有効期限の上限",
"admin.config.share.max-expiration.description": "共有に設定可能な有効期限の上限を時間単位で設定できます。0を設定すると、有効期限が無制限になります。",
"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": "最大ファイルサイズ",
"admin.config.share.max-size.description": "最大ファイルサイズbyte単位",
"admin.config.share.zip-compression-level": "Zip圧縮レベル",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "OpenID OAuthアプリのDiscovery URI",
"admin.config.oauth.oidc-sign-out": "OpenID Connectからサインアウト",
"admin.config.oauth.oidc-sign-out.description": "「サインアウト」ボタンがOpenID Connectプロバイダーからサインアウトするかどうか",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect ユーザー名の要求",
"admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID トークンのユーザー名要求。この設定が何かわからない場合は空白のままにしてください。",
"admin.config.oauth.oidc-role-path": "OpenID Connectトークンのロールへのパス",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "공유 제목",
"admin.config.email.share-recipients-subject.description": "공유 수신자에게 전송되는 이메일의 제목입니다.",
"admin.config.email.share-recipients-message": "수신자 메시지 공유",
"admin.config.email.share-recipients-message.description": "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.description": "Subject of the sent email when someone created a share with your reverse share link.",
"admin.config.email.reverse-share-message": "역방향 공유 메시지",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "인증되지 않은 사용자가 공유를 생성할 수 있는지 여부",
"admin.config.share.max-expiration": "최대 만료 시간",
"admin.config.share.max-expiration.description": "공유의 최대 만료 시간. 무제한 만료를 허용하려면 0으로 설정하세요.",
"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": "최대 크기",
"admin.config.share.max-size.description": "공유의 최대 크기 (바이트)",
"admin.config.share.zip-compression-level": "Zip 압축 레벨",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID 토큰의 Username claim 입니다. 이 구성이 무엇인지 모르면 비워 둡니다.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "Delen",
"navbar.signin": "Aanmelden",
"navbar.home": "Startpagina",
"navbar.signup": "Sign up",
"navbar.signup": "Registreren",
"navbar.links.shares": "Mijn gedeelde bestanden",
"navbar.links.reverse": "Omgekeerd delen",
"navbar.avatar.account": "Mijn account",
@@ -16,9 +16,9 @@ export default {
"home.bullet.a.name": "Zelfgehost",
"home.bullet.a.description": "Host Pingvin Share op uw eigen machine.",
"home.bullet.b.name": "Privacy",
"home.bullet.b.description": "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.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.source": "Broncode",
// END /
@@ -58,12 +58,12 @@ export default {
// /auth/reset-password
"resetPassword.title": "Wachtwoord vergeten?",
"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.text.resetPassword": "Wachtwoord opnieuw instellen",
"resetPassword.text.enterNewPassword": "Voer uw nieuwe wachtwoord in",
"resetPassword.input.password": "Nieuw wachtwoord",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
"resetPassword.notify.passwordReset": "Je wachtwoord is succesvol gereset.",
// /account
"account.title": "Mijn account",
"account.card.info.title": "Accountinformatie",
@@ -73,7 +73,7 @@ export default {
"account.card.password.title": "Wachtwoord",
"account.card.password.old": "Oude 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.card.oauth.title": "Social login",
"account.card.oauth.github": "GitHub",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "Ontkoppel",
"account.card.oauth.unlinked": "Niet-gekoppeld",
"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.card.security.title": "Beveiliging",
"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.description": "Beschrijving",
"account.shares.table.visitors": "Bezoekers",
"account.shares.table.expiresAt": "Expires on",
"account.shares.table.createdAt": "Created on",
"account.shares.table.expiresAt": "Verloopt op",
"account.shares.table.createdAt": "Gemaakt op",
"account.shares.table.size": "Grootte",
"account.shares.modal.share-informations": "Gegevens delen",
"account.shares.modal.share-link": "Deel link",
"account.shares.modal.delete.title": "Delete share: {share}",
"account.shares.modal.delete.title": "Share verwijderd: {share}",
"account.shares.modal.delete.description": "Weet u zeker dat u deze share wilt verwijderen?",
// END /account/shares
// /account/reverseShares
@@ -206,7 +206,7 @@ export default {
"admin.shares.table.id": "Share ID",
"admin.shares.table.username": "Auteur",
"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.description": "Weet u zeker dat u deze share wilt verwijderen?",
// END /admin/shares
@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Onderwerp van ontvangers' share",
"admin.config.email.share-recipients-subject.description": "Het onderwerp van de e-mail die wordt verzonden naar de share-ontvangers.",
"admin.config.email.share-recipients-message": "Bericht voor ontvangers van de share",
"admin.config.email.share-recipients-message.description": "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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Sta niet-geverifieerde gebruikers toe shares te kunnen aanmaken",
"admin.config.share.max-expiration": "Max. vervaldatum",
"admin.config.share.max-expiration.description": "Maximale verval tijd van de share in uren. Stel in op 0 om onbeperkte vervaldatum toe te staan.",
"admin.config.share.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. grootte",
"admin.config.share.max-size.description": "Maximale share grootte in bytes",
"admin.config.share.zip-compression-level": "Zip compressie niveau",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI van de OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Gebruikersnaam claim in OpenID Connect-ID-token. Laat het leeg als u niet weet wat deze configuratie is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -317,7 +317,7 @@ export default {
"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-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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Czy nieautoryzowani użytkownicy mogą tworzyć udostępnienia",
"admin.config.share.max-expiration": "Maksymalny okres ważności",
"admin.config.share.max-expiration.description": "Maksymalny okres ważności udziału w godzinach. Ustaw na 0, aby zezwolić na nieograniczony okres ważności.",
"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": "Rozmiar maksymalny",
"admin.config.share.max-size.description": "Maksymalny rozmiar udziału w bajtach",
"admin.config.share.zip-compression-level": "Poziom kompresji Zip",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Wykrywanie URI OAuth aplikacji OpenID Connect",
"admin.config.oauth.oidc-sign-out": "Wylogowanie z OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Czy przycisk „Wyloguj się” spowoduje wylogowanie z dostawcy OpenID Connect",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "Żądanie nazwy użytkownika OpenID Connect",
"admin.config.oauth.oidc-username-claim.description": "Żądanie nazwy użytkownika w tokenie identyfikatora OpenID Connect. Jeśli nie wiesz, czym jest ta konfiguracja, pozostaw pustą.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -212,11 +212,11 @@ export default {
// END /admin/shares
// /upload
"upload.title": "Carregar",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"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.count-failed": "Falha ao enviar {count} arquivos. Tentando novamente.",
"upload.reverse-share.error.invalid.title": "Invalid reverse share link",
"upload.reverse-share.error.invalid.description": "This reverse share has expired or is invalid.",
"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
"upload.dropzone.title": "Carregar arquivos",
"upload.dropzone.description": "Arraste os arquivos aqui para iniciar o seu compartilhamento. Aceitamos apenas arquivos até {maxSize} no total.",
@@ -303,8 +303,8 @@ export default {
"admin.config.general.app-name.description": "Nome da aplicação",
"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.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.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.description": "Mostrar ou não a página inicial",
"admin.config.general.session-duration": "Duração de sessão",
@@ -317,7 +317,7 @@ export default {
"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-message": "Assunto dos destinatários do compartilhamento",
"admin.config.email.share-recipients-message.description": "Mensagem que é enviada aos destinatários do compartilhamento. Variáveis disponíveis:\n {creator} - O nome de usuário do criador do compartilhamento\n {shareUrl} - O URL do compartilhamento\n {desc} - A descrição do compartilhamento\n {expires} - A data de expiração do compartilhamento\n As variáveis serão substituídas pelo valor real.",
"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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Se usuários não autenticados podem criar compartilhamentos",
"admin.config.share.max-expiration": "Expiração máxima",
"admin.config.share.max-expiration.description": "Validade máxima de ações em horas. Defina 0 para permitir expiração ilimitada.",
"admin.config.share.share-id-length": "Comprimento da ID do compartilhamento padrão",
"admin.config.share.share-id-length.description": "Comprimento padrão para a ID gerada de um compartilhamento. Este valor também é usado para gerar links para ações reversas. Um valor abaixo de 8 não é considerado seguro.",
"admin.config.share.max-size": "Tamanho máximo",
"admin.config.share.max-size.description": "Tamanho máximo do compartilhamento em bytes",
"admin.config.share.zip-compression-level": "Nível de compressão",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "URI da descoberta do aplicativo OpenID Connect OAuth",
"admin.config.oauth.oidc-sign-out": "Sair do OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Se o botão “Sair” fará o logout do provedor OpenID Connect",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "Reivindicação de nome de usuário OpenID Connect",
"admin.config.oauth.oidc-username-claim.description": "Nome de usuário no token de ID OpenID Connect. Deixe em branco se você não sabe o que é esta configuração.",
"admin.config.oauth.oidc-role-path": "Caminho para as funções no token OpenID Connect",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Заголовок письма (загрузка)",
"admin.config.email.share-recipients-subject.description": "Тема письма, которое отправляется получателям акции.",
"admin.config.email.share-recipients-message": "Сообщение письма загрузки",
"admin.config.email.share-recipients-message.description": "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.description": "Subject of the sent email when someone created a share with your reverse share link.",
"admin.config.email.reverse-share-message": "Сообщение письма обратной загрузки",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Могут ли неавторизованные пользователи создавать загрузки",
"admin.config.share.max-expiration": "Максимальная срок действия",
"admin.config.share.max-expiration.description": "Максимальный срок действия общего доступа в часах. Установите значение 0, чтобы разрешить неограниченный срок действия.",
"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": "Максимальный размер",
"admin.config.share.max-size.description": "Максимальный размер файла в байтах",
"admin.config.share.zip-compression-level": "Уровень сжатия Zip",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Zadeva poslane delitve",
"admin.config.email.share-recipients-subject.description": "Zadeva e-poštnega sporočila, ki bo poslan prejemnikom delitve.",
"admin.config.email.share-recipients-message": "Vsebina poslane delitve",
"admin.config.email.share-recipients-message.description": "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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Če lahko neprijavljeni uporabniki ustvarijo delitve",
"admin.config.share.max-expiration": "Najvišja zapadlost",
"admin.config.share.max-expiration.description": "Najvišja zapadlost delitve v urah. Nastavljeno na 0 pomeni brez zapadlosti.",
"admin.config.share.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": "Največja velikost",
"admin.config.share.max-size.description": "Največja velikost delitve v bytih",
"admin.config.share.zip-compression-level": "Nivo Zip stiskanja",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "URI za odkrivanje OpenID Connect OAuth aplikacije",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect zahteva za uporabniško ime",
"admin.config.oauth.oidc-username-claim.description": "Zahteva za uporabniško ime za OpenID Connect ID žetona. Pustite prazno, če ne poznate te nastavitve.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -1,40 +1,40 @@
export default {
// Navbar
"navbar.upload": "Upload",
"navbar.signin": "Sign in",
"navbar.home": "Home",
"navbar.signup": "Sign up",
"navbar.links.shares": "My shares",
"navbar.links.reverse": "Reverse shares",
"navbar.avatar.account": "My account",
"navbar.avatar.admin": "Administration",
"navbar.avatar.signout": "Sign out",
"navbar.upload": "Otpremi",
"navbar.signin": "Prijava",
"navbar.home": "Početna",
"navbar.signup": "Registracija",
"navbar.links.shares": "Moja deljenja",
"navbar.links.reverse": "Obrnuto deljenje",
"navbar.avatar.account": "Moj nalog",
"navbar.avatar.admin": "Administracija",
"navbar.avatar.signout": "Odjavi se",
// END navbar
// /
"home.title": "A <h>self-hosted</h> file sharing platform.",
"home.description": "Do you really want to give your personal files in the hand of third parties like WeTransfer?",
"home.bullet.a.name": "Self-Hosted",
"home.bullet.a.description": "Host Pingvin Share on your own machine.",
"home.bullet.b.name": "Privacy",
"home.bullet.b.description": "Your files are yours and will never be accessed by third parties.",
"home.bullet.c.name": "No annoying file size limit",
"home.bullet.c.description": "Upload files as big as you want. Only your hard drive will be your limit.",
"home.button.start": "Get started",
"home.button.source": "Source code",
"home.title": "<h>Samo-hostovana</h> platforma za deljenje fajlova.",
"home.description": "Da li zaista želite da date svoje lične datoteke u ruke trećih strana kao što je WeTransfer?",
"home.bullet.a.name": "Samo-hostovano",
"home.bullet.a.description": "Hostujte Pingvin Share na svojoj mašini.",
"home.bullet.b.name": "Privatnost",
"home.bullet.b.description": "Vaše datoteke su vaše i nikada neće biti dostupne trećim stranama.",
"home.bullet.c.name": "Nema dosadnog ograničenja veličine datoteke",
"home.bullet.c.description": "Otpremite onoliko velikih datoteka koliko želite. Samo vaš čvrsti disk je granica.",
"home.button.start": "Započni",
"home.button.source": "Izvorni kod",
// END /
// /auth/signin
"signin.title": "Welcome back",
"signin.description": "You don't have an account yet?",
"signin.button.signup": "Sign up",
"signin.input.email-or-username": "Email or username",
"signin.input.email-or-username.placeholder": "Your email or username",
"signin.input.password": "Password",
"signin.input.password.placeholder": "Your password",
"signin.button.submit": "Sign in",
"signIn.notify.totp-required.title": "Two-factor authentication required",
"signIn.notify.totp-required.description": "Please enter your two-factor authentication code",
"signIn.oauth.or": "OR",
"signIn.oauth.signInWith": "Sign in with",
"signin.title": "Dobrodošli nazad",
"signin.description": "Još uvek nemate nalog?",
"signin.button.signup": "Registruj se",
"signin.input.email-or-username": "Imejl ili korisničko ime",
"signin.input.email-or-username.placeholder": "Vaš imejl ili korisničko ime",
"signin.input.password": "Lozinka",
"signin.input.password.placeholder": "Vaša lozinka",
"signin.button.submit": "Prijavite se",
"signIn.notify.totp-required.title": "Potrebna je dvofaktorska autentifikacija",
"signIn.notify.totp-required.description": "Unesite svoj dvofaktorski kod za autentifikaciju",
"signIn.oauth.or": "Ili",
"signIn.oauth.signInWith": "Prijavite se sa",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft",
@@ -42,39 +42,39 @@ export default {
"signIn.oauth.oidc": "OpenID",
// END /auth/signin
// /auth/signup
"signup.title": "Create an account",
"signup.description": "Already have an account?",
"signup.button.signin": "Sign in",
"signup.input.username": "Username",
"signup.input.username.placeholder": "Your username",
"signup.input.email": "Email",
"signup.input.email.placeholder": "Your email",
"signup.button.submit": "Let's get started",
"signup.title": "Napravi nalog",
"signup.description": "Već imate nalog?",
"signup.button.signin": "Prijavite se",
"signup.input.username": "Korisničko ime",
"signup.input.username.placeholder": "Vaše korisničko ime",
"signup.input.email": "Imejl",
"signup.input.email.placeholder": "Vaš imejl",
"signup.button.submit": "Hajde da počnemo",
// END /auth/signup
// /auth/totp
"totp.title": "TOTP Authentication",
"totp.button.signIn": "Sign in",
"totp.title": "TOTP autentifikacija",
"totp.button.signIn": "Prijavite se",
// END /auth/totp
// /auth/reset-password
"resetPassword.title": "Forgot your password?",
"resetPassword.description": "Enter your email to reset your password.",
"resetPassword.notify.success": "A message with a link to reset your password has been sent if the provided email exists.",
"resetPassword.button.back": "Back to sign in page",
"resetPassword.text.resetPassword": "Reset password",
"resetPassword.text.enterNewPassword": "Enter your new password",
"resetPassword.input.password": "New password",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
"resetPassword.title": "Zaboravili ste lozinku?",
"resetPassword.description": "Unesite svoj imejl da biste resetovali lozinku.",
"resetPassword.notify.success": "Poruka sa linkom za resetovanje lozinke je poslata ako uneta i-mejl adresa postoji.",
"resetPassword.button.back": "Nazad na stranicu za prijavu",
"resetPassword.text.resetPassword": "Obnovi lozinku",
"resetPassword.text.enterNewPassword": "Unesite vašu novu lozinku",
"resetPassword.input.password": "Nova lozinka",
"resetPassword.notify.passwordReset": "Vaša lozinka je uspešno resetovana.",
// /account
"account.title": "My account",
"account.card.info.title": "Account info",
"account.card.info.username": "Username",
"account.card.info.email": "Email",
"account.notify.info.success": "Account updated successfully",
"account.card.password.title": "Password",
"account.card.password.old": "Old password",
"account.card.password.new": "New password",
"account.card.password.noPasswordSet": "You do not have a password set. To sign in using your email and password, you need to create a password.",
"account.notify.password.success": "Password changed successfully",
"account.title": "Moj nalog",
"account.card.info.title": "Podaci o nalogu",
"account.card.info.username": "Korisničko ime",
"account.card.info.email": "Imejl",
"account.notify.info.success": "Nalog je uspešno ažuriran",
"account.card.password.title": "Lozinka",
"account.card.password.old": "Stara lozinka",
"account.card.password.new": "Nova lozinka",
"account.card.password.noPasswordSet": "Nemate postavljenu lozinku. Da biste se prijavili koristeći i-mejl i lozinku, potrebno je da napravite lozinku.",
"account.notify.password.success": "Lozinka je uspešno promenjena",
"account.card.oauth.title": "Social login",
"account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google",
@@ -82,406 +82,410 @@ export default {
"account.card.oauth.discord": "Discord",
"account.card.oauth.oidc": "OpenID",
"account.card.oauth.link": "Link",
"account.card.oauth.unlink": "Unlink",
"account.card.oauth.unlinked": "Unlinked",
"account.modal.unlink.title": "Unlink account",
"account.modal.unlink.description": "Unlinking your social accounts may cause you to lose your account if you don't remember your login credentials",
"account.notify.oauth.unlinked.success": "Unlinked successfully",
"account.card.security.title": "Security",
"account.card.security.totp.enable.description": "Enter your current password to start enabling TOTP",
"account.card.security.totp.disable.description": "Enter your current password to disable TOTP",
"account.card.security.totp.button.start": "Start",
"account.modal.totp.title": "Enable TOTP",
"account.modal.totp.step1": "Step 1: Add your authenticator",
"account.modal.totp.step2": "Step 2: Validate your code",
"account.modal.totp.enterManually": "Enter manually",
"account.modal.totp.code": "Code",
"common.button.clickToCopy": "Click to copy",
"account.modal.totp.verify": "Verify",
"account.notify.totp.disable": "TOTP disabled successfully",
"account.notify.totp.enable": "TOTP enabled successfully",
"account.card.language.title": "Language",
"account.card.language.description": "The project is translated by the community. Some languages might be incomplete.",
"account.card.color.title": "Color scheme",
"account.card.oauth.unlink": "Prekini vezu",
"account.card.oauth.unlinked": "Veza je prekinuta",
"account.modal.unlink.title": "Prekini vezu sa nalogom",
"account.modal.unlink.description": "Uklanjanje veze sa vašim društvenim nalozima može dovesti do gubitka vašeg naloga ako se ne sećate svojih pristupnih podataka",
"account.notify.oauth.unlinked.success": "Veza je prekinuta",
"account.card.security.title": "Bezbednost",
"account.card.security.totp.enable.description": "Unesite svoju trenutnu lozinku da biste počeli da omogućavate TOTP",
"account.card.security.totp.disable.description": "Unesite svoju trenutnu lozinku da biste onemogućili TOTP",
"account.card.security.totp.button.start": "Započni",
"account.modal.totp.title": "Omogući TOTP",
"account.modal.totp.step1": "Korak 1: Dodajte svoj autentifikator",
"account.modal.totp.step2": "Korak 2: Potvrdite svoj kod",
"account.modal.totp.enterManually": "Unesite ručno",
"account.modal.totp.code": "Kod",
"common.button.clickToCopy": "Kliknite za kopiranje",
"account.modal.totp.verify": "Verifikuj",
"account.notify.totp.disable": "TOTP je uspešno onemogućen",
"account.notify.totp.enable": "TOTP je uspešno omogućen",
"account.card.language.title": "Jezik",
"account.card.language.description": "Projekat je preveden od strane zajednice. Neki jezici mogu biti nepotpuni.",
"account.card.color.title": "Šema boja",
// ThemeSwitcher.tsx
"account.theme.dark": "Dark",
"account.theme.light": "Light",
"account.theme.system": "System",
"account.button.delete": "Delete Account",
"account.modal.delete.title": "Delete Account",
"account.modal.delete.description": "Do you really want to delete your account including all your active shares?",
"account.theme.dark": "Tamno",
"account.theme.light": "Svetlo",
"account.theme.system": "Sistem",
"account.button.delete": "Izbriši Nalog",
"account.modal.delete.title": "Izbriši Nalog",
"account.modal.delete.description": "Da li zaista želite da izbrišete svoj nalog uključujući sve vaše aktivne deljenja?",
// END /account
// /account/shares
"account.shares.title": "My shares",
"account.shares.title.empty": "It's empty here 👀",
"account.shares.description.empty": "You don't have any shares.",
"account.shares.button.create": "Create one",
"account.shares.info.title": "Share informations",
"account.shares.title": "Moja deljenja",
"account.shares.title.empty": "Ovde je prazno 👀",
"account.shares.description.empty": "Nemate nikakva deljenja.",
"account.shares.button.create": "Napravite",
"account.shares.info.title": "Delite informacije",
"account.shares.table.id": "ID",
"account.shares.table.name": "Name",
"account.shares.table.description": "Description",
"account.shares.table.visitors": "Visitors",
"account.shares.table.expiresAt": "Expires on",
"account.shares.table.createdAt": "Created on",
"account.shares.table.size": "Size",
"account.shares.modal.share-informations": "Share informations",
"account.shares.modal.share-link": "Share link",
"account.shares.modal.delete.title": "Delete share: {share}",
"account.shares.modal.delete.description": "Do you really want to delete this share?",
"account.shares.table.name": "Naziv",
"account.shares.table.description": "Opis",
"account.shares.table.visitors": "Posetioci",
"account.shares.table.expiresAt": "Ističe",
"account.shares.table.createdAt": "Napravljeno",
"account.shares.table.size": "Veličina",
"account.shares.modal.share-informations": "Delite informacije",
"account.shares.modal.share-link": "Deli vezu",
"account.shares.modal.delete.title": "Izbriši deljenje {share}",
"account.shares.modal.delete.description": "Da li zaista želite da izbrišete ovo deljenje?",
// END /account/shares
// /account/reverseShares
"account.reverseShares.title": "Reverse shares",
"account.reverseShares.description": "A reverse share allows you to generate a unique URL that allows external users to create a share.",
"account.reverseShares.title.empty": "It's empty here 👀",
"account.reverseShares.description.empty": "You don't have any reverse shares.",
"account.reverseShares.title": "Obrnuto deljenje",
"account.reverseShares.description": "Obrnuto deljenje vam omogućava da generišete jedinstveni URL koji omogućava spoljnim korisnicima da kreiraju deljenje.",
"account.reverseShares.title.empty": "Ovde je prazno 👀",
"account.reverseShares.description.empty": "Nemate obrnutih deljenja.",
// showCreateReverseShareModal.tsx
"account.reverseShares.modal.title": "Create reverse share",
"account.reverseShares.modal.expiration.label": "Expiration",
"account.reverseShares.modal.expiration.minute-singular": "Minute",
"account.reverseShares.modal.expiration.minute-plural": "Minutes",
"account.reverseShares.modal.expiration.hour-singular": "Hour",
"account.reverseShares.modal.expiration.hour-plural": "Hours",
"account.reverseShares.modal.expiration.day-singular": "Day",
"account.reverseShares.modal.expiration.day-plural": "Days",
"account.reverseShares.modal.expiration.week-singular": "Week",
"account.reverseShares.modal.expiration.week-plural": "Weeks",
"account.reverseShares.modal.expiration.month-singular": "Month",
"account.reverseShares.modal.expiration.month-plural": "Months",
"account.reverseShares.modal.expiration.year-singular": "Year",
"account.reverseShares.modal.expiration.year-plural": "Years",
"account.reverseShares.modal.max-size.label": "Max share size",
"account.reverseShares.modal.send-email": "Send email notifications",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
"account.reverseShares.modal.simplified": "Simple mode",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
"account.reverseShares.modal.public-access": "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.max-use.label": "Max uses",
"account.reverseShares.modal.max-use.description": "The maximum amount of times this URL can be used to create a share.",
"account.reverseShare.never-expires": "This reverse share will never expire.",
"account.reverseShare.expires-on": "This reverse share will expire on {expiration}.",
"account.reverseShares.table.no-shares": "No shares created yet",
"account.reverseShares.table.count.singular": "share",
"account.reverseShares.table.count.plural": "shares",
"account.reverseShares.table.shares": "Shares",
"account.reverseShares.table.remaining": "Remaining uses",
"account.reverseShares.table.max-size": "Max share size",
"account.reverseShares.table.expires": "Expires at",
"account.reverseShares.modal.reverse-share-link": "Reverse share link",
"account.reverseShares.modal.delete.title": "Delete reverse share",
"account.reverseShares.modal.delete.description": "Do you really want to delete this reverse share? If you do, the associated shares will be deleted as well.",
"account.reverseShares.modal.title": "Kreirajte obrnuto deljenje",
"account.reverseShares.modal.expiration.label": "Ističe",
"account.reverseShares.modal.expiration.minute-singular": "Minut",
"account.reverseShares.modal.expiration.minute-plural": "Minute",
"account.reverseShares.modal.expiration.hour-singular": "Sat",
"account.reverseShares.modal.expiration.hour-plural": "Sati",
"account.reverseShares.modal.expiration.day-singular": "Dan",
"account.reverseShares.modal.expiration.day-plural": "Dani",
"account.reverseShares.modal.expiration.week-singular": "Sedmica",
"account.reverseShares.modal.expiration.week-plural": "Sedmice",
"account.reverseShares.modal.expiration.month-singular": "Mesec",
"account.reverseShares.modal.expiration.month-plural": "Meseci",
"account.reverseShares.modal.expiration.year-singular": "Godina",
"account.reverseShares.modal.expiration.year-plural": "Godine",
"account.reverseShares.modal.max-size.label": "Maksimalna veličina deljenja",
"account.reverseShares.modal.send-email": "Pošalji obaveštenja i-mejlom",
"account.reverseShares.modal.send-email.description": "Pošalji obaveštenje imejlom kada se kreira deljenje pomoću ove obrnute veze za deljenje.",
"account.reverseShares.modal.simplified": "Jednostavan režim",
"account.reverseShares.modal.simplified.description": "Olakšajte osobi koja otprema fajl da ga podeli sa vama. Oni će moći da prilagode samo ime i opis deljenja.",
"account.reverseShares.modal.public-access": "Javni pristup",
"account.reverseShares.modal.public-access.description": "Učini da deljenja kreirana ovim reverznim linkom za deljenje budu javna. Ako je onemogućeno, samo vi i kreator deljenja ćete imati pristup za pregled.",
"account.reverseShares.modal.max-use.label": "Maksimalan broj korišćenja",
"account.reverseShares.modal.max-use.description": "Maksimalan broj puta koji ovaj URL može da se koristi za pravljenje deljenja.",
"account.reverseShare.never-expires": "Ovo obrnuto deljenje nikada neće isteći.",
"account.reverseShare.expires-on": "Ovo obrnuto deljenje će isteći {expiration}.",
"account.reverseShares.table.no-shares": "Još nema kreiranih deljenja",
"account.reverseShares.table.count.singular": "deljenje",
"account.reverseShares.table.count.plural": "deljenja",
"account.reverseShares.table.shares": "Deljenja",
"account.reverseShares.table.remaining": "Preostala upotreba",
"account.reverseShares.table.max-size": "Maksimalna veličina deljenja",
"account.reverseShares.table.expires": "Ističe u",
"account.reverseShares.modal.reverse-share-link": "Link za obrnuto deljenje",
"account.reverseShares.modal.delete.title": "Obrišite obrnuto deljenje",
"account.reverseShares.modal.delete.description": "Da li zaista želite da izbrišete ovo obrnuto deljenje? Ako to učinite, pridružena deljenja će takođe biti izbrisana.",
// END /account/reverseShares
// /admin
"admin.title": "Administration",
"admin.button.users": "User management",
"admin.button.shares": "Share management",
"admin.button.config": "Configuration",
"admin.version": "Version",
"admin.title": "Administracija",
"admin.button.users": "Upravljanje korisnicima",
"admin.button.shares": "Upravljanje deljenjem",
"admin.button.config": "Konfiguracija",
"admin.version": "Verzija",
// END /admin
// /admin/users
"admin.users.title": "User management",
"admin.users.table.username": "Username",
"admin.users.table.email": "Email",
"admin.users.title": "Upravljanje korisnicima",
"admin.users.table.username": "Korisničko ime",
"admin.users.table.email": "Imejl",
"admin.users.table.admin": "Admin",
"admin.users.edit.update.title": "Edit user: {username}",
"admin.users.edit.update.admin-privileges": "Admin privileges",
"admin.users.edit.update.change-password.title": "Change password",
"admin.users.edit.update.change-password.field": "New password",
"admin.users.edit.update.change-password.button": "Save new password",
"admin.users.edit.update.notify.password.success": "Password changed successfully",
"admin.users.edit.delete.title": "Delete user: {username} ?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
"admin.users.edit.update.title": "Uredite korisnika: {username}",
"admin.users.edit.update.admin-privileges": "Administratorske privilegije",
"admin.users.edit.update.change-password.title": "Promenite lozinku",
"admin.users.edit.update.change-password.field": "Nova lozinka",
"admin.users.edit.update.change-password.button": "Snimite novu lozinku",
"admin.users.edit.update.notify.password.success": "Lozinka je uspešno promenjena",
"admin.users.edit.delete.title": "Obrišite korisnika: {username} ?",
"admin.users.edit.delete.description": "Da li zaista želite da obrišete ovog korisnika i sva njegova deljenja?",
// showCreateUserModal.tsx
"admin.users.modal.create.title": "Create user",
"admin.users.modal.create.username": "Username",
"admin.users.modal.create.email": "Email",
"admin.users.modal.create.password": "Password",
"admin.users.modal.create.manual-password": "Set password manually",
"admin.users.modal.create.manual-password.description": "If not checked, the user will receive an email with a link to set their password.",
"admin.users.modal.create.admin": "Admin privileges",
"admin.users.modal.create.admin.description": "If checked, the user will be able to access the admin panel.",
"admin.users.modal.create.title": "Kreiraj korisnika",
"admin.users.modal.create.username": "Korisničko ime",
"admin.users.modal.create.email": "Imejl",
"admin.users.modal.create.password": "Lozinka",
"admin.users.modal.create.manual-password": "Postavite lozinku ručno",
"admin.users.modal.create.manual-password.description": "Ako nije označeno, korisnik će dobiti imejl sa vezom za postavljanje lozinke.",
"admin.users.modal.create.admin": "Administratorske privilegije",
"admin.users.modal.create.admin.description": "Ako je označeno, korisnik će moći da pristupi administrativnom panelu.",
// END /admin/users
// /admin/shares
"admin.shares.title": "Share management",
"admin.shares.table.id": "Share ID",
"admin.shares.table.username": "Creator",
"admin.shares.table.visitors": "Visitors",
"admin.shares.table.expires": "Expires on",
"admin.shares.edit.delete.title": "Delete share: {id}",
"admin.shares.edit.delete.description": "Do you really want to delete this share?",
"admin.shares.title": "Upravljanje deljenjem",
"admin.shares.table.id": "ID deljenja",
"admin.shares.table.username": "Kreator",
"admin.shares.table.visitors": "Posetioci",
"admin.shares.table.expires": "Ističe",
"admin.shares.edit.delete.title": "Obriši deljenje: {id}",
"admin.shares.edit.delete.description": "Da li zaista želite da obrišete ovo deljenje?",
// END /admin/shares
// /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.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.",
"upload.title": "Pošalji",
"upload.notify.confirm-leave": "Da li ste sigurni da želite da napustite ovu stranicu? Vaše otpremanje će biti otkazano.",
"upload.notify.generic-error": "Došlo je do greške pri dovršavanju deljenja.",
"upload.notify.count-failed": "Otpremanje {count} datoteka nije uspelo. Pokušavam ponovo.",
"upload.reverse-share.error.invalid.title": "Nepravilan link za obrnuto deljenje",
"upload.reverse-share.error.invalid.description": "Ovo obrnuto deljenje je isteklo ili je nevažeće.",
// Dropzone.tsx
"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.notify.file-too-big": "Your files exceed the maximum share size of {maxSize}.",
"upload.dropzone.title": "Pošalji datoteke",
"upload.dropzone.description": "Prevucite i otpustite datoteke ovde da biste započeli deljenje. Prihvatamo samo fajlove ukupne veličine do {maxSize}.",
"upload.dropzone.notify.file-too-big": "Vaše datoteke premašuju maksimalnu veličinu deljenja od {maxSize}.",
// FileList.tsx
"upload.filelist.name": "Name",
"upload.filelist.size": "Size",
"upload.filelist.name": "Naziv",
"upload.filelist.size": "Veličina",
// showCreateUploadModal.tsx
"upload.modal.title": "Create Share",
"upload.modal.link.error.invalid": "Can only contain letters, numbers, underscores, and hyphens",
"upload.modal.link.error.taken": "This link is already in use",
"upload.modal.not-signed-in": "You're not signed in",
"upload.modal.not-signed-in-description": "You will be unable to delete your share manually and view the visitor count.",
"upload.modal.expires.never": "never",
"upload.modal.expires.never-long": "Permanent share",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.",
"upload.modal.title": "Napravi deljenje",
"upload.modal.link.error.invalid": "Može da sadrži samo slova, brojeve, donje crte i crtice",
"upload.modal.link.error.taken": "Ovaj link je već u upotrebi",
"upload.modal.not-signed-in": "Niste prijavljeni",
"upload.modal.not-signed-in-description": "Nećete moći ručno da izbrišete svoje deljenje i vidite broj posetilaca.",
"upload.modal.expires.never": "nikad",
"upload.modal.expires.never-long": "Trajno deljenje",
"upload.modal.expires.error.too-long": "Datum isteka prevazilazi maksimalnu vrednost od {max}.",
"upload.modal.link.label": "Link",
"upload.modal.expires.label": "Expiration",
"upload.modal.expires.minute-singular": "Minute",
"upload.modal.expires.minute-plural": "Minutes",
"upload.modal.expires.hour-singular": "Hour",
"upload.modal.expires.hour-plural": "Hours",
"upload.modal.expires.day-singular": "Day",
"upload.modal.expires.day-plural": "Days",
"upload.modal.expires.week-singular": "Week",
"upload.modal.expires.week-plural": "Weeks",
"upload.modal.expires.month-singular": "Month",
"upload.modal.expires.month-plural": "Months",
"upload.modal.expires.year-singular": "Year",
"upload.modal.expires.year-plural": "Years",
"upload.modal.accordion.name-and-description.title": "Name and description",
"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.email.title": "Email recipients",
"upload.modal.accordion.email.placeholder": "Enter email recipients",
"upload.modal.accordion.email.invalid-email": "Invalid email address",
"upload.modal.accordion.security.title": "Security options",
"upload.modal.accordion.security.password.label": "Password protection",
"upload.modal.accordion.security.password.placeholder": "No password",
"upload.modal.accordion.security.max-views.label": "Maximum views",
"upload.modal.accordion.security.max-views.placeholder": "No limit",
"upload.modal.expires.label": "Ističe",
"upload.modal.expires.minute-singular": "Minut",
"upload.modal.expires.minute-plural": "Minute",
"upload.modal.expires.hour-singular": "Sat",
"upload.modal.expires.hour-plural": "Sati",
"upload.modal.expires.day-singular": "Dan",
"upload.modal.expires.day-plural": "Dani",
"upload.modal.expires.week-singular": "Sedmica",
"upload.modal.expires.week-plural": "Sedmice",
"upload.modal.expires.month-singular": "Mesec",
"upload.modal.expires.month-plural": "Meseci",
"upload.modal.expires.year-singular": "Godina",
"upload.modal.expires.year-plural": "Godine",
"upload.modal.accordion.name-and-description.title": "Ime i opis",
"upload.modal.accordion.name-and-description.name.placeholder": "Ime",
"upload.modal.accordion.name-and-description.description.placeholder": "Napomena za primaoce ovog deljenja",
"upload.modal.accordion.email.title": "Primaoci imejla",
"upload.modal.accordion.email.placeholder": "Unesite primaoce imejla",
"upload.modal.accordion.email.invalid-email": "Neispravna adresa imejla",
"upload.modal.accordion.security.title": "Sigurnosna podešavanja",
"upload.modal.accordion.security.password.label": "Zaštita lozinkom",
"upload.modal.accordion.security.password.placeholder": "Nema lozinke",
"upload.modal.accordion.security.max-views.label": "Maksimalan broj pregleda",
"upload.modal.accordion.security.max-views.placeholder": "Bez limita",
// showCompletedUploadModal.tsx
"upload.modal.completed.never-expires": "This share will never expire.",
"upload.modal.completed.expires-on": "This share will expire on {expiration}.",
"upload.modal.completed.share-ready": "Share ready",
"upload.modal.completed.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.never-expires": "Ovo deljenje nikada neće isteći.",
"upload.modal.completed.expires-on": "Ovo deljenje će isteći {expiration}.",
"upload.modal.completed.share-ready": "Deljenje je spremno",
"upload.modal.completed.notified-reverse-share-creator": "Obavestili smo kreatora reverznog deljenja. Takođe možete ručno podeliti ovaj link sa njima na druge načine.",
// END /upload
// /share/[id]
"share.title": "Share {shareId}",
"share.description": "Look what I've shared with you!",
"share.error.visitor-limit-exceeded.title": "Visitor limit exceeded",
"share.error.visitor-limit-exceeded.description": "The visitor limit from this share has been exceeded.",
"share.error.removed.title": "Share removed",
"share.error.not-found.title": "Share not found",
"share.error.not-found.description": "The share you're looking for doesn't exist.",
"share.error.access-denied.title": "Private share",
"share.error.access-denied.description": "The current account does not have permission to access this share",
"share.modal.password.title": "Password required",
"share.modal.password.description": "Please enter the password to acces this share.",
"share.modal.password": "Password",
"share.modal.error.invalid-password": "Invalid password",
"share.button.download-all": "Download all",
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.",
"share.modal.file-link": "File link",
"share.table.name": "Name",
"share.table.size": "Size",
"share.modal.file-preview.error.not-supported.title": "Preview not supported",
"share.modal.file-preview.error.not-supported.description": "Previews are not supported for this type of files. Please download the file to view it.",
"share.title": "Deljenje {shareId}",
"share.description": "Pogledajte šta sam podelio sa vama!",
"share.error.visitor-limit-exceeded.title": "Prekoračeno je ograničenje posetilaca",
"share.error.visitor-limit-exceeded.description": "Ograničenje posetilaca iz ovog deljenja je premašeno.",
"share.error.removed.title": "Deljenje je uklonjeno",
"share.error.not-found.title": "Deljenje nije pronađeno",
"share.error.not-found.description": "Udeo koji tražite ne postoji.",
"share.error.access-denied.title": "Privatno deljenje",
"share.error.access-denied.description": "Trenutni nalog nema dozvolu za pristup ovom deljenju",
"share.modal.password.title": "Obavezna lozinka",
"share.modal.password.description": "Molimo unesite lozinku za pristup ovom deljenju.",
"share.modal.password": "Lozinka",
"share.modal.error.invalid-password": "Neispravna lozinka",
"share.button.download-all": "Preuzmi sve",
"share.notify.download-all-preparing": "Deljenje se priprema. Molimo pokušajte ponovo za nekoliko minuta.",
"share.modal.file-link": "Veza datoteke",
"share.table.name": "Naziv",
"share.table.size": "Veličina",
"share.modal.file-preview.error.not-supported.title": "Pregled nije podržan",
"share.modal.file-preview.error.not-supported.description": "Pregledi nisu podržani za ovaj tip datoteka. Molimo preuzmite fajl da biste ga pregledali.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Edit {shareId}",
"share.edit.append-upload": "Append file",
"share.edit.notify.generic-error": "An error occurred while finishing your share.",
"share.edit.notify.save-success": "Share updated successfully",
"share.edit.title": "Uredi {shareId}",
"share.edit.append-upload": "Nadodaj fajl",
"share.edit.notify.generic-error": "Došlo je do greške prilikom završetka vašeg deljenja.",
"share.edit.notify.save-success": "Deljenje je uspešno ažurirano",
// END /share/[id]/edit
// /admin/config
"admin.config.title": "Configuration",
"admin.config.category.general": "General",
"admin.config.category.share": "Share",
"admin.config.category.email": "Email",
"admin.config.title": "Konfiguracija",
"admin.config.category.general": "Opšte",
"admin.config.category.share": "Deljenje",
"admin.config.category.email": "Imejl",
"admin.config.category.smtp": "SMTP",
"admin.config.category.oauth": "Social Login",
"admin.config.general.app-name": "App name",
"admin.config.general.app-name.description": "Name of the application",
"admin.config.general.app-url": "App URL",
"admin.config.general.app-url.description": "On which URL Pingvin Share is available",
"admin.config.general.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.description": "Whether to show the home page",
"admin.config.general.session-duration": "Session Duration",
"admin.config.general.session-duration.description": "Time in hours after which a user must log in again (default: 3 months).",
"admin.config.category.oauth": "Social login",
"admin.config.general.app-name": "Naziv aplikacije",
"admin.config.general.app-name.description": "Naziv aplikacije",
"admin.config.general.app-url": "URL aplikacije",
"admin.config.general.app-url.description": "Na kojoj URL adresi je dostupan Pingvin Share",
"admin.config.general.secure-cookies": "Bezbedni kolačići",
"admin.config.general.secure-cookies.description": "Da li želite da postavite zastavicu za bezbednost na kolačiće? Ako je omogućeno, sajt neće funkcionisati kada mu pristupate preko HTTP-a.",
"admin.config.general.show-home-page": "Prikaži početnu stranicu",
"admin.config.general.show-home-page.description": "Da li da se prikaže početna stranica",
"admin.config.general.session-duration": "Trajanje sesije",
"admin.config.general.session-duration.description": "Vreme u satima nakon kojeg korisnik mora ponovo da se prijavi (podrazumevano: 3 meseca).",
"admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "Change your logo by uploading a new image. The image must be a PNG and should have the format 1:1.",
"admin.config.general.logo.placeholder": "Pick image",
"admin.config.email.enable-share-email-recipients": "Enable 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.share-recipients-subject": "Share recipients subject",
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
"admin.config.email.share-recipients-message": "Share recipients message",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n These variables will be replaced with the actual value.",
"admin.config.email.reverse-share-subject": "Reverse share subject",
"admin.config.email.reverse-share-subject.description": "Subject of the 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.description": "Message which gets sent when someone created a share with your reverse share link. {shareUrl} will be replaced with the creator's name and the share URL.",
"admin.config.email.reset-password-subject": "Reset password subject",
"admin.config.email.reset-password-subject.description": "Subject of the sent email when a user requests a password reset.",
"admin.config.email.reset-password-message": "Reset password message",
"admin.config.email.reset-password-message.description": "Message which gets sent when a user requests a password reset. {url} will be replaced with the reset password URL.",
"admin.config.email.invite-subject": "Invite subject",
"admin.config.email.invite-subject.description": "Subject of the sent email when an admin invites a user.",
"admin.config.email.invite-message": "Invite message",
"admin.config.email.invite-message.description": "Message which gets sent when an admin invites a user. {url} will be replaced with the invite URL, {email} with the email and {password} with the users password.",
"admin.config.share.allow-registration": "Allow registration",
"admin.config.share.allow-registration.description": "Whether registration is allowed",
"admin.config.share.allow-unauthenticated-shares": "Allow unauthenticated shares",
"admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares",
"admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.max-size": "Max size",
"admin.config.share.max-size.description": "Maximum share size in bytes",
"admin.config.share.zip-compression-level": "Zip compression level",
"admin.config.share.zip-compression-level.description": "Adjust the level to balance between file size and compression speed. Valid values range from 0 to 9, with 0 being no compression and 9 being maximum compression. ",
"admin.config.share.chunk-size": "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.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.smtp.enabled": "Enable",
"admin.config.smtp.enabled.description": "Whether SMTP is enabled. Only set this to true if you entered the host, port, email, user and password of your SMTP server.",
"admin.config.smtp.host": "Host",
"admin.config.smtp.host.description": "Host of the SMTP server",
"admin.config.general.logo.description": "Promenite svoj logotip tako što ćete otpremiti novu sliku. Slika mora da bude PNG i treba da ima format 1:1.",
"admin.config.general.logo.placeholder": "Izaberi sliku",
"admin.config.email.enable-share-email-recipients": "Omogući deljenje sa primaocima imejlom",
"admin.config.email.enable-share-email-recipients.description": "Da li dozvoliti deljenje sa primaocima putem imejla. Omogućite ovo samo ako je SMTP aktiviran.",
"admin.config.email.share-recipients-subject": "Podelite naslov primaoca",
"admin.config.email.share-recipients-subject.description": "Tema imejla koja se šalje primaocima deljenja.",
"admin.config.email.share-recipients-message": "Delite poruku primaoca",
"admin.config.email.share-recipients-message.description": "Poruka koja se šalje primaocima deljenja. Dostupne promenljive:\n{creator} - Korisničko ime kreatora deljenja\n{creatorEmail} - Imejl kreatora deljenja\n{shareUrl} - URL deljenja\n{desc} - Opis deljenja\n{expires} - Datum isteka deljenja\nOve promenljive će biti zamenjene stvarnim vrednostima.",
"admin.config.email.reverse-share-subject": "Tema obrnutog deljenja",
"admin.config.email.reverse-share-subject.description": "Naslov imejla koji se šalje kada neko kreira deljenje sa vašim reverznim linkom za deljenje.",
"admin.config.email.reverse-share-message": "Obrnuto deljenje poruka",
"admin.config.email.reverse-share-message.description": "Poruka koja se šalje kada je neko napravio deljenje sa vašom obrnutom vezom za deljenje. {shareUrl} će biti zamenjen imenom kreatora i URL-om za deljenje.",
"admin.config.email.reset-password-subject": "Resetujte temu lozinke",
"admin.config.email.reset-password-subject.description": "Naslov imejla koji se šalje kada korisnik zatraži resetovanje lozinke.",
"admin.config.email.reset-password-message": "Poruka za resetovanje lozinke",
"admin.config.email.reset-password-message.description": "Poruka koja se šalje kada korisnik zatraži resetovanje lozinke. {url} će biti zamenjen linkom za resetovanje lozinke.",
"admin.config.email.invite-subject": "Pozivna tema",
"admin.config.email.invite-subject.description": "Naslov e-pošte koja se šalje kada administrator pozove korisnika.",
"admin.config.email.invite-message": "Pozivna poruka",
"admin.config.email.invite-message.description": "Poruka koja se šalje kada administrator pozove korisnika. {url} će biti zamenjen linkom za poziv, {email} imejlom, a {password} lozinkom korisnika.",
"admin.config.share.allow-registration": "Dozvoli registraciju",
"admin.config.share.allow-registration.description": "Da li je registracija dozvoljena",
"admin.config.share.allow-unauthenticated-shares": "Dozvoli deljenje bez autentifikacije",
"admin.config.share.allow-unauthenticated-shares.description": "Da li korisnici bez autentifikacije mogu da kreiraju deljenja",
"admin.config.share.max-expiration": "Maksimalni rok trajanja",
"admin.config.share.max-expiration.description": "Maksimalni rok trajanja deljenja u satima. Postavite na 0 da biste omogućili neograničeno trajanje.",
"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": "Maksimalna veličina",
"admin.config.share.max-size.description": "Maksimalna veličina deljenja u bajtovima",
"admin.config.share.zip-compression-level": "Nivo Zip kompresije",
"admin.config.share.zip-compression-level.description": "Podesite nivo da biste balansirali između veličine datoteke i brzine kompresije. Važeće vrednosti se kreću od 0 do 9, pri čemu je 0 bez kompresije, a 9 je maksimalna kompresija. ",
"admin.config.share.chunk-size": "Veličina komada",
"admin.config.share.chunk-size.description": "Podesite veličinu dela (u bajtovima) za vaša otpremanje kako biste uravnotežili efikasnost i pouzdanost u skladu sa vašom internet vezom. Manji delovi mogu poboljšati stopu uspeha za nestabilne veze, dok veći delovi omogućavaju brže otpremanje za stabilne veze.",
"admin.config.share.auto-open-share-modal": "Automatski otvori stvaranje modala deljenja",
"admin.config.share.auto-open-share-modal.description": "Modal za kreiranje deljenja automatski se pojavljuje kada korisnik izabere datoteke, eliminišući potrebu za ručnim klikom na dugme.",
"admin.config.smtp.enabled": "Omogući",
"admin.config.smtp.enabled.description": "Da li je SMTP omogućen. Postavite ovo na tačno samo ako ste uneli host, port, imejl, korisnika i lozinku vašeg SMTP servera.",
"admin.config.smtp.host": "Domaćin",
"admin.config.smtp.host.description": "Domaćin SMTP servera",
"admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "Port of the SMTP server",
"admin.config.smtp.email": "Email",
"admin.config.smtp.email.description": "Email address from wich the emails get sent",
"admin.config.smtp.username": "Username",
"admin.config.smtp.username.description": "Username of the SMTP server",
"admin.config.smtp.password": "Password",
"admin.config.smtp.password.description": "Password of the SMTP server",
"admin.config.smtp.button.test": "Send test email",
"admin.config.smtp.allow-unauthorized-certificates": "Trust unauthorized SMTP server certificates",
"admin.config.smtp.allow-unauthorized-certificates.description": "Only set this to true if you need to trust self signed certificates.",
"admin.config.oauth.allow-registration": "Allow registration",
"admin.config.oauth.allow-registration.description": "Allow users to register via social login",
"admin.config.oauth.ignore-totp": "Ignore TOTP",
"admin.config.oauth.ignore-totp.description": "Whether to ignore TOTP when user using social login",
"admin.config.oauth.disable-password": "Disable password login",
"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.smtp.port.description": "Port domaćina SMTP servera",
"admin.config.smtp.email": "Imejl",
"admin.config.smtp.email.description": "Adresa imejla sa kojeg se poruke šalju",
"admin.config.smtp.username": "Korisničko ime",
"admin.config.smtp.username.description": "Korisničko ime SMTP servera",
"admin.config.smtp.password": "Lozinka",
"admin.config.smtp.password.description": "Lozinka SMTP servera",
"admin.config.smtp.button.test": "Pošalji testni imejl",
"admin.config.smtp.allow-unauthorized-certificates": "Verovanje neautorizovanim SMTP serverskim sertifikatima",
"admin.config.smtp.allow-unauthorized-certificates.description": "Ovo postavite na \"istina\" samo ako je potrebno verovati samo-potpisanim sertifikatima.",
"admin.config.oauth.allow-registration": "Dozvoli registraciju",
"admin.config.oauth.allow-registration.description": "Dozvolite korisnicima da se registruju putem društvene prijave",
"admin.config.oauth.ignore-totp": "Zanemari TOTP",
"admin.config.oauth.ignore-totp.description": "Da li da ignorišete TOTP kada korisnik koristi prijavu na društvenim mrežama",
"admin.config.oauth.disable-password": "Onemogućite prijavu lozinkom",
"admin.config.oauth.disable-password.description": "Omogućiti prijavu lozinkom ili ne\nUverite se da je provajder za OAuth pravilno konfigurisan pre aktiviranja ove konfiguracije kako biste izbegli zaključavanje naloga.",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Whether GitHub login is enabled",
"admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "Client ID of the GitHub OAuth app",
"admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "Client secret of the GitHub OAuth app",
"admin.config.oauth.github-enabled.description": "Da li je prijavljivanje na GitHub omogućeno",
"admin.config.oauth.github-client-id": "GitHub ID klijenta",
"admin.config.oauth.github-client-id.description": "ID klijenta GitHub OAuth aplikacije",
"admin.config.oauth.github-client-secret": "Tajna GitHub klijenta",
"admin.config.oauth.github-client-secret.description": "Tajna klijenta GitHub OAuth aplikacije",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Whether Google login is enabled",
"admin.config.oauth.google-client-id": "Google Client ID",
"admin.config.oauth.google-client-id.description": "Client ID of the Google OAuth app",
"admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "Client secret of the Google OAuth app",
"admin.config.oauth.google-enabled.description": "Da li je prijavljivanje na Google omogućeno",
"admin.config.oauth.google-client-id": "ID Google klijenta",
"admin.config.oauth.google-client-id.description": "ID klijenta Google OAuth aplikacije",
"admin.config.oauth.google-client-secret": "Tajna Google klijenta",
"admin.config.oauth.google-client-secret.description": "Tajna klijenta Google OAuth aplikacije",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Whether Microsoft login is enabled",
"admin.config.oauth.microsoft-enabled.description": "Da li je prijavljivanje na Microsoft omogućeno",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Tenant ID of the Microsoft OAuth app\ncommon: Users with both a personal Microsoft account and a work or school account from Microsoft Entra ID can sign in to the application. organizations: Only users with work or school accounts from Microsoft Entra ID can sign in to the application.\nconsumers: Only users with a personal Microsoft account can sign in to the application.\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: Only users from a specific Microsoft Entra tenant (directory members with a work or school account or directory guests with a personal Microsoft account) can sign in to the application.",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "Client ID of the Microsoft OAuth app",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "Client secret of the Microsoft OAuth app",
"admin.config.oauth.microsoft-tenant.description": "ID zakupca za Microsoft OAuth aplikaciju\nuobičajeno: Korisnici sa ličnim Microsoft nalogom i poslovnim ili školskim nalogom sa Microsoft Entra ID-a mogu da se prijave u aplikaciju. organizacije: Samo korisnici sa poslovnim ili školskim nalozima sa Microsoft Entra ID-a mogu da se prijave u aplikaciju.\npotrošači: Samo korisnici sa ličnim Microsoft nalogom mogu da se prijave u aplikaciju.\nime domena zakupca Microsoft Entra ID ili ID zakupca u GUID formatu: Samo korisnici iz određenog Microsoft Entra ID stanara (članovi direktorijuma sa poslovnim ili školskim nalogom ili gosti direktorijuma sa ličnim Microsoft nalogom) mogu da se prijave u aplikaciju.",
"admin.config.oauth.microsoft-client-id": "Microsoft ID klijenta",
"admin.config.oauth.microsoft-client-id.description": "ID klijenta Microsoft OAuth aplikacije",
"admin.config.oauth.microsoft-client-secret": "Tajna Microsoft klijenta",
"admin.config.oauth.microsoft-client-secret.description": "Tajna klijenta za Microsot OAuth aplikaciju",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Whether Discord login is enabled",
"admin.config.oauth.discord-limited-users": "Discord limited users",
"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-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord Client ID",
"admin.config.oauth.discord-client-id.description": "Client ID of the Discord OAuth app",
"admin.config.oauth.discord-client-secret": "Discord Client secret",
"admin.config.oauth.discord-client-secret.description": "Client secret of the Discord OAuth app",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",
"admin.config.oauth.oidc-role-path.description": "Must be a valid JMES path referencing an array of roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access",
"admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a users roles for them to log in. " + "Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access",
"admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a users roles for them to access the admin panel. " + "Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
"admin.config.oauth.discord-enabled.description": "Da li je prijavljivanje na Discord omogućeno",
"admin.config.oauth.discord-limited-users": "Ograničenje po Discord korisnicima",
"admin.config.oauth.discord-limited-users.description": "Ograničite prijavljivanje na određene korisnike pomoću njihovog Discord ID-a. Ostavite prazno da biste onemogućili.",
"admin.config.oauth.discord-limited-guild": "Ograničenje po Discord serveru",
"admin.config.oauth.discord-limited-guild.description": "Ograničite prijavljivanje na korisnike određenog servera. Ostavite prazno da biste onemogućili.",
"admin.config.oauth.discord-client-id": "Discord ID klijenta",
"admin.config.oauth.discord-client-id.description": "ID klijenta Discord OAuth aplikacije",
"admin.config.oauth.discord-client-secret": "Discord klijent tajna",
"admin.config.oauth.discord-client-secret.description": "Tajna klijenta Discord OAuth aplikacije",
"admin.config.oauth.oidc-enabled": "OpenId Connect",
"admin.config.oauth.oidc-enabled.description": "Omogućiti prijavu OpenID Connect-om ili ne",
"admin.config.oauth.oidc-discovery-uri": "URI za OpenID Connect Discovery",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI za otkrivanje OpenID Connect OAuth aplikacije",
"admin.config.oauth.oidc-sign-out": "Odjavljivanje sa OpenID Connect-a",
"admin.config.oauth.oidc-sign-out.description": "Da li će dugme „Odjavi se“ odjaviti korisnika i sa OpenID Connect provajdera",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "Potraživanje korisničkog imena u OpenID Connect",
"admin.config.oauth.oidc-username-claim.description": "Potraživanje korisničkog imena u OpenID Connect ID tokenu. Ostavite prazno ako ne znate šta je ova konfiguracija.",
"admin.config.oauth.oidc-role-path": "Putanja do uloga u OpenID Connect tokenu",
"admin.config.oauth.oidc-role-path.description": "Mora biti validna JMES putanja koja referencira niz uloga. " + "Upravljanje pravima pristupa pomoću uloga u OpenID Connect-u se preporučuje samo ako nijedan drugi provajder identiteta nije konfigurisan i ako je prijava lozinkom onemogućena. " + "Ostavite prazno ako ne znate šta je ova konfiguracija.",
"admin.config.oauth.oidc-role-general-access": "Uloga u OpenID Connect-u za opšti pristup",
"admin.config.oauth.oidc-role-general-access.description": "Uloga potrebna za opšti pristup. Mora biti prisutna u ulogama korisnika kako bi se mogao prijaviti. " + "Ostavite prazno ako ne znate šta je ova konfiguracija.",
"admin.config.oauth.oidc-role-admin-access": "Uloga u OpenID Connect-u za administratorski pristup",
"admin.config.oauth.oidc-role-admin-access.description": "Uloga potrebna za administratorski pristup. Mora biti prisutna u ulogama korisnika kako bi mogli pristupiti administratorskom panelu. " + "Ostavite prazno ako ne znate šta je ova konfiguracija.",
"admin.config.oauth.oidc-client-id": "OpenID Connect ID klijenta",
"admin.config.oauth.oidc-client-id.description": "ID klijenta OpenID Connect OAuth aplikacije",
"admin.config.oauth.oidc-client-secret": "OpenID Connect tajna klijenta",
"admin.config.oauth.oidc-client-secret.description": "Tajna klijenta OpenID Connect OAuth aplikacije",
"admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP",
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login",
"admin.config.ldap.url": "Server URL",
"admin.config.ldap.url.description": "URL of the LDAP server",
"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-password": "Bind password",
"admin.config.ldap.bind-password.description": "Password used to perform the user search",
"admin.config.ldap.search-base": "User base",
"admin.config.ldap.search-base.description": "Base location, where the user search will be performed",
"admin.config.ldap.search-query": "User 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.admin-groups": "Admin group",
"admin.config.ldap.admin-groups.description": "Group required for administrative access.",
"admin.config.ldap.field-name-member-of": "User groups attribute name",
"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-email": "User email attribute name",
"admin.config.ldap.field-name-email.description": "LDAP attribute name for the email of an user.",
"admin.config.ldap.enabled": "Omogući LDAP",
"admin.config.ldap.enabled.description": "Koristi LDAP autentifikaciju za prijavu korisnika",
"admin.config.ldap.url": "URL servera",
"admin.config.ldap.url.description": "URL LDAP servera",
"admin.config.ldap.bind-dn": "DN vezivanje",
"admin.config.ldap.bind-dn.description": "Podrazumevani korisnik koji se koristi za pretragu korisnika",
"admin.config.ldap.bind-password": "Lozinka za vezivanje",
"admin.config.ldap.bind-password.description": "Lozinka koja se koristi za izvršavanje pretrage korisnika",
"admin.config.ldap.search-base": "Baza korisnika",
"admin.config.ldap.search-base.description": "Lokacija baze, mesto gde će se izvršiti pretraga korisnika",
"admin.config.ldap.search-query": "Upit za korisnika",
"admin.config.ldap.search-query.description": "Upit za korisnika koji će se koristiti za pretragu „Baze korisnika“ za LDAP korisnika. %username% se može koristiti kao oznaka za unos korisnika.",
"admin.config.ldap.admin-groups": "Administratorska grupa",
"admin.config.ldap.admin-groups.description": "Grupa koja je potrebna za administratorski pristup.",
"admin.config.ldap.field-name-member-of": "Naziv atributa korisničkih grupa",
"admin.config.ldap.field-name-member-of.description": "LDAP naziv atributa za grupe čiji je korisnik član. Ovo se koristi pri proveri administratorske grupe.",
"admin.config.ldap.field-name-email": "Naziv atributa za imejl korisnika",
"admin.config.ldap.field-name-email.description": "LDAP naziv atributa za imejl korisnika.",
// 404
"404.description": "Oops this page doesn't exist.",
"404.button.home": "Bring me back home",
"404.description": "Opa - Ova strana ne postoji.",
"404.button.home": "Vrati me na početak",
// error
"error.title": "Error",
"error.description": "Oops!",
"error.button.back": "Go back",
"error.msg.default": "Something went wrong.",
"error.msg.access_denied": "You canceled the authentication process, please try again.",
"error.msg.expired_token": "The authentication process took too long, please try again.",
"error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "User linked to this {0} account doesn't exist.",
"error.msg.no_email": "Can't get email address from this {0} account.",
"error.msg.already_linked": "This {0} account is already linked to another account.",
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"error.msg.user_not_allowed": "You are not allowed to sign in.",
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.",
"error.title": "Greška",
"error.description": "Ups!",
"error.button.back": "Idi nazad",
"error.msg.default": "Nešto je pošlo naopako.",
"error.msg.access_denied": "Otkazali ste proces autentifikacije, pokušajte ponovo.",
"error.msg.expired_token": "Proces autentifikacije je trajao predugo, pokušajte ponovo.",
"error.msg.invalid_token": "Interna greška",
"error.msg.no_user": "Korisnik povezan sa ovim {0} nalogom ne postoji.",
"error.msg.no_email": "Ne mogu da dobijem adresu imejla sa ovog {0} naloga.",
"error.msg.already_linked": "Ovaj {0} nalog je već povezan sa drugim nalogom.",
"error.msg.not_linked": "Ovaj {0} nalog još uvek nije povezan ni sa jednim nalogom.",
"error.msg.unverified_account": "Ovaj {0} nalog je nepotvrđen, molimo pokušajte ponovo nakon verifikacije.",
"error.msg.user_not_allowed": "Nije vam dozvoljeno da se prijavite.",
"error.msg.cannot_get_user_info": "Ne mogu da dobijem vaše korisničke informacije sa ovog {0} naloga.",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID Connect",
"error.param.provider_oidc": "OpenId Connect",
// Common translations
"common.button.save": "Save",
"common.button.create": "Create",
"common.button.submit": "Submit",
"common.button.delete": "Delete",
"common.button.cancel": "Cancel",
"common.button.confirm": "Confirm",
"common.button.disable": "Disable",
"common.button.share": "Share",
"common.button.generate": "Generate",
"common.button.done": "Done",
"common.button.save": "Sačuvaj",
"common.button.create": "Napravi",
"common.button.submit": "Pošalji",
"common.button.delete": "Obriši",
"common.button.cancel": "Otkaži",
"common.button.confirm": "Potvrdi",
"common.button.disable": "Onemogući",
"common.button.share": "Deljenje",
"common.button.generate": "Generiši",
"common.button.done": "Gotovo",
"common.text.link": "Link",
"common.text.navigate-to-link": "Visit link",
"common.text.or": "or",
"common.text.redirecting": "Redirecting...",
"common.button.go-back": "Go back",
"common.button.go-home": "Go home",
"common.notify.copied": "Your link was copied to the clipboard",
"common.success": "Success",
"common.error": "Error",
"common.error.unknown": "An unknown error occurred",
"common.error.invalid-email": "Invalid email address",
"common.error.too-short": "Must be at least {length} characters",
"common.error.too-long": "Must be at most {length} characters",
"common.error.number-too-small": "Must be at least {min}",
"common.error.number-too-large": "Must be at most {max}",
"common.error.exact-length": "Must be exactly {length} characters",
"common.error.invalid-number": "Must be a number",
"common.error.field-required": "This field is required"
"common.text.navigate-to-link": "Posetite link",
"common.text.or": "ili",
"common.text.redirecting": "Preusmeravanje...",
"common.button.go-back": "Idi nazad",
"common.button.go-home": "Početna stranica",
"common.notify.copied": "Vaša veza je kopirana u međuspremnik",
"common.success": "Uspešno",
"common.error": "Greška",
"common.error.unknown": "Došlo je do nepoznate greške",
"common.error.invalid-email": "Neispravna adresa imejla",
"common.error.too-short": "Mora da ima najmanje {length} znakova",
"common.error.too-long": "Mora da ima najviše {length} znakova",
"common.error.number-too-small": "Mora biti najmanje {min}",
"common.error.number-too-large": "Mora biti najviše {max}",
"common.error.exact-length": "Mora da ima tačno {length} znakova",
"common.error.invalid-number": "Mora biti broj",
"common.error.field-required": "Polje je obavezno"
};

View File

@@ -1,10 +1,10 @@
export default {
// Navbar
"navbar.upload": "Пошаљи",
"navbar.signin": "Пријавите се",
"navbar.upload": "Отпреми",
"navbar.signin": "Пријава",
"navbar.home": "Почетна",
"navbar.signup": "Региструј се",
"navbar.links.shares": "Moja дељења",
"navbar.signup": "Регистрација",
"navbar.links.shares": "Моја дељења",
"navbar.links.reverse": "Обрнуто дељење",
"navbar.avatar.account": "Мој налог",
"navbar.avatar.admin": "Администрација",
@@ -12,22 +12,22 @@ export default {
// END navbar
// /
"home.title": "<h>Само-хостована</h> платформа за дељење фајлова.",
"home.description": "Да ли заиста желите да дате своје личне фајлове у руке трећих страна као што је WeTransfer?",
"home.bullet.a.name": "Личан хостинг",
"home.description": "Да ли заиста желите да дате своје личне датотеке у руке трећих страна као што је WeTransfer?",
"home.bullet.a.name": "Само-хостовано",
"home.bullet.a.description": "Хостујте Pingvin Share на својој машини.",
"home.bullet.b.name": "Privatnost",
"home.bullet.b.description": "Ваши фајлови су ваши и никада неће бити доступни трећим странама.",
"home.bullet.b.description": "Ваше датотеке су ваше и никада неће бити доступне трећим странама.",
"home.bullet.c.name": "Нема досадног ограничења величине датотеке",
"home.bullet.c.description": "Отпремите онолико великих датотека колико желите. Само ваш чврсти диск је ваша граница.",
"home.button.start": "Почети",
"home.bullet.c.description": "Отпремите онолико великих датотека колико желите. Само ваш чврсти диск је граница.",
"home.button.start": "Започни",
"home.button.source": "Изворни код",
// END /
// /auth/signin
"signin.title": "Добродошли назад",
"signin.description": "Још увек немате налог?",
"signin.button.signup": "Региструј се",
"signin.input.email-or-username": "Е-пошта или корисничко име",
"signin.input.email-or-username.placeholder": "Ваша Е-пошта или корисничко име",
"signin.input.email-or-username": "Имејл или корисничко име",
"signin.input.email-or-username.placeholder": "Ваш имејл или корисничко име",
"signin.input.password": "Лозинка",
"signin.input.password.placeholder": "Ваша лозинка",
"signin.button.submit": "Пријавите се",
@@ -47,8 +47,8 @@ export default {
"signup.button.signin": "Пријавите се",
"signup.input.username": "Корисничко име",
"signup.input.username.placeholder": "Ваше корисничко име",
"signup.input.email": "E-пошта",
"signup.input.email.placeholder": "Ваш и-мејл",
"signup.input.email": "Имејл",
"signup.input.email.placeholder": "Ваш имејл",
"signup.button.submit": "Хајде да почнемо",
// END /auth/signup
// /auth/totp
@@ -57,8 +57,8 @@ export default {
// END /auth/totp
// /auth/reset-password
"resetPassword.title": "Заборавили сте лозинку?",
"resetPassword.description": "Унесите своју е-пошту да бисте ресетовали лозинку.",
"resetPassword.notify.success": "Порука са линком за ресетовање лозинке је послата ако унета имејл адреса постоји.",
"resetPassword.description": "Унесите свој имејл да бисте ресетовали лозинку.",
"resetPassword.notify.success": "Порука са линком за ресетовање лозинке је послата ако унета и-мејл адреса постоји.",
"resetPassword.button.back": "Назад на страницу за пријаву",
"resetPassword.text.resetPassword": "Обнови лозинку",
"resetPassword.text.enterNewPassword": "Унесите вашу нову лозинку",
@@ -68,12 +68,12 @@ export default {
"account.title": "Мој налог",
"account.card.info.title": "Подаци о налогу",
"account.card.info.username": "Корисничко име",
"account.card.info.email": "E-пошта",
"account.card.info.email": "Имејл",
"account.notify.info.success": "Налог је успешно ажуриран",
"account.card.password.title": "Лозинка",
"account.card.password.old": "Стара лозинка",
"account.card.password.new": "Нова лозинка",
"account.card.password.noPasswordSet": "Немате постављену лозинку. Да бисте се пријавили користећи имејл и лозинку, потребно је да направите лозинку.",
"account.card.password.noPasswordSet": "Немате постављену лозинку. Да бисте се пријавили користећи и-мејл и лозинку, потребно је да направите лозинку.",
"account.notify.password.success": "Лозинка је успешно промењена",
"account.card.oauth.title": "Социал логин",
"account.card.oauth.github": "GitHub",
@@ -112,15 +112,15 @@ export default {
"account.modal.delete.description": "Да ли заиста желите да избришете свој налог укључујући све ваше активне дељења?",
// END /account
// /account/shares
"account.shares.title": "Moja дељења",
"account.shares.title": "Моја дељења",
"account.shares.title.empty": "Овде је празно 👀",
"account.shares.description.empty": "Немате никаква дељења.",
"account.shares.button.create": "Направите",
"account.shares.info.title": "Делите информације",
"account.shares.table.id": "ИД",
"account.shares.table.id": "ID",
"account.shares.table.name": "Назив",
"account.shares.table.description": "Опис",
"account.shares.table.visitors": "Посетици",
"account.shares.table.visitors": "Посетиоци",
"account.shares.table.expiresAt": "Истиче",
"account.shares.table.createdAt": "Направљено",
"account.shares.table.size": "Величина",
@@ -150,8 +150,8 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "Година",
"account.reverseShares.modal.expiration.year-plural": "Године",
"account.reverseShares.modal.max-size.label": "Максимална величина дељења",
"account.reverseShares.modal.send-email": "Пошаљи обавештења е-поштом",
"account.reverseShares.modal.send-email.description": "Пошаљи обавештење е-поштом када се креира дељење помоћу ове обрнуте везе за дељење.",
"account.reverseShares.modal.send-email": "Пошаљи обавештења и-мејлом",
"account.reverseShares.modal.send-email.description": "Пошаљи обавештење имејлом када се креира дељење помоћу ове обрнуте везе за дељење.",
"account.reverseShares.modal.simplified": "Једноставан режим",
"account.reverseShares.modal.simplified.description": "Олакшајте особи која отпрема фајл да га подели са вама. Они ће моћи да прилагоде само име и опис дељења.",
"account.reverseShares.modal.public-access": "Јавни приступ",
@@ -174,14 +174,14 @@ export default {
// /admin
"admin.title": "Администрација",
"admin.button.users": "Управљање корисницима",
"admin.button.shares": "Управљање deljenjima",
"admin.button.shares": "Управљање дељењем",
"admin.button.config": "Конфигурација",
"admin.version": "Верзија",
// END /admin
// /admin/users
"admin.users.title": "Управљање корисницима",
"admin.users.table.username": "Корисничко име",
"admin.users.table.email": "E-пошта",
"admin.users.table.email": "Имејл",
"admin.users.table.admin": "Админ",
"admin.users.edit.update.title": "Уредите корисника: {username}",
"admin.users.edit.update.admin-privileges": "Администраторске привилегије",
@@ -194,10 +194,10 @@ export default {
// showCreateUserModal.tsx
"admin.users.modal.create.title": "Креирај корисника",
"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.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.description": "Ако је означено, корисник ће моћи да приступи административном панелу.",
// END /admin/users
@@ -212,14 +212,14 @@ export default {
// END /admin/shares
// /upload
"upload.title": "Пошаљи",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.confirm-leave": "Да ли сте сигурни да желите да напустите ову страницу? Ваше отпремање ће бити отказано.",
"upload.notify.generic-error": "Дошло је до грешке при довршавању дељења.",
"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.",
"upload.reverse-share.error.invalid.title": "Неправилан линк за обрнуто дељење",
"upload.reverse-share.error.invalid.description": "Ово обрнуто дељење је истекло или је неважеће.",
// Dropzone.tsx
"upload.dropzone.title": "Пошаљи датотеке",
"upload.dropzone.description": "Превуците и отпустите фајлове овде да бисте започели дељење. Прихватамо само фајлове укупне величине до {maxSize}.",
"upload.dropzone.description": "Превуците и отпустите датотеке овде да бисте започели дељење. Прихватамо само фајлове укупне величине до {maxSize}.",
"upload.dropzone.notify.file-too-big": "Ваше датотеке премашују максималну величину дељења од {maxSize}.",
// FileList.tsx
"upload.filelist.name": "Назив",
@@ -250,9 +250,9 @@ export default {
"upload.modal.accordion.name-and-description.title": "Име и опис",
"upload.modal.accordion.name-and-description.name.placeholder": "Име",
"upload.modal.accordion.name-and-description.description.placeholder": "Напомена за примаоце овог дељења",
"upload.modal.accordion.email.title": "Примаоци е-поште",
"upload.modal.accordion.email.placeholder": "Унесите примаоце е-поште",
"upload.modal.accordion.email.invalid-email": "Неисправна адреса е-поште",
"upload.modal.accordion.email.title": "Примаоци имејла",
"upload.modal.accordion.email.placeholder": "Унесите примаоце имејла",
"upload.modal.accordion.email.invalid-email": "Неисправна адреса имејла",
"upload.modal.accordion.security.title": "Сигурносна подешавања",
"upload.modal.accordion.security.password.label": "Заштита лозинком",
"upload.modal.accordion.security.password.placeholder": "Нема лозинке",
@@ -284,7 +284,7 @@ export default {
"share.table.name": "Назив",
"share.table.size": "Величина",
"share.modal.file-preview.error.not-supported.title": "Преглед није подржан",
"share.modal.file-preview.error.not-supported.description": "Прегледи нису подржани за овај тип фајлова. Молимо преузмите фајл да бисте га прегледали.",
"share.modal.file-preview.error.not-supported.description": "Прегледи нису подржани за овај тип датотека. Молимо преузмите фајл да бисте га прегледали.",
// END /share/[id]
// /share/[id]/edit
"share.edit.title": "Уреди {shareId}",
@@ -296,15 +296,15 @@ export default {
"admin.config.title": "Конфигурација",
"admin.config.category.general": "Опште",
"admin.config.category.share": "Дељење",
"admin.config.category.email": "E-пошта",
"admin.config.category.email": "Имејл",
"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.description": "Назив апликације",
"admin.config.general.app-url": "URL апликације",
"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.secure-cookies": "Безбедни колачићи",
"admin.config.general.secure-cookies.description": "Да ли желите да поставите заставицу за безбедност на колачиће? Ако је омогућено, сајт неће функционисати када му приступате преко HTTP-а.",
"admin.config.general.show-home-page": "Прикажи почетну страницу",
"admin.config.general.show-home-page.description": "Да ли да се прикаже почетна страница",
"admin.config.general.session-duration": "Трајање сесије",
@@ -312,139 +312,143 @@ export default {
"admin.config.general.logo": "Лого",
"admin.config.general.logo.description": "Промените свој логотип тако што ћете отпремити нову слику. Слика мора да буде PNG и треба да има формат 1:1.",
"admin.config.general.logo.placeholder": "Изабери слику",
"admin.config.email.enable-share-email-recipients": "Омогући дељење са примаоцима е-поштом",
"admin.config.email.enable-share-email-recipients.description": "Да ли дозволити дељење са примаоцима путем е-поште. Омогућите ово само ако је SMTP активиран.",
"admin.config.email.enable-share-email-recipients": "Омогући дељење са примаоцима имејлом",
"admin.config.email.enable-share-email-recipients.description": "Да ли дозволити дељење са примаоцима путем имејла. Омогућите ово само ако је SMTP активиран.",
"admin.config.email.share-recipients-subject": "Поделите наслов примаоца",
"admin.config.email.share-recipients-subject.description": "Тема е-поруке која се шаље примаоцима дељења.",
"admin.config.email.share-recipients-subject.description": "Тема имејла која се шаље примаоцима дељења.",
"admin.config.email.share-recipients-message": "Делите поруку примаоца",
"admin.config.email.share-recipients-message.description": "Порука која се шаље примаоцима дељења. Доступне променљиве:\n{creator} - Корисничко име креатора дељења\n{shareUrl} - URL дељења\n{desc} - Опис дељења\n{expires} - Датум истека дељења\nОве променљиве ће бити замењене стварним вредностима.",
"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.description": "Наслов е-поште која се шаље када неко креира дељење са вашим реверзним линком за дељење.",
"admin.config.email.reverse-share-subject.description": "Наслов имејла који се шаље када неко креира дељење са вашим реверзним линком за дељење.",
"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.description": "Наслов е-поште која се шаље када корисник затражи ресетовање лозинке.",
"admin.config.email.reset-password-subject.description": "Наслов имејла који се шаље када корисник затражи ресетовање лозинке.",
"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.description": "Наслов е-поште која се шаље када администратор позове корисника.",
"admin.config.email.invite-message": "Позивна порука",
"admin.config.email.invite-message.description": "Порука која се шаље када администратор позове корисника. {url} ће бити замењен линком за позив, {email} е-поштом, а {password} лозинком корисника.",
"admin.config.email.invite-message.description": "Порука која се шаље када администратор позове корисника. {url} ће бити замењен линком за позив, {email} имејлом, а {password} лозинком корисника.",
"admin.config.share.allow-registration": "Дозволи регистрацију",
"admin.config.share.allow-registration.description": "Да ли је регистрација дозвољена",
"admin.config.share.allow-unauthenticated-shares": "Дозволи дељење без аутентификације",
"admin.config.share.allow-unauthenticated-shares.description": "Да ли корисници без аутентификације могу да креирају дељења",
"admin.config.share.max-expiration": "Максимални рок трајања",
"admin.config.share.max-expiration.description": "Максимални рок трајања дељења у сатима. Поставите на 0 да бисте омогућили неограничено трајање.",
"admin.config.share.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": "Максимална величина",
"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.chunk-size": "Величина комада",
"admin.config.share.chunk-size.description": "Подесите величину дела (у бајтовима) за ваша отпремање како бисте уравнотежили ефикасност и поузданост у складу са вашом интернет везом. Мањи делови могу побољшати стопу успеха за нестабилне везе, док већи делови омогућавају брже отпремање за стабилне везе.",
"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": "Омогући",
"admin.config.smtp.enabled.description": "Да ли је SMTP омогућен. Поставите ово на тачно само ако сте унели хост, порт, е-пошту, корисника и лозинку вашег SMTP сервера.",
"admin.config.smtp.enabled.description": "Да ли је SMTP омогућен. Поставите ово на тачно само ако сте унели хост, порт, имејл, корисника и лозинку вашег SMTP сервера.",
"admin.config.smtp.host": "Домаћин",
"admin.config.smtp.host.description": "Домаћин SMTP сервера",
"admin.config.smtp.port": "Порт",
"admin.config.smtp.port.description": "Порт домаћина SMTP сервера",
"admin.config.smtp.email": "E-пошта",
"admin.config.smtp.email.description": "Email address from wich the emails get sent",
"admin.config.smtp.email": "Имејл",
"admin.config.smtp.email.description": "Адреса имејла са којег се поруке шаљу",
"admin.config.smtp.username": "Корисничко име",
"admin.config.smtp.username.description": "Корисничко име SMTP сервера",
"admin.config.smtp.password": "Лозинка",
"admin.config.smtp.password.description": "Лозинка SMTP сервера",
"admin.config.smtp.button.test": "Пошаљи тестну е-пошту",
"admin.config.smtp.allow-unauthorized-certificates": "Trust unauthorized SMTP server certificates",
"admin.config.smtp.allow-unauthorized-certificates.description": "Only set this to true if you need to trust self signed certificates.",
"admin.config.smtp.button.test": "Пошаљи тестни имејл",
"admin.config.smtp.allow-unauthorized-certificates": "Веровање неауторизованим SMTP серверским сертификатима",
"admin.config.smtp.allow-unauthorized-certificates.description": "Ово поставите на \"истина\" само ако је потребно веровати само-потписаним сертификатима.",
"admin.config.oauth.allow-registration": "Дозволи регистрацију",
"admin.config.oauth.allow-registration.description": "Дозволите корисницима да се региструју путем друштвене пријаве",
"admin.config.oauth.ignore-totp": "Занемари ТОТП",
"admin.config.oauth.ignore-totp.description": "Да ли да игноришете ТОТП када корисник користи пријаву на друштвеним мрежама",
"admin.config.oauth.disable-password": "Disable password login",
"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": "Онемогућите пријаву лозинком",
"admin.config.oauth.disable-password.description": "Омогућити пријаву лозинком или не\nУверите се да је провајдер за OAuth правилно конфигурисан пре активирања ове конфигурације како бисте избегли закључавање налога.",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Да ли је пријављивање на GitHub омогућено",
"admin.config.oauth.github-client-id": "GitHub ИД клијента",
"admin.config.oauth.github-client-id.description": "ИД клијента GitHub OAuth апликације",
"admin.config.oauth.github-client-id": "GitHub ID клијента",
"admin.config.oauth.github-client-id.description": "ID клијента GitHub OAuth апликације",
"admin.config.oauth.github-client-secret": "Тајна GitHub клијента",
"admin.config.oauth.github-client-secret.description": "Тајна клијента GitHub OAuth апликације",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "Да ли је пријављивање на Google омогућено",
"admin.config.oauth.google-client-id": "ИД Google клијента",
"admin.config.oauth.google-client-id.description": "ИД клијента Google OAuth апликације",
"admin.config.oauth.google-client-id": "ID Google клијента",
"admin.config.oauth.google-client-id.description": "ID клијента Google OAuth апликације",
"admin.config.oauth.google-client-secret": "Тајна Google клијента",
"admin.config.oauth.google-client-secret.description": "Тајна клијента Google OAuth апликације",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "Да ли је пријављивање на Microsoft омогућено",
"admin.config.oauth.microsoft-tenant": "Microsoft 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-client-id": "Microsotf Цлиент ИД",
"admin.config.oauth.microsoft-client-id.description": "ИД клијента Microsoft OAuth апликације",
"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": "Microsoft ID клијента",
"admin.config.oauth.microsoft-client-id.description": "ID клијента Microsoft OAuth апликације",
"admin.config.oauth.microsoft-client-secret": "Тајна Microsoft клијента",
"admin.config.oauth.microsoft-client-secret.description": "Тајна клијента за Microsot OAuth апликацију",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Да ли је пријављивање на Discord омогућено",
"admin.config.oauth.discord-limited-users": "Discord limited users",
"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-guild": "Discord limited server ID",
"admin.config.oauth.discord-limited-guild.description": "Limit signing in to users in a specific server. Leave it blank to disable.",
"admin.config.oauth.discord-client-id": "Discord ИД клијента",
"admin.config.oauth.discord-client-id.description": "ИД клијента Discord OAuth апликације",
"admin.config.oauth.discord-limited-users": "Ограничење по Discord корисницима",
"admin.config.oauth.discord-limited-users.description": "Ограничите пријављивање на одређене кориснике помоћу њиховог Discord ID-а. Оставите празно да бисте онемогућили.",
"admin.config.oauth.discord-limited-guild": "Ограничење по Discord серверу",
"admin.config.oauth.discord-limited-guild.description": "Ограничите пријављивање на кориснике одређеног сервера. Оставите празно да бисте онемогућили.",
"admin.config.oauth.discord-client-id": "Discord ID клијента",
"admin.config.oauth.discord-client-id.description": "ID клијента Discord OAuth апликације",
"admin.config.oauth.discord-client-secret": "Discord клијент тајна",
"admin.config.oauth.discord-client-secret.description": "Тајна клијента Discord OAuth апликације",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled.description": "Whether OpenID Connect login is enabled",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",
"admin.config.oauth.oidc-role-path.description": "Must be a valid JMES path referencing an array of roles. " + "Managing access rights using OpenID Connect roles is only recommended if no other identity provider is configured and password login is disabled. " + "Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-general-access": "OpenID Connect role for general access",
"admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a users roles for them to log in. " + "Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access",
"admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a users roles for them to access the admin panel. " + "Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-client-id.description": "Client ID of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-client-secret": "OpenID Connect Client secret",
"admin.config.oauth.oidc-client-secret.description": "Client secret of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-enabled.description": "Омогућити пријаву OpenID Connect-ом или не",
"admin.config.oauth.oidc-discovery-uri": "URI за OpenID Connect Discovery",
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI за откривање OpenID Connect OAuth апликације",
"admin.config.oauth.oidc-sign-out": "Одјављивање са OpenID Connect-a",
"admin.config.oauth.oidc-sign-out.description": "Да ли ће дугме „Одјави се“ одјавити корисника и са OpenID Connect провајдера",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "Потраживање корисничког имена у OpenID Connect",
"admin.config.oauth.oidc-username-claim.description": "Потраживање корисничког имена у OpenID Connect ID токену. Оставите празно ако не знате шта је ова конфигурација.",
"admin.config.oauth.oidc-role-path": "Путања до улога у OpenID Connect токену",
"admin.config.oauth.oidc-role-path.description": "Мора бити валидна JMES путања која референцира низ улога. " + "Управљање правима приступа помоћу улога у OpenID Connect-у се препоручује само ако ниједан други провајдер идентитета није конфигурисан и ако је пријава лозинком онемогућена. " + "Оставите празно ако не знате шта је ова конфигурација.",
"admin.config.oauth.oidc-role-general-access": "Улога у OpenID Connect-у за општи приступ",
"admin.config.oauth.oidc-role-general-access.description": "Улога потребна за општи приступ. Мора бити присутна у улогама корисника како би се могао пријавити. " + "Оставите празно ако не знате шта је ова конфигурација.",
"admin.config.oauth.oidc-role-admin-access": "Улога у OpenID Connect-у за администраторски приступ",
"admin.config.oauth.oidc-role-admin-access.description": "Улога потребна за администраторски приступ. Мора бити присутна у улогама корисника како би могли приступити администраторском панелу. " + "Оставите празно ако не знате шта је ова конфигурација.",
"admin.config.oauth.oidc-client-id": "OpenID Connect ID клијента",
"admin.config.oauth.oidc-client-id.description": "ID клијента OpenID Connect OAuth апликације",
"admin.config.oauth.oidc-client-secret": "OpenID Connect тајна клијента",
"admin.config.oauth.oidc-client-secret.description": "Тајна клијента OpenID Connect OAuth апликације",
"admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP",
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login",
"admin.config.ldap.url": "Server URL",
"admin.config.ldap.url.description": "URL of the LDAP server",
"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-password": "Bind password",
"admin.config.ldap.bind-password.description": "Password used to perform the user search",
"admin.config.ldap.search-base": "User base",
"admin.config.ldap.search-base.description": "Base location, where the user search will be performed",
"admin.config.ldap.search-query": "User 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.admin-groups": "Admin group",
"admin.config.ldap.admin-groups.description": "Group required for administrative access.",
"admin.config.ldap.enabled": "Омогући LDAP",
"admin.config.ldap.enabled.description": "Користи LDAP аутентификацију за пријаву корисника",
"admin.config.ldap.url": "URL сервера",
"admin.config.ldap.url.description": "URL LDAP сервера",
"admin.config.ldap.bind-dn": "DN везивање",
"admin.config.ldap.bind-dn.description": "Подразумевани корисник који се користи за претрагу корисника",
"admin.config.ldap.bind-password": "Лозинка за везивање",
"admin.config.ldap.bind-password.description": "Лозинка која се користи за извршавање претраге корисника",
"admin.config.ldap.search-base": "База корисника",
"admin.config.ldap.search-base.description": "Локација базе, место где ће се извршити претрага корисника",
"admin.config.ldap.search-query": "Упит за корисника",
"admin.config.ldap.search-query.description": "Упит за корисника који ће се користити за претрагу „Базе корисника“ за LDAP корисника. %username% се може користити као ознака за унос корисника.",
"admin.config.ldap.admin-groups": "Администраторска група",
"admin.config.ldap.admin-groups.description": "Група која је потребна за администраторски приступ.",
"admin.config.ldap.field-name-member-of": "Назив атрибута корисничких група",
"admin.config.ldap.field-name-member-of.description": "LDAP назив атрибута за групе чији је корисник члан. Ово се користи при провери администраторске групе.",
"admin.config.ldap.field-name-email": "Назив атрибута за е-пошту корисника",
"admin.config.ldap.field-name-email.description": "LDAP назив атрибута за е-пошту корисника.",
"admin.config.ldap.field-name-email": "Назив атрибута за имејл корисника",
"admin.config.ldap.field-name-email.description": "LDAP назив атрибута за имејл корисника.",
// 404
"404.description": "Опа - Ова страна не постоји.",
"404.button.home": "Врати ме на почетак",
// error
"error.title": "Грешка",
"error.description": "Ooпс!",
"error.description": "Упс!",
"error.button.back": "Иди назад",
"error.msg.default": "Нешто је пошло наопако.",
"error.msg.access_denied": "Отказали сте процес аутентификације, покушајте поново.",
"error.msg.expired_token": "Процес аутентификације је трајао предуго, покушајте поново.",
"error.msg.invalid_token": "Интерна грешка",
"error.msg.no_user": "Корисник повезан са овим {0} налогом не постоји.",
"error.msg.no_email": "Не могу да добијем адресу е-поште са овог {0} налога.",
"error.msg.no_email": "Не могу да добијем адресу имејла са овог {0} налога.",
"error.msg.already_linked": "Овај {0} налог је већ повезан са другим налогом.",
"error.msg.not_linked": "Овај {0} налог још увек није повезан ни са једним налогом.",
"error.msg.unverified_account": "Овај {0} налог је непотврђен, молимо покушајте поново након верификације.",
@@ -472,11 +476,11 @@ export default {
"common.text.redirecting": "Преусмеравање...",
"common.button.go-back": "Иди назад",
"common.button.go-home": "Почетна страница",
"common.notify.copied": "Ваша веза је копирана у clipboard",
"common.notify.copied": "Ваша веза је копирана у међуспремник",
"common.success": "Успешно",
"common.error": "Грешка",
"common.error.unknown": "Дошло је до непознате грешке",
"common.error.invalid-email": "Неисправна адреса е-поште",
"common.error.invalid-email": "Неисправна адреса имејла",
"common.error.too-short": "Мора да има најмање {length} знакова",
"common.error.too-long": "Мора да има највише {length} знакова",
"common.error.number-too-small": "Мора бити најмање {min}",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Delning ämne",
"admin.config.email.share-recipients-subject.description": "Ämne för e-postmeddelandet som skickas till delningsmottagarna.",
"admin.config.email.share-recipients-message": "Delning meddelande",
"admin.config.email.share-recipients-message.description": "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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Om oautentiserade användare kan skapa delningar",
"admin.config.share.max-expiration": "Max utgångsdatum",
"admin.config.share.max-expiration.description": "Max längd innan en delning förfaller i timmar. Sätt till 0 för att tillåta obegränsad förfallotid.",
"admin.config.share.share-id-length": "Default share ID length",
"admin.config.share.share-id-length.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 storlek",
"admin.config.share.max-size.description": "Maximal storlek för delning i bytes",
"admin.config.share.zip-compression-level": "Komprimeringsnivå för zip",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI för OpenID Connect OAuth appen",
"admin.config.oauth.oidc-sign-out": "Sign out from OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Whether the “Sign out” button will sign out from the OpenID Connect provider",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect användarnamnsanspråk",
"admin.config.oauth.oidc-username-claim.description": "Användarnamnsanspråk i OpenID Connect ID token. Lämna tomt om du inte vet vad denna konfiguration är.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "หัวเรื่องผู้รับอีเมลของการแชร์",
"admin.config.email.share-recipients-subject.description": "หัวเรื่องของอีเมลที่ส่งไปยังผู้รับอีเมลของการแชร์",
"admin.config.email.share-recipients-message": "ข้อความผู้รับอีเมลของการแชร์",
"admin.config.email.share-recipients-message.description": "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.description": "Subject of the sent email when someone created a share with your reverse share link.",
"admin.config.email.reverse-share-message": "ข้อความการแชร์รีเวิร์ส",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "อนุญาตให้ผู้ใช้ที่ไม่ได้เข้าสู่ระบบสร้างแชร์",
"admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.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": "ขนาดสูงสุด",
"admin.config.share.max-size.description": "ขนาดสูงสุดของแชร์",
"admin.config.share.zip-compression-level": "ระดับการบีบอัดไฟล์ Zip",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -317,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.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.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.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ı",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Giriş yapmamış kullanıcıların paylaşım oluşturup oluşturamayacağı",
"admin.config.share.max-expiration": "Maks sona erme",
"admin.config.share.max-expiration.description": "Saat üzerinden maksimum paylaşım sona ermesi. Sınırsız için 0 yapın.",
"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": "Maks boyut",
"admin.config.share.max-size.description": "Byte üzerinden maks paylaşım boyutu",
"admin.config.share.zip-compression-level": "Zip sıkıştırma seviyesi",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "OpenID Connect OAuth uygulamasının Keşfetme URI'si",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect kullanıcı adı sahiplenme",
"admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID belirtecinde kullanıcı adı sahiplenme. Bu yapılandırmanın ne olduğunu bilmiyorsanız boş bırakın.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "Завантажити",
"navbar.signin": "Вхід",
"navbar.home": "Головна",
"navbar.signup": "Sign up",
"navbar.signup": "Реєстрація",
"navbar.links.shares": "Мої завантаження",
"navbar.links.reverse": "Зворотні завантаження",
"navbar.avatar.account": "Мій аккаунт",
@@ -16,9 +16,9 @@ export default {
"home.bullet.a.name": "На власному сервері",
"home.bullet.a.description": "Pingvin Share працює на вашій машині.",
"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.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.source": "Вихідний код",
// END /
@@ -34,7 +34,7 @@ export default {
"signIn.notify.totp-required.title": "Потрібна двофакторна аутентифікація",
"signIn.notify.totp-required.description": "Будь ласка, введіть код Вашої 2-х факторної аутентифікації",
"signIn.oauth.or": "АБО",
"signIn.oauth.signInWith": "Sign in with",
"signIn.oauth.signInWith": "Увійти з",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft",
@@ -58,12 +58,12 @@ export default {
// /auth/reset-password
"resetPassword.title": "Забули пароль?",
"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.text.resetPassword": "Скинути пароль",
"resetPassword.text.enterNewPassword": "Введіть новий пароль",
"resetPassword.input.password": "Новий пароль",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
"resetPassword.notify.passwordReset": "Ваш пароль успішно скинуто.",
// /account
"account.title": "Мій акаунт",
"account.card.info.title": "Інформація про акаунт",
@@ -73,9 +73,9 @@ export default {
"account.card.password.title": "Пароль",
"account.card.password.old": "Старий пароль",
"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.card.oauth.title": "Авторизація через соціальні мережі",
"account.card.oauth.title": "Вхід через соцмережі",
"account.card.oauth.github": "GitHub",
"account.card.oauth.google": "Google",
"account.card.oauth.microsoft": "Microsoft",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "Відключити",
"account.card.oauth.unlinked": "Відключено",
"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.card.security.title": "Безпека",
"account.card.security.totp.enable.description": "Введіть ваш поточний пароль для початку увімкнення TOTP",
@@ -121,12 +121,12 @@ export default {
"account.shares.table.name": "Назва",
"account.shares.table.description": "Опис",
"account.shares.table.visitors": "Відвідувачів",
"account.shares.table.expiresAt": "Expires on",
"account.shares.table.createdAt": "Created on",
"account.shares.table.expiresAt": "Діє до",
"account.shares.table.createdAt": "Створено",
"account.shares.table.size": "Розмір",
"account.shares.modal.share-informations": "Відомості",
"account.shares.modal.share-link": "Поділитися посиланням",
"account.shares.modal.delete.title": "Delete share: {share}",
"account.shares.modal.delete.title": "Видалити завантаження: {share}",
"account.shares.modal.delete.description": "Ви дійсно хочете видалити це завантаження?",
// END /account/shares
// /account/reverseShares
@@ -150,12 +150,12 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "Рік",
"account.reverseShares.modal.expiration.year-plural": "Роки (роки)",
"account.reverseShares.modal.max-size.label": "Макс. розмір завантаження",
"account.reverseShares.modal.send-email": "Send email notifications",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
"account.reverseShares.modal.simplified": "Simple mode",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
"account.reverseShares.modal.public-access": "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.send-email": "Надсилати сповіщення ел. поштою",
"account.reverseShares.modal.send-email.description": "Надсилає вам сповіщення на ел. пошту, коли створюється завантаження за цим зворотнім посиланням.",
"account.reverseShares.modal.simplified": "Простий режим",
"account.reverseShares.modal.simplified.description": "Полегште людині, яка завантажує файл, поділитися ним з вами. Вони зможуть лише налаштувати назву та опис завантаження.",
"account.reverseShares.modal.public-access": "Публічний доступ",
"account.reverseShares.modal.public-access.description": "Зробіть процес завантаження файлу легшим для користувача, який буде з вами ділитися. Вони зможуть налаштувати лише назву та опис завантаження.",
"account.reverseShares.modal.max-use.label": "Максимум використань",
"account.reverseShares.modal.max-use.description": "Максимальна кількість разів, коли URL може бути використаний для створення завантаження.",
"account.reverseShare.never-expires": "Це зворотне завантаження ніколи не застаріє.",
@@ -174,7 +174,7 @@ export default {
// /admin
"admin.title": "Адміністрування",
"admin.button.users": "Управління користувачами",
"admin.button.shares": "Share management",
"admin.button.shares": "Управління поширенням",
"admin.button.config": "Конфігурація",
"admin.version": "Версія",
// END /admin
@@ -183,14 +183,14 @@ export default {
"admin.users.table.username": "Логін",
"admin.users.table.email": "Електронна пошта",
"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.change-password.title": "Змінити пароль",
"admin.users.edit.update.change-password.field": "Новий пароль",
"admin.users.edit.update.change-password.button": "Зберегти новий пароль",
"admin.users.edit.update.notify.password.success": "Пароль успішно змінено",
"admin.users.edit.delete.title": "Delete user: {username} ?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
"admin.users.edit.delete.title": "Видалити користувача: {username}?",
"admin.users.edit.delete.description": "Ви дійсно хочете видалити цього користувача та всі його поширення?",
// showCreateUserModal.tsx
"admin.users.modal.create.title": "Створити користувача",
"admin.users.modal.create.username": "Логін",
@@ -202,24 +202,24 @@ export default {
"admin.users.modal.create.admin.description": "Якщо зазначено, користувач матиме доступ до панелі адміністратора.",
// END /admin/users
// /admin/shares
"admin.shares.title": "Share management",
"admin.shares.table.id": "Share ID",
"admin.shares.table.username": "Creator",
"admin.shares.table.visitors": "Visitors",
"admin.shares.table.expires": "Expires on",
"admin.shares.edit.delete.title": "Delete share: {id}",
"admin.shares.edit.delete.description": "Do you really want to delete this share?",
"admin.shares.title": "Керування завантаженнями",
"admin.shares.table.id": "ID Завантаження",
"admin.shares.table.username": "Автор",
"admin.shares.table.visitors": "Відвідувачі",
"admin.shares.table.expires": "Діє до",
"admin.shares.edit.delete.title": "Видалити завантаження: {id}",
"admin.shares.edit.delete.description": "Ви дійсно хочете видалити це завантаження?",
// END /admin/shares
// /upload
"upload.title": "Завантажити",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.confirm-leave": "Ви впевнені, що хочете залишити цю сторінку? Ваше завантаження буде скасовано.",
"upload.notify.generic-error": "Сталася помилка під час завершення вашого завантаження.",
"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.",
"upload.reverse-share.error.invalid.title": "Недійсне посилання на завантаження",
"upload.reverse-share.error.invalid.description": "Зворотне завантаження вже закінчилося або недійсне.",
// Dropzone.tsx
"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}.",
// FileList.tsx
"upload.filelist.name": "Назва",
@@ -231,8 +231,8 @@ export default {
"upload.modal.not-signed-in": "Ви не авторизовані",
"upload.modal.not-signed-in-description": "Ви не зможете видалити свої файли вручну і переглянути кількість відвідувачів.",
"upload.modal.expires.never": "ніколи",
"upload.modal.expires.never-long": "Permanent share",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.",
"upload.modal.expires.never-long": "Постійне завантаження",
"upload.modal.expires.error.too-long": "Термін дії перевищує ліміт по {max}.",
"upload.modal.link.label": "Посилання",
"upload.modal.expires.label": "Закінчується",
"upload.modal.expires.minute-singular": "Хвилина",
@@ -247,9 +247,9 @@ export default {
"upload.modal.expires.month-plural": "Місяця(-ів)",
"upload.modal.expires.year-singular": "Рік",
"upload.modal.expires.year-plural": "Роки (роки)",
"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.description.placeholder": "Note for the recipients of this share",
"upload.modal.accordion.name-and-description.title": "Назва та опис",
"upload.modal.accordion.name-and-description.name.placeholder": "Назва",
"upload.modal.accordion.name-and-description.description.placeholder": "Примітка для отримувачів цього завантаження",
"upload.modal.accordion.email.title": "Одержувачі листа",
"upload.modal.accordion.email.placeholder": "Одержувачі e-mail",
"upload.modal.accordion.email.invalid-email": "Неприпустима адреса електронної пошти",
@@ -262,7 +262,7 @@ export default {
"upload.modal.completed.never-expires": "Це завантаження ніколи не застаріє.",
"upload.modal.completed.expires-on": "Це завантаження застаріє {expiration}.",
"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
// /share/[id]
"share.title": "Завантаження {shareId}",
@@ -272,19 +272,19 @@ export default {
"share.error.removed.title": "Завантаження видалено",
"share.error.not-found.title": "Завантаження не знайдено",
"share.error.not-found.description": "Сторінка, яку ви шукаєте, не існує.",
"share.error.access-denied.title": "Private share",
"share.error.access-denied.description": "The current account does not have permission to access this share",
"share.error.access-denied.title": "Приватне завантаження",
"share.error.access-denied.description": "Поточний акаунт не має дозволу на доступ до цього завантаження",
"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.error.invalid-password": "Невірний пароль",
"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.table.name": "Назва",
"share.table.size": "Розмір",
"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]
// /share/[id]/edit
"share.edit.title": "Редагувати {shareId}",
@@ -303,68 +303,70 @@ export default {
"admin.config.general.app-name.description": "Видима назва додатка",
"admin.config.general.app-url": "URL-адреса програми",
"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.secure-cookies": "Безпечні cookies",
"admin.config.general.secure-cookies.description": "Чи встановлювати прапор безпеки для cookies. Якщо увімкнено, сайт не працюватиме при доступі через HTTP.",
"admin.config.general.show-home-page": "Показувати домашню сторінку",
"admin.config.general.show-home-page.description": "Показувати домашню сторінку чи ні",
"admin.config.general.session-duration": "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": "Тривалість сеансу",
"admin.config.general.session-duration.description": "Час у годинах, після якого користувач повинен знову увійти в систему (за замовчуванням: 3 місяці).",
"admin.config.general.logo": "Логотип",
"admin.config.general.logo.description": "Змініть свій логотип, завантаживши нове зображення. Зображення має бути PNG і повинно мати формат 1:1.",
"admin.config.general.logo.placeholder": "Виберіть зображення",
"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": "Увімкнути спільний доступ для отримувачів через ел. пошту",
"admin.config.email.enable-share-email-recipients.description": "Чи дозволяти спільний доступ через ел. пошту для отримувачів. Увімкніть це тільки, якщо SMTP активовано.",
"admin.config.email.share-recipients-subject": "Заголовок листа (завантаження)",
"admin.config.email.share-recipients-subject.description": "Тема листа, який надсилається одержувачам акції.",
"admin.config.email.share-recipients-message": "Повідомлення листа завантаження",
"admin.config.email.share-recipients-message.description": "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.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.description": "Повідомлення, яке надсилається, коли хтось створив завантаження з вашим зворотним посиланням. {shareUrl} буде замінено ім'ям творця та URL-адресою загального доступу.",
"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.description": "Повідомлення, яке надсилається при запиті скидання пароля. {url} буде замінено посиланням.",
"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.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.description": "Чи дозволена реєстрація",
"admin.config.share.allow-unauthenticated-shares": "Дозволити неавторизовані завантаження",
"admin.config.share.allow-unauthenticated-shares.description": "Чи можуть неавторизовані користувачі створювати завантаження",
"admin.config.share.max-expiration": "Максимальний термін дії",
"admin.config.share.max-expiration.description": "Максимальний термін дії загального доступу в годинах. Встановіть значення 0, щоб дозволити необмежений термін дії.",
"admin.config.share.share-id-length": "Стандартна довжина ID завантаження",
"admin.config.share.share-id-length.description": "Стандартна довжина для згенерованого ID завантаження. Це значення також використовується для створення посилань для зворотних завантажень. Значення менше 8 не вважається безпечним.",
"admin.config.share.max-size": "Максимальний розмір",
"admin.config.share.max-size.description": "Максимальний розмір файлу в байтах",
"admin.config.share.zip-compression-level": "Рівень стиснення Zip",
"admin.config.share.zip-compression-level.description": "Регулювання рівня балансу між розміром файлу і швидкістю стиснення. Допустимі значення від 0 до 9, з 0 без стиснення, а 9 - максимальне стиснення. ",
"admin.config.share.chunk-size": "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.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.smtp.enabled": "Enable",
"admin.config.share.chunk-size": "Розмір блоку",
"admin.config.share.chunk-size.description": "Налаштуйте розмір блоку(у байтах) для ваших завантажень, щоб збалансувати ефективність та надійність відповідно до вашого інтернет-з'єднання. Менші частини можуть підвищити ймовірність успішного завантаження для нестабільних з'єднань, тоді як більші частини прискорюють завантаження для стабільних з'єднань.",
"admin.config.share.auto-open-share-modal": "Автоматично відкривати модальне вікно для завантаження",
"admin.config.share.auto-open-share-modal.description": "Модальне вікно для створення завантаження автоматично з'являється, коли користувач вибирає файли, що усуває необхідність вручну натискати кнопку.",
"admin.config.smtp.enabled": "Увімкнути",
"admin.config.smtp.enabled.description": "Чи увімкнено SMTP. Встановіть значення true тільки якщо ви ввели хост, порт, email, користувач і пароль вашого SMTP-сервера.",
"admin.config.smtp.host": "Хост",
"admin.config.smtp.host.description": "Сервер SMTP-сервера",
"admin.config.smtp.port": "Порт",
"admin.config.smtp.port.description": "Порт SMTP сервера",
"admin.config.smtp.email": "Електронна пошта",
"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.description": "Ім'я користувача SMTP-сервера",
"admin.config.smtp.password": "Пароль",
"admin.config.smtp.password.description": "Пароль SMTP-сервера",
"admin.config.smtp.button.test": "Відправити тестовий лист",
"admin.config.smtp.allow-unauthorized-certificates": "Trust unauthorized SMTP server certificates",
"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": "Довіряти сертифікатам SMTP серверів без авторизації",
"admin.config.smtp.allow-unauthorized-certificates.description": "Увімкніть це тільки тоді, якщо потрібно довіряти самопідписаним сертифікатам.",
"admin.config.oauth.allow-registration": "Дозволити реєстрацію",
"admin.config.oauth.allow-registration.description": "Дозволити користувачам реєструватися, використовуючи облікові записи соціальних мереж",
"admin.config.oauth.ignore-totp": "Ігнорувати TOTP",
"admin.config.oauth.ignore-totp.description": "Ігнорувати TOTP при використанні соціальної авторизації",
"admin.config.oauth.disable-password": "Disable password login",
"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": "Вимкнути вхід за паролем",
"admin.config.oauth.disable-password.description": "Чи вимкнути вхід за паролем. \nПереконайтеся, що постачальник OAuth налаштований правильно, перед активацією цієї конфігурації, щоб уникнути блокування доступу.",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "Чи ввімкнено логін на GitHub",
"admin.config.oauth.github-client-id": "ID клієнта GitHub",
@@ -387,51 +389,53 @@ export default {
"admin.config.oauth.microsoft-client-secret.description": "Секретний ключ клієнта в додатку Microsoft OAuth",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "Чи увімкнено логін Discord",
"admin.config.oauth.discord-limited-users": "Discord limited users",
"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": "Обмежені користувачі Discord",
"admin.config.oauth.discord-limited-users.description": "Обмежити вхід для конкретних користувачів за їх Discord ID. Залиште поле порожнім, щоб вимкнути.",
"admin.config.oauth.discord-limited-guild": "ID обмеженого сервера Discord",
"admin.config.oauth.discord-limited-guild.description": "Обмеження входу для користувачів певного сервера. Залиште порожнім, щоб відключити.",
"admin.config.oauth.discord-client-id": "ID клієнта Discord",
"admin.config.oauth.discord-client-id.description": "ID клієнта в додатку Discord OAuth",
"admin.config.oauth.discord-client-secret": "Секретний ключ клієнта Discord",
"admin.config.oauth.discord-client-secret.description": "Секретний ключ клієнта в додатку Discord OAuth",
"admin.config.oauth.oidc-enabled": "OpenID Connect",
"admin.config.oauth.oidc-enabled": "OpenID підключення",
"admin.config.oauth.oidc-enabled.description": "Чи ввімкнено логін OpenID Connect",
"admin.config.oauth.oidc-discovery-uri": "OpenID Connect Discovery URI",
"admin.config.oauth.oidc-discovery-uri.description": "URI Discovery URI додатка OpenID Connect OAuth",
"admin.config.oauth.oidc-sign-out": "Sign out from 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": "Вийти з OpenID Connect",
"admin.config.oauth.oidc-sign-out.description": "Чи буде кнопка \"Вийти\" виводити користувача з постачальника OpenID Connect",
"admin.config.oauth.oidc-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "Заява на ім'я користувача OpenID Connect",
"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.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-general-access": "OpenID Connect role for general access",
"admin.config.oauth.oidc-role-general-access.description": "Role required for general access. Must be present in a users roles for them to log in. " + "Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-admin-access": "OpenID Connect role for admin access",
"admin.config.oauth.oidc-role-admin-access.description": "Role required for administrative access. Must be present in a users roles for them to access the admin panel. " + "Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-client-id": "OpenID Connect Client ID",
"admin.config.oauth.oidc-role-path": "Шлях до ролей у токені OpenID Connect",
"admin.config.oauth.oidc-role-path.description": "Повинен бути дійсним шляхом JMES, який посилається на масив ролей. " + "Управління правами доступу за допомогою ролей OpenID Connect рекомендується лише в тому випадку, якщо не налаштований інший постачальник ідентифікації та вхід за паролем вимкнено. " + "Залиште це поле порожнім, якщо ви не знаєте, для чого призначена ця конфігурація.",
"admin.config.oauth.oidc-role-general-access": "Роль OpenID Connect для загального доступу",
"admin.config.oauth.oidc-role-general-access.description": "Роль, необхідна для загального доступу. Має бути присутня в ролях користувача, щоб він міг увійти в систему. " + "Залиште це поле порожнім, якщо ви не знаєте, для чого призначена ця конфігурація.",
"admin.config.oauth.oidc-role-admin-access": "Роль OpenID Connect для адміністративного доступу",
"admin.config.oauth.oidc-role-admin-access.description": "Роль, необхідна для адміністративного доступу. Має бути присутня в ролях користувача, щоб він міг отримати доступ до адміністративної панелі. " + "Залиште це поле порожнім, якщо ви не знаєте, для чого призначена ця конфігурація.",
"admin.config.oauth.oidc-client-id": "Client ID для OpenID Connect",
"admin.config.oauth.oidc-client-id.description": "Клієнтський ідентифікатор додатка OpenID Connect OAuth",
"admin.config.oauth.oidc-client-secret": "Секрет клієнта OpenID Connect",
"admin.config.oauth.oidc-client-secret.description": "Клієнтський секрет програми OpenID Connect OAuth",
"admin.config.category.ldap": "LDAP",
"admin.config.ldap.enabled": "Enable LDAP",
"admin.config.ldap.enabled.description": "Use LDAP authentication for user login",
"admin.config.ldap.url": "Server URL",
"admin.config.ldap.url.description": "URL of the LDAP server",
"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-password": "Bind password",
"admin.config.ldap.bind-password.description": "Password used to perform the user search",
"admin.config.ldap.search-base": "User base",
"admin.config.ldap.search-base.description": "Base location, where the user search will be performed",
"admin.config.ldap.search-query": "User 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.admin-groups": "Admin group",
"admin.config.ldap.admin-groups.description": "Group required for administrative access.",
"admin.config.ldap.field-name-member-of": "User groups attribute name",
"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-email": "User email attribute name",
"admin.config.ldap.field-name-email.description": "LDAP attribute name for the email of an user.",
"admin.config.ldap.enabled": "Увімкнути LDAP",
"admin.config.ldap.enabled.description": "Використовувати LDAP автентифікацію для входу користувача",
"admin.config.ldap.url": "URL сервера",
"admin.config.ldap.url.description": "URL сервера LDAP",
"admin.config.ldap.bind-dn": "Прив'язати DN",
"admin.config.ldap.bind-dn.description": "Користувач за замовчуванням, який використовується для пошуку користувачів",
"admin.config.ldap.bind-password": "Прив'язати пароль",
"admin.config.ldap.bind-password.description": "Пароль, що використовується для пошуку користувача",
"admin.config.ldap.search-base": "База користувачів",
"admin.config.ldap.search-base.description": "Базове розташування, де буде виконано пошук користувача",
"admin.config.ldap.search-query": "Запит користувача",
"admin.config.ldap.search-query.description": "Запит користувача буде використовуватися для пошуку користувача LDAP в \"Базі користувачів\". %username% можна використовувати як заповнювач для введених користувачем даних.",
"admin.config.ldap.admin-groups": "Адмін-група",
"admin.config.ldap.admin-groups.description": "Група, необхідна для адміністративного доступу.",
"admin.config.ldap.field-name-member-of": "Назва атрибута груп користувачів",
"admin.config.ldap.field-name-member-of.description": "Назва атрибута LDAP для груп, до яких належить користувач. Це використовується при перевірці адміністративної групи.",
"admin.config.ldap.field-name-email": "Назва атрибута ел. пошти користувача",
"admin.config.ldap.field-name-email.description": "Назва атрибута LDAP для ел. пошти користувача.",
// 404
"404.description": "Бляха, цієї строрінки не існує.",
"404.button.home": "Поверни мене додому",
@@ -446,15 +450,15 @@ export default {
"error.msg.no_user": "Користувач, пов'язаний з обліковим записом {0}, не існує.",
"error.msg.no_email": "Не вдається отримати адресу електронної пошти від облікового запису {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.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_google": "Google",
"error.param.provider_microsoft": "Microsoft",
"error.param.provider_discord": "Discord",
"error.param.provider_oidc": "OpenID Connect",
"error.param.provider_oidc": "OpenID підключення",
// Common translations
"common.button.save": "Зберегти",
"common.button.create": "Створити",
@@ -467,9 +471,9 @@ export default {
"common.button.generate": "Згенерувати",
"common.button.done": "Готово",
"common.text.link": "Посилання",
"common.text.navigate-to-link": "Visit link",
"common.text.navigate-to-link": "Відкрити посилання",
"common.text.or": "або",
"common.text.redirecting": "Redirecting...",
"common.text.redirecting": "Перенаправлення...",
"common.button.go-back": "Назад",
"common.button.go-home": "Перейти додому",
"common.notify.copied": "Ваше посилання скопійовано в буфер обміну",
@@ -479,8 +483,8 @@ export default {
"common.error.invalid-email": "Неприпустима адреса електронної пошти",
"common.error.too-short": "Повинно бути не менше {length} символів",
"common.error.too-long": "Повинно бути не більше {length} символів",
"common.error.number-too-small": "Must be at least {min}",
"common.error.number-too-large": "Must be at most {max}",
"common.error.number-too-small": "Повинно бути щонайменше {min}",
"common.error.number-too-large": "Повинно бути не більше ніж {max}",
"common.error.exact-length": "Повинно бути рівно {length} символів",
"common.error.invalid-number": "Повинно бути числом",
"common.error.field-required": "Поле обов'язкове для заповнення"

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "Share recipients subject",
"admin.config.email.share-recipients-subject.description": "Subject of the email which gets sent to the share recipients.",
"admin.config.email.share-recipients-message": "Share recipients message",
"admin.config.email.share-recipients-message.description": "Message which gets sent to the share recipients. Available variables:\n {creator} - The username of the creator of the share\n {shareUrl} - The URL of the share\n {desc} - The description of the share\n {expires} - The expiration date of the share\n 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.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",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "Whether unauthenticated users can create shares",
"admin.config.share.max-expiration": "Max expiration",
"admin.config.share.max-expiration.description": "Maximum share expiration in hours. Set to 0 to allow unlimited expiration.",
"admin.config.share.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": "Kích thước tối đa",
"admin.config.share.max-size.description": "Kích thước tối đa (bytes)",
"admin.config.share.zip-compression-level": "Cấp độ nén Zip",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -317,7 +317,7 @@ export default {
"admin.config.email.share-recipients-subject": "共享邮件通知主题",
"admin.config.email.share-recipients-subject.description": "发送共享邮件通知的邮件主题",
"admin.config.email.share-recipients-message": "共享邮件通知内容",
"admin.config.email.share-recipients-message.description": "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.description": "Subject of the sent email when someone created a share with your reverse share link.",
"admin.config.email.reverse-share-message": "预留共享邮件通知内容",
@@ -336,6 +336,8 @@ export default {
"admin.config.share.allow-unauthenticated-shares.description": "是否允许未验证的用户创建共享",
"admin.config.share.max-expiration": "最长过期时间",
"admin.config.share.max-expiration.description": "“最长过期时间”以小时为单位如果将其设置为“0”则为永不过期。",
"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": "最大文件上限",
"admin.config.share.max-size.description": "最大文件上限,单位 bytes (1GB=1024MB=1048576KB=1073741824bytes)",
"admin.config.share.zip-compression-level": "Zip 文件压缩质量",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "OpenID Connect OAuth App 的 Discovery URI",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect 用户名请求",
"admin.config.oauth.oidc-username-claim.description": "OpenID Connect ID token 中的用户名请求。如果您不知道这项配置是什么,请留空。",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",

View File

@@ -3,7 +3,7 @@ export default {
"navbar.upload": "上傳",
"navbar.signin": "登入",
"navbar.home": "首頁",
"navbar.signup": "Sign up",
"navbar.signup": "登入",
"navbar.links.shares": "我的分享",
"navbar.links.reverse": "檔案請求",
"navbar.avatar.account": "帳號設定",
@@ -14,11 +14,11 @@ export default {
"home.title": "<h>自建</h> 檔案分享平台!",
"home.description": "您真的放心把檔案交到第三方檔案平台手中嗎?",
"home.bullet.a.name": "完全自建",
"home.bullet.a.description": "輕松使用私有服器搭建檔案分享平台",
"home.bullet.a.description": "輕松使用私有服器搭建檔案分享平台",
"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.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.source": "原始碼",
// END /
@@ -33,8 +33,8 @@ export default {
"signin.button.submit": "登入",
"signIn.notify.totp-required.title": "請繼續兩步驗證",
"signIn.notify.totp-required.description": "請輸入一次性驗證碼",
"signIn.oauth.or": "OR",
"signIn.oauth.signInWith": "Sign in with",
"signIn.oauth.or": "",
"signIn.oauth.signInWith": "登入方式",
"signIn.oauth.github": "GitHub",
"signIn.oauth.google": "Google",
"signIn.oauth.microsoft": "Microsoft",
@@ -52,18 +52,18 @@ export default {
"signup.button.submit": "註冊",
// END /auth/signup
// /auth/totp
"totp.title": "TOTP Authentication",
"totp.button.signIn": "Sign in",
"totp.title": "TOTP 驗證",
"totp.button.signIn": "登入",
// END /auth/totp
// /auth/reset-password
"resetPassword.title": "忘記密碼?",
"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.text.resetPassword": "重置密碼",
"resetPassword.text.enterNewPassword": "請輸入新密碼",
"resetPassword.input.password": "新密碼",
"resetPassword.notify.passwordReset": "Your password has been successfully reset.",
"resetPassword.notify.passwordReset": "您已重新設定密碼。",
// /account
"account.title": "我的帳號",
"account.card.info.title": "帳號資訊",
@@ -73,7 +73,7 @@ export default {
"account.card.password.title": "密碼",
"account.card.password.old": "舊密碼",
"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": "並未設定密碼若希望使用E-mail與密碼進行登入則必須要設定密碼。",
"account.notify.password.success": "密碼更改成功!",
"account.card.oauth.title": "第三方登入",
"account.card.oauth.github": "GitHub",
@@ -85,7 +85,7 @@ export default {
"account.card.oauth.unlink": "取消聯結",
"account.card.oauth.unlinked": "已取消聯結",
"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.card.security.title": "安控",
"account.card.security.totp.enable.description": "請輸入當前密碼開啟兩步驗證",
@@ -121,17 +121,17 @@ export default {
"account.shares.table.name": "分享代號",
"account.shares.table.description": "描述",
"account.shares.table.visitors": "造訪次數",
"account.shares.table.expiresAt": "Expires on",
"account.shares.table.createdAt": "Created on",
"account.shares.table.expiresAt": "失效於",
"account.shares.table.createdAt": "創建於",
"account.shares.table.size": "檔案大小",
"account.shares.modal.share-informations": "分享資訊",
"account.shares.modal.share-link": "分享結",
"account.shares.modal.delete.title": "Delete share: {share}",
"account.shares.modal.share-link": "分享結",
"account.shares.modal.delete.title": "刪除: {share}",
"account.shares.modal.delete.description": "您真的想刪除這個分享嗎?",
// END /account/shares
// /account/reverseShares
"account.reverseShares.title": "檔案請求",
"account.reverseShares.description": "檔案請求允許您建立一個特定的上畫面,以便外部使用者與您分享檔案",
"account.reverseShares.description": "檔案請求允許您建立一個特定的上畫面,以便外部使用者與您分享檔案",
"account.reverseShares.title.empty": "這里空空如也 👀",
"account.reverseShares.description.empty": "您沒有建立任何檔案請求",
// showCreateReverseShareModal.tsx
@@ -150,14 +150,14 @@ export default {
"account.reverseShares.modal.expiration.year-singular": "年",
"account.reverseShares.modal.expiration.year-plural": "年",
"account.reverseShares.modal.max-size.label": "上傳大小上限",
"account.reverseShares.modal.send-email": "Send email notifications",
"account.reverseShares.modal.send-email.description": "Sends you an email notification when a share is created with this reverse share link.",
"account.reverseShares.modal.simplified": "Simple mode",
"account.reverseShares.modal.simplified.description": "Make it easy for the person uploading the file to share it with you. They will only be able to customize the name and description of the share.",
"account.reverseShares.modal.public-access": "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.send-email": "發送電子郵件通知",
"account.reverseShares.modal.send-email.description": "當這個檔案請求連結被用於分享時發送Email提醒",
"account.reverseShares.modal.simplified": "簡單模式",
"account.reverseShares.modal.simplified.description": "讓人們輕鬆地上傳檔案給您。他們將只能自定義檔案名稱與描述。",
"account.reverseShares.modal.public-access": "公開存取",
"account.reverseShares.modal.public-access.description": "公開此檔案請求。若停用此設定將只有您與上傳者可以存取檔案。",
"account.reverseShares.modal.max-use.label": "最大使用次數",
"account.reverseShares.modal.max-use.description": "這個檔案請求結可被用於建立分享的最大使用次數",
"account.reverseShares.modal.max-use.description": "這個檔案請求結可被用於建立分享的最大使用次數",
"account.reverseShare.never-expires": "這個檔案請求永不過期",
"account.reverseShare.expires-on": "這個檔案請求將過期於 {expiration}",
"account.reverseShares.table.no-shares": "當前沒有建立任何分享",
@@ -167,14 +167,14 @@ export default {
"account.reverseShares.table.remaining": "剩餘使用次數",
"account.reverseShares.table.max-size": "上傳大小上限",
"account.reverseShares.table.expires": "過期時間",
"account.reverseShares.modal.reverse-share-link": "檔案請求結",
"account.reverseShares.modal.delete.title": "刪除檔案請求結",
"account.reverseShares.modal.delete.description": "您真的想刪除此檔案請求結嗎?聯結下所有關聯的檔案都將被刪除",
"account.reverseShares.modal.reverse-share-link": "檔案請求結",
"account.reverseShares.modal.delete.title": "刪除檔案請求結",
"account.reverseShares.modal.delete.description": "您真的想刪除此檔案請求結嗎?聯結下所有關聯的檔案都將被刪除",
// END /account/reverseShares
// /admin
"admin.title": "管理",
"admin.button.users": "使用者管理",
"admin.button.shares": "Share management",
"admin.button.shares": "檔案管理",
"admin.button.config": "配置管理",
"admin.version": "版本",
// END /admin
@@ -183,14 +183,14 @@ export default {
"admin.users.table.username": "使用者名稱",
"admin.users.table.email": "Email",
"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.change-password.title": "更改密碼",
"admin.users.edit.update.change-password.field": "新密碼",
"admin.users.edit.update.change-password.button": "保存新密碼",
"admin.users.edit.update.notify.password.success": "密碼更新成功!",
"admin.users.edit.delete.title": "Delete user: {username} ?",
"admin.users.edit.delete.description": "Do you really want to delete this user and all their shares?",
"admin.users.edit.delete.title": "刪除使用者 {username} ?",
"admin.users.edit.delete.description": "您真的想刪除這個帳號,並刪除該使用者所有的檔案嗎?",
// showCreateUserModal.tsx
"admin.users.modal.create.title": "建立使用者",
"admin.users.modal.create.username": "使用者名稱",
@@ -202,24 +202,24 @@ export default {
"admin.users.modal.create.admin.description": "如果勾選,使用者將能查看管理員面板",
// END /admin/users
// /admin/shares
"admin.shares.title": "Share management",
"admin.shares.table.id": "Share ID",
"admin.shares.table.username": "Creator",
"admin.shares.table.visitors": "Visitors",
"admin.shares.table.expires": "Expires on",
"admin.shares.edit.delete.title": "Delete share: {id}",
"admin.shares.edit.delete.description": "Do you really want to delete this share?",
"admin.shares.title": "檔案管理",
"admin.shares.table.id": "分享 ID",
"admin.shares.table.username": "建立者",
"admin.shares.table.visitors": "造訪次數",
"admin.shares.table.expires": "失效於",
"admin.shares.edit.delete.title": "刪除: {id}",
"admin.shares.edit.delete.description": "您真的想刪除這個檔案嗎?",
// END /admin/shares
// /upload
"upload.title": "上傳",
"upload.notify.confirm-leave": "Are you sure you want to leave this page? Your upload will be canceled.",
"upload.notify.confirm-leave": "您真的想離開這個網頁嗎?您的上傳會被中止。",
"upload.notify.generic-error": "建立分享的過程中發生了錯誤",
"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.",
"upload.reverse-share.error.invalid.title": "無效的檔案請求連結",
"upload.reverse-share.error.invalid.description": "此檔案請求連結已過期/失效。",
// Dropzone.tsx
"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}",
// FileList.tsx
"upload.filelist.name": "檔案名稱",
@@ -231,9 +231,9 @@ export default {
"upload.modal.not-signed-in": "當前沒有登入",
"upload.modal.not-signed-in-description": "您將不能刪除您的分享或查看查看次數",
"upload.modal.expires.never": "永不",
"upload.modal.expires.never-long": "Permanent share",
"upload.modal.expires.error.too-long": "Expiration date exceeds the maximum of {max}.",
"upload.modal.link.label": "分享結",
"upload.modal.expires.never-long": "永久分享",
"upload.modal.expires.error.too-long": "過期時間最大限制為 {max}",
"upload.modal.link.label": "分享結",
"upload.modal.expires.label": "過期時間",
"upload.modal.expires.minute-singular": "分鐘",
"upload.modal.expires.minute-plural": "分鐘",
@@ -247,13 +247,13 @@ export default {
"upload.modal.expires.month-plural": "月",
"upload.modal.expires.year-singular": "年",
"upload.modal.expires.year-plural": "年",
"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.description.placeholder": "Note for the recipients of this share",
"upload.modal.accordion.name-and-description.title": "名稱與說明",
"upload.modal.accordion.name-and-description.name.placeholder": "檔案名稱",
"upload.modal.accordion.name-and-description.description.placeholder": "檔案備註",
"upload.modal.accordion.email.title": "Email提醒",
"upload.modal.accordion.email.placeholder": "收件人Email地址",
"upload.modal.accordion.email.invalid-email": "Email地址不可用",
"upload.modal.accordion.security.title": "安",
"upload.modal.accordion.security.title": "安全性選項",
"upload.modal.accordion.security.password.label": "密碼保護",
"upload.modal.accordion.security.password.placeholder": "無密碼",
"upload.modal.accordion.security.max-views.label": "最大查看次數",
@@ -262,7 +262,7 @@ export default {
"upload.modal.completed.never-expires": "這個分享永不過期",
"upload.modal.completed.expires-on": "這個分享將過期於 {expiration}。",
"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
// /share/[id]
"share.title": "分享 {shareId}",
@@ -272,19 +272,19 @@ export default {
"share.error.removed.title": "分享已刪除",
"share.error.not-found.title": "分享未找到",
"share.error.not-found.description": "分享檔案遺失了",
"share.error.access-denied.title": "Private share",
"share.error.access-denied.description": "The current account does not have permission to access this share",
"share.error.access-denied.title": "私人分享",
"share.error.access-denied.description": "您沒有權限存取此檔案",
"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.error.invalid-password": "密碼錯誤",
"share.button.download-all": "全部下載",
"share.notify.download-all-preparing": "The share is being prepared. Please try again in a few minutes.",
"share.modal.file-link": "檔案結",
"share.notify.download-all-preparing": "正在處理中,請稍等片刻",
"share.modal.file-link": "檔案結",
"share.table.name": "檔案名稱",
"share.table.size": "檔案大小",
"share.modal.file-preview.error.not-supported.title": "該檔案類型不支持預覽",
"share.modal.file-preview.error.not-supported.description": "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]
// /share/[id]/edit
"share.edit.title": "編輯 {shareId}",
@@ -301,90 +301,92 @@ export default {
"admin.config.category.oauth": "第三方登入",
"admin.config.general.app-name": "App 名稱",
"admin.config.general.app-name.description": "這個 App 的名稱",
"admin.config.general.app-url": "App URL",
"admin.config.general.app-url": "App 網址",
"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.secure-cookies": "安全 cookies",
"admin.config.general.secure-cookies.description": "是否要在cookies中設定安全標籤。若啟用這個網站將無法透過HTTP瀏覽。",
"admin.config.general.show-home-page": "顯示首頁",
"admin.config.general.show-home-page.description": "是否顯示首頁",
"admin.config.general.session-duration": "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": "工作階段持續時間",
"admin.config.general.session-duration.description": "使用者需要必須要重新登入的最長時間 (預設: 3 個月)",
"admin.config.general.logo": "Logo",
"admin.config.general.logo.description": "上傳個性化 Logo圖片必須是長寬比 1:1 的 PNG 格式",
"admin.config.general.logo.placeholder": "選擇圖片",
"admin.config.email.enable-share-email-recipients": "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": "啟用電子郵件收件者分享",
"admin.config.email.enable-share-email-recipients.description": "是否允許與收件者分享電子郵件。僅當 SMTP 已啟用時才啟用此功能。",
"admin.config.email.share-recipients-subject": "分享Email通知主題",
"admin.config.email.share-recipients-subject.description": "發送分享Email通知的主題",
"admin.config.email.share-recipients-message": "分享Email通知內容",
"admin.config.email.share-recipients-message.description": "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": "發送到接收者的分享Email通知具體內容。可使用的參數有\n {creator} - 分享建立者\n {creatorEmail} - 分享建立者的電子郵件\n {shareUrl} - 分享連結\n {desc} - 分享描述\n {expires} - 分享過期時間\n 這些參數會被實際的值所替代",
"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": "當有人使用了您的檔案請求連結時,發送的檔案請求通知的標題",
"admin.config.email.reverse-share-message": "檔案請求Email通知內容",
"admin.config.email.reverse-share-message.description": "當有人使用了您的檔案請求結時,發送的通知內容。{shareUrl} 會被建立者的使用者名稱和分享結代替",
"admin.config.email.reverse-share-message.description": "當有人使用了您的檔案請求結時,發送的通知內容。{shareUrl} 會被建立者的使用者名稱和分享結代替",
"admin.config.email.reset-password-subject": "重置密碼Email通知主題",
"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": "重置密碼Email通知內容",
"admin.config.email.reset-password-message.description": "當使用者發動重置密碼時,重置密碼通知內容。{url} 會被重置密碼聯結代替",
"admin.config.email.invite-subject": "邀請Email通知主題",
"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": "邀請Email通知內容",
"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} 會被Email代替{password} 會被密碼代替",
"admin.config.share.allow-registration": "允許註冊",
"admin.config.share.allow-registration.description": "是否允許註冊",
"admin.config.share.allow-unauthenticated-shares": "是否允許未登入進行分享",
"admin.config.share.allow-unauthenticated-shares.description": "是否允許未登入的使用者建立分享",
"admin.config.share.max-expiration": "最大過期時間",
"admin.config.share.max-expiration.description": "最大過期時間(小時)若設定為0則為永不過期",
"admin.config.share.share-id-length": "預設分享ID長度",
"admin.config.share.share-id-length.description": "預設的自動生成分享ID長度。這個設定同時用於生成檔案請求連結。小於 8 被認為是不安全的。",
"admin.config.share.max-size": "最大檔案上限",
"admin.config.share.max-size.description": "最大檔案上限,單位 bytes (1GB=1024MB=1048576KB=1073741824bytes)",
"admin.config.share.zip-compression-level": "Zip 壓縮等級",
"admin.config.share.zip-compression-level.description": "調整壓縮等級以平衡檔案大小和壓縮速度。 有效值範圍從 0 到 9其中 0 表示無壓縮9 表示最大壓縮",
"admin.config.share.chunk-size": "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.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.smtp.enabled": "Enable",
"admin.config.share.chunk-size": "分塊大小",
"admin.config.share.chunk-size.description": "調整分塊大小 (單位Byte) 以平衡上傳的效率與可靠度。更小的分塊大小在不穩定的網路環境中可以提升成功率,更大的分塊大小可以在穩定的網路環境中提高上傳速度。",
"admin.config.share.auto-open-share-modal": "自動開啟分享設定",
"admin.config.share.auto-open-share-modal.description": "分享設定會在使用者選擇檔案後自動開啟而無須手動點擊。",
"admin.config.smtp.enabled": "啟用",
"admin.config.smtp.enabled.description": "是否開啟 SMTP需輸入Host、Port、發送郵箱、使用者名稱和密碼後才有作用",
"admin.config.smtp.host": "Host",
"admin.config.smtp.host.description": "SMTP Host",
"admin.config.smtp.port": "Port",
"admin.config.smtp.port.description": "SMTP Port",
"admin.config.smtp.host": "主機",
"admin.config.smtp.host.description": "SMTP 主機地址",
"admin.config.smtp.port": "通訊埠",
"admin.config.smtp.port.description": "SMTP 通訊埠",
"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.description": "SMTP 主機使用者名稱",
"admin.config.smtp.password": "密碼",
"admin.config.smtp.password.description": "SMTP 主機密碼",
"admin.config.smtp.button.test": "發送測試Email",
"admin.config.smtp.allow-unauthorized-certificates": "Trust unauthorized SMTP server certificates",
"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": "信任未經認證的 SMTP 伺服器證書",
"admin.config.smtp.allow-unauthorized-certificates.description": "僅在你信任此自簽章證書時啟用此設定",
"admin.config.oauth.allow-registration": "允許註冊",
"admin.config.oauth.allow-registration.description": "允許使用者以第三方登入註冊",
"admin.config.oauth.ignore-totp": "略過 TOTP",
"admin.config.oauth.ignore-totp.description": "當使用者使用第三方登入時,略過 TOTP 驗證",
"admin.config.oauth.disable-password": "Disable password login",
"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": "停用密碼登入",
"admin.config.oauth.disable-password.description": "當你停用密碼登入時,確保你有啟用任意 OAuth 服務以避免無法存取",
"admin.config.oauth.github-enabled": "GitHub",
"admin.config.oauth.github-enabled.description": "啟用 Github 登入",
"admin.config.oauth.github-client-id": "GitHub Client ID",
"admin.config.oauth.github-client-id.description": "GitHub OAuth 的 Client ID",
"admin.config.oauth.github-client-secret": "GitHub Client secret",
"admin.config.oauth.github-client-secret.description": "GitHub OAuth 的 Client secret",
"admin.config.oauth.github-client-id": "Github 的客戶端 ID",
"admin.config.oauth.github-client-id.description": "GitHub OAuth 的客戶端 ID",
"admin.config.oauth.github-client-secret": "Github 客戶端權杖",
"admin.config.oauth.github-client-secret.description": "GitHub OAuth 的客戶端權杖",
"admin.config.oauth.google-enabled": "Google",
"admin.config.oauth.google-enabled.description": "啟用 Google 登入",
"admin.config.oauth.google-client-id": "Google Client ID",
"admin.config.oauth.google-client-id.description": "Google OAuth 的 Client ID",
"admin.config.oauth.google-client-secret": "Google Client secret",
"admin.config.oauth.google-client-secret.description": "Google OAuth 的 Client secret",
"admin.config.oauth.google-client-id": "Google 的客戶端 ID",
"admin.config.oauth.google-client-id.description": "Google OAuth 的客戶端 ID",
"admin.config.oauth.google-client-secret": "Google 的客戶端權杖",
"admin.config.oauth.google-client-secret.description": "Google OAuth 的客戶端權杖",
"admin.config.oauth.microsoft-enabled": "Microsoft",
"admin.config.oauth.microsoft-enabled.description": "啟用 Microsoft 登入",
"admin.config.oauth.microsoft-tenant": "Microsoft Tenant",
"admin.config.oauth.microsoft-tenant.description": "Microsoft OAuth 的 Tenant ID\ncommon: 擁有 Microsoft Entra ID 的個人 Microsoft 帳號和工作或學校帳號的使用者可以登入該應用程式。\norganizations: 擁有 Microsoft Entra ID 的工作或學校帳號的使用者才能登入應用程式。\nconsumers: 只有擁有個人 Microsoft 帳號的使用者才能登入該應用程式。\ndomain name of the Microsoft Entra tenant or the tenant ID in GUID format: 只有來自特定 Microsoft Entra 租戶的使用者(具有工作或學校帳號的目錄成員或具有個人 Microsoft 帳號的目錄成員)才能登入應用程式。",
"admin.config.oauth.microsoft-client-id": "Microsoft Client ID",
"admin.config.oauth.microsoft-client-id.description": "Microsoft OAuth 的 Client ID",
"admin.config.oauth.microsoft-client-secret": "Microsoft Client secret",
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth 的 Client secret",
"admin.config.oauth.microsoft-client-id": "Microsoft 的客戶端 ID",
"admin.config.oauth.microsoft-client-id.description": "Microsoft OAuth 的客戶端 ID",
"admin.config.oauth.microsoft-client-secret": "Microsoft 的客戶端權杖",
"admin.config.oauth.microsoft-client-secret.description": "Microsoft OAuth 的客戶端權杖",
"admin.config.oauth.discord-enabled": "Discord",
"admin.config.oauth.discord-enabled.description": "啟用 Discord 登入",
"admin.config.oauth.discord-limited-users": "Discord limited users",
@@ -401,6 +403,8 @@ export default {
"admin.config.oauth.oidc-discovery-uri.description": "Discovery URI of the OpenID Connect OAuth app",
"admin.config.oauth.oidc-sign-out": "Sign out from 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-scope": "OpenID Connect scope",
"admin.config.oauth.oidc-scope.description": "Scopes which should be requested from the OpenID Connect provider.",
"admin.config.oauth.oidc-username-claim": "OpenID Connect username claim",
"admin.config.oauth.oidc-username-claim.description": "Username claim in OpenID Connect ID token. Leave it blank if you don't know what this config is.",
"admin.config.oauth.oidc-role-path": "Path to roles in OpenID Connect token",
@@ -436,20 +440,20 @@ export default {
"404.description": "查無此頁",
"404.button.home": "返回主頁",
// error
"error.title": "Error",
"error.description": "Oops!",
"error.title": "錯誤",
"error.description": "哎呀!",
"error.button.back": "返回上一頁",
"error.msg.default": "發生預期外的問題。",
"error.msg.access_denied": "您取消了身分驗證,請重試。",
"error.msg.expired_token": "身分驗證過程逾時,請重試。",
"error.msg.invalid_token": "Internal Error",
"error.msg.no_user": "與此 {0} 帳號關聯的使用者不存在。",
"error.msg.no_email": "無法從此 {0} 帳號取得Email地址。",
"error.msg.already_linked": "此 {0} 帳號已與另一個帳號關聯。",
"error.msg.not_linked": "This {0} account hasn't been linked to any account yet.",
"error.msg.unverified_account": "This {0} account is unverified, please try again after verification.",
"error.msg.user_not_allowed": "You are not allowed to sign in.",
"error.msg.cannot_get_user_info": "Cannot get your user info from this {0} account.",
"error.msg.invalid_token": "內部錯誤",
"error.msg.no_user": "與此帳號 {0} 關聯的使用者不存在。",
"error.msg.no_email": "無法從此帳號 {0} 取得Email地址。",
"error.msg.already_linked": "此帳號 {0} 已與另一個帳號關聯。",
"error.msg.not_linked": "此帳號 {0} 尚未關聯到任何帳號。",
"error.msg.unverified_account": "此帳號 {0} 並未驗證,請驗證後再嘗試。",
"error.msg.user_not_allowed": "您不被允許登入。",
"error.msg.cannot_get_user_info": "無法從此帳號 {0} 取得使用者資料。",
"error.param.provider_github": "GitHub",
"error.param.provider_google": "Google",
"error.param.provider_microsoft": "Microsoft",
@@ -467,11 +471,11 @@ export default {
"common.button.generate": "自動產生",
"common.button.done": "完成",
"common.text.link": "聯結",
"common.text.navigate-to-link": "Visit link",
"common.text.navigate-to-link": "瀏覽連結",
"common.text.or": "或",
"common.text.redirecting": "Redirecting...",
"common.text.redirecting": "正在跳轉中...",
"common.button.go-back": "返回",
"common.button.go-home": "Go home",
"common.button.go-home": "返回首頁",
"common.notify.copied": "已複製到剪貼簿",
"common.success": "成功",
"common.error": "錯誤",
@@ -479,8 +483,8 @@ export default {
"common.error.invalid-email": "Email地址不可用",
"common.error.too-short": "必須不少於 {length} 個字元",
"common.error.too-long": "必須不超過 {length} 個字元",
"common.error.number-too-small": "Must be at least {min}",
"common.error.number-too-large": "Must be at most {max}",
"common.error.number-too-small": "必須大於 {min}",
"common.error.number-too-large": "必須小於 {max}",
"common.error.exact-length": "必須為 {length} 個字元",
"common.error.invalid-number": "必須為數字",
"common.error.field-required": "必填"

View File

@@ -140,6 +140,7 @@ const Upload = ({
),
enableEmailRecepients: config.get("email.enableShareEmailRecipients"),
maxExpirationInHours: config.get("share.maxExpiration"),
shareIdLength: config.get("share.shareIdLength"),
simplified,
},
files,

4
package-lock.json generated
View File

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

View File

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